FEDRA emulsion software from the OPERA Collaboration
EdbEDADecaySearch.h
Go to the documentation of this file.
1
2#ifndef __EDA_DecaySearch_h__
3#define __EDA_DecaySearch_h__
4
5#include"EdbEDAUtil.h"
6#include"EdbEDATrackSet.h"
7using namespace EdbEDAUtil;
8
9class EdbEDATrackP : public EdbTrackP {
10
11 private:
12
14 TString eComment;
18 TObjArray *eFriends;
20 TObjArray *eDaughters;
21
22 int eFlagDS;
30 int eRun;
31
32 double eP;
33 double ePmin;
34 double ePmax;
35
36 double eIPUp;
37 double eIPDown;
38
39 public:
40
44 Init();
45 SetVertexUp(vtxup);
46 }
47 void Init(){
50 eParent = NULL;
51 eFriends = new TObjArray;
52 eDaughters = new TObjArray;
54 eTrackSearch = 0;
55 eP = ePmin = ePmax = -1;
56 eIPUp = eIPDown = -1;
57
59 }
60
61 void SetFlagsAuto();
62
63 void SetComment(char *comment) { eComment = comment;}
64 const char *Comment(){ return eComment.Data();}
65
70
73
74 void AddFriend(EdbTrackP *t) { if(eFriends->FindObject(t)==NULL) eFriends->Add(t);}
75 int NFriends() { return eFriends->GetEntries();}
76 EdbTrackP *GetFriend(int i){ return (EdbTrackP *) eFriends->At(i);}
77 TObjArray *GetFriends() { return eFriends;}
78
79 void AddDaughter(EdbTrackP *t) { if(eDaughters->FindObject(t)==NULL) eDaughters->Add(t);}
80 int NDaughters() { return eDaughters->GetEntries();}
81 EdbTrackP *GetDaughter(int i){ return (EdbTrackP *) eDaughters->At(i);}
82 TObjArray *GetDaughters() { return eDaughters;}
83
84 void SetFlagDS(int v){ eFlagDS = v;}
85 int FlagDS() { return eFlagDS;}
86 void SetTrackSearch(int v){ eTrackSearch = v;}
87 int TrackSearch() { return eTrackSearch;}
88 void SetFlagKink(int v){ eFlagKink = v;}
89 int FlagKink() { return eFlagKink;}
90 void SetKinkPlate(int v){ eKinkPlate = v;}
91 int KinkPlate() { return eKinkPlate;}
92 void SetParticle(int v){ eParticle = v;}
93 int Particle() { return eParticle;}
94 void SetDarkness(int v){ eDarkness = v;}
95 int Darkness() { return eDarkness;}
96 void SetCSTrack(int v){ eCSTrack = v;}
97 int CSTrack() { return eCSTrack;}
98 void SetRun(int v){ eRun = v;}
99 int Run() { return eRun;}
102
103 void SetIPUp ( double ip) { eIPUp = ip;}
104 void SetIPDown( double ip) { eIPDown = ip;}
105 double IPUp() { return eIPUp;}
106 double IPDown(){ return eIPDown;}
107
108 void SetP(double p, double pmin, double pmax){ eP=p; ePmin=pmin; ePmax=pmax;}
109 double P() { return eP;}
110 double Pmin(){ return ePmin;}
111 double Pmax(){ return ePmax;}
112
115 void Print();
116
117 ClassDef(EdbEDATrackP, 0) // Tracks with DecaySearch information.
118};
119
121
122 private:
123
127 TObjArray *eDaughters;
128 void AddTrack(EdbEDATrackP *t);
129 int eType;
130
131 public:
132 enum TopologyType{ kShort=0x01, kLong = 0x02, kSmallKink = 0x04};
133
134 EdbEDADecayVertex(EdbVertex *v2ry, EdbVertex *v1ry, EdbEDATrackP *parent=NULL, EdbEDATrackP *daugter1=NULL, EdbEDATrackP *daugheter2=NULL, EdbEDATrackP *daughter3=NULL, EdbEDATrackP *daughter4=NULL, EdbEDATrackP *daughter5=NULL);
135 EdbEDADecayVertex(EdbVertex *v2ry, EdbVertex *v1ry, EdbEDATrackP *parent, TObjArray *daughters);
138
139 void SetParent( EdbEDATrackP *parent);
140 void SetDaughter( EdbEDATrackP *daughter);
141 void SetDaughters( TObjArray *daughters);
142 void SetPartner( EdbEDATrackP *partner) { ePartner = partner;}
144
146 EdbTrackP *GetDaughter(int i=0) { return eDaughters ? ((EdbEDATrackP *) eDaughters->At(i))->GetOriginal() : NULL;}
148 int NDaughters(){ return eDaughters? eDaughters->GetEntries() : 0;}
150
151 void SetType(int type) { eType=type;}
152 int Type(){ return eType;}
153 bool IsType( int type) { return type&eType? kTRUE:kFALSE;}
154 bool IsShort() { return IsType(kShort);}
155 bool IsLong() { return IsType(kLong);}
156 bool IsSmallKink() { return IsType(kSmallKink);}
157 ClassDef(EdbEDADecayVertex, 0) // General decay vertex.
158
159};
160
162 public:
163
167 double eDTT;
168 double eDTL;
169 double eDXT;
170 double eDXL;
171 int eNdau;
172 double eP;
173 double ePmin;
174 double ePmax;
175 double ePT;
176 double eRMST;
177 double eRMSL;
178
180 EdbSegP *S1(){return eS1;}
181 EdbSegP *S2(){return eS2;}
182 double DTT(){return eDTT;}
183 double DTL(){return eDTL;}
184 double DXT(){return eDXT;}
185 double DXL(){return eDXL;}
186 int Ndau(){return eNdau;}
187 double P(){return eP;}
188 double Pmin(){return ePmin;}
189 double Pmax(){return ePmax;}
190 double PT(){return ePT;}
191 double RMST(){return eRMST;}
192 double RMSL(){return eRMSL;}
193 int IPL1();
194 int IPL2();
195
196
197 EdbEDASmallKink( EdbVertex *v, EdbTrackP *track, EdbSegP *s1, EdbSegP *s2, double dTT, double dTL, double dXT, double dXL,
198 int ndau, double p, double pmin, double pmax, double pt, double rmst, double rmsl):
199 eTrack(track), eS1(s1), eS2(s2), eDTT(dTT), eDTL(dTL), eDXT(dXT), eDXL(dXL),
200 eNdau(ndau), eP(p), ePmin(pmin), ePmax(pmax),ePT(pt), eRMST(rmst), eRMSL(rmsl)
201 {
202 SetXYZ(v->X(),v->Y(),v->Z());
203 }
204
205
206 void Draw(Option_t *option="");
207 ClassDef(EdbEDASmallKink,0) //test
208};
209
211 // Decay Search class
212
213 public:
214
215 enum{
218 kDaughterSearch =0x04
219 };
220
222
225
226 // Found tracks
227 TObjArray *eTracks;
228 TObjArray *eSegments;
229 TObjArray *eVertices;
232
233 int eTSDau;
235 double eTSDauPH;
237
239 int eMTAll;
240
244
248
249
250 int eTSPar;
253 double eTSParIP;
254 double eTSParPH;
255
256
257 int eBT;
260 double eBTIP;
261 double eBTPH;
262
263 int eVtxUp;
266
267
268 // Kink Search
270 TObjArray *eKinks;
271 TObjArray *eDecayVertices;
272
273 EdbEDADecaySearch(int DSversion=2):
274 eDSVer (DSversion),
275 eVertex (NULL),
276 eTracks (new TObjArray),
277 eSegments (new TObjArray),
278 eVertices (new TObjArray),
279 eSet (NULL),
280
281 eTSDau (1),
282 eTSDauNseg (2),
283 eTSDauPH (17),
284
285 eMT2seg (0),
286 eMTAll (1),
287
288 eTSDau2 (1),
289 eTSDauNseg2 (3),
290
291 eSmallKink (0),
292 eSmallKinkNpl (5),
293 eSmallKinkRmin(5.),
294
295 eTSPar (0),
296 eTSParPlate(2),
297 eTSParNseg (1),
298 eTSParIP (20),
299 eTSParPH (17),
300
301 eBT (0),
302 eBTPlateUp (0),
303 eBTPlateDown (2),
304 eBTIP (20),
305 eBTPH (17),
306
307 eVtxUp (0),
308 eVtxUpDZ (3000),
309 eVtxUpIP (500),
310
311 eKinkSigma(3.),
312 eKinks (new TObjArray),
313 eDecayVertices(new TObjArray)
314
315 {
316
317 float ipcutdau_lt_1 = eDSVer==1 ? 500 : 300;
318 float ipcutdau_gt_1 = eDSVer==1 ? 800 : 500;
319
320 if(gDirectory->Get("eTSDauIPHist1")) gDirectory->Delete("eTSDauIPHist1");
321 eTSDauIPHist1 = new TH1F ("eTSDauIPHist1","IP cut function along dZ, 1st.", 121, -100, 12000);
322 // Fill function
323 TH1F *h = eTSDauIPHist1;
324 h->SetFillColor(kBlue);
325 h->SetXTitle("dZ (#mum)");
326 h->SetYTitle("IP cut (#mum)");
327 for(int i=1;i<=100;i++){
328 if(0<=h->GetBinLowEdge(i)&&h->GetBinLowEdge(i)<1000) h->SetBinContent(i, ipcutdau_lt_1);
329 else if(1000<=h->GetBinLowEdge(i)&&h->GetBinLowEdge(i)<11700) h->SetBinContent(i, ipcutdau_gt_1);
330 else if(11700<=h->GetBinLowEdge(i)) h->SetBinContent(i,0);
331 }
332 if(gDirectory->Get("eTSDauIPHist1")) gDirectory->Delete("eTSDauIPHist2");
333 eTSDauIPHist2 = new TH1F ("eTSDauIPHist2","IP cut function along dZ, 2nd", 121, -100, 12000);
334 // Fill function
335 h = eTSDauIPHist2;
336 h->SetFillColor(kBlue);
337 h->SetXTitle("dZ (#mum)");
338 h->SetYTitle("IP cut (#mum)");
339 for(int i=1;i<=100;i++){
340 if(0<=h->GetBinLowEdge(i)&&h->GetBinLowEdge(i)<1000) h->SetBinContent(i, ipcutdau_lt_1);
341 else if(1000<=h->GetBinLowEdge(i)&&h->GetBinLowEdge(i)<6000) h->SetBinContent(i, ipcutdau_gt_1);
342 else if(6000<=h->GetBinLowEdge(i)) h->SetBinContent(i,0);
343 }
344 }
346
349 void SetVertex (EdbVertex *v);
350
351 TObjArray * TSDaughterTracks (TObjArray *base);
352 double GetTSDauIP1(double dz);
353
354 void MTSearch2seg(TObjArray *tracks);
355 void MTSearchAll(TObjArray *tracks);
356
357 void TSDaughterTracks2 ();
358 double GetTSDauIP2(double dz);
359
360 void SmallKinkSearch();
361 void KinkSearch();
362 float GetIPCut(EdbVertex *v, EdbSegP *s);
363 void ShortDecaySearch();
364
365 TObjArray * TSParentTracks (TObjArray *base);
366 TObjArray * TSBaseTracks(int ipl);
367 TObjArray * FindUpstreamVertices();
368
369 TObjArray * DoSearch();
370
372 for(int i=0;i<Ntracks();i++){
373 if(GetTrack(i)->ID()==t->ID()) return GetTrack(i);
374 }
375 return NULL;
376 }
377
378 int Ntracks(){ return eTracks->GetEntries();}
379 EdbEDATrackP *GetTrack(int i) { return (EdbEDATrackP *) eTracks->At(i);}
380 int NDecayVertices(){ return eDecayVertices->GetEntries();}
382
383 void SetPVR(EdbPVRec *pvr) { ePVR = pvr;}
384 EdbPVRec *GetPVR() { return ePVR;}
385
387 eSet = set;
388 SetPVR(set->GetPVRec());
389 }
391
392 void SetIPHist1(TH1F *h) { eTSDauIPHist1=h;}
393 void SetIPHist2(TH1F *h) { eTSDauIPHist2=h;}
394
395 void SetTracks(TObjArray *array) {eTracks=array;}
396
397 TObjArray *CheckInTrackKinks(TObjArray *tracks = NULL) {
399 for(int i=0;i<tracks->GetEntries();i++) {
400 CheckInTrackKink((EdbTrackP *) tracks->At(i));
401 }
402 return eKinks;
403 }
404 TObjArray *CheckInTrackKink(EdbTrackP *trk);
405 TObjArray *GetKinks(void){ return eKinks;}
406
407 void SetBTSearch( int do_search=1, int npl_up=0, int npl_down=2, float ipcut=20, float phcut=17){
408 eBT = do_search; eBTPlateUp = npl_up; eBTPlateDown = npl_down; eBTIP = ipcut; eBTPH = phcut;}
409 void SetParentSearch( int do_search=1, int npl=2, float ipcut=20, float phcut=17){
410 eTSPar = do_search; eTSParPlate = npl; eTSParIP = ipcut; eTSParPH = phcut;}
411 void SetSmallKinkSearch( int do_search=1, int npl_down=5, float Rmin=5.){
412 eSmallKink = do_search; eSmallKinkNpl = npl_down; eSmallKinkRmin = Rmin;}
413
414 //void MicroTrackSearch(EdbSegP *s, int ipl);
415 // moved to TrackSet.
416 void PrintTracks();
419 else printf("No EdbEDATrackSet is set\n");
420 }
421 EdbVertex * MakeFakeVertex(EdbTrackP *t, double dz=1150);
422 ClassDef(EdbEDADecaySearch, 0) // Class for pick up tracks
423};
424
425
427 private:
428 TGCheckButton *fTSDau;
429 TGNumberEntry *fTSDauPH;
430 TGNumberEntry *fTSDauNseg;
431
432 TGCheckButton *fMT2seg;
433 TGCheckButton *fMTAll;
434
435 TGCheckButton *fTSDau2;
436 TGNumberEntry *fTSDauNseg2;
437
438 TGCheckButton *fSmallKink;
439 TGNumberEntry *fSmallKinkNpl;
440 TGNumberEntry *fSmallKinkRmin;
441
442
443 TGCheckButton *fTSPar;
444 TGNumberEntry *fTSParIP;
445 TGNumberEntry *fTSParPH;
446 TGNumberEntry *fTSParNseg;
447 TGNumberEntry *fTSParPlate;
448
449 // Basetrack search
450 TGCheckButton *fBT;
451 TGNumberEntry *fBTPlateUp;
452 TGNumberEntry *fBTPlateDown;
453 TGNumberEntry *fBTIP;
454 TGNumberEntry *fBTPH;
455
456 // Microtrack search
457 TGNumberEntry *fMTIpl;
458
459 TGMainFrame *eParamWindow;
460 TGMainFrame *eTab;
461
462 public:
463 EdbEDADecaySearchTab(int DSversion=2) : EdbEDADecaySearch(DSversion), eParamWindow(NULL){
464 MakeGUI();
465 }
467 if(eParamWindow) eParamWindow->CloseWindow();
468 }
469 void MakeGUI();
470 void ApplyParams();
471 void CloseParamWindow();
472 void DoSearchButton();
474 void Button3(){ printf("Button3\n");}
475
476 void FindUpstreamVertex();
477
478 void MakeParamWindow();
480 ClassDef(EdbEDADecaySearchTab, 0) // Interface for decay search
481};
482
483
484
485
486
487class EdbEDAFeedbackEntryT : public TNamed{
488
489 private:
493 EdbSegP *eSeg;
494
495 TGTabElement *eTabElement;
496 TGCompositeFrame *eCompositeFrame;
497 TGTextEntry *eTextEntry;
498 TGTextEntry *eTextEntryFS;
499 TGTextEntry *eTextEntryMom;
500
501 public:
505 if(eTextEntry) delete eTextEntry;
506 }
509 void UpdateGUI();
510 ClassDef(EdbEDAFeedbackEntryT, 0) // class for feedback entry
511};
512
513class EdbEDAFeedbackEntryV : public TNamed{
514
515 private:
517 TGTabElement *eTabElement;
518 TGCompositeFrame *eCompositeFrame;
519 TGTextEntry *eTextEntry;
520
521 public:
522 EdbEDAFeedbackEntryV(EdbVertex *v, TGTab * parent);
525 if(eTextEntry) delete eTextEntry;
526 }
528
529 ClassDef(EdbEDAFeedbackEntryV, 0) // class for feedback entry
530};
531
532
533
535 private:
536 TGTextButton *eButton1, *eButton2, *eButton3;
537
538 TGCompositeFrame *fMainFrame;
539 TGTab * fTabTracks;
540 TGTab * fTabVertices;
541 TObjArray *fTrackEntries;
542 TObjArray *fVertexEntries;
543
544 public:
549 void HilightElementT(Int_t id);
550 void HilightElementV(Int_t id);
551 void HandleButtons(Int_t id);
552 void RemoveTrackTab(Int_t id);
553 void RemoveVertexTab(Int_t id);
554};
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595#endif // __EDA_DecaySearch_h__
596
TPaveText * pt
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:160
brick dz
Definition: RecDispMC.C:107
Double_t CalcIP(EdbSegP *s, EdbVertex *v)
Definition: ShowRec.cpp:8872
Definition: EdbEDADecaySearch.h:426
EdbEDADecaySearchTab(int DSversion=2)
Definition: EdbEDADecaySearch.h:463
TGCheckButton * fBT
Definition: EdbEDADecaySearch.h:450
void Button3()
Definition: EdbEDADecaySearch.h:474
TGNumberEntry * fBTPH
Definition: EdbEDADecaySearch.h:454
TGCheckButton * fTSDau
Definition: EdbEDADecaySearch.h:428
TGNumberEntry * fTSDauNseg
Definition: EdbEDADecaySearch.h:430
TGMainFrame * eParamWindow
Definition: EdbEDADecaySearch.h:459
TGMainFrame * eTab
Definition: EdbEDADecaySearch.h:460
void MakeGUI()
Definition: EdbEDADecaySearch.C:1110
void DoMicroTrackSearchButton()
Definition: EdbEDADecaySearch.C:975
TGNumberEntry * fSmallKinkRmin
Definition: EdbEDADecaySearch.h:440
TGNumberEntry * fBTIP
Definition: EdbEDADecaySearch.h:453
TGCheckButton * fSmallKink
Definition: EdbEDADecaySearch.h:438
TGNumberEntry * fSmallKinkNpl
Definition: EdbEDADecaySearch.h:439
TGNumberEntry * fTSDauPH
Definition: EdbEDADecaySearch.h:429
TGNumberEntry * fTSParIP
Definition: EdbEDADecaySearch.h:444
TGNumberEntry * fTSDauNseg2
Definition: EdbEDADecaySearch.h:436
TGNumberEntry * fTSParNseg
Definition: EdbEDADecaySearch.h:446
TGCheckButton * fTSPar
Definition: EdbEDADecaySearch.h:443
void CloseParamWindow()
Definition: EdbEDADecaySearch.C:1066
void MakeFakeVertexButton()
Definition: EdbEDADecaySearch.C:1094
TGNumberEntry * fTSParPlate
Definition: EdbEDADecaySearch.h:447
TGNumberEntry * fTSParPH
Definition: EdbEDADecaySearch.h:445
TGNumberEntry * fBTPlateUp
Definition: EdbEDADecaySearch.h:451
TGNumberEntry * fMTIpl
Definition: EdbEDADecaySearch.h:457
~EdbEDADecaySearchTab()
Definition: EdbEDADecaySearch.h:466
void DoSearchButton()
Definition: EdbEDADecaySearch.C:998
TGNumberEntry * fBTPlateDown
Definition: EdbEDADecaySearch.h:452
TGCheckButton * fTSDau2
Definition: EdbEDADecaySearch.h:435
TGCheckButton * fMT2seg
Definition: EdbEDADecaySearch.h:432
void MakeParamWindow()
Definition: EdbEDADecaySearch.C:1183
TGCheckButton * fMTAll
Definition: EdbEDADecaySearch.h:433
void FindUpstreamVertex()
Definition: EdbEDADecaySearch.C:1072
void ApplyParams()
Definition: EdbEDADecaySearch.C:1036
Definition: EdbEDADecaySearch.h:210
double eBTIP
IP cut for Basetrack.
Definition: EdbEDADecaySearch.h:260
EdbVertex * FindPrimaryVertex()
Definition: EdbEDADecaySearch.C:666
void SmallKinkSearch()
Definition: EdbEDADecaySearch.C:139
int eMT2seg
Microtrack search for 2 segment.
Definition: EdbEDADecaySearch.h:238
int eTSDau
Daughter track search.
Definition: EdbEDADecaySearch.h:233
virtual ~EdbEDADecaySearch()
Definition: EdbEDADecaySearch.h:345
int eTSParPlate
nPlate to be searched for Parent tracks. eTSParPlate==1:vertex-plate only. eTSParPlate==2:vertex-plat...
Definition: EdbEDADecaySearch.h:251
void KinkSearch()
Definition: EdbEDADecaySearch.C:735
int eTSDauNseg2
Nseg cut for Daughter tracks. 2nd.
Definition: EdbEDADecaySearch.h:242
EdbVertex * eVertex
Definition: EdbEDADecaySearch.h:223
void MTSearchAll(TObjArray *tracks)
Definition: EdbEDADecaySearch.C:289
int eVtxUp
Search Upstream vertex if the ntrk of selected vertex <=3.
Definition: EdbEDADecaySearch.h:263
TObjArray * eSegments
Definition: EdbEDADecaySearch.h:228
EdbEDATrackP * FindTrack(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:371
double GetTSDauIP1(double dz)
Definition: EdbEDADecaySearch.C:117
TObjArray * TSDaughterTracks(TObjArray *base)
Definition: EdbEDADecaySearch.C:449
void SetPVR(EdbPVRec *pvr)
Definition: EdbEDADecaySearch.h:383
void PrintTracks()
Definition: EdbEDADecaySearch.C:266
int eTSPar
Parent track search.
Definition: EdbEDADecaySearch.h:250
void MTSearch2seg(TObjArray *tracks)
Definition: EdbEDADecaySearch.C:274
int eBT
Basetrack search.
Definition: EdbEDADecaySearch.h:257
double eTSDauPH
PH cut for Daughter tracks.
Definition: EdbEDADecaySearch.h:235
int eVtxUpIP
Ip cut from the tracks belong to the selected vertex.
Definition: EdbEDADecaySearch.h:265
double GetTSDauIP2(double dz)
Definition: EdbEDADecaySearch.C:128
TObjArray * eDecayVertices
Definition: EdbEDADecaySearch.h:271
TH1F * eTSDauIPHist1
Histgram for IP function along dz.
Definition: EdbEDADecaySearch.h:236
TObjArray * FindUpstreamVertices()
Definition: EdbEDADecaySearch.C:426
void SetIPHist1(TH1F *h)
Definition: EdbEDADecaySearch.h:392
float GetIPCut(EdbVertex *v, EdbSegP *s)
Definition: EdbEDADecaySearch.C:785
TObjArray * TSBaseTracks(int ipl)
Definition: EdbEDADecaySearch.C:588
int NDecayVertices()
Definition: EdbEDADecaySearch.h:380
int eBTPlateUp
nplates upstream or Basetrack search
Definition: EdbEDADecaySearch.h:258
TH1F * eTSDauIPHist2
Histgram for IP function along dz.
Definition: EdbEDADecaySearch.h:243
TObjArray * CheckInTrackKink(EdbTrackP *trk)
Definition: EdbEDADecaySearch.C:151
int eMTAll
Microtrack search to fill holes and upstream, downstream.
Definition: EdbEDADecaySearch.h:239
EdbEDATrackSet * GetTrackSet()
Definition: EdbEDADecaySearch.h:390
void SetParentSearch(int do_search=1, int npl=2, float ipcut=20, float phcut=17)
Definition: EdbEDADecaySearch.h:409
EdbVertex * GetPrimaryVertex()
Definition: EdbEDADecaySearch.h:347
void SetBTSearch(int do_search=1, int npl_up=0, int npl_down=2, float ipcut=20, float phcut=17)
Definition: EdbEDADecaySearch.h:407
int eBTPlateDown
nplates downstream for Basetrack Search
Definition: EdbEDADecaySearch.h:259
double eTSParIP
IP cut for Parent tracks.
Definition: EdbEDADecaySearch.h:253
void ShortDecaySearch()
Definition: EdbEDADecaySearch.C:797
void SetVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.C:408
int eVertexPlatePID
vertex plate. 1st stream plate from vertex
Definition: EdbEDADecaySearch.h:224
TObjArray * GetKinks(void)
Definition: EdbEDADecaySearch.h:405
EdbPVRec * GetPVR()
Definition: EdbEDADecaySearch.h:384
int Ntracks()
Definition: EdbEDADecaySearch.h:378
void SetIPHist2(TH1F *h)
Definition: EdbEDADecaySearch.h:393
EdbPVRec * ePVR
Definition: EdbEDADecaySearch.h:230
void PrintRunTracking()
Definition: EdbEDADecaySearch.h:417
TObjArray * TSParentTracks(TObjArray *base)
Definition: EdbEDADecaySearch.C:535
TObjArray * eVertices
Definition: EdbEDADecaySearch.h:229
float eSmallKinkRmin
Definition: EdbEDADecaySearch.h:247
int eSmallKink
Small-Kink search.
Definition: EdbEDADecaySearch.h:245
double eKinkSigma
Definition: EdbEDADecaySearch.h:269
int eTSDau2
Daughter track search. 2nd (after microtrack search)
Definition: EdbEDADecaySearch.h:241
EdbVertex * MakeFakeVertex(EdbTrackP *t, double dz=1150)
Definition: EdbEDADecaySearch.C:648
int eVtxUpDZ
dz from selected vertex and upstream vertex to be searched.
Definition: EdbEDADecaySearch.h:264
void SetTrackSet(EdbEDATrackSet *set)
Definition: EdbEDADecaySearch.h:386
void TSDaughterTracks2()
Definition: EdbEDADecaySearch.C:505
double eBTPH
PH cut for Basetrack.
Definition: EdbEDADecaySearch.h:261
void SetTracks(TObjArray *array)
Definition: EdbEDADecaySearch.h:395
EdbEDADecayVertex * GetDecayVertex(int i)
Definition: EdbEDADecaySearch.h:381
int eSmallKinkNpl
Definition: EdbEDADecaySearch.h:246
int eTSDauNseg
Nseg cut for Daughter tracks.
Definition: EdbEDADecaySearch.h:234
TObjArray * CheckInTrackKinks(TObjArray *tracks=NULL)
Definition: EdbEDADecaySearch.h:397
double eTSParPH
PH cut for Parent tracks.
Definition: EdbEDADecaySearch.h:254
TObjArray * eKinks
Definition: EdbEDADecaySearch.h:270
TObjArray * DoSearch()
Definition: EdbEDADecaySearch.C:306
int eDSVer
Definition: EdbEDADecaySearch.h:221
TObjArray * eTracks
Definition: EdbEDADecaySearch.h:227
int eTSParNseg
Nseg cut for Parent tracks.
Definition: EdbEDADecaySearch.h:252
EdbEDATrackP * GetTrack(int i)
Definition: EdbEDADecaySearch.h:379
EdbEDATrackSet * eSet
Definition: EdbEDADecaySearch.h:231
@ kParentSearch
Definition: EdbEDADecaySearch.h:216
@ kBaseTrackSearch
Definition: EdbEDADecaySearch.h:217
@ kDaughterSearch
Definition: EdbEDADecaySearch.h:218
EdbEDADecaySearch(int DSversion=2)
Definition: EdbEDADecaySearch.h:273
void SetSmallKinkSearch(int do_search=1, int npl_down=5, float Rmin=5.)
Definition: EdbEDADecaySearch.h:411
Definition: EdbEDADecaySearch.h:120
bool IsLong()
Definition: EdbEDADecaySearch.h:155
EdbTrackP * GetPartner()
Definition: EdbEDADecaySearch.h:147
EdbTrackP * GetParent()
Definition: EdbEDADecaySearch.h:145
void SetType(int type)
Definition: EdbEDADecaySearch.h:151
void SetParent(EdbEDATrackP *parent)
Definition: EdbEDADecaySearch.C:80
~EdbEDADecayVertex()
Definition: EdbEDADecaySearch.C:68
EdbEDADecayVertex()
Definition: EdbEDADecaySearch.h:136
EdbVertex * GetPrimaryVertex()
Definition: EdbEDADecaySearch.h:149
void SetPartner(EdbEDATrackP *partner)
Definition: EdbEDADecaySearch.h:142
EdbEDATrackP * eParent
Definition: EdbEDADecaySearch.h:125
bool IsSmallKink()
Definition: EdbEDADecaySearch.h:156
int NDaughters()
Definition: EdbEDADecaySearch.h:148
bool IsType(int type)
Definition: EdbEDADecaySearch.h:153
EdbVertex * ePrimaryVertex
Definition: EdbEDADecaySearch.h:124
void SetDaughters(TObjArray *daughters)
Definition: EdbEDADecaySearch.C:93
void SetDaughter(EdbEDATrackP *daughter)
Definition: EdbEDADecaySearch.C:85
EdbEDATrackP * ePartner
Definition: EdbEDADecaySearch.h:126
int Type()
Definition: EdbEDADecaySearch.h:152
bool IsShort()
Definition: EdbEDADecaySearch.h:154
EdbTrackP * GetDaughter(int i=0)
Definition: EdbEDADecaySearch.h:146
void SetPrimaryVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.h:143
int eType
Definition: EdbEDADecaySearch.h:129
void AddTrack(EdbEDATrackP *t)
Definition: EdbEDADecaySearch.C:72
TopologyType
Definition: EdbEDADecaySearch.h:132
@ kShort
Definition: EdbEDADecaySearch.h:132
@ kSmallKink
Definition: EdbEDADecaySearch.h:132
@ kLong
Definition: EdbEDADecaySearch.h:132
TObjArray * eDaughters
Definition: EdbEDADecaySearch.h:127
Definition: EdbDecaySearch.h:530
TGTextButton * eButton3
Definition: EdbDecaySearch.h:532
void HandleButtons(Int_t id)
void RemoveTrackTab(Int_t id)
TGTextButton * eButton1
Definition: EdbDecaySearch.h:532
TGCompositeFrame * fMainFrame
Definition: EdbDecaySearch.h:534
void RemoveVertexTab(Int_t id)
TGTab * fTabTracks
Definition: EdbDecaySearch.h:535
TObjArray * fVertexEntries
Definition: EdbDecaySearch.h:538
TGTextButton * eButton2
Definition: EdbDecaySearch.h:532
void HilightElementT(Int_t id)
void HilightElementV(Int_t id)
TGTab * fTabVertices
Definition: EdbDecaySearch.h:536
TObjArray * fTrackEntries
Definition: EdbDecaySearch.h:537
class for feedback entry
Definition: EdbDecaySearch.h:483
EdbTrackP * eTrackSeg
Definition: EdbDecaySearch.h:488
EdbEDAFeedbackEntryT(EdbTrackP *t, TGTab *parent)
TGTextEntry * eTextEntryMom
Definition: EdbDecaySearch.h:495
TGTabElement * eTabElement
Definition: EdbDecaySearch.h:491
TGCompositeFrame * eCompositeFrame
Definition: EdbDecaySearch.h:492
TGTextEntry * eTextEntry
Definition: EdbDecaySearch.h:493
~EdbEDAFeedbackEntryT()
Definition: EdbEDADecaySearch.h:503
EdbTrackP * eTrackMom
Definition: EdbDecaySearch.h:487
EdbSegP * eSeg
Definition: EdbDecaySearch.h:489
TGTextEntry * eTextEntryFS
Definition: EdbDecaySearch.h:494
EdbTrackP * eTrack
Definition: EdbDecaySearch.h:486
class for feedback entry
Definition: EdbDecaySearch.h:509
TGCompositeFrame * eCompositeFrame
Definition: EdbDecaySearch.h:514
EdbEDAFeedbackEntryV(EdbVertex *v, TGTab *parent)
TGTabElement * eTabElement
Definition: EdbDecaySearch.h:513
EdbVertex * eVertex
Definition: EdbDecaySearch.h:512
~EdbEDAFeedbackEntryV()
Definition: EdbEDADecaySearch.h:523
TGTextEntry * eTextEntry
Definition: EdbDecaySearch.h:515
Definition: EdbEDADecaySearch.h:161
double DXL()
Definition: EdbEDADecaySearch.h:185
void Draw(Option_t *option="")
Definition: EdbEDADecaySearch.C:106
EdbSegP * eS1
Definition: EdbEDADecaySearch.h:165
double DTT()
Definition: EdbEDADecaySearch.h:182
double P()
Definition: EdbEDADecaySearch.h:187
double eP
Definition: EdbEDADecaySearch.h:172
int Ndau()
Definition: EdbEDADecaySearch.h:186
EdbSegP * S1()
Definition: EdbEDADecaySearch.h:180
double ePT
Definition: EdbEDADecaySearch.h:175
int IPL2()
Definition: EdbEDADecaySearch.C:104
EdbTrackP * Track()
Definition: EdbEDADecaySearch.h:179
double PT()
Definition: EdbEDADecaySearch.h:190
double eDXL
Definition: EdbEDADecaySearch.h:170
double ePmin
Definition: EdbEDADecaySearch.h:173
double Pmin()
Definition: EdbEDADecaySearch.h:188
double RMSL()
Definition: EdbEDADecaySearch.h:192
double RMST()
Definition: EdbEDADecaySearch.h:191
double eDTT
Definition: EdbEDADecaySearch.h:167
double DXT()
Definition: EdbEDADecaySearch.h:184
double DTL()
Definition: EdbEDADecaySearch.h:183
double eRMSL
Definition: EdbEDADecaySearch.h:177
EdbTrackP * eTrack
Definition: EdbEDADecaySearch.h:164
double eDXT
Definition: EdbEDADecaySearch.h:169
double Pmax()
Definition: EdbEDADecaySearch.h:189
EdbSegP * eS2
Definition: EdbEDADecaySearch.h:166
double eDTL
Definition: EdbEDADecaySearch.h:168
int eNdau
Definition: EdbEDADecaySearch.h:171
EdbEDASmallKink(EdbVertex *v, EdbTrackP *track, EdbSegP *s1, EdbSegP *s2, double dTT, double dTL, double dXT, double dXL, int ndau, double p, double pmin, double pmax, double pt, double rmst, double rmsl)
Definition: EdbEDADecaySearch.h:197
double ePmax
Definition: EdbEDADecaySearch.h:174
double eRMST
Definition: EdbEDADecaySearch.h:176
EdbSegP * S2()
Definition: EdbEDADecaySearch.h:181
Definition: EdbEDADecaySearch.h:9
void SetSegmentFirst(EdbSegP *s)
Definition: EdbEDADecaySearch.h:71
void SetVertexDown(EdbVertex *v)
Definition: EdbEDADecaySearch.h:68
int NFriends()
Definition: EdbEDADecaySearch.h:75
void SetCSTrack(int v)
Definition: EdbEDADecaySearch.h:96
double eIPDown
IP to downstream vertex.
Definition: EdbEDADecaySearch.h:37
void SetVertexUp(EdbVertex *v)
Definition: EdbEDADecaySearch.h:66
int KinkPlate()
Definition: EdbEDADecaySearch.h:91
int eRun
data-set id
Definition: EdbEDADecaySearch.h:30
EdbVertex * VertexUp()
Definition: EdbEDADecaySearch.h:67
EdbVertex * eVertexDown
pointer to downstream vertex
Definition: EdbEDADecaySearch.h:16
int eDarkness
Darkness.
Definition: EdbEDADecaySearch.h:28
int eTrackSearch
flag for Track search
Definition: EdbEDADecaySearch.h:24
void SetIPUp(double ip)
Definition: EdbEDADecaySearch.h:103
void SetFlagDS(int v)
Definition: EdbEDADecaySearch.h:84
double ePmin
momentum min
Definition: EdbEDADecaySearch.h:33
EdbTrackP * GetTrack()
Definition: EdbEDADecaySearch.h:114
EdbTrackP * GetFriend(int i)
Definition: EdbEDADecaySearch.h:76
int eClassification
result of DecaySearch procedure.
Definition: EdbEDADecaySearch.h:23
double Pmax()
Definition: EdbEDADecaySearch.h:111
void SetRun(int v)
Definition: EdbEDADecaySearch.h:98
EdbTrackP * GetDaughter(int i)
Definition: EdbEDADecaySearch.h:81
int eParticle
Particle ID, mu, e,,,,.
Definition: EdbEDADecaySearch.h:27
void Init()
Definition: EdbEDADecaySearch.h:47
int FlagKink()
Definition: EdbEDADecaySearch.h:89
double IPUp()
Definition: EdbEDADecaySearch.h:105
TObjArray * GetFriends()
Definition: EdbEDADecaySearch.h:77
EdbSegP * SegmentFirst()
Definition: EdbEDADecaySearch.h:72
double eIPUp
IP to upstream vertex.
Definition: EdbEDADecaySearch.h:36
EdbSegP * eSegmentFirst
if 1st segment come from different data-set to be used for IP calculation.
Definition: EdbEDADecaySearch.h:17
void SetParticle(int v)
Definition: EdbEDADecaySearch.h:92
EdbVertex * eVertexUp
pointer to upstream vertex
Definition: EdbEDADecaySearch.h:15
void SetDarkness(int v)
Definition: EdbEDADecaySearch.h:94
EdbEDATrackP(EdbTrackP *track, EdbVertex *vtxup)
Definition: EdbEDADecaySearch.h:43
EdbEDATrackP(EdbTrackP *track)
Definition: EdbEDADecaySearch.h:42
int FlagDS()
Definition: EdbEDADecaySearch.h:85
double IPDown()
Definition: EdbEDADecaySearch.h:106
int Darkness()
Definition: EdbEDADecaySearch.h:95
int eCSTrack
CS information.
Definition: EdbEDADecaySearch.h:29
void SetP(double p, double pmin, double pmax)
Definition: EdbEDADecaySearch.h:108
const char * Comment()
Definition: EdbEDADecaySearch.h:64
int eKinkPlate
kink plate
Definition: EdbEDADecaySearch.h:26
EdbTrackP * eParent
pointer of Parent track.
Definition: EdbEDADecaySearch.h:19
double eP
momentum
Definition: EdbEDADecaySearch.h:32
TObjArray * eDaughters
pointers of Daughter tracks.
Definition: EdbEDADecaySearch.h:20
int TrackSearch()
Definition: EdbEDADecaySearch.h:87
void AddFriend(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:74
int CSTrack()
Definition: EdbEDADecaySearch.h:97
void AddDaughter(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:79
int eFlagKink
flag for Kink search
Definition: EdbEDADecaySearch.h:25
void SetIPDown(double ip)
Definition: EdbEDADecaySearch.h:104
double ePmax
momentum max
Definition: EdbEDADecaySearch.h:34
EdbTrackP * eOriginal
pointer to original track
Definition: EdbEDADecaySearch.h:13
int Particle()
Definition: EdbEDADecaySearch.h:93
TObjArray * eFriends
same tracks in defferent data-set
Definition: EdbEDADecaySearch.h:18
void SetClassification(int v)
Definition: EdbEDADecaySearch.h:100
void SetTrackSearch(int v)
Definition: EdbEDADecaySearch.h:86
EdbTrackP * GetOriginal()
Definition: EdbEDADecaySearch.h:113
int NDaughters()
Definition: EdbEDADecaySearch.h:80
EdbVertex * VertexDown()
Definition: EdbEDADecaySearch.h:69
void SetFlagKink(int v)
Definition: EdbEDADecaySearch.h:88
int eFlagDS
flag for Decay search
Definition: EdbEDADecaySearch.h:22
void SetKinkPlate(int v)
Definition: EdbEDADecaySearch.h:90
double P()
Definition: EdbEDADecaySearch.h:109
int Classification()
Definition: EdbEDADecaySearch.h:101
void SetFlagsAuto()
Definition: EdbEDADecaySearch.C:25
EdbEDATrackP()
Definition: EdbEDADecaySearch.h:41
TObjArray * GetDaughters()
Definition: EdbEDADecaySearch.h:82
double Pmin()
Definition: EdbEDADecaySearch.h:110
TString eComment
comment
Definition: EdbEDADecaySearch.h:14
int Run()
Definition: EdbEDADecaySearch.h:99
void SetComment(char *comment)
Definition: EdbEDADecaySearch.h:63
EdbRunTracking eRunTracking
Run Tracking for microtrack search.
Definition: EdbEDATrackSet.h:62
Definition: EdbEDATrackSet.h:178
Definition: EdbPVRec.h:148
void Print()
Definition: EdbRunTracking.cxx:66
Definition: EdbSegP.h:21
Int_t ID() const
Definition: EdbSegP.h:147
Definition: EdbPattern.h:113
EdbSegP * GetSegmentFirst() const
Definition: EdbPattern.h:189
Definition: EdbVertex.h:69
Float_t X() const
Definition: EdbVertex.h:130
void SetXYZ(float x, float y, float z)
Definition: EdbVertex.h:157
Float_t Z() const
Definition: EdbVertex.h:132
Float_t Y() const
Definition: EdbVertex.h:131
Definition: bitview.h:14
EdbScanSet * set
Definition: emtraceback.cpp:14
TTree * t
Definition: check_shower.C:4
s
Definition: check_shower.C:55
TTree * tracks
Definition: check_tr.C:19
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30
Definition: EDACint.cxx:53
#define NULL
Definition: nidaqmx.h:84
p
Definition: testBGReduction_AllMethods.C:8
Int_t type
Definition: testBGReduction_By_ANN.C:15