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"
6 using namespace EdbEDAUtil;
7 
8 class EdbTrackDS : public EdbTrackP {
9 
10  private:
11 
12  EdbTrackP *eOriginal; // pointer to original track
13  TString eComment; // comment
14  EdbVertex *eVertexUp; // pointer to upstream vertex
15  EdbVertex *eVertexDown; // pointer to downstream vertex
16  EdbSegP *eSegmentFirst; // if 1st segment come from different data-set to be used for IP calculation.
17  TObjArray *eFriends; // same tracks in defferent data-set
18  EdbTrackP *eParent; // pointer of Parent track.
19  TObjArray *eDaughters; // pointers of Daughter tracks.
20 
21  int eFlagDS; // flag for Decay search
22  int eClassification; // result of DecaySearch procedure.
23  int eTrackSearch; // flag for Track search
24  int eFlagKink; // flag for Kink search
25  int eKinkPlate; // kink plate
26 
27  int eParticle; // Particle ID, mu, e,,,,
28  int eDarkness; // Darkness
29  int eCSTrack; // CS information
30  int eRun; // data-set id
31 
32  double eP; // momentum
33  double ePmin; // momentum min
34  double ePmax; // momentum max
35 
36  public:
37 
38  EdbTrackDS () : EdbTrackP(), eOriginal(0){ Init();}
39  EdbTrackDS (EdbTrackP *track) : EdbTrackP(*track), eOriginal(track) { Init();}
40  EdbTrackDS (EdbTrackP *track, EdbVertex *vtxup): EdbTrackP(*track), eOriginal(track){
41  Init();
42  SetVertexUp(vtxup);
43  }
44  void Init(){
45  eVertexUp = eVertexDown = NULL;
46  eSegmentFirst = NULL;
47  eParent = NULL;
48  eFriends = new TObjArray;
49  eDaughters = new TObjArray;
50  eFlagDS = eFlagKink = eKinkPlate = eParticle = eDarkness = eCSTrack = eRun = eClassification = -1;
51  eTrackSearch = 0;
52  eP = ePmin = ePmax = -1;
53 
54  SetFlagsAuto();
55  }
56 
57  void SetFlagsAuto();
58 
59  void SetComment(char *comment) { eComment = comment;}
60  const char *Comment(){ return eComment.Data();}
61 
62  void SetVertexUp(EdbVertex *v) { eVertexUp = v;}
63  EdbVertex *VertexUp() { return eVertexUp;}
64  void SetVertexDown(EdbVertex *v) { eVertexDown = v; }
65  EdbVertex *VertexDown() { return eVertexDown;}
66 
67  void SetSegmentFirst(EdbSegP *s) { eSegmentFirst = s;}
68  EdbSegP * SegmentFirst(){ return eSegmentFirst ? eSegmentFirst : EdbTrackP::GetSegmentFirst();}
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;}
96  void SetClassification(int v){ eClassification = v;}
97  int Classification() { return eClassification;}
98 
99  double IPUp() { return eVertexUp ? EdbEDAUtil::CalcIP(SegmentFirst(), eVertexUp) : -1.0;}
100  double IPDown(){ return eVertexDown ? EdbEDAUtil::CalcIP(GetSegmentLast(), eVertexDown) : -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 
107  EdbTrackP *GetOriginal(){ return eOriginal;}
108  EdbTrackP *GetTrack(){ return eOriginal;}
109  void Print();
110 
111  ClassDef(EdbTrackDS, 0) // Tracks with DecaySearch information.
112 };
113 
114 class 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);
130  EdbDecayVertex():ePrimaryVertex(NULL), eParent(NULL), eDaughters(NULL), eType(0) {};
131  ~EdbDecayVertex();
132 
133  void SetParent( EdbTrackDS *parent);
134  void SetDaughter( EdbTrackDS *daughter);
135  void SetDaughters( TObjArray *daughters);
136  void SetPartner( EdbTrackDS *partner) { ePartner = partner;}
137  void SetPrimaryVertex( EdbVertex *v){ ePrimaryVertex = v;}
138 
139  EdbTrackP *GetParent() { return eParent?eParent->GetOriginal():NULL;}
140  EdbTrackP *GetDaughter(int i=0) { return eDaughters ? ((EdbTrackDS *) eDaughters->At(i))->GetOriginal() : NULL;}
141  EdbTrackP *GetPartner() { return ePartner?ePartner->GetOriginal():NULL;}
142  int NDaughters(){ return eDaughters? eDaughters->GetEntries() : 0;}
143  EdbVertex *GetPrimaryVertex(){ return ePrimaryVertex;}
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) // General decay vertex.
152 
153 };
154 
155 class 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 
173  EdbTrackP *Track(){return eTrack;}
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 };
203 
205  // Decay Search class
206 
207  public:
208 
209  enum{
210  kParentSearch =0x01,
211  kBaseTrackSearch =0x02,
212  kDaughterSearch =0x04
213  };
214 
215  int eDSVer;
216 
218  int eVertexPlatePID; // vertex plate. 1st stream plate from vertex
219 
220  // Found tracks
221  TObjArray *eTracks;
222  TObjArray *eSegments;
223  TObjArray *eVertices;
225  // EdbEDATrackSet *eSet;
226 
227  int eTSDau; // Daughter track search
228  int eTSDauNseg; // Nseg cut for Daughter tracks
229  double eTSDauPH; // PH cut for Daughter tracks
230  TH1F *eTSDauIPHist1; // Histgram for IP function along dz.
231 
232  int eMT2seg; // Microtrack search for 2 segment.
233  int eMTAll; // Microtrack search to fill holes and upstream, downstream.
234 
235  int eTSDau2; // Daughter track search. 2nd (after microtrack search)
236  int eTSDauNseg2; // Nseg cut for Daughter tracks. 2nd.
237  TH1F *eTSDauIPHist2; // Histgram for IP function along dz.
238 
239  int eSmallKink; // Small-Kink search
242 
243 
244  int eTSPar; // Parent track search
245  int eTSParPlate; // nPlate to be searched for Parent tracks. eTSParPlate==1:vertex-plate only. eTSParPlate==2:vertex-plate+1plate...
246  int eTSParNseg; // Nseg cut for Parent tracks
247  double eTSParIP; // IP cut for Parent tracks
248  double eTSParPH; // PH cut for Parent tracks
249 
250 
251  int eBT; // Basetrack search
252  int eBTPlateUp; // nplates upstream or Basetrack search
253  int eBTPlateDown; // nplates downstream for Basetrack Search
254  double eBTIP; // IP cut for Basetrack
255  double eBTPH; // PH cut for Basetrack
256 
257  int eVtxUp; // Search Upstream vertex if the ntrk of selected vertex <=3.
258  int eVtxUpDZ; // dz from selected vertex and upstream vertex to be searched.
259  int eVtxUpIP; // Ip cut from the tracks belong to the selected vertex.
260 
261 
262  // Kink Search
264  double eKinkSigma;
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 
351  EdbVertex *GetPrimaryVertex(){ return eVertex;}
352  EdbVertex *FindPrimaryVertex();
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();}
385  EdbDecayVertex *GetDecayVertex(int i) { return (EdbDecayVertex *)eDecayVertices->At(i);}
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) {
396  if(NULL==tracks) tracks=eTracks;
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 
421 
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();
466  void ApplyParams();
470  void Button3(){ printf("Button3\n");}
471 
473 
476  ClassDef(EdbDecaySearchTab, 0) // Interface for decay search
477 };
478 
479 
480 
481 
482 
483 class 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);
500  if(eCompositeFrame) delete eCompositeFrame;
501  if(eTextEntry) delete eTextEntry;
502  }
503  void HilightElement();
504  void ReplaceEntry();
505  void UpdateGUI();
506  ClassDef(EdbEDAFeedbackEntryT, 0) // class for feedback entry
507 };
508 
509 class EdbEDAFeedbackEntryV : public TNamed{
510 
511  private:
513  TGTabElement *eTabElement;
514  TGCompositeFrame *eCompositeFrame;
515  TGTextEntry *eTextEntry;
516 
517  public:
518  EdbEDAFeedbackEntryV(EdbVertex *v, TGTab * parent);
520  if(eCompositeFrame) delete eCompositeFrame;
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;
536  TGTab * fTabVertices;
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
double eP
Definition: EdbPhys.cxx:167
brick dz
Definition: RecDispMC.C:107
TTree * t
Definition: check_shower.C:4
t Draw("sizeb>>NbBT", cut2)
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
Definition: EdbDecaySearch.h:204
double eTSParIP
Definition: EdbDecaySearch.h:247
int eVertexPlatePID
Definition: EdbDecaySearch.h:218
EdbTrackDS * FindTrack(EdbTrackP *t)
Definition: EdbDecaySearch.h:375
TH1F * eTSDauIPHist2
Definition: EdbDecaySearch.h:237
TObjArray * CheckInTrackKinks(TObjArray *tracks=NULL)
Definition: EdbDecaySearch.h:395
int eBTPlateDown
Definition: EdbDecaySearch.h:253
void SetSmallKinkSearch(int do_search=1, int npl_down=5, float Rmin=5.)
Definition: EdbDecaySearch.h:409
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
Definition: EdbDecaySearch.h:232
int Ntracks()
Definition: EdbDecaySearch.h:382
int eSmallKink
Definition: EdbDecaySearch.h:239
int eTSParPlate
Definition: EdbDecaySearch.h:245
EdbTrackDS * GetTrack(int i)
Definition: EdbDecaySearch.h:383
int eBTPlateUp
Definition: EdbDecaySearch.h:252
int NDecayVertices()
Definition: EdbDecaySearch.h:384
void SetIPHist1(TH1F *h)
Definition: EdbDecaySearch.h:390
int eVtxUpIP
Definition: EdbDecaySearch.h:259
virtual ~EdbDecaySearch()
Definition: EdbDecaySearch.h:349
int eTSDau
Definition: EdbDecaySearch.h:227
double eKinkSigma
Definition: EdbDecaySearch.h:264
int eVtxUpDZ
Definition: EdbDecaySearch.h:258
EdbPVRec * GetPVR()
Definition: EdbDecaySearch.h:388
int eTSPar
Definition: EdbDecaySearch.h:244
EdbDecaySearch(int DSversion=2)
Definition: EdbDecaySearch.h:272
TObjArray * eVertices
Definition: EdbDecaySearch.h:223
int eTSDauNseg
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
Definition: EdbDecaySearch.h:257
EdbDecayVertex * GetDecayVertex(int i)
Definition: EdbDecaySearch.h:385
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
double eTSDauPH
Definition: EdbDecaySearch.h:229
int eTSDau2
Definition: EdbDecaySearch.h:235
EdbPVRec * ePVR
Definition: EdbDecaySearch.h:224
void SetKinkSearch(int do_search)
Definition: EdbDecaySearch.h:412
int eMTAll
Definition: EdbDecaySearch.h:233
double eBTPH
Definition: EdbDecaySearch.h:255
double eTSParPH
Definition: EdbDecaySearch.h:248
EdbVertex * GetPrimaryVertex()
Definition: EdbDecaySearch.h:351
void SetIPHist2(TH1F *h)
Definition: EdbDecaySearch.h:391
int eDSVer
Definition: EdbDecaySearch.h:215
int eTSParNseg
Definition: EdbDecaySearch.h:246
int eShortDecay
Definition: EdbDecaySearch.h:269
double eBTIP
Definition: EdbDecaySearch.h:254
EdbVertex * eVertex
Definition: EdbDecaySearch.h:217
TH1F * eTSDauIPHist1
Definition: EdbDecaySearch.h:230
float eSmallKinkRmin
Definition: EdbDecaySearch.h:241
int eBT
Definition: EdbDecaySearch.h:251
TObjArray * GetKinks(void)
Definition: EdbDecaySearch.h:403
TObjArray * eDecayVertices
Definition: EdbDecaySearch.h:266
int eTSDauNseg2
Definition: EdbDecaySearch.h:236
void SetShortDecaySearch(int do_search)
Definition: EdbDecaySearch.h:413
Definition: EdbDecaySearch.h:114
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
int eType
Definition: EdbDecaySearch.h:123
EdbVertex * GetPrimaryVertex()
Definition: EdbDecaySearch.h:143
bool IsLong()
Definition: EdbDecaySearch.h:149
EdbVertex * ePrimaryVertex
Definition: EdbDecaySearch.h:118
EdbTrackDS * ePartner
Definition: EdbDecaySearch.h:120
EdbDecayVertex()
Definition: EdbDecaySearch.h:130
void SetPrimaryVertex(EdbVertex *v)
Definition: EdbDecaySearch.h:137
EdbTrackP * GetDaughter(int i=0)
Definition: EdbDecaySearch.h:140
EdbTrackP * GetParent()
Definition: EdbDecaySearch.h:139
int NDaughters()
Definition: EdbDecaySearch.h:142
int Type()
Definition: EdbDecaySearch.h:146
TObjArray * eDaughters
Definition: EdbDecaySearch.h:121
void SetPartner(EdbTrackDS *partner)
Definition: EdbDecaySearch.h:136
EdbTrackP * GetPartner()
Definition: EdbDecaySearch.h:141
void SetType(int type)
Definition: EdbDecaySearch.h:145
bool IsSmallKink()
Definition: EdbDecaySearch.h:150
Definition: EdbDecaySearch.h:530
TGTextButton * eButton1
Definition: EdbDecaySearch.h:532
TGCompositeFrame * fMainFrame
Definition: EdbDecaySearch.h:534
TGTab * fTabTracks
Definition: EdbDecaySearch.h:535
TObjArray * fVertexEntries
Definition: EdbDecaySearch.h:538
TGTab * fTabVertices
Definition: EdbDecaySearch.h:536
TObjArray * fTrackEntries
Definition: EdbDecaySearch.h:537
Definition: EdbDecaySearch.h:483
EdbTrackP * eTrackSeg
Definition: EdbDecaySearch.h:488
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: EdbDecaySearch.h:499
EdbTrackP * eTrackMom
Definition: EdbDecaySearch.h:487
EdbSegP * eSeg
Definition: EdbDecaySearch.h:489
TGTextEntry * eTextEntryFS
Definition: EdbDecaySearch.h:494
EdbTrackP * eTrack
Definition: EdbDecaySearch.h:486
Definition: EdbDecaySearch.h:509
TGCompositeFrame * eCompositeFrame
Definition: EdbDecaySearch.h:514
TGTabElement * eTabElement
Definition: EdbDecaySearch.h:513
EdbVertex * eVertex
Definition: EdbDecaySearch.h:512
~EdbEDAFeedbackEntryV()
Definition: EdbDecaySearch.h:519
TGTextEntry * eTextEntry
Definition: EdbDecaySearch.h:515
Definition: EdbPVRec.h:148
Definition: EdbSegP.h:18
Definition: EdbDecaySearch.h:155
double ePmax
Definition: EdbDecaySearch.h:168
EdbTrackP * eTrack
Definition: EdbDecaySearch.h:158
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
EdbSegP * S2()
Definition: EdbDecaySearch.h:175
EdbTrackP * Track()
Definition: EdbDecaySearch.h:173
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
double eDXT
Definition: EdbDecaySearch.h:163
EdbSegP * S1()
Definition: EdbDecaySearch.h:174
double eRMST
Definition: EdbDecaySearch.h:170
double eDTT
Definition: EdbDecaySearch.h:161
double Pmin()
Definition: EdbDecaySearch.h:182
double DTL()
Definition: EdbDecaySearch.h:177
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
int eParticle
Definition: EdbDecaySearch.h:27
void SetTrackSearch(int v)
Definition: EdbDecaySearch.h:82
void Print()
int FlagDS()
Definition: EdbDecaySearch.h:81
EdbVertex * VertexDown()
Definition: EdbDecaySearch.h:65
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
Definition: EdbDecaySearch.h:21
EdbTrackP * GetTrack()
Definition: EdbDecaySearch.h:108
EdbTrackP * eParent
Definition: EdbDecaySearch.h:18
void SetDarkness(int v)
Definition: EdbDecaySearch.h:90
TObjArray * eDaughters
Definition: EdbDecaySearch.h:19
int Particle()
Definition: EdbDecaySearch.h:89
TString eComment
Definition: EdbDecaySearch.h:13
int eFlagKink
Definition: EdbDecaySearch.h:24
void Init()
Definition: EdbDecaySearch.h:44
int eCSTrack
Definition: EdbDecaySearch.h:29
EdbTrackDS(EdbTrackP *track, EdbVertex *vtxup)
Definition: EdbDecaySearch.h:40
int TrackSearch()
Definition: EdbDecaySearch.h:83
EdbSegP * eSegmentFirst
Definition: EdbDecaySearch.h:16
EdbVertex * VertexUp()
Definition: EdbDecaySearch.h:63
int eTrackSearch
Definition: EdbDecaySearch.h:23
int FlagKink()
Definition: EdbDecaySearch.h:85
double ePmax
Definition: EdbDecaySearch.h:34
double Pmax()
Definition: EdbDecaySearch.h:105
void SetCSTrack(int v)
Definition: EdbDecaySearch.h:92
const char * Comment()
Definition: EdbDecaySearch.h:60
double IPUp()
Definition: EdbDecaySearch.h:99
int eKinkPlate
Definition: EdbDecaySearch.h:25
double Pmin()
Definition: EdbDecaySearch.h:104
int KinkPlate()
Definition: EdbDecaySearch.h:87
TObjArray * eFriends
Definition: EdbDecaySearch.h:17
double ePmin
Definition: EdbDecaySearch.h:33
double P()
Definition: EdbDecaySearch.h:103
double eP
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
void SetFlagKink(int v)
Definition: EdbDecaySearch.h:84
EdbTrackP * GetOriginal()
Definition: EdbDecaySearch.h:107
EdbTrackP * eOriginal
Definition: EdbDecaySearch.h:12
EdbTrackDS()
Definition: EdbDecaySearch.h:38
TObjArray * GetFriends()
Definition: EdbDecaySearch.h:73
int eClassification
Definition: EdbDecaySearch.h:22
EdbTrackP * GetFriend(int i)
Definition: EdbDecaySearch.h:72
int eRun
Definition: EdbDecaySearch.h:30
EdbSegP * SegmentFirst()
Definition: EdbDecaySearch.h:68
int NDaughters()
Definition: EdbDecaySearch.h:76
TObjArray * GetDaughters()
Definition: EdbDecaySearch.h:78
void SetFlagDS(int v)
Definition: EdbDecaySearch.h:80
void SetComment(char *comment)
Definition: EdbDecaySearch.h:59
EdbTrackP * GetDaughter(int i)
Definition: EdbDecaySearch.h:77
int eDarkness
Definition: EdbDecaySearch.h:28
void SetKinkPlate(int v)
Definition: EdbDecaySearch.h:86
EdbVertex * eVertexUp
Definition: EdbDecaySearch.h:14
EdbVertex * eVertexDown
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
void AddDaughter(EdbTrackP *t)
Definition: EdbDecaySearch.h:75
Definition: EdbPattern.h:118
EdbSegP * GetSegmentFirst() const
Definition: EdbPattern.h:194
Definition: EdbVertex.h:68
Float_t X() const
Definition: EdbVertex.h:130
Float_t Z() const
Definition: EdbVertex.h:132
Float_t Y() const
Definition: EdbVertex.h:131
Definition: bitview.h:14
TTree * tracks
Definition: check_tr.C:19
Definition: EdbEDAUtil.h:78
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
ePVR
Definition: testBGReduction_By_ANN.C:3
EdbSegP * s1
Definition: tlg2pattern.C:30
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32