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"
7 using namespace EdbEDAUtil;
8 
9 class EdbEDATrackP : public EdbTrackP {
10 
11  private:
12 
13  EdbTrackP *eOriginal; // pointer to original track
14  TString eComment; // comment
15  EdbVertex *eVertexUp; // pointer to upstream vertex
16  EdbVertex *eVertexDown; // pointer to downstream vertex
17  EdbSegP *eSegmentFirst; // if 1st segment come from different data-set to be used for IP calculation.
18  TObjArray *eFriends; // same tracks in defferent data-set
19  EdbTrackP *eParent; // pointer of Parent track.
20  TObjArray *eDaughters; // pointers of Daughter tracks.
21 
22  int eFlagDS; // flag for Decay search
23  int eClassification; // result of DecaySearch procedure.
24  int eTrackSearch; // flag for Track search
25  int eFlagKink; // flag for Kink search
26  int eKinkPlate; // kink plate
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  double eIPUp; // IP to upstream vertex
37  double eIPDown; // IP to downstream vertex
38 
39  public:
40 
41  EdbEDATrackP () : EdbTrackP(), eOriginal(0){ Init();}
42  EdbEDATrackP (EdbTrackP *track) : EdbTrackP(*track), eOriginal(track) { Init();}
44  Init();
45  SetVertexUp(vtxup);
46  }
47  void Init(){
48  eVertexUp = eVertexDown = NULL;
49  eSegmentFirst = NULL;
50  eParent = NULL;
51  eFriends = new TObjArray;
52  eDaughters = new TObjArray;
53  eFlagDS = eFlagKink = eKinkPlate = eParticle = eDarkness = eCSTrack = eRun = eClassification = -1;
54  eTrackSearch = 0;
55  eP = ePmin = ePmax = -1;
56  eIPUp = eIPDown = -1;
57 
58  SetFlagsAuto();
59  }
60 
61  void SetFlagsAuto();
62 
63  void SetComment(char *comment) { eComment = comment;}
64  const char *Comment(){ return eComment.Data();}
65 
66  void SetVertexUp(EdbVertex *v) { eVertexUp = v;}
67  EdbVertex *VertexUp() { return eVertexUp;}
68  void SetVertexDown(EdbVertex *v) { eVertexDown = v; eIPDown = CalcIP(SegmentFirst(), eVertexDown);}
69  EdbVertex *VertexDown() { return eVertexDown;}
70 
71  void SetSegmentFirst(EdbSegP *s) { eSegmentFirst = s;}
72  EdbSegP * SegmentFirst(){ return eSegmentFirst ? eSegmentFirst : EdbTrackP::GetSegmentFirst();}
73 
74  void AddFriend(EdbTrackP *t) { if(eFriends->FindObject(t)==NULL) eFriends->Add(t);}
75  int NFriends() { return eFriends->GetEntriesFast();}
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->GetEntriesFast();}
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;}
100  void SetClassification(int v){ eClassification = v;}
101  int Classification() { return eClassification;}
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 
113  EdbTrackP *GetOriginal(){ return eOriginal;}
114  EdbTrackP *GetTrack(){ return eOriginal;}
115  void Print();
116 
117  ClassDef(EdbEDATrackP, 0) // Tracks with DecaySearch information.
118 };
119 
120 class EdbEDADecayVertex : public EdbVertex {
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);
136  EdbEDADecayVertex():ePrimaryVertex(NULL), eParent(NULL), eDaughters(NULL), eType(0) {};
138 
139  void SetParent( EdbEDATrackP *parent);
140  void SetDaughter( EdbEDATrackP *daughter);
141  void SetDaughters( TObjArray *daughters);
142  void SetPartner( EdbEDATrackP *partner) { ePartner = partner;}
143  void SetPrimaryVertex( EdbVertex *v){ ePrimaryVertex = v;}
144 
145  EdbTrackP *GetParent() { return eParent?eParent->GetOriginal():NULL;}
146  EdbTrackP *GetDaughter(int i=0) { return eDaughters ? ((EdbEDATrackP *) eDaughters->At(i))->GetOriginal() : NULL;}
147  EdbTrackP *GetPartner() { return ePartner?ePartner->GetOriginal():NULL;}
148  int NDaughters(){ return eDaughters? eDaughters->GetEntriesFast() : 0;}
149  EdbVertex *GetPrimaryVertex(){ return ePrimaryVertex;}
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 
161 class EdbEDASmallKink : public EdbVertex{
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 
179  EdbTrackP *Track(){return eTrack;}
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{
216  kParentSearch =0x01,
217  kBaseTrackSearch =0x02,
218  kDaughterSearch =0x04
219  };
220 
221  int eDSVer;
222 
224  int eVertexPlatePID; // vertex plate. 1st stream plate from vertex
225 
226  // Found tracks
227  TObjArray *eTracks;
228  TObjArray *eSegments;
229  TObjArray *eVertices;
232 
233  int eTSDau; // Daughter track search
234  int eTSDauNseg; // Nseg cut for Daughter tracks
235  double eTSDauPH; // PH cut for Daughter tracks
236  TH1F *eTSDauIPHist1; // Histgram for IP function along dz.
237 
238  int eMT2seg; // Microtrack search for 2 segment.
239  int eMTAll; // Microtrack search to fill holes and upstream, downstream.
240 
241  int eTSDau2; // Daughter track search. 2nd (after microtrack search)
242  int eTSDauNseg2; // Nseg cut for Daughter tracks. 2nd.
243  TH1F *eTSDauIPHist2; // Histgram for IP function along dz.
244 
245  int eSmallKink; // Small-Kink search
248 
249 
250  int eTSPar; // Parent track search
251  int eTSParPlate; // nPlate to be searched for Parent tracks. eTSParPlate==1:vertex-plate only. eTSParPlate==2:vertex-plate+1plate...
252  int eTSParNseg; // Nseg cut for Parent tracks
253  double eTSParIP; // IP cut for Parent tracks
254  double eTSParPH; // PH cut for Parent tracks
255 
256 
257  int eBT; // Basetrack search
258  int eBTPlateUp; // nplates upstream or Basetrack search
259  int eBTPlateDown; // nplates downstream for Basetrack Search
260  double eBTIP; // IP cut for Basetrack
261  double eBTPH; // PH cut for Basetrack
262 
263  int eVtxUp; // Search Upstream vertex if the ntrk of selected vertex <=3.
264  int eVtxUpDZ; // dz from selected vertex and upstream vertex to be searched.
265  int eVtxUpIP; // Ip cut from the tracks belong to the selected vertex.
266 
267 
268  // Kink Search
269  double eKinkSigma;
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  }
345  virtual ~EdbEDADecaySearch(){}
346 
347  EdbVertex *GetPrimaryVertex(){ return eVertex;}
348  EdbVertex *FindPrimaryVertex();
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->GetEntriesFast();}
379  EdbEDATrackP *GetTrack(int i) { return (EdbEDATrackP *) eTracks->At(i);}
380  int NDecayVertices(){ return eDecayVertices->GetEntriesFast();}
381  EdbEDADecayVertex *GetDecayVertex(int i) { return (EdbEDADecayVertex *)eDecayVertices->At(i);}
382 
383  void SetPVR(EdbPVRec *pvr) { ePVR = pvr;}
384  EdbPVRec *GetPVR() { return ePVR;}
385 
387  eSet = set;
388  SetPVR(set->GetPVRec());
389  }
390  EdbEDATrackSet *GetTrackSet(){ return eSet;}
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) {
398  if(NULL==tracks) tracks=eTracks;
399  for(int i=0;i<tracks->GetEntriesFast();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();
418  if(eSet) eSet->eRunTracking.Print();
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();
473  void DoMicroTrackSearchButton();
474  void Button3(){ printf("Button3\n");}
475 
476  void FindUpstreamVertex();
477 
478  void MakeParamWindow();
479  void MakeFakeVertexButton();
480  ClassDef(EdbEDADecaySearchTab, 0) // Interface for decay search
481 };
482 
483 
484 
485 
486 
487 class EdbEDAFeedbackEntryT : public TNamed{
488 
489  private:
490  EdbTrackP *eTrack;
491  EdbTrackP *eTrackMom;
492  EdbTrackP *eTrackSeg;
493  EdbSegP *eSeg;
494 
495  TGTabElement *eTabElement;
496  TGCompositeFrame *eCompositeFrame;
497  TGTextEntry *eTextEntry;
498  TGTextEntry *eTextEntryFS;
499  TGTextEntry *eTextEntryMom;
500 
501  public:
502  EdbEDAFeedbackEntryT(EdbTrackP *t, TGTab * parent);
504  if(eCompositeFrame) delete eCompositeFrame;
505  if(eTextEntry) delete eTextEntry;
506  }
508  void ReplaceEntry();
509  void UpdateGUI();
510  ClassDef(EdbEDAFeedbackEntryT, 0) // class for feedback entry
511 };
512 
513 class EdbEDAFeedbackEntryV : public TNamed{
514 
515  private:
516  EdbVertex *eVertex;
517  TGTabElement *eTabElement;
518  TGCompositeFrame *eCompositeFrame;
519  TGTextEntry *eTextEntry;
520 
521  public:
522  EdbEDAFeedbackEntryV(EdbVertex *v, TGTab * parent);
524  if(eCompositeFrame) delete eCompositeFrame;
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
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: 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
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
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
TGNumberEntry * fBTPlateDown
Definition: EdbEDADecaySearch.h:452
TGCheckButton * fTSDau2
Definition: EdbEDADecaySearch.h:435
TGCheckButton * fMT2seg
Definition: EdbEDADecaySearch.h:432
TGCheckButton * fMTAll
Definition: EdbEDADecaySearch.h:433
Definition: EdbEDADecaySearch.h:210
double eBTIP
Definition: EdbEDADecaySearch.h:260
int eMT2seg
Definition: EdbEDADecaySearch.h:238
int eTSDau
Definition: EdbEDADecaySearch.h:233
virtual ~EdbEDADecaySearch()
Definition: EdbEDADecaySearch.h:345
int eTSParPlate
Definition: EdbEDADecaySearch.h:251
int eTSDauNseg2
Definition: EdbEDADecaySearch.h:242
EdbVertex * eVertex
Definition: EdbEDADecaySearch.h:223
int eVtxUp
Definition: EdbEDADecaySearch.h:263
EdbVertex * GetPrimaryVertex()
Definition: EdbEDADecaySearch.h:347
TObjArray * eSegments
Definition: EdbEDADecaySearch.h:228
void SetPVR(EdbPVRec *pvr)
Definition: EdbEDADecaySearch.h:383
int eTSPar
Definition: EdbEDADecaySearch.h:250
int eBT
Definition: EdbEDADecaySearch.h:257
EdbEDATrackP * GetTrack(int i)
Definition: EdbEDADecaySearch.h:379
double eTSDauPH
Definition: EdbEDADecaySearch.h:235
int eVtxUpIP
Definition: EdbEDADecaySearch.h:265
TObjArray * eDecayVertices
Definition: EdbEDADecaySearch.h:271
TH1F * eTSDauIPHist1
Definition: EdbEDADecaySearch.h:236
void SetIPHist1(TH1F *h)
Definition: EdbEDADecaySearch.h:392
int NDecayVertices()
Definition: EdbEDADecaySearch.h:380
int eBTPlateUp
Definition: EdbEDADecaySearch.h:258
TH1F * eTSDauIPHist2
Definition: EdbEDADecaySearch.h:243
int eMTAll
Definition: EdbEDADecaySearch.h:239
void SetParentSearch(int do_search=1, int npl=2, float ipcut=20, float phcut=17)
Definition: EdbEDADecaySearch.h:409
TObjArray * GetKinks(void)
Definition: EdbEDADecaySearch.h:405
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
Definition: EdbEDADecaySearch.h:259
double eTSParIP
Definition: EdbEDADecaySearch.h:253
EdbPVRec * GetPVR()
Definition: EdbEDADecaySearch.h:384
int eVertexPlatePID
Definition: EdbEDADecaySearch.h:224
TObjArray * CheckInTrackKinks(TObjArray *tracks=NULL)
Definition: EdbEDADecaySearch.h:397
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 * eVertices
Definition: EdbEDADecaySearch.h:229
float eSmallKinkRmin
Definition: EdbEDADecaySearch.h:247
int eSmallKink
Definition: EdbEDADecaySearch.h:245
double eKinkSigma
Definition: EdbEDADecaySearch.h:269
int eTSDau2
Definition: EdbEDADecaySearch.h:241
EdbEDATrackP * FindTrack(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:371
int eVtxUpDZ
Definition: EdbEDADecaySearch.h:264
void SetTrackSet(EdbEDATrackSet *set)
Definition: EdbEDADecaySearch.h:386
double eBTPH
Definition: EdbEDADecaySearch.h:261
void SetTracks(TObjArray *array)
Definition: EdbEDADecaySearch.h:395
int eSmallKinkNpl
Definition: EdbEDADecaySearch.h:246
int eTSDauNseg
Definition: EdbEDADecaySearch.h:234
double eTSParPH
Definition: EdbEDADecaySearch.h:254
TObjArray * eKinks
Definition: EdbEDADecaySearch.h:270
int eDSVer
Definition: EdbEDADecaySearch.h:221
TObjArray * eTracks
Definition: EdbEDADecaySearch.h:227
int eTSParNseg
Definition: EdbEDADecaySearch.h:252
EdbEDATrackSet * GetTrackSet()
Definition: EdbEDADecaySearch.h:390
EdbEDATrackSet * eSet
Definition: EdbEDADecaySearch.h:231
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
EdbEDADecayVertex * GetDecayVertex(int i)
Definition: EdbEDADecaySearch.h:381
Definition: EdbEDADecaySearch.h:120
bool IsLong()
Definition: EdbEDADecaySearch.h:155
EdbTrackP * GetPartner()
Definition: EdbEDADecaySearch.h:147
EdbTrackP * GetDaughter(int i=0)
Definition: EdbEDADecaySearch.h:146
void SetType(int type)
Definition: EdbEDADecaySearch.h:151
EdbEDADecayVertex()
Definition: EdbEDADecaySearch.h:136
void SetPartner(EdbEDATrackP *partner)
Definition: EdbEDADecaySearch.h:142
EdbEDATrackP * eParent
Definition: EdbEDADecaySearch.h:125
bool IsSmallKink()
Definition: EdbEDADecaySearch.h:156
EdbVertex * GetPrimaryVertex()
Definition: EdbEDADecaySearch.h:149
int NDaughters()
Definition: EdbEDADecaySearch.h:148
bool IsType(int type)
Definition: EdbEDADecaySearch.h:153
EdbVertex * ePrimaryVertex
Definition: EdbEDADecaySearch.h:124
EdbEDATrackP * ePartner
Definition: EdbEDADecaySearch.h:126
EdbTrackP * GetParent()
Definition: EdbEDADecaySearch.h:145
int Type()
Definition: EdbEDADecaySearch.h:152
bool IsShort()
Definition: EdbEDADecaySearch.h:154
void SetPrimaryVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.h:143
int eType
Definition: EdbEDADecaySearch.h:129
TopologyType
Definition: EdbEDADecaySearch.h:132
TObjArray * eDaughters
Definition: EdbEDADecaySearch.h:127
Definition: EdbDecaySearch.h:530
void HandleButtons(Int_t id)
void RemoveTrackTab(Int_t id)
void RemoveVertexTab(Int_t id)
void HilightElementT(Int_t id)
void HilightElementV(Int_t id)
Definition: EdbDecaySearch.h:483
EdbEDAFeedbackEntryT(EdbTrackP *t, TGTab *parent)
~EdbEDAFeedbackEntryT()
Definition: EdbEDADecaySearch.h:503
Definition: EdbDecaySearch.h:509
EdbEDAFeedbackEntryV(EdbVertex *v, TGTab *parent)
~EdbEDAFeedbackEntryV()
Definition: EdbEDADecaySearch.h:523
Definition: EdbEDADecaySearch.h:161
double DXL()
Definition: EdbEDADecaySearch.h:185
EdbSegP * eS1
Definition: EdbEDADecaySearch.h:165
double DTT()
Definition: EdbEDADecaySearch.h:182
double P()
Definition: EdbEDADecaySearch.h:187
double eP
Definition: EdbEDADecaySearch.h:172
EdbSegP * S2()
Definition: EdbEDADecaySearch.h:181
int Ndau()
Definition: EdbEDADecaySearch.h:186
double ePT
Definition: EdbEDADecaySearch.h:175
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
EdbSegP * S1()
Definition: EdbEDADecaySearch.h:180
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
Definition: EdbEDADecaySearch.h:9
void SetSegmentFirst(EdbSegP *s)
Definition: EdbEDADecaySearch.h:71
const char * Comment()
Definition: EdbEDADecaySearch.h:64
void SetVertexDown(EdbVertex *v)
Definition: EdbEDADecaySearch.h:68
int NFriends()
Definition: EdbEDADecaySearch.h:75
void SetCSTrack(int v)
Definition: EdbEDADecaySearch.h:96
double eIPDown
Definition: EdbEDADecaySearch.h:37
void SetVertexUp(EdbVertex *v)
Definition: EdbEDADecaySearch.h:66
int KinkPlate()
Definition: EdbEDADecaySearch.h:91
EdbVertex * VertexUp()
Definition: EdbEDADecaySearch.h:67
int eRun
Definition: EdbEDADecaySearch.h:30
EdbTrackP * GetOriginal()
Definition: EdbEDADecaySearch.h:113
EdbVertex * eVertexDown
Definition: EdbEDADecaySearch.h:16
int eDarkness
Definition: EdbEDADecaySearch.h:28
int eTrackSearch
Definition: EdbEDADecaySearch.h:24
void SetIPUp(double ip)
Definition: EdbEDADecaySearch.h:103
void SetFlagDS(int v)
Definition: EdbEDADecaySearch.h:84
EdbSegP * SegmentFirst()
Definition: EdbEDADecaySearch.h:72
double ePmin
Definition: EdbEDADecaySearch.h:33
int eClassification
Definition: EdbEDADecaySearch.h:23
double Pmax()
Definition: EdbEDADecaySearch.h:111
void SetRun(int v)
Definition: EdbEDADecaySearch.h:98
int eParticle
Definition: EdbEDADecaySearch.h:27
void Init()
Definition: EdbEDADecaySearch.h:47
int FlagKink()
Definition: EdbEDADecaySearch.h:89
double IPUp()
Definition: EdbEDADecaySearch.h:105
double eIPUp
Definition: EdbEDADecaySearch.h:36
EdbVertex * VertexDown()
Definition: EdbEDADecaySearch.h:69
TObjArray * GetFriends()
Definition: EdbEDADecaySearch.h:77
EdbSegP * eSegmentFirst
Definition: EdbEDADecaySearch.h:17
void SetParticle(int v)
Definition: EdbEDADecaySearch.h:92
EdbVertex * eVertexUp
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
Definition: EdbEDADecaySearch.h:29
void SetP(double p, double pmin, double pmax)
Definition: EdbEDADecaySearch.h:108
int eKinkPlate
Definition: EdbEDADecaySearch.h:26
EdbTrackP * eParent
Definition: EdbEDADecaySearch.h:19
double eP
Definition: EdbEDADecaySearch.h:32
TObjArray * eDaughters
Definition: EdbEDADecaySearch.h:20
int TrackSearch()
Definition: EdbEDADecaySearch.h:87
TObjArray * GetDaughters()
Definition: EdbEDADecaySearch.h:82
void AddFriend(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:74
int CSTrack()
Definition: EdbEDADecaySearch.h:97
void AddDaughter(EdbTrackP *t)
Definition: EdbEDADecaySearch.h:79
int eFlagKink
Definition: EdbEDADecaySearch.h:25
void SetIPDown(double ip)
Definition: EdbEDADecaySearch.h:104
double ePmax
Definition: EdbEDADecaySearch.h:34
EdbTrackP * eOriginal
Definition: EdbEDADecaySearch.h:13
int Particle()
Definition: EdbEDADecaySearch.h:93
TObjArray * eFriends
Definition: EdbEDADecaySearch.h:18
void SetClassification(int v)
Definition: EdbEDADecaySearch.h:100
void SetTrackSearch(int v)
Definition: EdbEDADecaySearch.h:86
int NDaughters()
Definition: EdbEDADecaySearch.h:80
void SetFlagKink(int v)
Definition: EdbEDADecaySearch.h:88
int eFlagDS
Definition: EdbEDADecaySearch.h:22
EdbTrackP * GetFriend(int i)
Definition: EdbEDADecaySearch.h:76
EdbTrackP * GetTrack()
Definition: EdbEDADecaySearch.h:114
void SetKinkPlate(int v)
Definition: EdbEDADecaySearch.h:90
EdbTrackP * GetDaughter(int i)
Definition: EdbEDADecaySearch.h:81
double P()
Definition: EdbEDADecaySearch.h:109
int Classification()
Definition: EdbEDADecaySearch.h:101
EdbEDATrackP()
Definition: EdbEDADecaySearch.h:41
double Pmin()
Definition: EdbEDADecaySearch.h:110
TString eComment
Definition: EdbEDADecaySearch.h:14
int Run()
Definition: EdbEDADecaySearch.h:99
void SetComment(char *comment)
Definition: EdbEDADecaySearch.h:63
EdbRunTracking eRunTracking
Definition: EdbEDATrackSet.h:62
Definition: EdbEDATrackSet.h:178
Definition: EdbPVRec.h:148
void Print()
Definition: EdbRunTracking.cxx:65
Definition: EdbSegP.h:18
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
EdbScanSet * set
Definition: emtraceback.cpp: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
EdbSegment * eSeg
Definition: EdbViewRec.cxx:850
#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