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