FEDRA emulsion software from the OPERA Collaboration
EdbEDAMainTab Class Reference

#include <EdbEDAMainTab.h>

Collaboration diagram for EdbEDAMainTab:

Public Types

enum  { kSelSeg , kSelTrack }
 

Public Member Functions

void ApplyParams ()
 
void CalcIP ()
 
void CalcMinimumDistance (void)
 
void CalcPSelected ()
 
void CalcVertex (int clear_previous_local=kTRUE)
 
void CalcVertexPlus ()
 
void ClearTracks (void)
 
void ClearVertices ()
 
void DrawExtentionResolution ()
 
void DrawOnlySelected ()
 
 EdbEDAMainTab (void)
 
void ExecCuts (int redraw=kTRUE)
 
void ExecSegmentSearch ()
 
void ExecTrackSearch ()
 
double GetDT ()
 
int GetNsegCut ()
 
double GetPHCut ()
 
double GetPHDTRMS ()
 
double GetTX ()
 
double GetTY ()
 
void MakeGUICuts (TGGroupFrame *fGroupFrame1)
 
void MakeGUIIDSearch ()
 
void MakeGUIMain ()
 
void MicroTrackSearch ()
 
void PickCenter ()
 
void ReadFeedback ()
 
void ReadFilteredText ()
 
void ReadListFile (const char *filename=NULL, bool clear_previous=kFALSE)
 
void Redo (void)
 
void RemoveSelected ()
 
void SearchCouplesDmin (TObjArray *segsarr, int ipl)
 
void SearchCouplesDmin (TObjArray *segsarr=NULL)
 
void SearchCouplesIP (int ipl, double x, double y, double z, double ipcut=50, TObjArray *cps=NULL)
 
void SearchCouplesIP (int ipl, EdbVertex *v, double ipcut=50, TObjArray *cps=NULL)
 
void SearchCouplesIP (TObjArray *segsarr=NULL)
 
void SelectAll ()
 
void SetAnimation ()
 
void SetColorMode ()
 
void SetDrawAreas ()
 
void SetDrawCheckBox ()
 
void SetDrawText ()
 
void SetDrawTrackSets (Bool_t on)
 
void SetExtention ()
 
void SetExtentionZNumber ()
 
void SetExtentionZSlider ()
 
void SetOutputFileModeButton ()
 
void SetPickSegment ()
 
void SetPickTrack ()
 
void SetProjection ()
 
void WriteFeedback ()
 
void WriteFilteredText ()
 
const char * WriteListFile (const char *filename=NULL)
 
void WriteMxxFile ()
 
virtual ~EdbEDAMainTab ()
 

Public Attributes

TObjArray * eDrawChecks
 
TGCheckButton * eGCBAngleCut
 
TGCheckButton * eGCBAnimation
 
TGCheckButton * eGCBDrawArea
 
TGCheckButton * eGCBExtention
 
TGCheckButton * eGCBExtention_res
 
TGCheckButton * eGCBIpCut
 
TGCheckButton * eGCBNeighbor
 
TGCheckButton * eGClearPrevious
 
TGNumberEntryField * eGNEAX
 
TGNumberEntryField * eGNEAY
 
TGNumberEntryField * eGNEExtentionZ
 
TGNumberEntry * eGNEMaxPlate
 
TGNumberEntryField * eGNENeighborDzDown
 
TGNumberEntryField * eGNENeighborDzUp
 
TGNumberEntry * eGNENseg
 
TGNumberEntryField * eGNEPHDTRMS
 
TGNumberEntry * eGNESearchBTIPL
 
TGNumberEntryField * eGNESearchSegmentIPL
 
TGNumberEntryField * eGNESearchSegmentISeg
 
TGNumberEntryField * eGNESearchTrack
 
TGNumberEntry * eGNETolDT
 
TGNumberEntry * eGNETolDX
 
TGNumberEntryField * eGNEWCut
 
TGRadioButton * eGRBColorBK
 
TGRadioButton * eGRBColorPH
 
TGRadioButton * eGRBColorPL
 
TGCheckButton * eGSideOut
 
TGNumberEntry * eGSideOutPlate
 
TGHSlider * eGSliderExtentionZ
 
TGMainFrame * eIDWindow
 
EdbEDATrackSeteTrackSet
 
TGCheckButton * fTextButton_scanback
 

Private Attributes

TGCheckButton * eGCBTrackAngle
 
TGCheckButton * eGCBTrackID
 
TGRadioButton * eGRBSelSeg
 
TGRadioButton * eGRBSelTrack
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kSelSeg 
kSelTrack 
18 { kSelSeg, kSelTrack};
@ kSelSeg
Definition: EdbEDAMainTab.h:18
@ kSelTrack
Definition: EdbEDAMainTab.h:18

Constructor & Destructor Documentation

◆ EdbEDAMainTab()

EdbEDAMainTab::EdbEDAMainTab ( void  )
inline
70  {
72  MakeGUIMain();
73  }
void MakeGUIMain()
Definition: EdbEDAMainTab.C:485
TGMainFrame * eIDWindow
Definition: EdbEDAMainTab.h:64
#define NULL
Definition: nidaqmx.h:84

◆ ~EdbEDAMainTab()

virtual EdbEDAMainTab::~EdbEDAMainTab ( )
inlinevirtual
74 {}

Member Function Documentation

◆ ApplyParams()

void EdbEDAMainTab::ApplyParams ( )

◆ CalcIP()

void EdbEDAMainTab::CalcIP ( )
981  {
982  // calculate IP for the selected tracks wrt the given vertex.
983  // if the vertex is not given, use the selected vertex.
985  if(NULL==v) {
986  printf("select a vertex!\n");
987  return;
988  }
989  printf("/// Calc IP w.r.t. Vertex %d %8.1lf %8.1lf %8.1lf (red vertex) ///\n",v->ID(), v->X(),v->Y(),v->Z());
990 
991  TObjArray *selected = gEDA->GetSelected();
992  if(selected->GetEntriesFast()==0){
993  printf("select segments\n");
994  return;
995  }
996  for(int i=0;i<selected->GetEntriesFast();i++){
997  EdbSegP *s = (EdbSegP *) selected->At(i);
998  double r = EdbEDAUtil::CalcIP(s,v->X(),v->Y(),v->Z());
999 
1000  double dz = fabs(v->Z()-s->Z());
1001  double minimum_kink_angle = r / (dz-293.0/2);
1002 
1003  printf("%6d PL %2d %7.4lf %7.4lf IP = %6.2lf, dZ = %6.1lf, Minimum kink angle = %6.4lf\n",
1004  s->Track(), s->Plate(), s->TX(), s->TY(), r, dz, minimum_kink_angle);
1005  gEve->SetStatusLine(Form("%4d PL %2d %7.4lf %7.4lf IP = %6.2lf, dZ = %6.1lf, Minimum kink angle = %6.4lf\n",
1006  s->Track(), s->Plate(), s->TX(), s->TY(), r, dz, minimum_kink_angle));
1007  }
1008 }
EdbEDA * gEDA
Definition: EdbEDA.C:3
brick dz
Definition: RecDispMC.C:107
Expr< UnaryOp< Fabs< T >, Expr< A, T, D >, T >, T, D > fabs(const Expr< A, T, D > &rhs)
Definition: UnaryOperators.hh:96
TObjArray * GetSelected(void)
Definition: EdbEDA.h:405
EdbVertex * GetSelectedVertex(void)
Definition: EdbEDA.h:439
Definition: EdbSegP.h:18
Int_t Track() const
Definition: EdbSegP.h:147
Float_t TX() const
Definition: EdbSegP.h:172
Int_t Plate() const
Definition: EdbSegP.h:156
Float_t Z() const
Definition: EdbSegP.h:150
Float_t TY() const
Definition: EdbSegP.h:173
Definition: EdbVertex.h:68
Int_t ID() const
Definition: EdbVertex.h:126
Float_t X() const
Definition: EdbVertex.h:130
Float_t Z() const
Definition: EdbVertex.h:132
Float_t Y() const
Definition: EdbVertex.h:131
double CalcIP(EdbSegP *s, double x, double y, double z)
Definition: EdbEDAUtil.C:85
void r(int rid=2)
Definition: test.C:201
EdbSegP * s
Definition: tlg2pattern.C:32

◆ CalcMinimumDistance()

void EdbEDAMainTab::CalcMinimumDistance ( void  )
790  {
791  printf("/// Calc Dmin //////////////////////////////////////////////////////////////////////////\n");
792  TObjArray * selected = gEDA->GetSelected();
793  if(selected->GetEntriesFast()<2) {
794  printf("Select more than 2 segment!!\n");
795  return;
796  }
797  int i,j;
798  int n = selected->GetEntriesFast();
799 
800  for(i=0;i<n-1;i++){
801  for(j=i+1;j<n;j++){
802  int id1=0,id2=0;
803  EdbSegP *seg1 = (EdbSegP*) selected->At(i);
804  if(IsSegment(seg1)) {
805  id1=seg1->Track();
806  if(id1==-1) id1=seg1->ID();
807  }
808  else id1=seg1->ID();
809 
810  EdbSegP *seg2 = (EdbSegP*) selected->At(j);
811 
812  if(IsSegment(seg2)) {
813  id2=seg2->Track();
814  if(id2==-1) id2=seg2->ID();
815  }
816  else id2=seg2->ID();
817 
818  double dz;
819  double r = CalcDmin(seg1,seg2, &dz);
820 
821  printf(" %5d x %5d dmin = %6.1lf um at %6.1lf um upstream from pl %2d. dT=(%7.4lf, %7.4lf).\n",
822  id1,id2, r, dz, seg1->Plate(), seg1->TX()-seg2->TX(), seg1->TY()-seg2->TY());
823 
824  gEve->SetStatusLine(Form("min distance = %6.1lf um at %6.1lf um upstream of pl %2d\n", r, dz, seg1->Plate()));
825  }
826  }
827  printf("////////////////////////////////////////////////////////////////////////////////////////\n");
828 }
Int_t ID() const
Definition: EdbSegP.h:144
int IsSegment(TObject *o)
Definition: EdbEDAUtil.C:29
double CalcDmin(EdbSegP *seg1, EdbSegP *seg2, double *dminz=NULL)
Definition: EdbEDAUtil.C:239

◆ CalcPSelected()

void EdbEDAMainTab::CalcPSelected ( )
944  {
945  printf("/// Calc Momentum, temporary version//////////////////////\n");
946  TObjArray *selected = gEDA->GetSelected();
947  for(int i=0; i<selected->GetEntriesFast(); i++ ){
948  EdbTrackP *t=gEDA->GetTrack((EdbSegP *)selected->At(i));
949  if(t==NULL) continue;
950  double p, pmin, pmax;
951 
952 // CalcP(t,p,pmin,pmax);
953 // printf(" %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)\n",
954 // t->ID(), t->TX(), t->TY(), p, pmin, pmax);
955 // gEve->SetStatusLine(Form(" %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)",
956 // t->ID(), t->TX(), t->TY(), p, pmin, pmax));
957 
958 // printf("Bern conventional (Magali's)\n");
959  CalcP(t,p,pmin,pmax);
960 // printf("Bern %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)\n",
961 // t->ID(), t->TX(), t->TY(), p, pmin, pmax);
962  gEve->SetStatusLine(Form(" %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)",
963  t->ID(), t->TX(), t->TY(), p, pmin, pmax));
964 /*
965  printf("Andrea conventional\n");
966  CalcP2(t,p,pmin,pmax);
967  printf("A_g0 %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)\n",
968  t->ID(), t->TX(), t->TY(), p, pmin, pmax);
969 
970  printf("Andrea new statistical treatment\n");
971  CalcP3(t,p,pmin,pmax);
972  printf("A_g2 %5d %7.4lf %7.4lf p pmin pmax = %6.2f %6.2f %6.2f GeV/c (90%%CL)\n",
973  t->ID(), t->TX(), t->TY(), p, pmin, pmax);
974 */
975  }
976 
977  printf("////////////////////////////////////////////////////////////////\n");
978 }
TTree * t
Definition: check_shower.C:4
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDA.h:598
Definition: EdbPattern.h:118
EdbMomentumEstimator * CalcP(EdbTrackP *t, double &p, double &pmin, double &pmax, bool print=kTRUE)
Definition: EdbEDAUtil.C:369
p
Definition: testBGReduction_AllMethods.C:8

◆ CalcVertex()

void EdbEDAMainTab::CalcVertex ( int  clear_previous_local = kTRUE)
832  {
833  // calculate a vertex with the selected tracks (segments).
834  // use the data of (the selected object)->X(), Y(), Z(), TX(), TY().
835  // means, if the selected object == segment, use the data of the segment. or it == track, the use the fitted data.
836  printf("/// Calc Vertex /////////////////////////////////////////////////\n");
837  TObjArray *selected = gEDA->GetSelected();
838 
839  if(selected->GetEntriesFast()<1){
840  ErrorMessage("CalcVertex() error : please select more than 1 segment or track\n");
841  return;
842  }
843 
844  if(eGClearPrevious->IsOn()&&clear_previous_local) gEDA->GetVertexSet()->Clear();
845 
846 
847  /*
848  // this is for FEDRA vertex using libVt++. but it's not convenient. use only topological.
849 
850  EdbVertex *v0 = EdbEDAUtil::CalcVertex(selected); // by Tomoo func. pre-vertexing. to know vertex z.
851 
852  EdbVertex *v;
853  if(selected->GetEntriesFast()==1){
854  EdbSegP *s = (EdbSegP *)selected->At(0);
855  EdbTrackP *t = gEDA->GetSelectedTrack(s);
856 
857  EdbVTA *vta = new EdbVTA(t, v0);
858  vta->SetFlag(2);
859  vta->SetImp(EdbEDAUtil::CalcIP(s,v0));
860  v0->AddVTA(vta);
861  v=v0;
862  }
863  else {
864  // Calc vertex by FEDRA version.
865  v = new EdbVertex;
866  // register the tracks to vertex.
867  for(int i=0;i<selected->GetEntriesFast();i++){
868  EdbSegP *s = (EdbSegP *)selected->At(i);
869  EdbTrackP *t = gEDA->GetSelectedTrack(s);
870 
871  //if(t==NULL) t = new EdbTrackP(s);
872 
873  double dz1 = abs(t->GetSegmentFirst()->Z()-v0->Z()); // z distance from 1st segment to vertex
874  double dz2 = abs(t->GetSegmentLast()->Z()-v0->Z()); // z distance from last segment to vertex
875 
876  EdbVTA *vta = new EdbVTA(t, v);
877  vta->SetZpos(dz1<dz2?1:0); // if 1st segment is near to vertex, use 1st segment.
878  vta->SetFlag(2);
879  vta->SetImp(EdbEDAUtil::CalcIP(s,v));
880  v->AddVTA(vta);
881  }
882  // calculate in EdbVertexRec.
883  EdbVertexRec VR;
884  VR.eImpMax=1e6;
885  EdbPVRec PVR; // needed because of X0.
886  PVR.SetScanCond(new EdbScanCond);
887  VR.SetPVRec(&PVR);
888  VR.eUseSegPar=kTRUE; // definitely need for better IP calculation.
889  VR.MakeV(*v);
890  }
891  */
892  // calc vertex point by Tomoko // VTA is not set.
893  // old version. upto 2009 10 29
894  EdbVertex *v = EdbEDAUtil::CalcVertex(selected);
895 
896  static int vid=0;
897  if(vid<gEDA->GetVertexSet()->N()) vid=gEDA->GetVertexSet()->N();
898  v->SetID(vid++);
899  // register the vertex to selected_vertex.
900  for(int i=0;i<selected->GetEntriesFast();i++){
901  EdbSegP *s = (EdbSegP *)selected->At(i);
903 
904  if(t==NULL) t = new EdbTrackP(s);
905 
906  EdbVTA *vta = new EdbVTA(t, v);
907  vta->SetZpos(1);
908  vta->SetFlag(2);
909  vta->SetImp(EdbEDAUtil::CalcIP(s,v));
910  v->AddVTA(vta);
911  }
912 
913  // claculate the dZ from the last plate
914  double vertexplz = 1e6;
915  int vertexipl = 0;
916  for(int i=0;i<gEDA->GetNPL();i++){
917  if(gEDA->GetZPID(i)<v->Z()) continue;
918  if(gEDA->GetZPID(i)<vertexplz) {
919  vertexplz = gEDA->GetZPID(i);
920  vertexipl = gEDA->GetIPL(i);
921  }
922  }
923  if(gEDA->GetNPL()==0){
925  EdbSegP *s = t->GetSegmentFirst();
926  vertexplz=s->Z();
927  vertexipl=s->Plate();
928  }
929 
930  gEve->SetStatusLine(Form("Vertex position (x,y,z) = (%8.1lf, %8.1lf, %8.1lf). %.1lf micron upstream of pl %d\n",
931  v->X(), v->Y(), v->Z(), vertexplz-v->Z(), vertexipl));
932 
933  printf(" --------------------------------------------------------------------------\n");
934  printf("Vertex position (x,y,z) = (%8.1lf, %8.1lf, %8.1lf). %.1lf micron upstream of pl %d\n",v->X(), v->Y(), v->Z(), vertexplz-v->Z(), vertexipl);
935 
936 
937  gEDA->WriteFeedbackFile2008(v,"tmp.feedback");
938  printf("/// Calc Vertex end//////////////////////////////////////////////\n");
939  gEDA->GetVertexSet()->AddVertex(v);
941  gEDA->Redraw();
942 }
int GetIPL(int PID)
Definition: EdbEDA.h:252
double GetZPID(int pid)
Definition: EdbEDA.h:321
int GetNPL()
Definition: EdbEDA.h:246
void WriteFeedbackFile2008(EdbVertex *v=NULL, const char *filename=NULL)
Definition: EdbEDA.C:690
TGCheckButton * eGClearPrevious
Definition: EdbEDAMainTab.h:25
EdbTrackP * GetSelectedTrack(int i=-1)
Definition: EdbEDA.h:421
void SetSelectedVertex(EdbVertex *v)
Definition: EdbEDA.h:440
void AddVertex(EdbVertex *v)
Definition: EdbEDASets.h:183
int N()
Definition: EdbEDASets.h:215
void Clear()
Definition: EdbEDASets.h:214
void Redraw()
Definition: EdbEDA.h:680
EdbEDAVertexSet * GetVertexSet()
Definition: EdbEDA.h:660
Definition: EdbVertex.h:25
void SetImp(float imp)
Definition: EdbVertex.h:56
void SetZpos(int zpos)
Definition: EdbVertex.h:54
void SetFlag(int flag)
Definition: EdbVertex.h:55
void AddVTA(EdbVTA *vta)
Definition: EdbVertex.cxx:377
void SetID(int ID=0)
Definition: EdbVertex.h:156
void ErrorMessage(const char *title, const char *message)
Definition: EdbEDAUtil.C:479
EdbVertex * CalcVertex(TObjArray *segments)
Definition: EdbEDAUtil.C:282

◆ CalcVertexPlus()

void EdbEDAMainTab::CalcVertexPlus ( )
830 { CalcVertex(kFALSE);}
void CalcVertex(int clear_previous_local=kTRUE)
Definition: EdbEDAMainTab.C:832

◆ ClearTracks()

void EdbEDAMainTab::ClearTracks ( void  )
EdbEDATrackSet * eTrackSet
Definition: EdbEDAMainTab.h:66
void ClearTracks(void)
Definition: EdbEDATrackSet.h:327
void StorePrevious()
Definition: EdbEDA.h:689

◆ ClearVertices()

void EdbEDAMainTab::ClearVertices ( )
void ClearVertices()
Definition: EdbEDA.h:663

◆ DrawExtentionResolution()

void EdbEDAMainTab::DrawExtentionResolution ( )
1111  {
1112  // Draw Extention with resolution
1113  gEDA->GetExtentionSet()->DrawResolution(kTRUE);
1114 }
void DrawResolution(int redraw=0)
Definition: EdbEDASets.C:265
EdbEDAExtentionSet * GetExtentionSet()
Definition: EdbEDA.h:699

◆ DrawOnlySelected()

void EdbEDAMainTab::DrawOnlySelected ( )
1011  {
1012  gEDA->StorePrevious();
1017  gEDA->Redraw();
1018 }
TObjArray * GetSelectedTracks(void)
Definition: EdbEDA.h:417
void SetTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:303
void ClearVertices()
Definition: EdbEDASets.h:213
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191

◆ ExecCuts()

void EdbEDAMainTab::ExecCuts ( int  redraw = kTRUE)
28  {
29  printf("Execute cuts\n");
30  ApplyParams();
31  printf("Apply Parameters\n");
33 
35  if(eGClearPrevious->IsOn()) gEDA->ClearVertices();
37  }
38 
39  // selection of tracks in the tracks-base.
41 
42  // selected tracks are anyway shown.
44 
45  if(redraw) gEDA->Redraw();
46 }
void ApplyParams()
bool GetImpactSearch()
Definition: EdbEDATrackSet.h:109
void DoSelection()
Definition: EdbEDATrackSet.h:503
void AddVertex(EdbVertex *v)
Definition: EdbEDA.h:661

◆ ExecSegmentSearch()

void EdbEDAMainTab::ExecSegmentSearch ( )
250  {
251  gEDA->StorePrevious();
252  int ipl = eGNESearchSegmentIPL->GetIntNumber();
253  int iseg = eGNESearchSegmentISeg->GetIntNumber();
254  printf("Track Search by Segment, ipl = %d iseg = %d\n", ipl, iseg);
255  if(eGClearPrevious->IsOn()) eTrackSet->ClearTracks();
256  EdbTrackP *t = eTrackSet->SearchSegment(ipl, iseg);
257  if(t) eTrackSet->AddTrack(t);
258  else printf("track not found.\n");
259  gEDA->Redraw();
260  if(eIDWindow!=NULL) eIDWindow->CloseWindow();
261  eIDWindow = NULL;
262 
263 }
TGNumberEntryField * eGNESearchSegmentIPL
Definition: EdbEDAMainTab.h:42
TGNumberEntryField * eGNESearchSegmentISeg
Definition: EdbEDAMainTab.h:43
EdbTrackP * SearchSegment(int ipl, int iseg)
Definition: EdbEDATrackSet.C:1198
void AddTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:277

◆ ExecTrackSearch()

void EdbEDAMainTab::ExecTrackSearch ( )
234  {
235  gEDA->StorePrevious();
236  int itrk = eGNESearchTrack->GetIntNumber();
237  if(eGClearPrevious->IsOn()) eTrackSet->ClearTracks();
238  printf("Track Search, itrk = %d\n", itrk);
239  EdbTrackP *t = eTrackSet->SearchTrack(itrk);
240  if(t) eTrackSet->AddTrack(t);
241  gEDA->Redraw();
242 
243  if(eIDWindow!=NULL) eIDWindow->CloseWindow();
244  eIDWindow = NULL;
245 
246 }
TGNumberEntryField * eGNESearchTrack
Definition: EdbEDAMainTab.h:41
EdbTrackP * SearchTrack(int itrk)
Definition: EdbEDATrackSet.h:365

◆ GetDT()

double EdbEDAMainTab::GetDT ( )
inline
113 { return eGNETolDT->GetNumber();}
TGNumberEntry * eGNETolDT
Definition: EdbEDAMainTab.h:33

◆ GetNsegCut()

int EdbEDAMainTab::GetNsegCut ( )
inline
108 { return eGNENseg->GetIntNumber();}
TGNumberEntry * eGNENseg
Definition: EdbEDAMainTab.h:20

◆ GetPHCut()

double EdbEDAMainTab::GetPHCut ( )
inline
109 { return eGNEWCut->GetNumber();}
TGNumberEntryField * eGNEWCut
Definition: EdbEDAMainTab.h:22

◆ GetPHDTRMS()

double EdbEDAMainTab::GetPHDTRMS ( )
inline
110 { return eGNEPHDTRMS->GetNumber();}
TGNumberEntryField * eGNEPHDTRMS
Definition: EdbEDAMainTab.h:23

◆ GetTX()

double EdbEDAMainTab::GetTX ( )
inline
111 { return eGNEAX->GetNumber();}
TGNumberEntryField * eGNEAX
Definition: EdbEDAMainTab.h:35

◆ GetTY()

double EdbEDAMainTab::GetTY ( )
inline
112 { return eGNEAY->GetNumber();}
TGNumberEntryField * eGNEAY
Definition: EdbEDAMainTab.h:36

◆ MakeGUICuts()

void EdbEDAMainTab::MakeGUICuts ( TGGroupFrame *  fGroupFrame1)
318  {
319  int posy=20, posx, dx;
320  TGLabel *fLabel;
321  TGTextButton *fb;
322  fLabel = new TGLabel(fGroupFrame1,"Nseg >=");
323  fLabel->MoveResize(10,posy,50,20);
324 
325  eGNENseg = new TGNumberEntry(fGroupFrame1, eTrackSet->GetNsegCut(),11,-1,TGNumberFormat::kNESInteger);
326  eGNENseg->MoveResize(70,posy,50,20);
327 
328  posy+=20;
329  fLabel = new TGLabel(fGroupFrame1," iPlate >= ");
330  if(gEDA->Japanese()) fLabel->SetTitle(" iPlate <= ");
331  fLabel->MoveResize(10,posy,50,20);
332 
334  eGNEMaxPlate = new TGNumberEntry(fGroupFrame1, eTrackSet->GetUpstreamPlate(),11,-1,TGNumberFormat::kNESInteger);
335  eGNEMaxPlate->MoveResize(70,posy,50,20);
336 
337  posy+=22;
338  posx=5;
339  fLabel = new TGLabel(fGroupFrame1,"ph>=");
340  fLabel->MoveResize(posx,posy,dx=27,18);
341 
342  posx+=dx;
343  eGNEWCut = new TGNumberEntryField(fGroupFrame1, -1, (Double_t) eTrackSet->GetPHCut());
344  eGNEWCut->SetFormat(TGNumberFormat::kNESRealOne);
345  eGNEWCut->MoveResize(posx,posy,dx=33,18);
346  eGNEWCut->SetToolTipText("Cut for PH mean.");
347 
348  posx+=dx+5;
349  fLabel = new TGLabel(fGroupFrame1,"dt/ph=");
350  fLabel->MoveResize(posx,posy,dx=40,18);
351 
352  posx+=dx;
353  eGNEPHDTRMS = new TGNumberEntryField(fGroupFrame1, -1, (Double_t) eTrackSet->GetPHDTRMS());
354  eGNEPHDTRMS->SetFormat(TGNumberFormat::kNESRealThree);
355  eGNEPHDTRMS->SetLimits(TGNumberFormat::kNELLimitMin, 0);
356  eGNEPHDTRMS->MoveResize(posx,posy,dx=40,18);
357 
358 
359  posx+=dx+8;
360  eGClearPrevious = new TGCheckButton(fGroupFrame1,"Clear prev");
361  eGClearPrevious->MoveResize(posx,posy,dx=80,20);
362  eGClearPrevious->SetState(kButtonDown);
363 
364  posy+=20;
365  eGSideOut = new TGCheckButton(fGroupFrame1,"Penetration and Side-out");
366  eGSideOut->MoveResize(10,posy,160,20);
367  eGSideOut->SetToolTipText( "Reject penetrating and side-out tracks,\n"
368  "by requesting the scanning area upstream\n"
369  "of the track for a given number of plates.");
370 
371  eGSideOutPlate = new TGNumberEntry(fGroupFrame1, eTrackSet->GetSideOutPlate(),11,-1,TGNumberFormat::kNESInteger);
372  eGSideOutPlate->MoveResize(175,posy,35,18);
373 
374  fLabel = new TGLabel(fGroupFrame1,"pl");
375  fLabel->MoveResize(210,posy,dx=25,20);
376 
377  posy+=23;
378  // Check Neighbor search
379  eGCBNeighbor = new TGCheckButton(fGroupFrame1,"Neighbor search");
380  eGCBNeighbor->MoveResize(10,posy,115,20);
381  eGCBNeighbor->SetToolTipText("Search neighbors.\nAngular and position tolerance are valid.");
382 
383 
384  eGCBIpCut = new TGCheckButton(fGroupFrame1,"IP cut");
385  eGCBIpCut->MoveResize(128,posy,100,20);
386  eGCBIpCut->SetState(kButtonUp);
387  eGCBIpCut->SetToolTipText("IP cut against a selected vertex (Red).\nPosition tolerance is valid.");
388 
389 
390  posy+=20;
391  // Check Angular cut
392  eGCBAngleCut = new TGCheckButton(fGroupFrame1,"Angular cut");
393  eGCBAngleCut->MoveResize(10,posy,90,20);
394  eGCBAngleCut->SetToolTipText("Angular cut against a given angle.\nAngular tolerance is valid.");
395 
396  eGNEAX = new TGNumberEntryField(fGroupFrame1);
397  eGNEAX->MoveResize(100,posy,60,18);
398  eGNEAX->SetFormat(TGNumberFormat::kNESRealThree);
399 
400  eGNEAY = new TGNumberEntryField(fGroupFrame1);
401  eGNEAY->MoveResize(170,posy,60,18);
402  eGNEAY->SetFormat(TGNumberFormat::kNESRealThree);
403 
404  posy+=25;
405 
406  fLabel = new TGLabel(fGroupFrame1,"tol :");
407  fLabel->MoveResize(10,posy,25,20);
408 
409  eGNETolDT = new TGNumberEntry(fGroupFrame1, 0.05,11,-1,TGNumberFormat::kNESRealTwo);
410  eGNETolDT->MoveResize(35,posy,60,20);
411 // eGNETolDT->SetToolTipText("Angular tolerance");
412 
413  fLabel = new TGLabel(fGroupFrame1,"rad");
414  fLabel->MoveResize(100,posy,25,18);
415 
416  eGNETolDX = new TGNumberEntry(fGroupFrame1, 250,11,-1,TGNumberFormat::kNESReal);
417  eGNETolDX->MoveResize(130,posy,60,20);
418 // eGNETolDX->SetToolTipText("Position tolerance");
419 
420  fLabel = new TGLabel(fGroupFrame1,"micron");
421  fLabel->MoveResize(190,posy,40,18);
422 
423  posy+=25;
424  fLabel = new TGLabel(fGroupFrame1,"dz range : up");
425  fLabel->MoveResize(12,posy,75,18);
426  eGNENeighborDzUp = new TGNumberEntryField(fGroupFrame1, -1,5000);
427  eGNENeighborDzUp->MoveResize(90,posy,50,18);
428  eGNENeighborDzUp->SetToolTipText("dZ range for neighbor search");
429 
430 
431  fLabel = new TGLabel(fGroupFrame1,"down");
432  fLabel->MoveResize(145,posy,30,18);
433  eGNENeighborDzDown = new TGNumberEntryField(fGroupFrame1, -1,5000);
434  eGNENeighborDzDown->MoveResize(180,posy,50,18);
435  eGNENeighborDzDown->SetToolTipText("dZ range for neighbor search");
436 
437 
438  // Apply
439  fb = new TGTextButton(fGroupFrame1,"Apply");
440  fb->MoveResize(128,20,74,40);
441  fb->Connect("Clicked()","EdbEDAMainTab",this, "ExecCuts()");
442 
443  fb = new TGTextButton(fGroupFrame1,"clr");
444  fb->MoveResize(205,20,30,20);
445  fb->Connect("Clicked()","EdbEDAMainTab",this,"ClearTracks()");
446 
447  fb = new TGTextButton(fGroupFrame1,"<");
448  fb->MoveResize(205,40,30,20);
449  fb->Connect("Clicked()","EdbEDAMainTab",this,"Redo()");
450 
451  posy+=23;
452  fb = new TGTextButton(fGroupFrame1,"ID Search");
453  fb->MoveResize(5,posy,80,18);
454  fb->Connect("Clicked()","EdbEDAMainTab",this,"MakeGUIIDSearch()");
455 
456  fb = new TGTextButton(fGroupFrame1,"MT search");
457  fb->MoveResize(130,posy,70,18);
458  fb->Connect("Clicked()","EdbEDAMainTab", this, "MicroTrackSearch()");
459 
460 
461  posy+=23;
462  fLabel = new TGLabel(fGroupFrame1,"Search BT : pl");
463  fLabel->MoveResize(5,posy,80,18);
464 
465  eGNESearchBTIPL = new TGNumberEntry(fGroupFrame1, -1, 0,TGNumberFormat::kNESInteger);
466  eGNESearchBTIPL->MoveResize(90,posy,35,18);
467 
468  fb = new TGTextButton(fGroupFrame1,"Dmin");
469  fb->MoveResize(130,posy,35,18);
470  fb->Connect("Clicked()","EdbEDAMainTab", this, "SearchCouplesDmin()");
471  fb->SetToolTipText("Search BT by Neibor search. \nif ipl==-1, search in all plate.\nPHcut is valid.");
472 
473  fb = new TGTextButton(fGroupFrame1,"IP cut");
474  fb->MoveResize(170,posy,40,18);
475  fb->Connect("Clicked()","EdbEDAMainTab", this, "SearchCouplesIP()");
476  fb->SetToolTipText("Search BT by IP cut. \nif ipl==-1, search in all plate.\nPHcut is valid.");
477 
478  fb = new TGTextButton(fGroupFrame1,"clr");
479  fb->MoveResize(215,posy,20,18);
480  fb->Connect("Clicked()","EdbEDAMainTab", this, "ClearTracks()");
481 
482 
483 }
TGNumberEntry * eGSideOutPlate
Definition: EdbEDAMainTab.h:28
TGCheckButton * eGCBNeighbor
Definition: EdbEDAMainTab.h:29
TGNumberEntryField * eGNENeighborDzUp
Definition: EdbEDAMainTab.h:37
TGNumberEntry * eGNETolDX
Definition: EdbEDAMainTab.h:34
TGCheckButton * eGSideOut
Definition: EdbEDAMainTab.h:27
TGCheckButton * eGCBAngleCut
Definition: EdbEDAMainTab.h:31
TGNumberEntry * eGNESearchBTIPL
Definition: EdbEDAMainTab.h:46
TGNumberEntryField * eGNENeighborDzDown
Definition: EdbEDAMainTab.h:38
TGCheckButton * eGCBIpCut
Definition: EdbEDAMainTab.h:30
TGNumberEntry * eGNEMaxPlate
Definition: EdbEDAMainTab.h:21
double GetPHDTRMS()
Definition: EdbEDATrackSet.h:116
int GetNsegCut()
Definition: EdbEDATrackSet.h:114
int GetSideOutPlate()
Definition: EdbEDATrackSet.h:117
int GetUpstreamPlate()
Definition: EdbEDATrackSet.h:113
double GetPHCut()
Definition: EdbEDATrackSet.h:115
void SetUpstreamPlate(int ipl)
Definition: EdbEDATrackSet.h:92
int FindUpstreamPlate()
Definition: EdbEDATrackSet.h:445
bool Japanese()
Definition: EdbEDA.h:734

◆ MakeGUIIDSearch()

void EdbEDAMainTab::MakeGUIIDSearch ( )
265  {
266  if(eIDWindow!=NULL) {
267  eIDWindow->RaiseWindow();
268  return;
269  }
270  TGTransientFrame *fMainFrame = new TGTransientFrame(gClient->GetRoot(),gEve?gEve->GetMainWindow():0,10,300,kMainFrame | kVerticalFrame);
271  fMainFrame->SetLayoutBroken(kTRUE);
272 
273  eIDWindow = fMainFrame;
274 
275  // Search
276  int posy=10;
277 
278  TGLabel *fLabel = new TGLabel(fMainFrame,"Search: track id = ");
279  fLabel->MoveResize(10,posy,120,18);
280  eGNESearchTrack = new TGNumberEntryField(fMainFrame, -1, 0,TGNumberFormat::kNESInteger);
281  fMainFrame->AddFrame(eGNESearchTrack, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
282  eGNESearchTrack->MoveResize(130,posy,60,18);
283  TGTextButton *fb = new TGTextButton(fMainFrame,"Go");
284  fb->MoveResize(200,posy+1,30,18);
285  fMainFrame->AddFrame(fb, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
286  fb->Connect("Clicked()","EdbEDAMainTab",this,"ExecTrackSearch()");
287 
288  posy+=20;
289  fLabel = new TGLabel(fMainFrame,"pl = ");
290  fLabel->MoveResize(18,posy,30,18);
291  eGNESearchSegmentIPL = new TGNumberEntryField(fMainFrame, -1, 0,TGNumberFormat::kNESInteger);
292  fMainFrame->AddFrame(eGNESearchSegmentIPL, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
293  eGNESearchSegmentIPL->MoveResize(55,posy,30,18);
294 
295  fLabel = new TGLabel(fMainFrame,"iseg = ");
296  fLabel->MoveResize(90,posy,35,18);
297  eGNESearchSegmentISeg = new TGNumberEntryField(fMainFrame, -1, 0,TGNumberFormat::kNESInteger);
298  fMainFrame->AddFrame(eGNESearchSegmentISeg, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
299  eGNESearchSegmentISeg->MoveResize(130,posy,60,18);
300 
301  fb = new TGTextButton(fMainFrame,"Go");
302  fb->MoveResize(200,posy+1,30,18);
303  fMainFrame->AddFrame(fb, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5));
304  fb->Connect("Clicked()","EdbEDAMainTab",this,"ExecSegmentSearch()");
305 
306  fMainFrame->SetMWMHints(kMWMDecorAll,
307  kMWMFuncAll,
308  kMWMInputModeless);
309  fMainFrame->MapSubwindows();
310 
311  fMainFrame->Resize(fMainFrame->GetDefaultSize());
312  fMainFrame->MapWindow();
313  fMainFrame->Resize(250,70);
314 
315 }

◆ MakeGUIMain()

void EdbEDAMainTab::MakeGUIMain ( )
485  {
486 
487  eTrackSet = gEDA->GetTrackSet("TS");
488 
489 
490  TEveBrowser * browser = gEve->GetBrowser();
491  browser->StartEmbedding(TRootBrowser::kLeft);
492 
493  TGMainFrame* frmMain = new TGMainFrame(gClient->GetRoot(), 1000, 600);
494  frmMain->SetWindowName("XX GUI");
495  frmMain->SetCleanup(kDeepCleanup);
496 
497  //TGLabel *fLabel;
498  TGTextButton *fb;
499 
500  TGVerticalFrame* hf = new TGVerticalFrame(frmMain);
501  {
502  // "fGroupFrame600" group frame
503  TGGroupFrame *fGroupFrame1 = new TGGroupFrame(hf,"Cuts");
504  fGroupFrame1->SetLayoutBroken(kTRUE);
505  MakeGUICuts(fGroupFrame1);
506  hf->AddFrame(fGroupFrame1, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
507  fGroupFrame1->MoveResize(0,0,240,255);
508 
509 
510  // Group2
511  TGGroupFrame *fGroupFrame2 = new TGGroupFrame(hf,"Selection");
512  fGroupFrame2->SetLayoutBroken(kTRUE);
513  {
514  int posy = 15;
515  TGLabel *fLabel = new TGLabel(fGroupFrame2,"method ");
516  fLabel->MoveResize(10,posy,50,18);
517 
518  eGRBSelSeg = new TGRadioButton(fGroupFrame2,"segment");
519  eGRBSelSeg->MoveResize(80,posy,80,18);
520  eGRBSelSeg->Connect("Clicked()","EdbEDAMainTab", this, "SetPickSegment()");
521  eGRBSelSeg->SetState((EButtonState)1);
522 
523  eGRBSelTrack = new TGRadioButton(fGroupFrame2,"track");
524  eGRBSelTrack->MoveResize(170,posy,65,18);
525  eGRBSelTrack->Connect("Clicked()","EdbEDAMainTab", this, "SetPickTrack()");
526 
527  posy+=23;
528  fb = new TGTextButton(fGroupFrame2,"Only selected");
529  fb->MoveResize(10,posy,90,18);
530  fb->Connect("Clicked()","EdbEDAMainTab", this,"DrawOnlySelected()");
531 
532  fb = new TGTextButton(fGroupFrame2,"Remove");
533  fb->MoveResize(105,posy,60,18);
534  fb->Connect("Clicked()","EdbEDAMainTab", this,"RemoveSelected()");
535  fb->SetToolTipText("Remove selected tracks.");
536 
537  fb = new TGTextButton(fGroupFrame2,"All");
538  fb->MoveResize(170,posy,60,18);
539  fb->Connect("Clicked()","EdbEDAMainTab", this,"SelectAll()");
540  fb->SetToolTipText("Select all tracks shown in the display.");
541 
542  posy+=23;
543  eGCBExtention = new TGCheckButton(fGroupFrame2,"Extention");
544  eGCBExtention->MoveResize(15,posy,80,18);
545  eGCBExtention->Connect("Clicked()","EdbEDAMainTab", this,"SetExtention()");
546 
547  fb = new TGTextButton(fGroupFrame2,"res");
548  fb->MoveResize(100,posy,40,18);
549  fb->Connect("Clicked()","EdbEDAMainTab", this,"DrawExtentionResolution()");
550  fb->SetToolTipText("Draw extention with measurement error + scattering.");
551 
552  fLabel = new TGLabel(fGroupFrame2,"z =");
553  fLabel->MoveResize(145,posy,20,18);
554  eGNEExtentionZ = new TGNumberEntryField(fGroupFrame2, -1, gEDA->GetExtentionSet()->GetZ(), TGNumberFormat::kNESInteger);
555  eGNEExtentionZ -> MoveResize(170,posy,55,18);
556  eGNEExtentionZ -> Connect("TextChanged(char *)","EdbEDAMainTab", this,"SetExtentionZNumber()");
557 
558 
559  posy+=20;
560  eGSliderExtentionZ = new TGHSlider(fGroupFrame2,220,kSlider1 | kScaleBoth,-1,kHorizontalFrame);
561  eGSliderExtentionZ->SetRange(-80000,0);
562  eGSliderExtentionZ->SetPosition((int)gEDA->GetExtentionSet()->GetZ());
563  eGSliderExtentionZ->MoveResize(5,posy,225,15);
564  eGSliderExtentionZ->Connect("PositionChanged(int)","EdbEDAMainTab", this,"SetExtentionZSlider()");
565 
566  }
567  hf->AddFrame(fGroupFrame2, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
568  fGroupFrame2->MoveResize(0,200,240,105);
569 
570 
571  // Group3
572  TGGroupFrame *fGroupFrame3 = new TGGroupFrame(hf,"Analysis");
573  fGroupFrame3->SetLayoutBroken(kTRUE);
574  {
575  fb = new TGTextButton(fGroupFrame3,"Min distance");
576  fb->MoveResize(10,20,110,18);
577  fb->Connect("Clicked()","EdbEDAMainTab", this,"CalcMinimumDistance()");
578 
579  fb = new TGTextButton(fGroupFrame3,"Vertex");
580  fb->MoveResize(10,40,68,18);
581  fb->Connect("Clicked()","EdbEDAMainTab", this,"CalcVertex()");
582  fb->SetToolTipText("Calc vertex using only the selected segments.");
583 
584  fb = new TGTextButton(fGroupFrame3,"+");
585  fb->MoveResize(78,40,18,18);
586  fb->Connect("Clicked()","EdbEDAMainTab", this,"CalcVertexPlus()");
587  fb->SetToolTipText("Calc vertex without clearing existing vertices.");
588 
589  fb = new TGTextButton(fGroupFrame3,"clr");
590  fb->MoveResize(98,40,22,18);
591  fb->Connect("Clicked()","EdbEDAMainTab", this,"ClearVertices()");
592 
593  fb = new TGTextButton(fGroupFrame3,"Momentum");
594  fb->MoveResize(125,20,110,18);
595  fb->Connect("Clicked()","EdbEDAMainTab", this,"CalcPSelected()");
596 
597  fb = new TGTextButton(fGroupFrame3,"Calc IP");
598  fb->MoveResize(125,40,110,18);
599  fb->Connect("Clicked()","EdbEDAMainTab", this,"CalcIP()");
600  }
601  hf->AddFrame(fGroupFrame3, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
602  fGroupFrame3->MoveResize(0,210,240,72);
603 
604  // Group4
605  TGGroupFrame *fGroupFrame4 = new TGGroupFrame(hf,"Display");
606  fGroupFrame4->SetLayoutBroken(kTRUE);
607  {
608  int posy=20;
609 // TGLabel *fLabel = new TGLabel(fGroupFrame4,"Camera");
610 // fLabel->MoveResize(10,posy,50,20);
611  int posx = 10;
612  int dx = 20;
613  fb = new TGTextButton(fGroupFrame4,"X", EdbEDACamera::X);
614  fb->MoveResize(posx,posy,dx,18);
615  //fb->SetCommand("gEDA->SetCamera(kEDA_CAMERA_X)");
616  fb->Connect("Clicked()","EdbEDAMainTab", this,"SetProjection()");
617 
618  posx+=dx+5;
619  fb = new TGTextButton(fGroupFrame4,"Y", EdbEDACamera::Y);
620  fb->MoveResize(posx,posy,dx,18);
621 // fb->SetCommand("gEDA->SetCamera(kEDA_CAMERA_Y)");
622  fb->Connect("Clicked()","EdbEDAMainTab", this,"SetProjection()");
623 
624  posx+=dx+5;
625  fb = new TGTextButton(fGroupFrame4,"Z", EdbEDACamera::Z);
626  fb->MoveResize(posx,posy,dx,18);
627 // fb->SetCommand("gEDA->SetCamera(kEDA_CAMERA_Z)");
628  fb->Connect("Clicked()","EdbEDAMainTab", this,"SetProjection()");
629 
630  posx+=dx+5;
631  fb = new TGTextButton(fGroupFrame4,"Beam", EdbEDACamera::B);
632  fb->MoveResize(posx,posy,dx=50,18);
633 // fb->SetCommand("gEDA->SetCamera(kEDA_CAMERA_B)");
634  fb->Connect("Clicked()","EdbEDAMainTab", this,"SetProjection()");
635 
636  posx+=dx+5;
637  fb = new TGTextButton(fGroupFrame4,"Pick center");
638  fb->MoveResize(posx,posy,dx=80,18);
639  fb->Connect("Clicked()","EdbEDAMainTab", this,"PickCenter()");
640 
641  posy+=20;
642 
643  TGLabel *fLabel = new TGLabel(fGroupFrame4,"Track Color");
644  fLabel->MoveResize(10,posy,70,18);
645  //fb = new TGTextButton(fGroupFrame4,"Track Color");
646  //fb->SetCommand("gEDA->ShowColorTable()");
647  //fb->MoveResize(10,posy,70,18);
648 
649  eGRBColorPL = new TGRadioButton(fGroupFrame4,"Plate", kCOLOR_BY_PLATE);
650  eGRBColorPL->MoveResize(85,posy,50,18);
651 // eGRBColorPL->SetCommand("gEDA->SetColorMode(kCOLOR_BY_PLATE)");
652  eGRBColorPL->Connect("Clicked()","EdbEDAMainTab", this, "SetColorMode()");
653 
654  eGRBColorPH = new TGRadioButton(fGroupFrame4,"PH", kCOLOR_BY_PH);
655  eGRBColorPH->MoveResize(140,posy,40,18);
656  //eGRBColorPH->SetCommand("gEDA->SetColorMode(kCOLOR_BY_PH)");
657  eGRBColorPH->Connect("Clicked()","EdbEDAMainTab", this, "SetColorMode()");
658  eGRBColorPH->SetState((EButtonState)1);
659 
660  eGRBColorBK = new TGRadioButton(fGroupFrame4,"Black", kBLACKWHITE);
661  eGRBColorBK->MoveResize(185,posy,50,18);
662 // eGRBColorBK->SetCommand("gEDA->SetColorMode(kBLACKWHITE)");
663  eGRBColorBK->Connect("Clicked()","EdbEDAMainTab", this, "SetColorMode()");
664 
665  posy+=22;
666  dx=37;
667 
668  eDrawChecks = new TObjArray;
669  posx=10;
670  dx = 45;
671  for(int i=0;i<gEDA->NTrackSets();i++){
672 // posx+=dx+5;
673  if(i==5||i==10||i==15){
674  posx=10;
675  posy+=20;
676  }
678  TGCheckButton *cb = new TGCheckButton(fGroupFrame4,set->GetName(),i);
679  eDrawChecks->Add(cb);
680  cb->MoveResize(posx,posy,dx,20);
681  cb->SetState((EButtonState)1);
682  cb->Connect("Toggled(Bool_t)","EdbEDAMainTab", this, "SetDrawTrackSets(Bool_t)");
683  posx+=dx;
684  }
685 
686  posy+=22;
687  posx = 10;
688  eGCBDrawArea = new TGCheckButton(fGroupFrame4,"Scan area");
689  eGCBDrawArea->MoveResize(posx,posy,dx=85,20);
690  eGCBDrawArea->SetState((EButtonState)1);
691  eGCBDrawArea->Connect("Clicked()","EdbEDAMainTab", this,"SetDrawAreas()");
692 
693  posx+=dx+10;
694  eGCBTrackID = new TGCheckButton(fGroupFrame4,"track ID");
695  eGCBTrackID->MoveResize(posx,posy,dx=65,20);
696  eGCBTrackID->SetState((EButtonState)0);
697  eGCBTrackID->Connect("Clicked()","EdbEDAMainTab", this,"SetDrawText()");
698 
699  posx+=dx+5;
700  eGCBTrackAngle = new TGCheckButton(fGroupFrame4,"angle");
701  eGCBTrackAngle->MoveResize(posx,posy,dx=60,20);
702  eGCBTrackAngle->SetState((EButtonState)0);
703  eGCBTrackAngle->Connect("Clicked()","EdbEDAMainTab", this,"SetDrawText()");
704 
705 
706  posy+=22;
707  eGCBAnimation = new TGCheckButton(fGroupFrame4,"Animation");
708  eGCBAnimation->MoveResize(10,posy,80,20);
709  //fb->SetCommand("gEDA->SetCamera(EDA_CAMERA_B)");
710  eGCBAnimation->Connect("Clicked()","EdbEDAMainTab", this,"SetAnimation()");
711 
712  fb = new TGTextButton(fGroupFrame4,"op");
713  fb->MoveResize(90,posy,20,18);
714  fb->Connect("Clicked()", "EdbEDA", gEDA, "SetAnimationMode()");
715 
716  fb = new TGTextButton(fGroupFrame4,"Save animation");
717  fb->MoveResize(125,posy,100,18);
718  fb->Connect("Clicked()", "EdbEDA", gEDA, "SaveAnimation()");
719 
720  posy+=21;
721  fb = new TGTextButton(fGroupFrame4,"Snapshot");
722  fb->MoveResize(10,posy,100,18);
723  fb->Connect("Clicked()", "EdbEDA", gEDA, "Snapshot()");
724 
725  fb = new TGTextButton(fGroupFrame4,"Save projections");
726  fb->MoveResize(125,posy,100,18);
727  fb->Connect("Clicked()", "EdbEDA", gEDA, "SavePictures()");
728 
729  posy+=21;
730  fb = new TGTextButton(fGroupFrame4,"Write track list");
731  fb->MoveResize(10,posy,100,18);
732  fb->Connect("Clicked()","EdbEDAMainTab",this,"WriteListFile()");
733 
734  fb = new TGTextButton(fGroupFrame4,"Read track list");
735  fb->MoveResize(125,posy,100,18);
736  fb->Connect("Clicked()","EdbEDAMainTab",this,"ReadListFile()");
737 /*
738  posy+=21;
739  fb = new TGTextButton(fGroupFrame4,"Write filtered text");
740  fb->MoveResize(10,posy,100,18);
741  fb->Connect("Clicked()","EdbEDAMainTab", this, "WriteFilteredText()");
742 
743 
744  fb = new TGTextButton(fGroupFrame4,"Read filtered text");
745  fb->MoveResize(125,posy,100,18);
746  fb->Connect("Clicked()","EdbEDAMainTab", this, "ReadFilteredText()");
747 */
748  posy+=21;
749  fb = new TGTextButton(fGroupFrame4,"Write feedback");
750  fb->MoveResize(10,posy,90,18);
751  fb->Connect("Clicked()","EdbEDAMainTab", this, "WriteFeedback()");
752 
753  fb = new TGTextButton(fGroupFrame4,"op");
754  fb->MoveResize(102,posy,20,18);
755  fb->Connect("Clicked()", "EdbEDAMainTab", this, "SetOutputFileModeButton()");
756 
757  fb = new TGTextButton(fGroupFrame4,"Read feedback");
758  fb->MoveResize(125,posy,100,18);
759  fb->Connect("Clicked()","EdbEDAMainTab", this, "ReadFeedback()");
760 
761  if(gEDA->Japanese()){
762 
763  posy+=21;
764  fb = new TGTextButton(fGroupFrame4,"Write Mxx.all");
765  fb->MoveResize(10,posy,90,18);
766  fb->Connect("Clicked()","EdbEDAMainTab", this, "WriteMxxFile()");
767 
768  }
769 
770 
771 
772  }
773  hf->AddFrame(fGroupFrame4, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
774  fGroupFrame4->MoveResize(0,260,240,240);
775 
776  }
777 
778  frmMain->AddFrame(hf);
779 
780  frmMain->MapSubwindows();
781  frmMain->Resize();
782  frmMain->MapWindow();
783 
784  browser->StopEmbedding();
785  browser->SetTabTitle("Main", 0);
786 }
@ Z
Definition: EdbEDA.h:139
@ B
Definition: EdbEDA.h:139
@ Y
Definition: EdbEDA.h:139
@ X
Definition: EdbEDA.h:139
double GetZ()
Definition: EdbEDASets.h:246
TGRadioButton * eGRBColorPL
Definition: EdbEDAMainTab.h:57
TGNumberEntryField * eGNEExtentionZ
Definition: EdbEDAMainTab.h:54
void MakeGUICuts(TGGroupFrame *fGroupFrame1)
Definition: EdbEDAMainTab.C:318
TGHSlider * eGSliderExtentionZ
Definition: EdbEDAMainTab.h:52
TGCheckButton * eGCBTrackAngle
Definition: EdbEDAMainTab.h:12
TGCheckButton * eGCBExtention
Definition: EdbEDAMainTab.h:48
TGCheckButton * eGCBDrawArea
Definition: EdbEDAMainTab.h:62
TGRadioButton * eGRBColorPH
Definition: EdbEDAMainTab.h:56
TObjArray * eDrawChecks
Definition: EdbEDAMainTab.h:59
TGCheckButton * eGCBTrackID
Definition: EdbEDAMainTab.h:11
TGCheckButton * eGCBAnimation
Definition: EdbEDAMainTab.h:61
TGRadioButton * eGRBColorBK
Definition: EdbEDAMainTab.h:58
TGRadioButton * eGRBSelSeg
Definition: EdbEDAMainTab.h:13
TGRadioButton * eGRBSelTrack
Definition: EdbEDAMainTab.h:14
Definition: EdbEDATrackSet.h:178
int NTrackSets()
Definition: EdbEDA.h:616
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617
EdbScanSet * set
Definition: emtraceback.cpp:14
@ kBLACKWHITE
Definition: EdbEDAUtil.h:86
@ kCOLOR_BY_PH
Definition: EdbEDAUtil.h:82
@ kCOLOR_BY_PLATE
Definition: EdbEDAUtil.h:81

◆ MicroTrackSearch()

void EdbEDAMainTab::MicroTrackSearch ( )
203  {
204  // Micro-track search
205  // search +- 1 plate from end of track.
206  // fill holes by microtrack.
207 
208  if(gEDA->NSelectedTracks()==0){
209  ErrorMessage("Please select tracks\n");
210  return;
211  }
212 
213  for(int i=0;i<gEDA->NSelectedTracks();i++){
216  if(set!=gEDA->GetTrackSet("TS")){
217  ErrorMessage("Currently only MT search for TrackSet:TS is supported.");
218 
219  int move=AskYesNo("Do you want to move the selected track to TS?");
220  if(move==kFALSE) continue;
221  else {
222  gEDA->GetTrackSet("TS")->AddTrack(t);
223  set->RemoveTrack(t);
224  set->RemoveTrackBase(t);
225  printf("track %5d move from TrackSet %s to %s.\n", t->ID(), set->GetName(), "TS");
226  }
227  }
228  set->MicroTrackSearch(t);
229  }
230  gEDA->Redraw();
231 }
int NSelectedTracks()
Definition: EdbEDA.h:419
bool AskYesNo(const char *message)
Definition: EdbEDAUtil.C:484

◆ PickCenter()

void EdbEDAMainTab::PickCenter ( )
1146  {
1147  TGLViewer *v = gEDA->GetGLViewer();
1148  v->PickCameraCenter();
1149  gEve->SetStatusLine("Pick a segment as the rotation center");
1150  printf("Pick a segment as the rotation center.\n");
1151 }
TGLViewer * GetGLViewer()

◆ ReadFeedback()

void EdbEDAMainTab::ReadFeedback ( )
1322 {gEDA->ReadFeedbackFile();}
void ReadFeedbackFile(const char *filename=NULL)
Definition: EdbEDA.C:757

◆ ReadFilteredText()

void EdbEDAMainTab::ReadFilteredText ( )
1310  {
1312  gEDA->Redraw();
1313 }
EdbPVRec * ReadFilteredText(const char *filename=NULL)
Definition: EdbEDA.C:1108

◆ ReadListFile()

void EdbEDAMainTab::ReadListFile ( const char *  filename = NULL,
bool  clear_previous = kFALSE 
)
1177  {
1178  // Read list file.
1179  // search tracks with plateID and segmentID of BT.
1180  // if corresponding track is not found in TS, it search in BT (couples file).
1181  //
1182  // previously EdbEDATrackSet::ReadListFile is used.
1183  // however, in order to allow to read BT, this has changed.
1184  // and now this func play a real role.
1185 
1186  gEDA->StorePrevious();
1187 
1188  // previously EdbEDATrackSet::ReadListFile is used.
1189  // eTrackSet->ReadListFile(NULL);
1190 
1191  if(filename==NULL){
1192  TGFileInfo *fi = new TGFileInfo;
1193  fi->fIniDir = StrDup(".");
1194  const char *filetypes[] = { "List file", "*.lst", "All files","*",0,0};
1195  fi->fFileTypes = filetypes;
1196  new TGFileDialog(gClient->GetRoot(), gEve->GetMainWindow(), kFDOpen, fi);
1197  filename=fi->fFilename;
1198  }
1199 
1200  EdbEDATrackSet *setTS = gEDA->GetTrackSet("TS");
1201  EdbEDATrackSet *setBT = gEDA->GetTrackSet("BT");
1202  printf("Read List file : %s\n", filename);
1203 
1204  FILE *fp=NULL;
1205  if(filename!=NULL) fp = fopen(filename,"rt");
1206 
1207  if(fp==NULL){
1208  printf("List file is not available.\n");
1209  return;
1210  }
1211 
1212  if(clear_previous) {
1213  setTS->ClearTracks();
1214  setTS->ClearComments();
1215  setBT->ClearTracks();
1216  setBT->ClearComments();
1217  }
1218 
1219  char buf[256];
1220  int ipl, iseg;
1221  char comment[256];
1222  // read list, setting TObjArray *selected.
1223  for(int i=0;NULL!=fgets(buf,sizeof(buf),fp);i++){
1224  if(feof(fp)||ferror(fp)) break;
1225  sscanf(buf,"%d %d %s", &ipl, &iseg, comment);
1226 
1227  EdbTrackP *t=NULL;
1228  for(int j=0;j<setTS->NBase();j++){
1229  EdbTrackP *tt = setTS->GetTrackBase(j);
1230  if(NULL==tt) continue;
1231  for(int k=0;k<tt->N();k++){
1232  EdbSegP *s = tt->GetSegment(k);
1233  if(s->ID()==iseg){
1234  if(s->Plate()==ipl){
1235  setTS->SetTrack(tt); // add tt for drawing
1236  t=tt;
1237  break;
1238  }}
1239  }
1240  }
1241 
1242  EdbEDATrackSet *set = NULL; // set for comments
1243  if(t) set = setTS;
1244  else set = setBT;
1245 
1246  if(t==NULL) {
1247  // no track found in TS
1248  // search in BT
1249 
1250  EdbPattern *pat = gEDA->GetPatternIPL(ipl);
1251  for(int j=0; j<pat->N(); j++){
1252  EdbSegP *s = pat->GetSegment(j);
1253  if(s->ID()==iseg){
1254  t = new EdbTrackP(s);
1255  t->SetCounters();
1256  t->SetPlate(s->Plate());
1257  setBT->AddTrack(t);
1258  }
1259  }
1260 
1261  }
1262 
1263 
1264  if(t==NULL) continue;
1265 
1266  unsigned int l;
1267  for(l=0;l<strlen(buf);l++){
1268  if(buf[l]=='\"') break;
1269  }
1270  if(l<strlen(buf) ){
1271  strcpy(comment, buf+l+1);
1272  for(l=0;l<strlen(comment);l++){
1273  if(comment[l]=='\"') comment[l]='\0';
1274  }
1275  if(strlen(comment)!=0) {
1276  set->AddComment(t,comment);
1277  }
1278  }
1279 
1280  }
1281 
1282 
1283 
1284 
1285 
1286 
1287 
1288 
1289 
1290 
1291  gEDA->Redraw();
1292 }
EdbPattern * GetPatternIPL(int pid)
Definition: EdbEDA.C:262
int NBase()
Definition: EdbEDATrackSet.h:440
EdbTrackP * GetTrackBase(int i)
Definition: EdbEDATrackSet.h:442
void ClearComments()
Definition: EdbEDATrackSet.h:476
void SetTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:288
Definition: EdbPattern.h:280
Int_t N() const
Definition: EdbPattern.h:89
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
Int_t N() const
Definition: EdbPattern.h:182
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:200
string filename
Definition: emthickness.cpp:34
strcpy(cmd,"cp Shower.root Shower2.root")

◆ Redo()

void EdbEDAMainTab::Redo ( void  )
void RestorePrevious()
Definition: EdbEDA.h:694

◆ RemoveSelected()

void EdbEDAMainTab::RemoveSelected ( )
1019  {
1020  gEDA->StorePrevious();
1021  gEDA->RemoveSelected();
1022  gEDA->Redraw();
1023 }
void RemoveSelected()
Definition: EdbEDA.h:643

◆ SearchCouplesDmin() [1/2]

void EdbEDAMainTab::SearchCouplesDmin ( TObjArray *  segsarr,
int  ipl 
)
127  {
128 
129  EdbPattern *pat = gEDA->GetPatternIPL(ipl);
130  if(pat==NULL) {
131  //ErrorMessage(Form("Cannot read couples. pl=%d",ipl));
132  //printf("Cannot read couples. pl=%d. stop.\n",ipl);
133  return;
134  }
135  printf("Search BaseTrack in PL %d with dmin cut %.1lf micron wrt the selected tracks\n", ipl, eGNETolDX->GetNumber());
136 
138 
139  int k=0;
140  printf("%2s %7s %5s %2s %8s %8s %4s\n", "PL","ID","Dmin","PH","TX","TY","Chi2");
141  double phcut = GetPHCut();
142  for(int i=0;i<pat->N();i++){
143  EdbSegP *s = pat->GetSegment(i);
144  if(s->W()<phcut) continue;
145 
146  double dmin;
147  if(eTrackSet->Neighborhood(s,&dmin)){
148  // already found as tracks to be drawn?
149  int flag=0;
150  for(int j=0;j<eTrackSet->N();j++){
151  EdbTrackP *t = eTrackSet->GetTrack(j);
152  for(int k=0;k<t->N();k++){
153  EdbSegP *ss = t->GetSegment(k);
154  if(ss->PID()==s->PID()&&ss->ID()==s->ID()){
155  flag++;
156  }
157  }
158  }
159 
160  if(flag) {
161  printf("%2d %7d %5.1lf %2d %8.4f %8.4f %4.2f already selected as Track\n",
162  ipl, s->ID(), dmin, (int)s->W(), s->TX(), s->TY(), s->Chi2()); continue;
163  }
164 
165  if(NULL==segsarr->FindObject(s)) {
166  segsarr->Add(s);
167  k++;
168  printf("%2d %7d %5.1lf %2d %8.4f %8.4f %4.2f\n",
169  ipl, s->ID(), dmin, (int)s->W(), s->TX(), s->TY(), s->Chi2());
170  }
171  }
172  }
173  printf("%d basetracks are selected\n",k);
174  return;
175 }
double GetPHCut()
Definition: EdbEDAMainTab.h:109
void SetNeighborSearch(bool b=kTRUE, TObjArray *selected=NULL, double dzup=-1, double dzdown=-1)
Definition: EdbEDATrackSet.h:95
int Neighborhood(EdbSegP *s, double *dmin=NULL)
Definition: EdbEDATrackSet.C:20
int N()
Definition: EdbEDATrackSet.h:439
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDATrackSet.h:428
Float_t Chi2() const
Definition: EdbSegP.h:154
Float_t W() const
Definition: EdbSegP.h:148
Int_t PID() const
Definition: EdbSegP.h:145
ss
Definition: energy.C:62

◆ SearchCouplesDmin() [2/2]

void EdbEDAMainTab::SearchCouplesDmin ( TObjArray *  segsarr = NULL)
178  {
179  // this is called from MainTab.
180  gEDA->StorePrevious();
181  ApplyParams();
182  if(segsarr==NULL) segsarr = new TObjArray;
183  int ipl = eGNESearchBTIPL->GetIntNumber();
184 
185  if(ipl==-1) {
186  printf("Search BaseTrack in all plate with dmin cut %.1lf micron wrt the selected tracks\n", eGNETolDX->GetNumber());
187  for(int i=0;i<60;i++) {
188  SearchCouplesDmin(segsarr, i);
189  }
190  }
191  else{
192  SearchCouplesDmin(segsarr, ipl);
193  }
194 
195  EdbEDATrackSet *TrackSet = gEDA->GetTrackSet("BT");
196  if(eGClearPrevious->IsOn()) TrackSet->ClearTracks();
197 
198  TrackSet->AddSegments(segsarr);
199  gEDA->Redraw();
200 }
void SearchCouplesDmin(TObjArray *segsarr, int ipl)
Definition: EdbEDAMainTab.C:127
void AddSegments(TObjArray *segments)
Definition: EdbEDATrackSet.h:414

◆ SearchCouplesIP() [1/3]

void EdbEDAMainTab::SearchCouplesIP ( int  ipl,
double  x,
double  y,
double  z,
double  ipcut = 50,
TObjArray *  cps = NULL 
)
79  {
80  if(NULL==cps) return;
81  EdbPattern *pat = gEDA->GetPatternIPL(ipl);
82  if(pat==NULL) {
83  //ErrorMessage(Form("Cannot read couples. pl=%d",ipl));
84  //printf("Cannot read couples. pl=%d. stop.\n",ipl);
85  return;
86  }
87  printf("Search BaseTrack in PL %d with IP cut %.1lf micron wrt (%.1lf, %.1lf, %.1lf)\n",
88  ipl, ipcut, x, y, z);
89 
91  printf("%2s %6s %5s %2s %8s %8s\n", "pl","id","IP","ph","tx","ty");
92 
93  int k=0;
94  int phcut = (int) GetPHCut();
95  for(int i=0;i<pat->N();i++){
96  EdbSegP *s = pat->GetSegment(i);
97  if(s->W()<phcut) continue;
98  double ip = EdbEDAUtil::CalcIP(s, x, y, z);
99  if(ipcut < ip) continue;
100 
101  // already found as tracks to be drawn?
102  int flag=0;
103  for(int j=0;j<TS->N();j++){
104  EdbTrackP *t = TS->GetTrack(j);
105  for(int k=0;k<t->N();k++){
106  EdbSegP *ss = t->GetSegment(k);
107  if(ss->PID()==s->PID()&&ss->ID()==s->ID()){
108  flag++;
109  }
110  }
111  }
112  if(flag) {
113  printf("%2d %6d %5.1lf %2d %8.4f %8.4f already selected as Track\n",
114  ipl, s->ID(), ip, (int)s->W(), s->TX(), s->TY());
115  continue;
116  }
117  else printf("%2d %6d %5.1lf %2d %8.4f %8.4f\n", ipl, s->ID(), ip, (int)s->W(), s->TX(), s->TY());
118 
119  cps->Add(s);
120  k++;
121  }
122 
123  printf("%d basetracks are selected.\n",k);
124 }
AcqTrackScanner * TS
Definition: hwinit.C:4

◆ SearchCouplesIP() [2/3]

void EdbEDAMainTab::SearchCouplesIP ( int  ipl,
EdbVertex v,
double  ipcut = 50,
TObjArray *  cps = NULL 
)
50  {
51  if(NULL==v) return;
52  if(NULL==cps) return;
53  SearchCouplesIP (ipl, v->X(), v->Y(), v->Z(), ipcut, cps);
54 }
void SearchCouplesIP(int ipl, double x, double y, double z, double ipcut=50, TObjArray *cps=NULL)
Definition: EdbEDAMainTab.C:79

◆ SearchCouplesIP() [3/3]

void EdbEDAMainTab::SearchCouplesIP ( TObjArray *  segsarr = NULL)
57  {
58  // This will be called from Main tab.
60  if(NULL==segsarr) segsarr = new TObjArray;
61  EdbVertex *selected_vertex=gEDA->GetSelectedVertex();
62  if(NULL==selected_vertex) return;
63  int ipl = eGNESearchBTIPL->GetIntNumber();
64  double ipcut = eGNETolDX->GetIntNumber();
65  if(ipl==0) return;
66 
67  if(ipl==-1){
68  for(int i=1; i<60;i++) SearchCouplesIP ( i, selected_vertex, ipcut, segsarr);
69  }
70  else SearchCouplesIP (ipl, selected_vertex, ipcut, segsarr);
71 
72  EdbEDATrackSet *TrackSet = gEDA->GetTrackSet("BT");
73  if(eGClearPrevious->IsOn()) TrackSet->ClearTracks();
74 
75  TrackSet->AddSegments(segsarr);
76  gEDA->Redraw();
77 }

◆ SelectAll()

void EdbEDAMainTab::SelectAll ( )
1024  {
1025  gEDA->SelectAll();
1026  gEDA->Redraw();
1027 }
void SelectAll()
Definition: EdbEDA.C:1569

◆ SetAnimation()

void EdbEDAMainTab::SetAnimation ( )
1153  {
1154  if( eGCBAnimation->IsOn() ) gEDA->StartAnimation();
1155  else gEDA->StopAnimation();
1156 }
void StopAnimation()
Definition: EdbEDA.C:122
void StartAnimation()
Definition: EdbEDA.C:114

◆ SetColorMode()

void EdbEDAMainTab::SetColorMode ( )
1158  {
1159  TGButton *btn = (TGButton *) gTQSender;
1160  int mode = btn->WidgetId();
1161  if(mode== kCOLOR_BY_PH){
1162  eGRBColorPH->SetState(kButtonDown);
1163  eGRBColorPL->SetState(kButtonUp);
1164  eGRBColorBK->SetState(kButtonUp);
1165  }else if(mode== kCOLOR_BY_PLATE){
1166  eGRBColorPH->SetState(kButtonUp);
1167  eGRBColorPL->SetState(kButtonDown);
1168  eGRBColorBK->SetState(kButtonUp);
1169  }else if(mode==kBLACKWHITE) {
1170  eGRBColorPH->SetState(kButtonUp);
1171  eGRBColorPL->SetState(kButtonUp);
1172  eGRBColorBK->SetState(kButtonDown);
1173  }
1174  gEDA->SetColorMode(mode);
1175 }
void SetColorMode(int mode)
Definition: EdbEDA.h:701

◆ SetDrawAreas()

void EdbEDAMainTab::SetDrawAreas ( )
1126  {
1127  if(eGCBDrawArea->IsOn()) gEDA->SetDrawAreaSet(kTRUE);
1128  else gEDA->SetDrawAreaSet(kFALSE);
1129  //gEDA->Redraw();
1130  gEDA->Redraw();
1131 }
void SetDrawAreaSet(bool draw)
Definition: EdbEDA.h:676

◆ SetDrawCheckBox()

void EdbEDAMainTab::SetDrawCheckBox ( )
1084  {
1085  for(int i=0;i<gEDA->NTrackSets();i++){
1086  TGCheckButton *cb = (TGCheckButton *) eDrawChecks->At(i);
1088  if(cb==NULL) continue;
1089  //cb->SetState((EButtonState) set->GetDraw());
1090 
1091  cb->SetState(set->GetDraw()&&set->NBase()?kButtonDown:kButtonUp);
1092 
1093  //if(set->NBase()>0){
1094  // cb->SetEnabled(kTRUE);
1095  // cb->SetState(set->GetDraw()?kButtonDown:kButtonUp);
1096  //}
1097  //else cb->SetEnabled(kFALSE);
1098  }
1099 }

◆ SetDrawText()

void EdbEDAMainTab::SetDrawText ( )
1040  {
1041  if(eGCBTrackID->IsOn()) gEDA->SetDrawTrackID(kTRUE);
1042  else gEDA->SetDrawTrackID(kFALSE);
1043 
1044  if(eGCBTrackAngle->IsOn()) gEDA->SetDrawTrackAngle(kTRUE);
1045  else gEDA->SetDrawTrackAngle(kFALSE);
1046 
1047  gEDA->Redraw();
1048 }
void SetDrawTrackID(bool draw)
Definition: EdbEDA.h:674
void SetDrawTrackAngle(bool draw)
Definition: EdbEDA.h:675

◆ SetDrawTrackSets()

void EdbEDAMainTab::SetDrawTrackSets ( Bool_t  on)
1050  {
1051  // Control Draw option for each Track sets.
1052 
1053  TGButton *btn = (TGButton *) gTQSender;
1054  int id = btn->WidgetId(); // id is ordinal of TrackSets. TS=0, SB=1,,,,
1055 
1056  TGCheckButton *cb = (TGCheckButton *) eDrawChecks->At(id);
1058  if(cb==NULL||set==NULL) return;
1059 
1060  if(set->NBase()) set->SetDraw(cb->GetState()?kTRUE:kFALSE);
1061 
1062  if(set->NBase()==0) {
1063  gEve->GetBrowser()->GetTabBottom()->SetTab(0); // set TrackSetTab in front.
1064  }
1065 
1066  gEDA->GetTrackSetTab()->Select(id);
1067  gEDA->GetTrackSetTab()->Selected(set->GetName());
1068 
1069 /*
1070  for(int i=0;i<gEDA->NTrackSets();i++){
1071  TGCheckButton *cb = (TGCheckButton *) eDrawChecks->At(i);
1072  EdbEDATrackSet *set = gEDA->GetTrackSet(i);
1073  if(cb==NULL) continue;
1074  set->SetDraw(cb->GetState()?kTRUE:kFALSE);
1075  }
1076 */
1077  gEDA->Redraw();
1078 }
void Selected(const char *txt)
Definition: EdbEDATrackSet.C:1822
void Select(int id)
Definition: EdbEDATrackSet.h:640
EdbEDATrackSetTab * GetTrackSetTab()
Definition: EdbEDA.h:725

◆ SetExtention()

void EdbEDAMainTab::SetExtention ( )
1029  {
1030  int extention=(int) eGCBExtention->IsOn();
1031  if(extention){
1032  gEDA->GetExtentionSet()->Enable();
1033  gEDA->GetExtentionSet()->Draw(kTRUE);
1034  } else {
1036  gEDA->GetExtentionSet()->UnDraw(kTRUE);
1037  }
1038  printf("extention %s\n", eGCBExtention->IsOn()? "On": "Off");
1039 }
void Enable()
Definition: EdbEDASets.h:243
void Draw(int redraw=0, int fix=0)
Definition: EdbEDASets.C:225
void UnDraw(int redraw=0)
Definition: EdbEDASets.C:255
void Disable()
Definition: EdbEDASets.h:244

◆ SetExtentionZNumber()

void EdbEDAMainTab::SetExtentionZNumber ( )
1104  {
1105  double z = eGNEExtentionZ ->GetNumber();
1106  eGSliderExtentionZ->SetPosition((int) z);
1107  gEDA->GetExtentionSet()->SetZ(z);
1108  gEDA->GetExtentionSet()->Draw(kTRUE);
1109  }
void SetZ(double z)
Definition: EdbEDASets.h:245

◆ SetExtentionZSlider()

void EdbEDAMainTab::SetExtentionZSlider ( )
1101  {
1102  eGNEExtentionZ->SetNumber(eGSliderExtentionZ->GetPosition());
1103 }

◆ SetOutputFileModeButton()

void EdbEDAMainTab::SetOutputFileModeButton ( )
1315  {
1316  gEDA->eOutputFileMode =
1318  "Feeback output mode : 0 = with comment and true-track-id. 1: without.",
1320 }
int eOutputFileMode
Definition: EdbEDA.h:164
int InputNumberInteger(const char *message, int idefault=0)
Definition: EdbEDAUtil.C:846

◆ SetPickSegment()

void EdbEDAMainTab::SetPickSegment ( )
1134  {
1135  printf("selection mode : Segment\n");
1136  gEve->GetSelection()->SetPickToSelect(TEveSelection::kPS_Element);
1137  eGRBSelSeg->SetState((EButtonState)1);
1138  eGRBSelTrack->SetState((EButtonState)0);
1139 }

◆ SetPickTrack()

void EdbEDAMainTab::SetPickTrack ( )
1140  {
1141  gEve->GetSelection()->SetPickToSelect(TEveSelection::kPS_Compound);
1142  eGRBSelSeg->SetState((EButtonState)0);
1143  eGRBSelTrack->SetState((EButtonState)1);
1144 }

◆ SetProjection()

void EdbEDAMainTab::SetProjection ( )
1116  {
1117  // Set Camera Projection
1118  TGButton *btn = (TGButton *) gTQSender;
1119  int id = btn->WidgetId();
1120 
1121  gEDA->SetCamera(id);
1122 }
void SetCamera(int projection=Y)
Definition: EdbEDA.C:50

◆ WriteFeedback()

void EdbEDAMainTab::WriteFeedback ( )
1321 {gEDA->WriteFeedbackFile();}
void WriteFeedbackFile(const char *filename=NULL)
Definition: EdbEDA.C:308

◆ WriteFilteredText()

void EdbEDAMainTab::WriteFilteredText ( )
1307  {
1309 }
void WriteFilteredText(const char *filename=NULL)
Definition: EdbEDA.C:1374

◆ WriteListFile()

const char * EdbEDAMainTab::WriteListFile ( const char *  filename = NULL)
1294  {
1296 
1297  EdbEDATrackSet *setBT = gEDA->GetTrackSet("BT");
1298 
1299  if (setBT->N()){
1300  gEDA->GetTrackSet("BT")->WriteListFile(filename, kTRUE);
1301  }
1302 
1303  return filename;
1304 
1305 }
const char * WriteListFile(const char *filename=NULL, bool append=kFALSE, bool open_editor=kFALSE)
Definition: EdbEDATrackSet.C:1138

◆ WriteMxxFile()

void EdbEDAMainTab::WriteMxxFile ( )
1324  {
1325  TObjArray *tracks = gEDA->GetCurrentTracks();
1327 }
TObjArray * GetCurrentTracks(void)
Definition: EdbEDA.h:588
TTree * tracks
Definition: check_tr.C:19
void WriteTracksMxx(TObjArray *pvr, const char *filename=NULL)
Definition: EdbEDAUtil.C:1231

Member Data Documentation

◆ eDrawChecks

TObjArray* EdbEDAMainTab::eDrawChecks

◆ eGCBAngleCut

TGCheckButton* EdbEDAMainTab::eGCBAngleCut

◆ eGCBAnimation

TGCheckButton* EdbEDAMainTab::eGCBAnimation

◆ eGCBDrawArea

TGCheckButton* EdbEDAMainTab::eGCBDrawArea

◆ eGCBExtention

TGCheckButton* EdbEDAMainTab::eGCBExtention

◆ eGCBExtention_res

TGCheckButton* EdbEDAMainTab::eGCBExtention_res

◆ eGCBIpCut

TGCheckButton* EdbEDAMainTab::eGCBIpCut

◆ eGCBNeighbor

TGCheckButton* EdbEDAMainTab::eGCBNeighbor

◆ eGCBTrackAngle

TGCheckButton* EdbEDAMainTab::eGCBTrackAngle
private

◆ eGCBTrackID

TGCheckButton* EdbEDAMainTab::eGCBTrackID
private

◆ eGClearPrevious

TGCheckButton* EdbEDAMainTab::eGClearPrevious

◆ eGNEAX

TGNumberEntryField* EdbEDAMainTab::eGNEAX

◆ eGNEAY

TGNumberEntryField* EdbEDAMainTab::eGNEAY

◆ eGNEExtentionZ

TGNumberEntryField* EdbEDAMainTab::eGNEExtentionZ

◆ eGNEMaxPlate

TGNumberEntry* EdbEDAMainTab::eGNEMaxPlate

◆ eGNENeighborDzDown

TGNumberEntryField* EdbEDAMainTab::eGNENeighborDzDown

◆ eGNENeighborDzUp

TGNumberEntryField* EdbEDAMainTab::eGNENeighborDzUp

◆ eGNENseg

TGNumberEntry* EdbEDAMainTab::eGNENseg

◆ eGNEPHDTRMS

TGNumberEntryField* EdbEDAMainTab::eGNEPHDTRMS

◆ eGNESearchBTIPL

TGNumberEntry* EdbEDAMainTab::eGNESearchBTIPL

◆ eGNESearchSegmentIPL

TGNumberEntryField* EdbEDAMainTab::eGNESearchSegmentIPL

◆ eGNESearchSegmentISeg

TGNumberEntryField* EdbEDAMainTab::eGNESearchSegmentISeg

◆ eGNESearchTrack

TGNumberEntryField* EdbEDAMainTab::eGNESearchTrack

◆ eGNETolDT

TGNumberEntry* EdbEDAMainTab::eGNETolDT

◆ eGNETolDX

TGNumberEntry* EdbEDAMainTab::eGNETolDX

◆ eGNEWCut

TGNumberEntryField* EdbEDAMainTab::eGNEWCut

◆ eGRBColorBK

TGRadioButton* EdbEDAMainTab::eGRBColorBK

◆ eGRBColorPH

TGRadioButton* EdbEDAMainTab::eGRBColorPH

◆ eGRBColorPL

TGRadioButton* EdbEDAMainTab::eGRBColorPL

◆ eGRBSelSeg

TGRadioButton* EdbEDAMainTab::eGRBSelSeg
private

◆ eGRBSelTrack

TGRadioButton* EdbEDAMainTab::eGRBSelTrack
private

◆ eGSideOut

TGCheckButton* EdbEDAMainTab::eGSideOut

◆ eGSideOutPlate

TGNumberEntry* EdbEDAMainTab::eGSideOutPlate

◆ eGSliderExtentionZ

TGHSlider* EdbEDAMainTab::eGSliderExtentionZ

◆ eIDWindow

TGMainFrame* EdbEDAMainTab::eIDWindow

◆ eTrackSet

EdbEDATrackSet* EdbEDAMainTab::eTrackSet

◆ fTextButton_scanback

TGCheckButton* EdbEDAMainTab::fTextButton_scanback

The documentation for this class was generated from the following files: