]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/TakuAlberica/pair/ana_sgl.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / TakuAlberica / pair / ana_sgl.h
CommitLineData
06f630bb 1//////////////////////////////////////////////////////////
2// This class has been automatically generated on
3// Thu Jun 9 22:36:19 2011 by ROOT version 5.28/00d
4// from TTree tree_MultiDie_CENT1/single
5// found on file: Resultstakuv2c123456AnalysisResults_t.root
6//////////////////////////////////////////////////////////
7
8#ifndef ana_sgl_h
9#define ana_sgl_h
10
11#include <iostream>
12#include <TROOT.h>
13#include <TChain.h>
14#include <TFile.h>
15#include <TH1.h>
16#include <TH2.h>
17#include <TDirectory.h>
18#include <vector>
19#include <deque>
20#include <cstdlib>
21#include <TMath.h>
22
23using namespace std;
24
25
26class etrk;
27
28struct etrk{
29 etrk(double Cent=0, double PXv=0, double PYv=0, double PZv=0,
30 double Xv=0, double Yv=0, double Zv=0,
31 double Px=0, double Py=0, double Pz=0, double Pt=0,
32 double Eta=0, double Phi=0, double Theta=0, double Tpc=0, double Beta=0,
33 double E=0, double dPhi=0, double dEta=0,
34 double Ntpc_ele1=0,double Ntpc_pio1=0,double Ntpc_kao1=0, double Ntpc_pro1=0,
35 double Ntof_ele1=0,double Ntof_pio1=0,double Ntof_kao1=0, double Ntof_pro1=0,
36 double Its=0, double Nits=0, double Ntpc=0, double Dcaxy=0, double Dcaz=0)
37 :
38 cent(Cent), pxv(PXv), pyv(PYv), pzv(PZv),
39 xv(Xv), yv(Yv), zv(Zv),
40 px(Px), py(Py), pz(Pz), pt(Pt),
41 eta(Eta), phi(Phi), theta(Theta), tpc(Tpc), beta(Beta),
42 e(E), dphi(dPhi), deta(dEta),
43 ntpc_ele(Ntpc_ele1), ntpc_pio(Ntpc_pio1), ntpc_kao(Ntpc_kao1), ntpc_pro(Ntpc_pro1),
44 ntof_ele(Ntof_ele1), ntof_pio(Ntof_pio1), ntof_kao(Ntof_kao1), ntof_pro(Ntof_pro1),
45 its(Its), nits(Nits), ntpc(Ntpc), dcaxy(Dcaxy), dcaz(Dcaz)
46 {
47 conv_flag = 1;
48 ghost_flag = 1;
49 }
50
51 double E(void){TMath::Sqrt(me*me+px*px+py*py+pz*pz);}
52 double p(void){TMath::Sqrt(px*px+py*py+pz*pz);}
53
54private:
55 static const float me=0.000511;
56public:
57 double cent;
58 double pxv;
59 double pyv;
60 double pzv;
61 double xv;
62 double yv;
63 double zv;
64 double px;
65 double py;
66 double pz;
67 double pt;
68 double eta;
69 double phi;
70 double theta;
71 double tpc;
72 double beta;
73 double e;
74 double dphi;
75 double deta;
76 double ntpc_ele;
77 double ntpc_pio;
78 double ntpc_kao;
79 double ntpc_pro;
80 double ntof_ele;
81 double ntof_pio;
82 double ntof_kao;
83 double ntof_pro;
84 double its;
85 double nits;
86 double ntpc;
87 double dcaxy;
88 double dcaz;
89 int conv_flag;
90 int ghost_flag;
91};
92
93
94class ana_sgl {
95public :
96 TTree *fChain; //!pointer to the analyzed TTree or TChain
97 Int_t fCurrent; //!current Tree number in a TChain
98
99 // Declaration of leaf types
100 Int_t kNEvent;
101 Double_t kMag;
102 TObjArray *fkTriggerInfo;
103 Double_t kTriggerMask;
104 Int_t kTriggerCent;
105 Double_t fkNCut;
106 Double_t fkRunNumber;
107 Double_t fkCentrality;
108 Double_t fkXvPrim;
109 Double_t fkYvPrim;
110 Double_t fkZvPrim;
111 Double_t fkXRes;
112 Double_t fkYRes;
113 Double_t fkZRes;
114 Double_t fkNTrk;
115 Double_t fkTracks;
116 Double_t fkNacc;
117 Double_t fkNaccTrcklts;
118 Double_t fkNch;
119 Double_t fkZDCN1E;
120 Double_t fkZDCP1E;
121 Double_t fkZDCN2E;
122 Double_t fkZDCP2E;
123 Double_t fkV0A;
124 Double_t fkV0C;
125 Int_t fkNPar;
126 Double_t kPx[200]; //[fkNPar]
127 Double_t kPy[200]; //[fkNPar]
128 Double_t kPz[200]; //[fkNPar]
129 Double_t kPt[200]; //[fkNPar]
130 Double_t kP[200]; //[fkNPar]
131 Double_t kXv[200]; //[fkNPar]
132 Double_t kYv[200]; //[fkNPar]
133 Double_t kZv[200]; //[fkNPar]
134 Double_t kOneOverPt[200]; //[fkNPar]
135 Double_t kPhi[200]; //[fkNPar]
136 Double_t kTheta[200]; //[fkNPar]
137 Double_t kEta[200]; //[fkNPar]
138 Double_t kY[200]; //[fkNPar]
139 Double_t kE[200]; //[fkNPar]
140 Double_t kM[200]; //[fkNPar]
141 Double_t kCharge[200]; //[fkNPar]
142 Double_t kNclsITS[200]; //[fkNPar]
143 Double_t kNclsTPC[200]; //[fkNPar]
144 Double_t kNclsTPCiter1[200]; //[fkNPar]
145 Double_t kNFclsTPC[200]; //[fkNPar]
146 Double_t kNFclsTPCr[200]; //[fkNPar]
147 Double_t kNFclsTPCrFrac[200]; //[fkNPar]
148 Double_t kTPCsignalN[200]; //[fkNPar]
149 Double_t kTPCsignalNfrac[200]; //[fkNPar]
150 Double_t kTPCchi2Cl[200]; //[fkNPar]
151 Double_t kTrackStatus[200]; //[fkNPar]
152 Double_t kNclsTRD[200]; //[fkNPar]
153 Double_t kTRDntracklets[200]; //[fkNPar]
154 Double_t kTRDpidQuality[200]; //[fkNPar]
155 Double_t kTRDprobEle[200]; //[fkNPar]
156 Double_t kTRDprobPio[200]; //[fkNPar]
157 Double_t kImpactParXY[200]; //[fkNPar]
158 Double_t kImpactParZ[200]; //[fkNPar]
159 Double_t kTrackLength[200]; //[fkNPar]
160 Double_t kPdgCode[200]; //[fkNPar]
161 Double_t kPdgCodeMother[200]; //[fkNPar]
162 Double_t kPdgCodeGrandMother[200]; //[fkNPar]
163 Double_t kNumberOfDaughters[200]; //[fkNPar]
164 Double_t kHaveSameMother[200]; //[fkNPar]
165 Double_t kIsJpsiPrimary[200]; //[fkNPar]
166 Double_t kITSsignal[200]; //[fkNPar]
167 Double_t kITSsignalSSD1[200]; //[fkNPar]
168 Double_t kITSsignalSSD2[200]; //[fkNPar]
169 Double_t kITSsignalSDD1[200]; //[fkNPar]
170 Double_t kITSsignalSDD2[200]; //[fkNPar]
171 Double_t kITSclusterMap[200]; //[fkNPar]
172 Double_t kITSnSigmaEle[200]; //[fkNPar]
173 Double_t kITSnSigmaPio[200]; //[fkNPar]
174 Double_t kITSnSigmaMuo[200]; //[fkNPar]
175 Double_t kITSnSigmaKao[200]; //[fkNPar]
176 Double_t kITSnSigmaPro[200]; //[fkNPar]
177 Double_t kPIn[200]; //[fkNPar]
178 Double_t kTPCsignal[200]; //[fkNPar]
179 Double_t kTOFsignal[200]; //[fkNPar]
180 Double_t kTOFbeta[200]; //[fkNPar]
181 Double_t kTPCnSigmaEle[200]; //[fkNPar]
182 Double_t kTPCnSigmaPio[200]; //[fkNPar]
183 Double_t kTPCnSigmaMuo[200]; //[fkNPar]
184 Double_t kTPCnSigmaKao[200]; //[fkNPar]
185 Double_t kTPCnSigmaPro[200]; //[fkNPar]
186 Double_t kTOFnSigmaEle[200]; //[fkNPar]
187 Double_t kTOFnSigmaPio[200]; //[fkNPar]
188 Double_t kTOFnSigmaMuo[200]; //[fkNPar]
189 Double_t kTOFnSigmaKao[200]; //[fkNPar]
190 Double_t kTOFnSigmaPro[200]; //[fkNPar]
191 Double_t kKinkIndex0[200]; //[fkNPar]
192 Double_t kChi2NDF[200]; //[fkNPar]
193 Double_t kDecayLength[200]; //[fkNPar]
194 Double_t kR[200]; //[fkNPar]
195 Double_t kOpeningAngle[200]; //[fkNPar]
196 Double_t kThetaHE[200]; //[fkNPar]
197 Double_t kPhiHE[200]; //[fkNPar]
198 Double_t kThetaCS[200]; //[fkNPar]
199 Double_t kPhiCS[200]; //[fkNPar]
200 Double_t kLegDist[200]; //[fkNPar]
201 Double_t kLegDistXY[200]; //[fkNPar]
202 Double_t kDeltaEta[200]; //[fkNPar]
203 Double_t kDeltaPhi[200]; //[fkNPar]
204 Double_t kMerr[200]; //[fkNPar]
205 Double_t kDCA[200]; //[fkNPar]
206 Double_t kPairType[200]; //[fkNPar]
207 Double_t kPseudoProperTime[200]; //[fkNPar]
208 Double_t kXvPrim[200]; //[fkNPar]
209 Double_t kYvPrim[200]; //[fkNPar]
210 Double_t kZvPrim[200]; //[fkNPar]
211 Double_t kXRes[200]; //[fkNPar]
212 Double_t kYRes[200]; //[fkNPar]
213 Double_t kZRes[200]; //[fkNPar]
214 Double_t kNTrk[200]; //[fkNPar]
215 Double_t kTracks[200]; //[fkNPar]
216 Double_t kNacc[200]; //[fkNPar]
217 Double_t kNaccTrcklts[200]; //[fkNPar]
218 Double_t kNch[200]; //[fkNPar]
219 Double_t kCentrality[200]; //[fkNPar]
220 Double_t kNevents[200]; //[fkNPar]
221
222 // List of branches
223 TBranch *b_kNEvent; //!
224 TBranch *b_kMag; //!
225 TBranch *b_fkTriggerInfo; //!
226 TBranch *b_kTriggerMask; //!
227 TBranch *b_kTriggerCent; //!
228 TBranch *b_fkNCut; //!
229 TBranch *b_fkRunNumber; //!
230 TBranch *b_fkCentrality; //!
231 TBranch *b_fkXvPrim; //!
232 TBranch *b_fkYvPrim; //!
233 TBranch *b_fkZvPrim; //!
234 TBranch *b_fkXRes; //!
235 TBranch *b_fkYRes; //!
236 TBranch *b_fkZRes; //!
237 TBranch *b_fkNTrk; //!
238 TBranch *b_fkTracks; //!
239 TBranch *b_fkNacc; //!
240 TBranch *b_fkNaccTrcklts; //!
241 TBranch *b_fkNch; //!
242 TBranch *b_fkZDCN1E; //!
243 TBranch *b_fkZDCP1E; //!
244 TBranch *b_fkZDCN2E; //!
245 TBranch *b_fkZDCP2E; //!
246 TBranch *b_fkV0A; //!
247 TBranch *b_fkV0C; //!
248 TBranch *b_fkNPar; //!
249 TBranch *b_kPx; //!
250 TBranch *b_kPy; //!
251 TBranch *b_kPz; //!
252 TBranch *b_kPt; //!
253 TBranch *b_kP; //!
254 TBranch *b_kXv; //!
255 TBranch *b_kYv; //!
256 TBranch *b_kZv; //!
257 TBranch *b_kOneOverPt; //!
258 TBranch *b_kPhi; //!
259 TBranch *b_kTheta; //!
260 TBranch *b_kEta; //!
261 TBranch *b_kY; //!
262 TBranch *b_kE; //!
263 TBranch *b_kM; //!
264 TBranch *b_kCharge; //!
265 TBranch *b_kNclsITS; //!
266 TBranch *b_kNclsTPC; //!
267 TBranch *b_kNclsTPCiter1; //!
268 TBranch *b_kNFclsTPC; //!
269 TBranch *b_kNFclsTPCr; //!
270 TBranch *b_kNFclsTPCrFrac; //!
271 TBranch *b_kTPCsignalN; //!
272 TBranch *b_kTPCsignalNfrac; //!
273 TBranch *b_kTPCchi2Cl; //!
274 TBranch *b_kTrackStatus; //!
275 TBranch *b_kNclsTRD; //!
276 TBranch *b_kTRDntracklets; //!
277 TBranch *b_kTRDpidQuality; //!
278 TBranch *b_kTRDprobEle; //!
279 TBranch *b_kTRDprobPio; //!
280 TBranch *b_kImpactParXY; //!
281 TBranch *b_kImpactParZ; //!
282 TBranch *b_kTrackLength; //!
283 TBranch *b_kPdgCode; //!
284 TBranch *b_kPdgCodeMother; //!
285 TBranch *b_kPdgCodeGrandMother; //!
286 TBranch *b_kNumberOfDaughters; //!
287 TBranch *b_kHaveSameMother; //!
288 TBranch *b_kIsJpsiPrimary; //!
289 TBranch *b_kITSsignal; //!
290 TBranch *b_kITSsignalSSD1; //!
291 TBranch *b_kITSsignalSSD2; //!
292 TBranch *b_kITSsignalSDD1; //!
293 TBranch *b_kITSsignalSDD2; //!
294 TBranch *b_kITSclusterMap; //!
295 TBranch *b_kITSnSigmaEle; //!
296 TBranch *b_kITSnSigmaPio; //!
297 TBranch *b_kITSnSigmaMuo; //!
298 TBranch *b_kITSnSigmaKao; //!
299 TBranch *b_kITSnSigmaPro; //!
300 TBranch *b_kPIn; //!
301 TBranch *b_kTPCsignal; //!
302 TBranch *b_kTOFsignal; //!
303 TBranch *b_kTOFbeta; //!
304 TBranch *b_kTPCnSigmaEle; //!
305 TBranch *b_kTPCnSigmaPio; //!
306 TBranch *b_kTPCnSigmaMuo; //!
307 TBranch *b_kTPCnSigmaKao; //!
308 TBranch *b_kTPCnSigmaPro; //!
309 TBranch *b_kTOFnSigmaEle; //!
310 TBranch *b_kTOFnSigmaPio; //!
311 TBranch *b_kTOFnSigmaMuo; //!
312 TBranch *b_kTOFnSigmaKao; //!
313 TBranch *b_kTOFnSigmaPro; //!
314 TBranch *b_kKinkIndex0; //!
315 TBranch *b_kChi2NDF; //!
316 TBranch *b_kDecayLength; //!
317 TBranch *b_kR; //!
318 TBranch *b_kOpeningAngle; //!
319 TBranch *b_kThetaHE; //!
320 TBranch *b_kPhiHE; //!
321 TBranch *b_kThetaCS; //!
322 TBranch *b_kPhiCS; //!
323 TBranch *b_kLegDist; //!
324 TBranch *b_kLegDistXY; //!
325 TBranch *b_kDeltaEta; //!
326 TBranch *b_kDeltaPhi; //!
327 TBranch *b_kMerr; //!
328 TBranch *b_kDCA; //!
329 TBranch *b_kPairType; //!
330 TBranch *b_kPseudoProperTime; //!
331 TBranch *b_kXvPrim; //!
332 TBranch *b_kYvPrim; //!
333 TBranch *b_kZvPrim; //!
334 TBranch *b_kXRes; //!
335 TBranch *b_kYRes; //!
336 TBranch *b_kZRes; //!
337 TBranch *b_kNTrk; //!
338 TBranch *b_kTracks; //!
339 TBranch *b_kNacc; //!
340 TBranch *b_kNaccTrcklts; //!
341 TBranch *b_kNch; //!
342 TBranch *b_kCentrality; //!
343 TBranch *b_kNevents; //!
344
345 ana_sgl(TTree *tree=0);
346 virtual ~ana_sgl();
347 virtual Int_t Cut(Long64_t entry);
348 virtual Int_t GetEntry(Long64_t entry);
349 virtual Long64_t LoadTree(Long64_t entry);
350 virtual void Init(TTree *tree);
351 virtual void Loop();
352 virtual Bool_t Notify();
353 virtual void Show(Long64_t entry = -1);
354
355
356 //////////my own function/////////////////
357
358 TH2D *hdedx_pt;
359 TH2D *hdedx_tof_elec_pt;
360 TH2D *hdedx_tof_all_pt;
361 TH2D *hdedx_tof_elec_emc_pt;
362 TH2D *hdedx_tof_all_emc_pt;
363 TH2D *hdedx_emc_pt;
364
365 TH2D *hbetatof_pt;
366 TH2D *hbetatof_tof_elec_pt;
367 TH2D *hbetatof_tof_all_pt;
368 TH2D *hbetatof_tof_elec_emc_pt;
369 TH2D *hbetatof_tof_all_emc_pt;
370 TH2D *hbetatof_emc_pt;
371
372 TH1D *hdedx[1000];
373 TH1D *hdedx_tof_elec[1000];
374 TH1D *hdedx_tof_all[1000];
375 TH1D *hdedx_tof_elec_emc[1000];
376 TH1D *hdedx_tof_all_emc[1000];
377 TH1D *hdedx_emc[1000];
378
379
380 TH1D *fEventStat; //! Histogram with event statistics
381 TH1D *fEvent;
382 TH2D *fdEdXvsPt;
383 TH2D *fdEdXnSigmaElecvsPt;
384 TH2D *fTOFbetavsPt;
385 TH2D *fTOFnSigmaElecvsPt;
386 TH1F *hCentrality;
387 TH2F *hV0AC;
388 TH2F *hV0AC_Ntrk;
389 TH2F *hV0AC_NaccTrcklts;
390
391
392
393 TH2D *fdEdXvsPtWithCut;
394 TH1D *fPtElec[2];
395
396 TH2D *fNelc_pos_cent[10];
397 TH1D *fNelc_all_cent[10];
398
399 TH2D *fNelc_pos;
400 TH1D *fNelc_all;
401 TH2D *fNelc_all_pT;
402
403
404 //// pair tree
405 TH2D *hmasspt[7][11];
406 TH2D *hmasspt_weight[7][11];
407
408 TFile *fout;
409 Float_t fBinWidth ;
410 Int_t nHistos ;
411
412 void ana_init(char *filename);
413 void ana_event(int ientry, int jentry);
414 void ana_end(void);
415 void loop_a_file(char *filename);
416 void ana_set_simflag(bool a) { simflag = a;}
417
418 bool kTOFcut(int itrk);
419 bool GlobalTrackcut(int itrk);
420 //bool PairTrackcut(int itrk);
421 void fill_histograms(int itrk);
422 void fill_to_tree_variables(void);
423 void fill_to_tree_track_variables(int itrk);
424 void add_histograms(TFile *fin);
425 void select_trigger(int trig){ sel_trigger = trig ; }
426
427
428 //// cut function
429 void set_tpc_dedx_cuts(double low, double high){
430 d_tpc_dedx_low = low;
431 d_tpc_dedx_high = high;
432 };
433 void set_tof_cuts(double low, double high){
434 d_flag_tof_cut = true;
435 d_tof_low = low;
436 d_tof_high = high;
437 };
438
439 void set_veto_for_kaon(double low, double high){
440 d_flag_kaon_veto = true;
441 d_dedx_kaon_veto_low = low;
442 d_dedx_kaon_veto_high = high;
443 }
444
445 void set_veto_for_proton(double low, double high){
446 d_flag_proton_veto = true;
447 d_dedx_proton_veto_low = low;
448 d_dedx_proton_veto_high = high;
449 }
450
451 void enable_pair_emc_cut(double low, double high){
452 d_flag_emc_cut = true;
453 d_emc_low = low;
454 d_emc_high = high;
455 };
456
457 void enable_pair_phiv_cut(double low){
458 d_flag_phiv = true;
459 d_phiv_cut = low;
460 };
461
462 void enable_pait_pt_cut(double low, double high){
463 d_flag_pt_cut = true;
464 d_pt_cut_low = low;
465 d_pt_cut_high = high;
466 };
467
468 void print_cuts(void);
469
470 //// private functions
471
472 void calc_pair(vector<etrk> e1, vector<etrk> e2);
473 void randomize_pool(vector<etrk> e1, vector<etrk> e2);
474 //void fill_pair(etrk *e1, etrk *e2, int type);
475 void fill_pair(vector<etrk>::iterator e1, vector<etrk>::iterator e2, int type);
476 bool PairTrackcut(vector<etrk>::iterator e1, vector<etrk>::iterator e2);
477 bool reject_conversion(bool val){d_conv_flag = val;}
478 void check_conversion_pairs(vector<etrk> &e1, vector<etrk> &e2);
479 void check_ghost_pairs(vector<etrk> &e1);
480 void calc_vars(vector<etrk>::iterator e1, vector<etrk>::iterator e2, double &mass, double &phiv, double &px, double &py, double&pz,
481 double &pt, double &e, double &phi, double &eta, double &cos, double &psi);
482 bool pair_cut(void);
483
484 TTree *d_tree;
485 TTree *d_ntpair;
486 bool simflag;
487 int sel_trigger;
488
489 private:
490 bool d_flag_tof_cut;
491 bool d_flag_emc_cut;
492 bool d_flag_phiv;
493 bool d_flag_pt_cut;
494 bool d_flag_kaon_veto;
495 bool d_flag_proton_veto;
496 double d_tpc_dedx_low;
497 double d_tpc_dedx_high;
498 double d_tof_low;
499 double d_tof_high;
500 double d_emc_low;
501 double d_emc_high;
502 double d_phiv_cut;
503 double d_pt_cut_low ;
504 double d_pt_cut_high ;
505 double d_dedx_kaon_veto_low;
506 double d_dedx_kaon_veto_high;
507 double d_dedx_proton_veto_low;
508 double d_dedx_proton_veto_high;
509
510 bool magnetic_field_mm ;
511 bool d_conv_flag;
512 Int_t d_evt;
513 Double_t d_cent;
514 Double_t d_ntrk;
515 Double_t d_xvprim;
516 Double_t d_yvprim;
517 Double_t d_zvprim;
518 Double_t d_nacctrklets;
519 Double_t d_xres;
520 Double_t d_yres;
521 Double_t d_zres;
522 Int_t d_nelc;
523 Double_t d_px[100];
524 Double_t d_py[100];
525 Double_t d_pz[100];
526 Double_t d_p[100];
527 Double_t d_pt[100];
528 Double_t d_xv[100];
529 Double_t d_yv[100];
530 Double_t d_zv[100];
531 Double_t d_phi[100];
532 Double_t d_theta[100];
533 Double_t d_eta[100];
534 Double_t d_c[100];
535 Double_t d_nclusITS[100];
536 Double_t d_nclusTPC[100];
537 Double_t d_nclusTPCiter[100];
538 Double_t d_nfclusTPC[100];
539 Double_t d_nfclusTPCr[100];
540 Double_t d_nfclusTPCrFrac[100];
541 Double_t d_TPCsignalN[100];
542 Double_t d_TPCsignalNfrac[100];
543 Double_t d_TPCchi2cl[100];
544 Double_t d_trkstat[100];
545 Double_t d_nclsTRD[100];
546 Double_t d_TRDntracklets[100];
547 Double_t d_TRDpidquality[100];
548 Double_t d_TRDprobEle[100];
549 Double_t d_TRDprobPio[100];
550 Double_t d_impactXY[100];
551 Double_t d_impactZ[100];
552 Double_t d_tracklength[100];
553 Double_t d_ITSsignal[100];
554 Double_t d_ITSnsigmaEle[100];
555 Double_t d_ITSnsigmaPio[100];
556 Double_t d_ITSnsigmaMuo[100];
557 Double_t d_ITSnsigmaKao[100];
558 Double_t d_ITSnsigmaPro[100];
559 Double_t d_PIn[100];
560 Double_t d_TPCsignal[100];
561 Double_t d_TOFsignal[100];
562 Double_t d_TOFbeta[100];
563 Double_t d_TPCnSigmaEle[100];
564 Double_t d_TPCnSigmaPio[100];
565 Double_t d_TPCnSigmaMuo[100];
566 Double_t d_TPCnSigmaKao[100];
567 Double_t d_TPCnSigmaPro[100];
568 Double_t d_TOFnSigmaEle[100];
569 Double_t d_TOFnSigmaPio[100];
570 Double_t d_TOFnSigmaMuo[100];
571 Double_t d_TOFnSigmaKao[100];
572 Double_t d_TOFnSigmaPro[100];
573
574 Double_t d_chi2ndf[100];
575 Double_t d_E[100];
576 Double_t d_dphi[100];
577 Double_t d_deta[100];
578
579 //////// pair variable
580 Double_t d_run;
581 Int_t d_event;
582 Double_t d_centrality;
583 Double_t d_prim_xv;
584 Double_t d_prim_yv;
585 Double_t d_prim_zv;
586 Double_t d_mass;
587 Double_t d_pxpair;
588 Double_t d_pypair;
589 Double_t d_pzpair;
590 Double_t d_ptpair;
591 Double_t d_epair;
592 Double_t d_etapair;
593 Double_t d_phipair;
594 Double_t d_cos;
595 Double_t d_phiv;
596 Double_t d_psi;
597 Int_t d_pairtype;
598
599 /////////////////////////
600 Double_t d_cent1;
601 Double_t d_xv1;
602 Double_t d_yv1;
603 Double_t d_zv1;
604 Double_t d_px1;
605 Double_t d_py1;
606 Double_t d_pz1;
607 Double_t d_pt1;
608 Double_t d_eta1;
609 Double_t d_phi1;
610 Double_t d_theta1;
611 Double_t d_tpc1;
612 Double_t d_ntpc_ele1;
613 Double_t d_ntpc_pio1;
614 Double_t d_ntpc_kao1;
615 Double_t d_ntpc_pro1;
616 Double_t d_beta1;
617 Double_t d_ntof_ele1;
618 Double_t d_ntof_pio1;
619 Double_t d_ntof_kao1;
620 Double_t d_ntof_pro1;
621 Double_t d_its1;
622 Double_t d_nits1;
623 Double_t d_ntpc1;
624 Double_t d_e1;
625 Double_t d_dphi1;
626 Double_t d_deta1;
627 Double_t d_dcaxy1;
628 Double_t d_dcaz1;
629 Int_t d_conv1;
630
631 Double_t d_cent2;
632 Double_t d_xv2;
633 Double_t d_yv2;
634 Double_t d_zv2;
635 Double_t d_px2;
636 Double_t d_py2;
637 Double_t d_pz2;
638 Double_t d_pt2;
639 Double_t d_eta2;
640 Double_t d_phi2;
641 Double_t d_theta2;
642 Double_t d_tpc2;
643 Double_t d_ntpc_ele2;
644 Double_t d_ntpc_pio2;
645 Double_t d_ntpc_kao2;
646 Double_t d_ntpc_pro2;
647 Double_t d_beta2;
648 Double_t d_ntof_ele2;
649 Double_t d_ntof_pio2;
650 Double_t d_ntof_kao2;
651 Double_t d_ntof_pro2;
652 Double_t d_its2;
653 Double_t d_nits2;
654 Double_t d_ntpc2;
655 Double_t d_e2;
656 Double_t d_dphi2;
657 Double_t d_deta2;
658 Double_t d_dcaxy2;
659 Double_t d_dcaz2;
660 Int_t d_conv2;
661
662 Int_t nelec_pos[10]; //pT bin;
663
664 vector<etrk> vem;
665 vector<etrk> vep;
666 vector<etrk> vem_tmp;
667 vector<etrk> vep_tmp;
668
669
670};
671
672#endif
673
674#ifdef ana_sgl_cxx
675ana_sgl::ana_sgl(TTree *tree)
676{
677// if parameter tree is not specified (or zero), connect the file
678// used to generate this class and read the Tree.
679 if (tree == 0) {
680 TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("Resultstakuv2c123456AnalysisResults_t.root");
681 if (!f) {
682 f = new TFile("Resultstakuv2c123456AnalysisResults_t.root");
683 f->cd("Resultstakuv2c123456AnalysisResults_t.root:/PWG3_dielectron");
684 }
685 tree = (TTree*)gDirectory->Get("tree_MultiDie_CENT1");
686
687 }
688 Init(tree);
689 d_conv_flag = false;
690}
691
692ana_sgl::~ana_sgl()
693{
694 if (!fChain) return;
695 delete fChain->GetCurrentFile();
696}
697
698Int_t ana_sgl::GetEntry(Long64_t entry)
699{
700// Read contents of entry.
701 if (!fChain) return 0;
702 return fChain->GetEntry(entry);
703}
704Long64_t ana_sgl::LoadTree(Long64_t entry)
705{
706// Set the environment to read one entry
707 if (!fChain) return -5;
708 Long64_t centry = fChain->LoadTree(entry);
709 if (centry < 0) return centry;
710 if (!fChain->InheritsFrom(TChain::Class())) return centry;
711 TChain *chain = (TChain*)fChain;
712 if (chain->GetTreeNumber() != fCurrent) {
713 fCurrent = chain->GetTreeNumber();
714 Notify();
715 }
716 return centry;
717}
718
719void ana_sgl::Init(TTree *tree)
720{
721 // The Init() function is called when the selector needs to initialize
722 // a new tree or chain. Typically here the branch addresses and branch
723 // pointers of the tree will be set.
724 // It is normally not necessary to make changes to the generated
725 // code, but the routine can be extended by the user if needed.
726 // Init() will be called many times when running on PROOF
727 // (once per file to be processed).
728
729 // Set branch addresses and branch pointers
730 if (!tree) return;
731 fChain = tree;
732 fCurrent = -1;
733 fChain->SetMakeClass(1);
734
735 fChain->SetBranchAddress("kNEvent", &kNEvent, &b_kNEvent);
736 fChain->SetBranchAddress("kMag", &kMag, &b_kMag);
737 fChain->SetBranchAddress("fkTriggerInfo", &fkTriggerInfo, &b_fkTriggerInfo);
738 fChain->SetBranchAddress("kTriggerMask", &kTriggerMask, &b_kTriggerMask);
739 fChain->SetBranchAddress("kTriggerCent", &kTriggerCent, &b_kTriggerCent);
740 fChain->SetBranchAddress("fkNCut", &fkNCut, &b_fkNCut);
741 fChain->SetBranchAddress("fkRunNumber", &fkRunNumber, &b_fkRunNumber);
742 fChain->SetBranchAddress("fkCentrality", &fkCentrality, &b_fkCentrality);
743 fChain->SetBranchAddress("fkXvPrim", &fkXvPrim, &b_fkXvPrim);
744 fChain->SetBranchAddress("fkYvPrim", &fkYvPrim, &b_fkYvPrim);
745 fChain->SetBranchAddress("fkZvPrim", &fkZvPrim, &b_fkZvPrim);
746 fChain->SetBranchAddress("fkXRes", &fkXRes, &b_fkXRes);
747 fChain->SetBranchAddress("fkYRes", &fkYRes, &b_fkYRes);
748 fChain->SetBranchAddress("fkZRes", &fkZRes, &b_fkZRes);
749 fChain->SetBranchAddress("fkNTrk", &fkNTrk, &b_fkNTrk);
750 fChain->SetBranchAddress("fkTracks", &fkTracks, &b_fkTracks);
751 fChain->SetBranchAddress("fkNacc", &fkNacc, &b_fkNacc);
752 fChain->SetBranchAddress("fkNaccTrcklts", &fkNaccTrcklts, &b_fkNaccTrcklts);
753 fChain->SetBranchAddress("fkNch", &fkNch, &b_fkNch);
754 fChain->SetBranchAddress("fkZDCN1E", &fkZDCN1E, &b_fkZDCN1E);
755 fChain->SetBranchAddress("fkZDCP1E", &fkZDCP1E, &b_fkZDCP1E);
756 fChain->SetBranchAddress("fkZDCN2E", &fkZDCN2E, &b_fkZDCN2E);
757 fChain->SetBranchAddress("fkZDCP2E", &fkZDCP2E, &b_fkZDCP2E);
758 fChain->SetBranchAddress("fkV0A", &fkV0A, &b_fkV0A);
759 fChain->SetBranchAddress("fkV0C", &fkV0C, &b_fkV0C);
760 fChain->SetBranchAddress("fkNPar", &fkNPar, &b_fkNPar);
761 fChain->SetBranchAddress("kPx", kPx, &b_kPx);
762 fChain->SetBranchAddress("kPy", kPy, &b_kPy);
763 fChain->SetBranchAddress("kPz", kPz, &b_kPz);
764 fChain->SetBranchAddress("kPt", kPt, &b_kPt);
765 fChain->SetBranchAddress("kP", kP, &b_kP);
766 fChain->SetBranchAddress("kXv", kXv, &b_kXv);
767 fChain->SetBranchAddress("kYv", kYv, &b_kYv);
768 fChain->SetBranchAddress("kZv", kZv, &b_kZv);
769 fChain->SetBranchAddress("kOneOverPt", kOneOverPt, &b_kOneOverPt);
770 fChain->SetBranchAddress("kPhi", kPhi, &b_kPhi);
771 fChain->SetBranchAddress("kTheta", kTheta, &b_kTheta);
772 fChain->SetBranchAddress("kEta", kEta, &b_kEta);
773 fChain->SetBranchAddress("kY", kY, &b_kY);
774 fChain->SetBranchAddress("kE", kE, &b_kE);
775 fChain->SetBranchAddress("kM", kM, &b_kM);
776 fChain->SetBranchAddress("kCharge", kCharge, &b_kCharge);
777 fChain->SetBranchAddress("kNclsITS", kNclsITS, &b_kNclsITS);
778 fChain->SetBranchAddress("kNclsTPC", kNclsTPC, &b_kNclsTPC);
779 fChain->SetBranchAddress("kNclsTPCiter1", kNclsTPCiter1, &b_kNclsTPCiter1);
780 fChain->SetBranchAddress("kNFclsTPC", kNFclsTPC, &b_kNFclsTPC);
781 fChain->SetBranchAddress("kNFclsTPCr", kNFclsTPCr, &b_kNFclsTPCr);
782 fChain->SetBranchAddress("kNFclsTPCrFrac", kNFclsTPCrFrac, &b_kNFclsTPCrFrac);
783 fChain->SetBranchAddress("kTPCsignalN", kTPCsignalN, &b_kTPCsignalN);
784 fChain->SetBranchAddress("kTPCsignalNfrac", kTPCsignalNfrac, &b_kTPCsignalNfrac);
785 fChain->SetBranchAddress("kTPCchi2Cl", kTPCchi2Cl, &b_kTPCchi2Cl);
786 fChain->SetBranchAddress("kTrackStatus", kTrackStatus, &b_kTrackStatus);
787 fChain->SetBranchAddress("kNclsTRD", kNclsTRD, &b_kNclsTRD);
788 fChain->SetBranchAddress("kTRDntracklets", kTRDntracklets, &b_kTRDntracklets);
789 fChain->SetBranchAddress("kTRDpidQuality", kTRDpidQuality, &b_kTRDpidQuality);
790 fChain->SetBranchAddress("kTRDprobEle", kTRDprobEle, &b_kTRDprobEle);
791 fChain->SetBranchAddress("kTRDprobPio", kTRDprobPio, &b_kTRDprobPio);
792 fChain->SetBranchAddress("kImpactParXY", kImpactParXY, &b_kImpactParXY);
793 fChain->SetBranchAddress("kImpactParZ", kImpactParZ, &b_kImpactParZ);
794 fChain->SetBranchAddress("kTrackLength", kTrackLength, &b_kTrackLength);
795 fChain->SetBranchAddress("kPdgCode", kPdgCode, &b_kPdgCode);
796 fChain->SetBranchAddress("kPdgCodeMother", kPdgCodeMother, &b_kPdgCodeMother);
797 fChain->SetBranchAddress("kPdgCodeGrandMother", kPdgCodeGrandMother, &b_kPdgCodeGrandMother);
798 fChain->SetBranchAddress("kNumberOfDaughters", kNumberOfDaughters, &b_kNumberOfDaughters);
799 fChain->SetBranchAddress("kHaveSameMother", kHaveSameMother, &b_kHaveSameMother);
800 fChain->SetBranchAddress("kIsJpsiPrimary", kIsJpsiPrimary, &b_kIsJpsiPrimary);
801 fChain->SetBranchAddress("kITSsignal", kITSsignal, &b_kITSsignal);
802 fChain->SetBranchAddress("kITSsignalSSD1", kITSsignalSSD1, &b_kITSsignalSSD1);
803 fChain->SetBranchAddress("kITSsignalSSD2", kITSsignalSSD2, &b_kITSsignalSSD2);
804 fChain->SetBranchAddress("kITSsignalSDD1", kITSsignalSDD1, &b_kITSsignalSDD1);
805 fChain->SetBranchAddress("kITSsignalSDD2", kITSsignalSDD2, &b_kITSsignalSDD2);
806 fChain->SetBranchAddress("kITSclusterMap", kITSclusterMap, &b_kITSclusterMap);
807 fChain->SetBranchAddress("kITSnSigmaEle", kITSnSigmaEle, &b_kITSnSigmaEle);
808 fChain->SetBranchAddress("kITSnSigmaPio", kITSnSigmaPio, &b_kITSnSigmaPio);
809 fChain->SetBranchAddress("kITSnSigmaMuo", kITSnSigmaMuo, &b_kITSnSigmaMuo);
810 fChain->SetBranchAddress("kITSnSigmaKao", kITSnSigmaKao, &b_kITSnSigmaKao);
811 fChain->SetBranchAddress("kITSnSigmaPro", kITSnSigmaPro, &b_kITSnSigmaPro);
812 fChain->SetBranchAddress("kPIn", kPIn, &b_kPIn);
813 fChain->SetBranchAddress("kTPCsignal", kTPCsignal, &b_kTPCsignal);
814 fChain->SetBranchAddress("kTOFsignal", kTOFsignal, &b_kTOFsignal);
815 fChain->SetBranchAddress("kTOFbeta", kTOFbeta, &b_kTOFbeta);
816 fChain->SetBranchAddress("kTPCnSigmaEle", kTPCnSigmaEle, &b_kTPCnSigmaEle);
817 fChain->SetBranchAddress("kTPCnSigmaPio", kTPCnSigmaPio, &b_kTPCnSigmaPio);
818 fChain->SetBranchAddress("kTPCnSigmaMuo", kTPCnSigmaMuo, &b_kTPCnSigmaMuo);
819 fChain->SetBranchAddress("kTPCnSigmaKao", kTPCnSigmaKao, &b_kTPCnSigmaKao);
820 fChain->SetBranchAddress("kTPCnSigmaPro", kTPCnSigmaPro, &b_kTPCnSigmaPro);
821 fChain->SetBranchAddress("kTOFnSigmaEle", kTOFnSigmaEle, &b_kTOFnSigmaEle);
822 fChain->SetBranchAddress("kTOFnSigmaPio", kTOFnSigmaPio, &b_kTOFnSigmaPio);
823 fChain->SetBranchAddress("kTOFnSigmaMuo", kTOFnSigmaMuo, &b_kTOFnSigmaMuo);
824 fChain->SetBranchAddress("kTOFnSigmaKao", kTOFnSigmaKao, &b_kTOFnSigmaKao);
825 fChain->SetBranchAddress("kTOFnSigmaPro", kTOFnSigmaPro, &b_kTOFnSigmaPro);
826 fChain->SetBranchAddress("kKinkIndex0", kKinkIndex0, &b_kKinkIndex0);
827 fChain->SetBranchAddress("kChi2NDF", kChi2NDF, &b_kChi2NDF);
828 fChain->SetBranchAddress("kDecayLength", kDecayLength, &b_kDecayLength);
829 fChain->SetBranchAddress("kR", kR, &b_kR);
830 fChain->SetBranchAddress("kOpeningAngle", kOpeningAngle, &b_kOpeningAngle);
831 fChain->SetBranchAddress("kThetaHE", kThetaHE, &b_kThetaHE);
832 fChain->SetBranchAddress("kPhiHE", kPhiHE, &b_kPhiHE);
833 fChain->SetBranchAddress("kThetaCS", kThetaCS, &b_kThetaCS);
834 fChain->SetBranchAddress("kPhiCS", kPhiCS, &b_kPhiCS);
835 fChain->SetBranchAddress("kLegDist", kLegDist, &b_kLegDist);
836 fChain->SetBranchAddress("kLegDistXY", kLegDistXY, &b_kLegDistXY);
837 fChain->SetBranchAddress("kDeltaEta", kDeltaEta, &b_kDeltaEta);
838 fChain->SetBranchAddress("kDeltaPhi", kDeltaPhi, &b_kDeltaPhi);
839 fChain->SetBranchAddress("kMerr", kMerr, &b_kMerr);
840 fChain->SetBranchAddress("kDCA", kDCA, &b_kDCA);
841 fChain->SetBranchAddress("kPairType", kPairType, &b_kPairType);
842 fChain->SetBranchAddress("kPseudoProperTime", kPseudoProperTime, &b_kPseudoProperTime);
843 fChain->SetBranchAddress("kXvPrim", kXvPrim, &b_kXvPrim);
844 fChain->SetBranchAddress("kYvPrim", kYvPrim, &b_kYvPrim);
845 fChain->SetBranchAddress("kZvPrim", kZvPrim, &b_kZvPrim);
846 fChain->SetBranchAddress("kXRes", kXRes, &b_kXRes);
847 fChain->SetBranchAddress("kYRes", kYRes, &b_kYRes);
848 fChain->SetBranchAddress("kZRes", kZRes, &b_kZRes);
849 fChain->SetBranchAddress("kNTrk", kNTrk, &b_kNTrk);
850 fChain->SetBranchAddress("kTracks", kTracks, &b_kTracks);
851 fChain->SetBranchAddress("kNacc", kNacc, &b_kNacc);
852 fChain->SetBranchAddress("kNaccTrcklts", kNaccTrcklts, &b_kNaccTrcklts);
853 fChain->SetBranchAddress("kNch", kNch, &b_kNch);
854 fChain->SetBranchAddress("kCentrality", kCentrality, &b_kCentrality);
855 fChain->SetBranchAddress("kNevents", kNevents, &b_kNevents);
856 Notify();
857}
858
859Bool_t ana_sgl::Notify()
860{
861 // The Notify() function is called when a new file is opened. This
862 // can be either for a new TTree in a TChain or when when a new TTree
863 // is started when using PROOF. It is normally not necessary to make changes
864 // to the generated code, but the routine can be extended by the
865 // user if needed. The return value is currently not used.
866
867 return kTRUE;
868}
869
870void ana_sgl::Show(Long64_t entry)
871{
872// Print contents of entry.
873// If entry is not specified, print current entry
874 if (!fChain) return;
875 fChain->Show(entry);
876}
877Int_t ana_sgl::Cut(Long64_t entry)
878{
879// This function may be called from Loop.
880// returns 1 if entry is accepted.
881// returns -1 otherwise.
882 return 1;
883}
884#endif // #ifdef ana_sgl_cxx