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
 Basetrack search. More...
 
double eBTIP
 IP cut for Basetrack. More...
 
double eBTPH
 PH cut for Basetrack. More...
 
int eBTPlateDown
 nplates downstream for Basetrack Search More...
 
int eBTPlateUp
 nplates upstream or Basetrack search More...
 
TObjArray * eDecayVertices
 
int eDSVer
 
TObjArray * eKinks
 
double eKinkSigma
 
int eMT2seg
 Microtrack search for 2 segment. More...
 
int eMTAll
 Microtrack search to fill holes and upstream, downstream. More...
 
EdbPVRecePVR
 
TObjArray * eSegments
 
EdbEDATrackSeteSet
 
int eSmallKink
 Small-Kink search. More...
 
int eSmallKinkNpl
 
float eSmallKinkRmin
 
TObjArray * eTracks
 
int eTSDau
 Daughter track search. More...
 
int eTSDau2
 Daughter track search. 2nd (after microtrack search) More...
 
TH1F * eTSDauIPHist1
 Histgram for IP function along dz. More...
 
TH1F * eTSDauIPHist2
 Histgram for IP function along dz. More...
 
int eTSDauNseg
 Nseg cut for Daughter tracks. More...
 
int eTSDauNseg2
 Nseg cut for Daughter tracks. 2nd. More...
 
double eTSDauPH
 PH cut for Daughter tracks. More...
 
int eTSPar
 Parent track search. More...
 
double eTSParIP
 IP cut for Parent tracks. More...
 
int eTSParNseg
 Nseg cut for Parent tracks. More...
 
double eTSParPH
 PH cut for Parent tracks. More...
 
int eTSParPlate
 nPlate to be searched for Parent tracks. eTSParPlate==1:vertex-plate only. eTSParPlate==2:vertex-plate+1plate... More...
 
EdbVertexeVertex
 
int eVertexPlatePID
 vertex plate. 1st stream plate from vertex More...
 
TObjArray * eVertices
 
int eVtxUp
 Search Upstream vertex if the ntrk of selected vertex <=3. More...
 
int eVtxUpDZ
 dz from selected vertex and upstream vertex to be searched. More...
 
int eVtxUpIP
 Ip cut from the tracks belong to the selected vertex. More...
 

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
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
IP cut for Basetrack.
Definition: EdbEDADecaySearch.h:260
int eTSDau
Daughter track search.
Definition: EdbEDADecaySearch.h:233
int eTSDauNseg2
Nseg cut for Daughter tracks. 2nd.
Definition: EdbEDADecaySearch.h:242
int eBT
Basetrack search.
Definition: EdbEDADecaySearch.h:257
double eTSDauPH
PH cut for Daughter tracks.
Definition: EdbEDADecaySearch.h:235
int eBTPlateUp
nplates upstream or Basetrack search
Definition: EdbEDADecaySearch.h:258
int eMTAll
Microtrack search to fill holes and upstream, downstream.
Definition: EdbEDADecaySearch.h:239
int eBTPlateDown
nplates downstream for Basetrack Search
Definition: EdbEDADecaySearch.h:259
int eSmallKink
Small-Kink search.
Definition: EdbEDADecaySearch.h:245
int eTSDau2
Daughter track search. 2nd (after microtrack search)
Definition: EdbEDADecaySearch.h:241
double eBTPH
PH cut for Basetrack.
Definition: EdbEDADecaySearch.h:261
int eTSDauNseg
Nseg cut for Daughter tracks.
Definition: EdbEDADecaySearch.h:234

◆ Button3()

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

◆ CloseParamWindow()

void EdbEDADecaySearchTab::CloseParamWindow ( )
1066 {
1067 if(eParamWindow) eParamWindow->DeleteWindow();
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
TGNumberEntry * fMTIpl
Definition: EdbEDADecaySearch.h:457
TObjArray * GetSelected(void)
Definition: EdbEDA.h:405
Definition: EdbEDATrackSet.h:178
EdbEDATrackSet * GetTrackSet(int i)
Definition: EdbEDA.h:617
void Redraw()
Definition: EdbEDA.h:680
EdbTrackP * GetTrack(EdbSegP *s)
Definition: EdbEDA.h:598
Definition: EdbSegP.h:21
Definition: EdbPattern.h:113
EdbScanSet * set
Definition: emtraceback.cpp:14
TTree * t
Definition: check_shower.C:4
void ErrorMessage(char *title, 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
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
void SetVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.C:408
int eVertexPlatePID
vertex plate. 1st stream plate from vertex
Definition: EdbEDADecaySearch.h:224
int Ntracks()
Definition: EdbEDADecaySearch.h:378
TObjArray * DoSearch()
Definition: EdbEDADecaySearch.C:306
EdbEDATrackP * GetTrack(int i)
Definition: EdbEDADecaySearch.h:379
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
EdbEDAVertexSet * GetVertexSet()
Definition: EdbEDA.h:660
void StorePrevious()
Definition: EdbEDA.h:689
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
TObjArray * GetTracks()
Definition: EdbEDATrackSet.h:310
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
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);
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:69
double InputNumberReal(char *message, double default_num=0.0, TGNumberFormat::EStyle es=TGNumberFormat::kNESReal)
Definition: EdbEDAUtil.C:858

◆ MakeGUI()

void EdbEDADecaySearchTab::MakeGUI ( )
1110 {
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
Histgram for IP function along dz.
Definition: EdbEDADecaySearch.h:236
TH1F * eTSDauIPHist2
Histgram for IP function along dz.
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: