FEDRA emulsion software from the OPERA Collaboration
EdbEDADecaySearchTab Class Reference

#include <EdbEDADecaySearch.h>

Inheritance diagram for EdbEDADecaySearchTab:
Collaboration diagram for EdbEDADecaySearchTab:

Public Member Functions

void ApplyParams ()
 
void Button3 ()
 
void CloseParamWindow ()
 
void DoMicroTrackSearchButton ()
 
void DoSearchButton ()
 
 EdbEDADecaySearchTab (int DSversion=2)
 
void FindUpstreamVertex ()
 
void MakeFakeVertexButton ()
 
void MakeGUI ()
 
void MakeParamWindow ()
 
 ~EdbEDADecaySearchTab ()
 
- Public Member Functions inherited from EdbEDADecaySearch
TObjArray * CheckInTrackKink (EdbTrackP *trk)
 
TObjArray * CheckInTrackKinks (TObjArray *tracks=NULL)
 
TObjArray * DoSearch ()
 
 EdbEDADecaySearch (int DSversion=2)
 
EdbVertexFindPrimaryVertex ()
 
EdbEDATrackPFindTrack (EdbTrackP *t)
 
TObjArray * FindUpstreamVertices ()
 
EdbEDADecayVertexGetDecayVertex (int i)
 
float GetIPCut (EdbVertex *v, EdbSegP *s)
 
TObjArray * GetKinks (void)
 
EdbVertexGetPrimaryVertex ()
 
EdbPVRecGetPVR ()
 
EdbEDATrackPGetTrack (int i)
 
EdbEDATrackSetGetTrackSet ()
 
double GetTSDauIP1 (double dz)
 
double GetTSDauIP2 (double dz)
 
void KinkSearch ()
 
EdbVertexMakeFakeVertex (EdbTrackP *t, double dz=1150)
 
void MTSearch2seg (TObjArray *tracks)
 
void MTSearchAll (TObjArray *tracks)
 
int NDecayVertices ()
 
int Ntracks ()
 
void PrintRunTracking ()
 
void PrintTracks ()
 
void SetBTSearch (int do_search=1, int npl_up=0, int npl_down=2, float ipcut=20, float phcut=17)
 
void SetIPHist1 (TH1F *h)
 
void SetIPHist2 (TH1F *h)
 
void SetParentSearch (int do_search=1, int npl=2, float ipcut=20, float phcut=17)
 
void SetPVR (EdbPVRec *pvr)
 
void SetSmallKinkSearch (int do_search=1, int npl_down=5, float Rmin=5.)
 
void SetTracks (TObjArray *array)
 
void SetTrackSet (EdbEDATrackSet *set)
 
void SetVertex (EdbVertex *v)
 
void ShortDecaySearch ()
 
void SmallKinkSearch ()
 
TObjArray * TSBaseTracks (int ipl)
 
TObjArray * TSDaughterTracks (TObjArray *base)
 
void TSDaughterTracks2 ()
 
TObjArray * TSParentTracks (TObjArray *base)
 
virtual ~EdbEDADecaySearch ()
 

Private Attributes

TGMainFrame * eParamWindow
 
TGMainFrame * eTab
 
TGCheckButton * fBT
 
TGNumberEntry * fBTIP
 
TGNumberEntry * fBTPH
 
TGNumberEntry * fBTPlateDown
 
TGNumberEntry * fBTPlateUp
 
TGCheckButton * fMT2seg
 
TGCheckButton * fMTAll
 
TGNumberEntry * fMTIpl
 
TGCheckButton * fSmallKink
 
TGNumberEntry * fSmallKinkNpl
 
TGNumberEntry * fSmallKinkRmin
 
TGCheckButton * fTSDau
 
TGCheckButton * fTSDau2
 
TGNumberEntry * fTSDauNseg
 
TGNumberEntry * fTSDauNseg2
 
TGNumberEntry * fTSDauPH
 
TGCheckButton * fTSPar
 
TGNumberEntry * fTSParIP
 
TGNumberEntry * fTSParNseg
 
TGNumberEntry * fTSParPH
 
TGNumberEntry * fTSParPlate
 

Additional Inherited Members

- Public Types inherited from EdbEDADecaySearch
enum  { kParentSearch =0x01 , kBaseTrackSearch =0x02 , kDaughterSearch =0x04 }
 
- Public Attributes inherited from EdbEDADecaySearch
int eBT
 
double eBTIP
 
double eBTPH
 
int eBTPlateDown
 
int eBTPlateUp
 
TObjArray * eDecayVertices
 
int eDSVer
 
TObjArray * eKinks
 
double eKinkSigma
 
int eMT2seg
 
int eMTAll
 
EdbPVRecePVR
 
TObjArray * eSegments
 
EdbEDATrackSeteSet
 
int eSmallKink
 
int eSmallKinkNpl
 
float eSmallKinkRmin
 
TObjArray * eTracks
 
int eTSDau
 
int eTSDau2
 
TH1F * eTSDauIPHist1
 
TH1F * eTSDauIPHist2
 
int eTSDauNseg
 
int eTSDauNseg2
 
double eTSDauPH
 
int eTSPar
 
double eTSParIP
 
int eTSParNseg
 
double eTSParPH
 
int eTSParPlate
 
EdbVertexeVertex
 
int eVertexPlatePID
 
TObjArray * eVertices
 
int eVtxUp
 
int eVtxUpDZ
 
int eVtxUpIP
 

Constructor & Destructor Documentation

◆ EdbEDADecaySearchTab()

EdbEDADecaySearchTab::EdbEDADecaySearchTab ( int  DSversion = 2)
inline
463  : EdbEDADecaySearch(DSversion), eParamWindow(NULL){
464  MakeGUI();
465  }
TGMainFrame * eParamWindow
Definition: EdbEDADecaySearch.h:459
void MakeGUI()
Definition: EdbEDADecaySearch.C:1110
EdbEDADecaySearch(int DSversion=2)
Definition: EdbEDADecaySearch.h:273
#define NULL
Definition: nidaqmx.h:84

◆ ~EdbEDADecaySearchTab()

EdbEDADecaySearchTab::~EdbEDADecaySearchTab ( )
inline
466  {
467  if(eParamWindow) eParamWindow->CloseWindow();
468  }

Member Function Documentation

◆ ApplyParams()

void EdbEDADecaySearchTab::ApplyParams ( )
1036  {
1037 
1038  eTSDau = fTSDau->GetState();
1039  eTSDauPH = fTSDauPH->GetNumber();
1040  eTSDauNseg = fTSDauNseg->GetIntNumber();
1041 
1042 // eMT2seg = fMT2seg->GetState();
1043  eMTAll = fMTAll->GetState();
1044 
1045  eTSDau2 = fTSDau2->GetState();
1046  eTSDauNseg2 = fTSDauNseg2->GetIntNumber();
1047 
1048  eSmallKink = fSmallKink->GetState();
1049 
1050 /* eTSPar = fTSPar->GetState();
1051  eTSParIP = fTSParIP->GetNumber();
1052  eTSParPH = fTSParPH->GetNumber();
1053  eTSParNseg = fTSParNseg->GetIntNumber();
1054  eTSParPlate = fTSParPlate->GetIntNumber();
1055 */
1056  eBT = fBT->GetState();
1057  eBTIP = fBTIP->GetNumber();
1058  eBTPH = fBTPH->GetNumber();
1059  eBTPlateUp = fBTPlateUp->GetIntNumber();
1060  eBTPlateDown= fBTPlateDown->GetIntNumber();
1061 
1062  CloseParamWindow();
1063  DoSearchButton();
1064 }
TGCheckButton * fBT
Definition: EdbEDADecaySearch.h:450
TGNumberEntry * fBTPH
Definition: EdbEDADecaySearch.h:454
TGCheckButton * fTSDau
Definition: EdbEDADecaySearch.h:428
TGNumberEntry * fTSDauNseg
Definition: EdbEDADecaySearch.h:430
TGNumberEntry * fBTIP
Definition: EdbEDADecaySearch.h:453
TGCheckButton * fSmallKink
Definition: EdbEDADecaySearch.h:438
TGNumberEntry * fTSDauPH
Definition: EdbEDADecaySearch.h:429
TGNumberEntry * fTSDauNseg2
Definition: EdbEDADecaySearch.h:436
void CloseParamWindow()
Definition: EdbEDADecaySearch.C:1066
TGNumberEntry * fBTPlateUp
Definition: EdbEDADecaySearch.h:451
void DoSearchButton()
Definition: EdbEDADecaySearch.C:998
TGNumberEntry * fBTPlateDown
Definition: EdbEDADecaySearch.h:452
TGCheckButton * fTSDau2
Definition: EdbEDADecaySearch.h:435
TGCheckButton * fMTAll
Definition: EdbEDADecaySearch.h:433
double eBTIP
Definition: EdbEDADecaySearch.h:260
int eTSDau
Definition: EdbEDADecaySearch.h:233
int eTSDauNseg2
Definition: EdbEDADecaySearch.h:242
int eBT
Definition: EdbEDADecaySearch.h:257
double eTSDauPH
Definition: EdbEDADecaySearch.h:235
int eBTPlateUp
Definition: EdbEDADecaySearch.h:258
int eMTAll
Definition: EdbEDADecaySearch.h:239
int eBTPlateDown
Definition: EdbEDADecaySearch.h:259
int eSmallKink
Definition: EdbEDADecaySearch.h:245
int eTSDau2
Definition: EdbEDADecaySearch.h:241
double eBTPH
Definition: EdbEDADecaySearch.h:261
int eTSDauNseg
Definition: EdbEDADecaySearch.h:234

◆ Button3()

void EdbEDADecaySearchTab::Button3 ( )
inline
474 { printf("Button3\n");}

◆ CloseParamWindow()

void EdbEDADecaySearchTab::CloseParamWindow ( )
1066  {
1067  if(eParamWindow) eParamWindow->DeleteWindow();
1068  eParamWindow = NULL;
1069 }

◆ DoMicroTrackSearchButton()

void EdbEDADecaySearchTab::DoMicroTrackSearchButton ( )
975  {
976 
977  EdbSegP *app = gEDA->GetSelected(0);
978  if(app==NULL){
979  ErrorMessage("Select at least 1 segment");
980  return;
981  }
982  int ipl = fMTIpl->GetIntNumber();
983 
984  // A target track.
985  EdbTrackP *t = gEDA->GetTrack(app);
987 
988  if(set!=gEDA->GetTrackSet("TS")){
989  ErrorMessage("Currently Microtrack search is only for TrackSet = TS. stop.");
990  return;
991  }
992  set->MicroTrackSearch(t, app, ipl);
993 
994  gEDA->Redraw();
995 }
EdbEDA * gEDA
Definition: EdbEDA.C:3
TTree * t
Definition: check_shower.C:4
TGNumberEntry * fMTIpl
Definition: EdbEDADecaySearch.h:457
TObjArray * GetSelected(void)
Definition: EdbEDA.h:405
Definition: EdbEDATrackSet.h:178
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDA.h:598
void Redraw()
Definition: EdbEDA.h:680
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617
Definition: EdbSegP.h:18
Definition: EdbPattern.h:118
EdbScanSet * set
Definition: emtraceback.cpp:14
void ErrorMessage(const char *title, const char *message)
Definition: EdbEDAUtil.C:479

◆ DoSearchButton()

void EdbEDADecaySearchTab::DoSearchButton ( )
998  {
999 
1000  if(gEDA->GetSelectedVertex()==NULL) {
1001  ErrorMessage("No vertex selected!!");
1002  return;
1003  }
1004 
1005 // EdbPVRec *pvr = gEDA->GetTrackSet("TS")->GetPVRec();
1006 // SetPVR(pvr);
1007 
1008 
1010 
1011  // to be sure that the couples are loaded.
1012  // if the couples are not loaded yet, load via gEDA->GetPatternPID();
1013 
1014  if(eBT){
1015  for(int dPlate=-eBTPlateUp+1; dPlate<=eBTPlateDown; dPlate++){
1016  int pid = eVertexPlatePID + dPlate -1;
1017  if(pid<0||ePVR->Npatterns()-1<pid) continue;
1019  }
1020  }
1021 
1022  gEDA->StorePrevious();
1023  DoSearch();
1024 
1027  gEDA->GetTrackSet("TS")->ClearTracks();
1028 
1029  for(int i=0;i<Ntracks();i++) gEDA->GetTrackSet("TS")->SetTrack(GetTrack(i)->GetOriginal());
1030  gEDA->GetTrackSet("BT")->Clear();
1032 
1033  gEDA->Redraw();
1034 }
int GetIPL(int PID)
Definition: EdbEDA.h:252
EdbVertex * eVertex
Definition: EdbEDADecaySearch.h:223
TObjArray * eSegments
Definition: EdbEDADecaySearch.h:228
EdbEDATrackP * GetTrack(int i)
Definition: EdbEDADecaySearch.h:379
void SetVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.C:408
int eVertexPlatePID
Definition: EdbEDADecaySearch.h:224
int Ntracks()
Definition: EdbEDADecaySearch.h:378
TObjArray * DoSearch()
Definition: EdbEDADecaySearch.C:306
EdbPattern * GetPatternIPL(int pid)
Definition: EdbEDA.C:262
EdbVertex * GetSelectedVertex(void)
Definition: EdbEDA.h:439
EdbTrackP * GetOriginal()
Definition: EdbEDADecaySearch.h:113
void ClearTracks(void)
Definition: EdbEDATrackSet.h:327
void AddSegments(TObjArray *segments)
Definition: EdbEDATrackSet.h:414
void SetTrack(EdbTrackP *t)
Definition: EdbEDATrackSet.h:288
void Clear()
Definition: EdbEDATrackSet.h:336
void ClearVertices()
Definition: EdbEDASets.h:213
void SetVertex(EdbVertex *v)
Definition: EdbEDASets.h:191
void StorePrevious()
Definition: EdbEDA.h:689
EdbEDAVertexSet * GetVertexSet()
Definition: EdbEDA.h:660
int pid[1000]
Definition: m2track.cpp:13

◆ FindUpstreamVertex()

void EdbEDADecaySearchTab::FindUpstreamVertex ( )
1072  {
1073  printf("///// Find Upstream Vertices /////\n");
1074 
1075  if(gEDA->GetSelectedVertex()==NULL) {
1076  ErrorMessage("No vertex selected!!");
1077  return;
1078  }
1080 
1081  ePVR = gEDA->GetTrackSet("TS")->GetPVRec();
1082  if(ePVR->Nvtx()==0) {
1083  EdbEDAVertexTab *vtxtab = gEDA->GetVertexTab();
1084  TObjArray tracks(*(gEDA->GetTrackSet("TS")->GetTracks()));
1085  vtxtab->DoVertexing();
1086  gEDA->GetTrackSet("TS")->ClearTracks();
1087  gEDA->GetTrackSet("TS")->SetTracks(&tracks);
1088  }
1089  TObjArray *vertices = FindUpstreamVertices();
1090  gEDA->GetVertexSet()->AddVertices(vertices);
1091  gEDA->GetTrackSet("TS")->SetTracksVertices(vertices,kFALSE);
1092  gEDA->Redraw();
1093 }
TObjArray * FindUpstreamVertices()
Definition: EdbEDADecaySearch.C:426
EdbPVRec * ePVR
Definition: EdbEDADecaySearch.h:230
EdbPVRec * GetPVRec()
Definition: EdbEDATrackSet.h:320
void SetTracks(TObjArray *tracks)
Definition: EdbEDATrackSet.h:303
void SetTracksVertices(TObjArray *vertices, bool clear_previous=kTRUE)
Definition: EdbEDATrackSet.h:515
TObjArray * GetTracks()
Definition: EdbEDATrackSet.h:310
void AddVertices(TObjArray *vertices)
Definition: EdbEDASets.h:189
Definition: EdbEDATabs.h:32
void DoVertexing(EdbEDATrackSet *set=NULL)
Definition: EdbEDATabs.C:162
EdbEDAVertexTab * GetVertexTab()
Definition: EdbEDA.h:727
Int_t Nvtx() const
Definition: EdbPVRec.h:255
TTree * tracks
Definition: check_tr.C:19

◆ MakeFakeVertexButton()

void EdbEDADecaySearchTab::MakeFakeVertexButton ( )
1094  {
1095 
1096  if(gEDA->NSelectedTracks()==0) {
1097  ErrorMessage("Select a track.");
1098  return;
1099  }
1100  for(int i=0;i<gEDA->NSelectedTracks();i++){
1102  double dz = -1150;
1103  dz=InputNumberReal("Input dz from first segment. -1150=top surf of lead, -650=middle of lead.", dz);
1104  EdbVertex *v = MakeFakeVertex(t,dz);
1105  gEDA->GetVertexSet()->AddVertex(v);
1106  }
1107  gEDA->Redraw();
1108 }
brick dz
Definition: RecDispMC.C:107
EdbVertex * MakeFakeVertex(EdbTrackP *t, double dz=1150)
Definition: EdbEDADecaySearch.C:648
EdbTrackP * GetSelectedTrack(int i=-1)
Definition: EdbEDA.h:421
int NSelectedTracks()
Definition: EdbEDA.h:419
void AddVertex(EdbVertex *v)
Definition: EdbEDASets.h:183
Definition: EdbVertex.h:68
double InputNumberReal(const char *message, double default_num=0.0, TGNumberFormat::EStyle es=TGNumberFormat::kNESReal)
Definition: EdbEDAUtil.C:858

◆ MakeGUI()

void EdbEDADecaySearchTab::MakeGUI ( )
1110  {
1111  SetTrackSet(gEDA->GetTrackSet("TS"));
1112 
1113  TEveBrowser* browser = gEve->GetBrowser();
1114  browser->StartEmbedding(TRootBrowser::kBottom);
1115 
1116  TGMainFrame* frame = new TGMainFrame(gClient->GetRoot());
1117  frame->SetWindowName("XX GUI");
1118  frame->SetCleanup(kDeepCleanup);
1119  frame->SetLayoutBroken(kTRUE);
1120 
1121  eTab = frame;
1122 
1123  int posx = 10;
1124  int posy = 10;
1125  int dx=0;
1126 
1127  TGTextButton *fb = new TGTextButton(frame,"Do Track Search");
1128  frame->AddFrame(fb);
1129  fb->MoveResize(posx,posy,dx=110,18);
1130  fb->Connect("Clicked()","EdbEDADecaySearchTab", this,"DoSearchButton()");
1131  fb->SetToolTipText("Do track search");
1132 
1133  posx+=dx+10;
1134 
1135  TGTextButton *eButton2 = new TGTextButton(frame,"Params");
1136  frame->AddFrame(eButton2);
1137  eButton2->MoveResize(posx,posy,dx=80,20);
1138  eButton2->Connect("Clicked()","EdbEDADecaySearchTab", this,"MakeParamWindow()");
1139  fb->SetToolTipText("Open param window for track search.");
1140 
1141 /*
1142  posx+=dx+30;
1143  TGLabel *fLabel = new TGLabel(frame, "pl");
1144  frame->AddFrame(fLabel);
1145  fLabel->MoveResize(posx,posy,dx=15,18);
1146  posx += dx;
1147 
1148  fMTIpl = new TGNumberEntry(frame, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5);
1149  frame->AddFrame(fMTIpl, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1150  fMTIpl->MoveResize(posx,posy,dx=35,20);
1151 
1152  posx+=dx+10;
1153 
1154  fb = new TGTextButton(frame,"MT search");
1155  frame->AddFrame(fb);
1156  fb->MoveResize(posx,posy,dx=80,20);
1157  fb->Connect("Clicked()","EdbEDADecaySearchTab", this,"DoMicroTrackSearchButton()");
1158 
1159 */
1160  posx+=dx+30;
1161 
1162  fb = new TGTextButton(frame,"FakeVertex");
1163  frame->AddFrame(fb);
1164  fb->MoveResize(posx,posy,dx=80,20);
1165  fb->Connect("Clicked()","EdbEDADecaySearchTab", this,"MakeFakeVertexButton()");
1166  fb->SetToolTipText("Make a fake vertex for isolated tracks.");
1167 
1168  posx+=dx+30;
1169  fb = new TGTextButton(frame,"Upstream Vertex");
1170  frame->AddFrame(fb);
1171  fb->MoveResize(posx,posy,dx=100,20);
1172  fb->Connect("Clicked()","EdbEDADecaySearchTab", this,"FindUpstreamVertex()");
1173 
1174 
1175  frame->MapSubwindows();
1176  frame->Resize();
1177  frame->MapWindow();
1178 
1179  browser->StopEmbedding();
1180  browser->SetTabTitle("DecaySearch", 2);
1181 }
TGMainFrame * eTab
Definition: EdbEDADecaySearch.h:460
void SetTrackSet(EdbEDATrackSet *set)
Definition: EdbEDADecaySearch.h:386

◆ MakeParamWindow()

void EdbEDADecaySearchTab::MakeParamWindow ( )
1183  {
1184 
1185 
1186  // main frame
1187  TGMainFrame *fMainFrame = new TGMainFrame(gClient->GetRoot(),10,300,kMainFrame | kVerticalFrame);
1188  fMainFrame->SetLayoutBroken(kTRUE);
1189 
1190  eParamWindow = fMainFrame;
1191 
1192  TGLabel *fLabel;
1193 
1194  int posy=10;
1195  int posx=10;
1196  int dx;
1197 
1198  fLabel = new TGLabel(fMainFrame,"Track Search parameters ");
1199  fMainFrame->AddFrame(fLabel);
1200  fLabel->MoveResize(posx,posy,dx=200,20);
1201  posx+=dx+10;
1202 
1203 
1205  posy+=20;
1206  posx=5;
1207 
1208 /*
1209  fTSPar = new TGCheckButton(fMainFrame,"Parent Track :");
1210  fTSPar->MoveResize(posx,posy,dx=110,18);
1211  fTSPar->SetState((EButtonState)eTSPar);
1212  //fTSPar->Connect("Toggled(Bool_t)","EdbEDAMainTab", this, "SetDrawTrackSets(Bool_t)");
1213 
1214 
1215  posx += dx+5;
1216  fLabel = new TGLabel(fMainFrame, "IP<");
1217  fMainFrame->AddFrame(fLabel);
1218  fLabel->MoveResize(posx,posy,dx=20,18);
1219 
1220  posx += dx;
1221  fTSParIP = new TGNumberEntry(fMainFrame, (Double_t) eTSParIP);
1222  fMainFrame->AddFrame(fTSParIP, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1223  fTSParIP->MoveResize(posx,posy,dx=50,18);
1224 
1225  posx += dx+5;
1226  fLabel = new TGLabel(fMainFrame, "W>");
1227  fMainFrame->AddFrame(fLabel);
1228  fLabel->MoveResize(posx,posy,dx=20,18);
1229 
1230  posx += dx;
1231  fTSParPH = new TGNumberEntry(fMainFrame, (Double_t) eTSParPH);
1232  fMainFrame->AddFrame(fTSParPH, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1233  fTSParPH->MoveResize(posx,posy,dx=40,18);
1234 
1235  posx += dx+5;
1236 
1237  fLabel = new TGLabel(fMainFrame, "nseg>=");
1238  fMainFrame->AddFrame(fLabel);
1239  fLabel->MoveResize(posx,posy,dx=40,18);
1240 
1241  posx += dx+5;
1242  fTSParNseg = new TGNumberEntry(fMainFrame, (Double_t) eTSParNseg,6,-1,(TGNumberFormat::EStyle) 5);
1243  fMainFrame->AddFrame(fTSParNseg, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1244  fTSParNseg->MoveResize(posx,posy,dx=35,18);
1245 
1246  posx += dx+5;
1247  fLabel = new TGLabel(fMainFrame, "Start w/in");
1248  fMainFrame->AddFrame(fLabel);
1249  fLabel->MoveResize(posx,posy,dx=52,18);
1250 
1251  posx += dx+5;
1252  fTSParPlate = new TGNumberEntry(fMainFrame, (Double_t) eTSParPlate,6,-1,(TGNumberFormat::EStyle) 5);
1253  fMainFrame->AddFrame(fTSParPlate, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1254  fTSParPlate->MoveResize(posx,posy,dx=35,18);
1255 
1256  posx += dx;
1257  fLabel = new TGLabel(fMainFrame, "pl");
1258  fMainFrame->AddFrame(fLabel);
1259  fLabel->MoveResize(posx,posy,dx=15,18);
1260 
1261 */
1263  posy+=20;
1264  posx=5;
1265 
1266  fTSDau = new TGCheckButton(fMainFrame,"Daughter Search 1st");
1267  fTSDau->MoveResize(posx,posy,dx=150,18);
1268  fTSDau->SetState((EButtonState)eTSDau);
1269 
1270  posx += dx+10;
1271 
1272  fLabel = new TGLabel(fMainFrame, "nseg>=");
1273  fMainFrame->AddFrame(fLabel);
1274  fLabel->MoveResize(posx,posy,dx=40,18);
1275 
1276  posx += dx+5;
1277  fTSDauNseg = new TGNumberEntry(fMainFrame, (Double_t) eTSDauNseg,6,-1,(TGNumberFormat::EStyle) 5);
1278  fMainFrame->AddFrame(fTSDauNseg, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1279  fTSDauNseg->MoveResize(posx,posy,dx=35,18);
1280 
1281  posx += dx+10;
1282  fLabel = new TGLabel(fMainFrame, "W>");
1283  fMainFrame->AddFrame(fLabel);
1284  fLabel->MoveResize(posx,posy,dx=20,18);
1285 
1286  posx += dx;
1287  fTSDauPH = new TGNumberEntry(fMainFrame, (Double_t) eTSDauPH);
1288  fMainFrame->AddFrame(fTSDauPH, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1289  fTSDauPH->MoveResize(posx,posy,dx=40,18);
1290 
1291 
1293 
1294  posy += 20;
1295  posx = 5;
1296  /*
1297  fMT2seg = new TGCheckButton(fMainFrame,"Microtrack for 2seg ");
1298  fMT2seg->MoveResize(posx,posy,dx=150,18);
1299  fMT2seg->SetState((EButtonState)eMT2seg);
1300  fMT2seg->SetToolTipText("Microtrack search for 2segment track\n"
1301  "1 upstream, 1 downstream");
1302 
1303  posx += dx+10;
1304  */
1305  fMTAll = new TGCheckButton(fMainFrame,"Microtrack Search");
1306  fMTAll->MoveResize(posx,posy,dx=150,18);
1307  fMTAll->SetState((EButtonState)eMTAll);
1308 
1309  posx += dx+10;
1310  TGTextButton *fb = new TGTextButton(fMainFrame,"Print Condition");
1311  fMainFrame->AddFrame(fb);
1312  fb->MoveResize(posx,posy,dx=110,18);
1313  fb->Connect("Clicked()","EdbEDADecaySearchTab", this,"PrintRunTracking()");
1314  fb->SetToolTipText("Print Microtrack search condition\n"
1315  "EdbRunTracking can be set via gEDA->GetTrackSet(\"TS\")->SetRunTracking()\n");
1316 
1318  posy+=20;
1319  posx=5;
1320 
1321  fTSDau2 = new TGCheckButton(fMainFrame,"Daughter Search 2nd :");
1322  fTSDau2->MoveResize(posx,posy,dx=150,18);
1323  fTSDau2->SetState((EButtonState)eTSDau2);
1324 
1325  posx += dx+10;
1326 
1327  fLabel = new TGLabel(fMainFrame, "nseg>=");
1328  fMainFrame->AddFrame(fLabel);
1329  fLabel->MoveResize(posx,posy,dx=40,18);
1330 
1331  posx += dx+5;
1332  fTSDauNseg2 = new TGNumberEntry(fMainFrame, (Double_t) eTSDauNseg2,6,-1,(TGNumberFormat::EStyle) 5);
1333  fMainFrame->AddFrame(fTSDauNseg2, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1334  fTSDauNseg2->MoveResize(posx,posy,dx=35,18);
1335 
1337  posy+=20;
1338  posx=5;
1339 
1340  fSmallKink = new TGCheckButton(fMainFrame,"Small Kink search");
1341  fSmallKink->MoveResize(posx,posy,dx=150,18);
1342  fSmallKink->SetState((EButtonState)eSmallKink);
1343 
1344 
1345 
1347  posy += 40;
1348  posx = 5;
1349  fBT = new TGCheckButton(fMainFrame,"Basetrack");
1350  fBT->MoveResize(posx,posy,dx=110,18);
1351  fBT->SetState((EButtonState)eBT);
1352 
1353  posx += dx+5;
1354  fLabel = new TGLabel(fMainFrame, "IP<");
1355  fMainFrame->AddFrame(fLabel);
1356  fLabel->MoveResize(posx,posy,dx=20,18);
1357 
1358  posx += dx;
1359  fBTIP = new TGNumberEntry(fMainFrame, (Double_t) eBTIP);
1360  fMainFrame->AddFrame(fBTIP, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1361  fBTIP->MoveResize(posx,posy,dx=50,18);
1362 
1363  posx += dx+5;
1364  fLabel = new TGLabel(fMainFrame, "W>");
1365  fMainFrame->AddFrame(fLabel);
1366  fLabel->MoveResize(posx,posy,dx=20,18);
1367 
1368  posx += dx;
1369  fBTPH = new TGNumberEntry(fMainFrame, (Double_t) eBTPH);
1370  fMainFrame->AddFrame(fBTPH, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1371  fBTPH->MoveResize(posx,posy,dx=40,18);
1372 
1373 
1374  posx += dx+5;
1375 
1376  fLabel = new TGLabel(fMainFrame, "Up");
1377  fMainFrame->AddFrame(fLabel);
1378  fLabel->MoveResize(posx,posy,dx=40,18);
1379 
1380  posx += dx+5;
1381  fBTPlateUp = new TGNumberEntry(fMainFrame, eBTPlateUp,6,-1,(TGNumberFormat::EStyle) 5);
1382  fMainFrame->AddFrame(fBTPlateUp, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1383  fBTPlateUp->MoveResize(posx,posy,dx=35,18);
1384 
1385  posx += dx;
1386  fLabel = new TGLabel(fMainFrame, "pl Down");
1387  fMainFrame->AddFrame(fLabel);
1388  fLabel->MoveResize(posx,posy,dx=52,18);
1389 
1390  posx += dx;
1391  fBTPlateDown = new TGNumberEntry(fMainFrame, eBTPlateDown,6,-1,(TGNumberFormat::EStyle) 5);
1392  fMainFrame->AddFrame(fBTPlateDown, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1393  fBTPlateDown->MoveResize(posx,posy,dx=35,18);
1394 
1395  posx += dx;
1396  fLabel = new TGLabel(fMainFrame, "pl");
1397  fMainFrame->AddFrame(fLabel);
1398  fLabel->MoveResize(posx,posy,dx=15,18);
1399 
1400  // main frame
1401  // tab widget
1402  TGTab *fTab = new TGTab(fMainFrame,300,280);
1403 
1404  // container of "Tab1"
1405  TGCompositeFrame *fCompositeFrame;
1406  fCompositeFrame = fTab->AddTab("IPCut 1st");
1407  fCompositeFrame->SetLayoutManager(new TGVerticalLayout(fCompositeFrame));
1408  fCompositeFrame->SetLayoutBroken(kTRUE);
1409 
1410  // embedded canvas
1411  TRootEmbeddedCanvas *fEmbeddedCanvas = new TRootEmbeddedCanvas(0,fCompositeFrame,300,255);
1412  Int_t wfEmbeddedCanvas = fEmbeddedCanvas->GetCanvasWindowId();
1413  TCanvas *cIPDau1 = new TCanvas("cIPDau1", 0, 0, wfEmbeddedCanvas);
1414  fEmbeddedCanvas->AdoptCanvas(cIPDau1);
1415  fCompositeFrame->AddFrame(fEmbeddedCanvas, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1416  fEmbeddedCanvas->MoveResize(0,0,300,255);
1417  cIPDau1->cd();
1418  eTSDauIPHist1->Draw();
1419 
1420 
1421  // container of "Tab2"
1422  fCompositeFrame = fTab->AddTab("IPCut 2nd");
1423  fCompositeFrame->SetLayoutManager(new TGVerticalLayout(fCompositeFrame));
1424 
1425  // embedded canvas
1426  fEmbeddedCanvas = new TRootEmbeddedCanvas(0,fCompositeFrame,300,255);
1427  wfEmbeddedCanvas = fEmbeddedCanvas->GetCanvasWindowId();
1428  TCanvas *cIPDau2 = new TCanvas("cIPDau2", 0, 0, wfEmbeddedCanvas);
1429  fEmbeddedCanvas->AdoptCanvas(cIPDau2);
1430  fCompositeFrame->AddFrame(fEmbeddedCanvas, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1431  fEmbeddedCanvas->MoveResize(0,0,300,255);
1432  cIPDau2->cd();
1433  eTSDauIPHist2->Draw();
1434 
1435  fTab->SetTab(0);
1436 
1437  fTab->Resize(fTab->GetDefaultSize());
1438  fMainFrame->AddFrame(fTab, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1439  fTab->MoveResize(480,0,300,280);
1440 
1441  posy+=25;
1442 
1443  TGTextButton *fTextButton = new TGTextButton(fMainFrame,"Do Search");
1444  fMainFrame->AddFrame(fTextButton, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
1445  fTextButton->MoveResize(200,posy,100,25);
1446  fTextButton->Connect("Clicked()", "EdbEDADecaySearchTab", this, "ApplyParams()");
1447 
1448  fMainFrame->SetMWMHints(kMWMDecorAll,
1449  kMWMFuncAll,
1450  kMWMInputModeless);
1451  fMainFrame->MapSubwindows();
1452 
1453  fMainFrame->Resize(fMainFrame->GetDefaultSize());
1454  fMainFrame->MapWindow();
1455  fMainFrame->Resize(800,280);
1456 
1457  gClient->WaitFor(fMainFrame);
1458 }
TH1F * eTSDauIPHist1
Definition: EdbEDADecaySearch.h:236
TH1F * eTSDauIPHist2
Definition: EdbEDADecaySearch.h:243
new TCanvas()

Member Data Documentation

◆ eParamWindow

TGMainFrame* EdbEDADecaySearchTab::eParamWindow
private

◆ eTab

TGMainFrame* EdbEDADecaySearchTab::eTab
private

◆ fBT

TGCheckButton* EdbEDADecaySearchTab::fBT
private

◆ fBTIP

TGNumberEntry* EdbEDADecaySearchTab::fBTIP
private

◆ fBTPH

TGNumberEntry* EdbEDADecaySearchTab::fBTPH
private

◆ fBTPlateDown

TGNumberEntry* EdbEDADecaySearchTab::fBTPlateDown
private

◆ fBTPlateUp

TGNumberEntry* EdbEDADecaySearchTab::fBTPlateUp
private

◆ fMT2seg

TGCheckButton* EdbEDADecaySearchTab::fMT2seg
private

◆ fMTAll

TGCheckButton* EdbEDADecaySearchTab::fMTAll
private

◆ fMTIpl

TGNumberEntry* EdbEDADecaySearchTab::fMTIpl
private

◆ fSmallKink

TGCheckButton* EdbEDADecaySearchTab::fSmallKink
private

◆ fSmallKinkNpl

TGNumberEntry* EdbEDADecaySearchTab::fSmallKinkNpl
private

◆ fSmallKinkRmin

TGNumberEntry* EdbEDADecaySearchTab::fSmallKinkRmin
private

◆ fTSDau

TGCheckButton* EdbEDADecaySearchTab::fTSDau
private

◆ fTSDau2

TGCheckButton* EdbEDADecaySearchTab::fTSDau2
private

◆ fTSDauNseg

TGNumberEntry* EdbEDADecaySearchTab::fTSDauNseg
private

◆ fTSDauNseg2

TGNumberEntry* EdbEDADecaySearchTab::fTSDauNseg2
private

◆ fTSDauPH

TGNumberEntry* EdbEDADecaySearchTab::fTSDauPH
private

◆ fTSPar

TGCheckButton* EdbEDADecaySearchTab::fTSPar
private

◆ fTSParIP

TGNumberEntry* EdbEDADecaySearchTab::fTSParIP
private

◆ fTSParNseg

TGNumberEntry* EdbEDADecaySearchTab::fTSParNseg
private

◆ fTSParPH

TGNumberEntry* EdbEDADecaySearchTab::fTSParPH
private

◆ fTSParPlate

TGNumberEntry* EdbEDADecaySearchTab::fTSParPlate
private

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