2 #ifndef __Analysis_DecaySearch_h__
3 #define __Analysis_DecaySearch_h__
45 eVertexUp = eVertexDown =
NULL;
48 eFriends =
new TObjArray;
49 eDaughters =
new TObjArray;
50 eFlagDS = eFlagKink = eKinkPlate = eParticle = eDarkness = eCSTrack = eRun = eClassification = -1;
52 eP = ePmin = ePmax = -1;
60 const char *
Comment(){
return eComment.Data();}
71 int NFriends() {
return eFriends->GetEntries();}
95 int Run() {
return eRun;}
102 void SetP(
double p,
double pmin,
double pmax){
eP=
p; ePmin=pmin; ePmax=pmax;}
135 void SetDaughters( TObjArray *daughters);
142 int NDaughters(){
return eDaughters? eDaughters->GetEntries() : 0;}
176 double DTT(){
return eDTT;}
177 double DTL(){
return eDTL;}
178 double DXT(){
return eDXT;}
179 double DXL(){
return eDXL;}
184 double PT(){
return ePT;}
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)
196 SetXYZ(v->
X(),v->
Y(),v->
Z());
200 void Draw(Option_t *option=
"");
211 kBaseTrackSearch =0x02,
212 kDaughterSearch =0x04
275 eTracks (new TObjArray),
276 eSegments (new TObjArray),
277 eVertices (new TObjArray),
312 eKinks (new TObjArray),
317 eDecayVertices(new TObjArray)
321 float ipcutdau_lt_1 = eDSVer==1 ? 500 : 300;
322 float ipcutdau_gt_1 = eDSVer==1 ? 800 : 500;
324 if(gDirectory->Get(
"eTSDauIPHist1")) gDirectory->Delete(
"eTSDauIPHist1");
325 eTSDauIPHist1 =
new TH1F (
"eTSDauIPHist1",
"IP cut function along dZ, 1st.", 121, -100, 12000);
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);
336 if(gDirectory->Get(
"eTSDauIPHist1")) gDirectory->Delete(
"eTSDauIPHist2");
337 eTSDauIPHist2 =
new TH1F (
"eTSDauIPHist2",
"IP cut function along dZ, 2nd", 121, -100, 12000);
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);
355 TObjArray * TSDaughterTracks (TObjArray *base);
356 double GetTSDauIP1(
double dz);
358 void MTSearch2seg(TObjArray *
tracks);
359 void MTSearchAll(TObjArray *
tracks);
361 void TSDaughterTracks2 ();
362 double GetTSDauIP2(
double dz);
364 void SmallKinkSearch();
367 void ShortDecaySearch();
369 TObjArray * TSParentTracks (TObjArray *base);
370 TObjArray * TSBaseTracks(
int ipl);
371 TObjArray * FindUpstreamVertices();
373 TObjArray * DoSearch();
376 for(
int i=0;i<Ntracks();i++){
377 if(GetTrack(i)->ID()==
t->ID())
return GetTrack(i);
397 for(
int i=0;i<
tracks->GetEntries();i++) {
402 TObjArray *CheckInTrackKink(
EdbTrackP *trk);
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;}
408 eTSPar = do_search; eTSParPlate = npl; eTSParIP = ipcut; eTSParPH = phcut;}
410 eSmallKink = do_search; eSmallKinkNpl = npl_down; eSmallKinkRmin = Rmin;}
463 if(eParamWindow) eParamWindow->CloseWindow();
500 if(eCompositeFrame)
delete eCompositeFrame;
501 if(eTextEntry)
delete eTextEntry;
503 void HilightElement();
520 if(eCompositeFrame)
delete eCompositeFrame;
521 if(eTextEntry)
delete eTextEntry;
523 void HilightElement();
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);
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: 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
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
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