]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/GammaConv/AliV0Reader.h
Preparation for upcoming changes for HLT
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliV0Reader.h
CommitLineData
a0b94e5c 1#ifndef ALIV0READER_H
2#define ALIV0READER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6////////////////////////////////////////////////
7//---------------------------------------------
8// Class used to do analysis on conversion pairs
9//---------------------------------------------
10////////////////////////////////////////////////
11
12// --- ROOT system ---
13#include "TObject.h"
14#include "AliMCEvent.h" // for CF
15#include "AliESDv0.h"
16#include "AliESDEvent.h"
17#include "AliKFParticle.h"
18#include "TParticle.h"
19#include "AliGammaConversionHistograms.h"
20#include <vector>
21#include "AliCFManager.h"
5e55d806 22#include "AliGammaConversionBGHandler.h"
a0b94e5c 23
24class TClonesArray;
25class TFormula;
26class Riostream;
27class TChain;
28
29//--- AliRoot system ---
30
31class AliStack;
32class AliMCEvent; // for CF
33class AliESDEvent;
34class AliMCEventHandler;
35class AliESDInputHandler;
36class AliESDVertex;
37class AliLog;
38class TChain;
39class TChain;
40class AliCFManager; // for CF
41class AliCFContainer; // for CF
10d100d4 42class AliESDpid; // for dEdx cut based on nSigma to particle lines
037dc2db 43class AliESDtrackCuts;
a0b94e5c 44
45class AliV0Reader : public TObject {
46
47 public:
48
49
50 // for CF
51 enum{
52 kStepGenerated = 0,
53 kStepReconstructable = 1,
ebcfaa7e 54 kStepGetOnFly = 2,
55 kStepLikeSign = 3,
56 kStepTPCRefit = 4,
57 kStepKinks = 5,
58 kStepdEdx_electronselection = 6,
59 kStepdEdx_pionrejection = 7,
60 kStepNContributors = 8,
61 kStepTPCPID = 9,
62 kStepR = 10,
63 kStepLine = 11,
64 kStepZ = 12,
48682642 65 kStepMinClsTPC = 13,
66 kStepSinglePt= 14,
67 kStepNDF = 15,
68 kStepChi2 = 16,
69 kStepEta = 17,
70 kStepPt = 18,
71 kStepTrueGamma = 19
a0b94e5c 72 };
73
a0b94e5c 74 AliV0Reader(); //constructor
75 AliV0Reader(const AliV0Reader & g); //copy constructor
76 AliV0Reader & operator = (const AliV0Reader & g); //assignment operator
9640a3d1 77 // virtual ~AliV0Reader() {;} //virtual destructor
78 virtual ~AliV0Reader(); //virtual destructor
a0b94e5c 79 /*
80 *Initialize the reader
81 */
82 void Initialize();
48682642 83 void SetInputAndMCEvent(AliVEvent* esd, AliMCEvent* mc) ;
84
85
86 virtual void SetInputEvent(AliVEvent* const input) {fESDEvent = dynamic_cast<AliESDEvent*>(input);}
87 virtual void SetMC(AliMCEvent* const mc) {fMCEvent = mc;}
88
a0b94e5c 89
90 // for CF
4a6157dc 91 void SetCFManager(AliCFManager * const io){fCFManager = io;};
a0b94e5c 92 AliCFManager *GetCFManager() const {return fCFManager;}
93
94
95
96
97 /*
98 * Returns AliESDEvent
99 */
100 AliESDEvent* GetESDEvent() const{return fESDEvent;}
101
102 /*
103 *Returns the number of v0s in the event, no cuts applied.
104 */
105 Int_t GetNumberOfV0s() const{return fESDEvent->GetNumberOfV0s();}
106
b5832f95 107 /*
108 *Returns the number of contributors to the vertex
109 */
110 Int_t GetNumberOfContributorsVtx() const{return fESDEvent->GetPrimaryVertex()->GetNContributors();}
111
a0b94e5c 112 /*
113 * Check if there are any more good v0s left in the v0 stack
114 * if so, fCurrent v0 is set to this v0 and can be retrieved
115 * by GetCurrentV0 function.
116 * returns kFALSE if there is no more good v0s in the v0 stack
117 */
118 Bool_t NextV0();
119
120 /*
121 * Returns the v0 at the given index, no checks are done on the v0.
122 */
123 AliESDv0* GetV0(Int_t index);
124
125 /*
126 * Returns the current v0
127 */
128 AliESDv0* GetCurrentV0() const{return fCurrentV0;}
129
130 /*
131 * Returns the negative ESD track which belongs to fCurrentV0
132 */
133 AliESDtrack* GetNegativeESDTrack(){return fESDEvent->GetTrack(fCurrentV0->GetNindex());}
134
135 /*
136 * Returns the positive ESD track which belongs to fCurrentV0
137 */
138 AliESDtrack* GetPositiveESDTrack(){return fESDEvent->GetTrack(fCurrentV0->GetPindex());}
139
140 /*
141 * Returns the negative KF particle which belongs to fCurrentV0
142 */
143 AliKFParticle* GetNegativeKFParticle() const{return fCurrentNegativeKFParticle;}
144
145 /*
146 * Returns the positive KF particle which belongs to fCurrentV0
147 */
148 AliKFParticle* GetPositiveKFParticle() const{return fCurrentPositiveKFParticle;}
149
150 /*
151 * Returns the KFParticle object of the 2 tracks.
152 */
153 AliKFParticle* GetMotherCandidateKFCombination() const{return fCurrentMotherKFCandidate;}
154
155 /*
156 * Checks the probablity that the PID of the particle is what we want it to be.
157 */
158 Bool_t CheckPIDProbability(Double_t negProbCut, Double_t posProbCut);
159
160 /*
161 * Checks if the PID of the two particles are within our cuts.
162 */
163 void GetPIDProbability(Double_t &negPIDProb, Double_t &posPIDProb);
164
165 /*
166 *Get the negative MC TParticle from the stack
167 */
168 TParticle * GetNegativeMCParticle() const{return fNegativeMCParticle;}
169
170 /*
171 *Get the positive MC TParticle from the stack
172 */
173 TParticle * GetPositiveMCParticle() const{return fPositiveMCParticle;}
174
175 /*
176 *Get the mother MC TParticle from the stack
177 */
178 TParticle * GetMotherMCParticle() const{return fMotherMCParticle;}
179
180 /*
181 * Flag to see if the v0 particles share the same mother
182 */
183 Bool_t HasSameMCMother();
184
185
186 /*
187 *Get the PID of the MC mother particle
188 */
189 Int_t GetMotherMCParticlePDGCode() const{if(fMotherMCParticle != NULL){ cout<<"MCParticle exists"<<endl;} return fMotherMCParticle->GetPdgCode();}
190
191 /*
192 *Get the MC stack
193 */
194 AliStack* GetMCStack() const{return fMCStack;}
195
196
197 /*
198 * Setup AliMCEventHandler
199 */
48682642 200 // AliMCEventHandler* GetMCTruth() const{return fMCTruth;} // for CF
a0b94e5c 201
202
203 /*
204 *Get the MC stack
205 */
206 AliMCEvent* GetMCEvent() const{return fMCEvent;} // for CF
207
208
209 /*
210 *Get the magnetic field from the ESD event
211 */
212 Double_t GetMagneticField() const{return fESDEvent->GetMagneticField();}
213
214 /*
215 *Get the primary vertex from the esd event
216 */
217 const AliESDVertex *GetPrimaryVertex() const {return fESDEvent->GetPrimaryVertex();}
218
219 /*
220 * Set the PID of the negative track
221 */
222 void SetNegativeTrackPID(Int_t negTrackPID){fNegativeTrackPID=negTrackPID;}
223
224 /*
225 * Set the PID of the positive track
226 */
227 void SetPositiveTrackPID(Int_t posTrackPID){fPositiveTrackPID=posTrackPID;}
228
229 /*
230 * Set the flag to use the kfparticle class. Will also disable the use of esd tracks
231 */
232 void UseKFParticle(){fUseKFParticle = kTRUE; fUseESDTrack = kFALSE;}
233
234 /*
235 * Set the flag to use the esd track class. Will also disable the use of kf particles
236 */
237 void UseESDTrack(){fUseESDTrack = kTRUE; fUseKFParticle = kFALSE;}
238
239 /*
240 * Set the flag to use improved vertex or not
241 */
242 void SetUseImprovedVertex(Bool_t useImprovedVertex){fUseImprovedVertex=useImprovedVertex;}
243
244 /*
245 * Return the number in the species array belonging to the negative or positive track pid.
246 */
247 Int_t GetSpeciesIndex(Int_t chargeOfTrack);
248
249 /*
250 * Return the x coordinate of the v0
251 */
252 Double_t GetX() const{return fCurrentXValue;}
253
254 /*
255 * Return the y coordinate of the v0
256 */
257 Double_t GetY() const{return fCurrentYValue;}
258
259 /*
260 * Return the Z coordinate of the v0
261 */
262 Double_t GetZ() const{return fCurrentZValue;}
263
264 /*
265 * Return the radius of the v0
266 */
267 Double_t GetXYRadius() const{return sqrt((Double_t)(fCurrentXValue*fCurrentXValue + fCurrentYValue*fCurrentYValue));}
268
269 /*
270 * Get the opening angle between the two tracks
271 */
272 Double_t GetOpeningAngle(){return fNegativeTrackLorentzVector->Angle(fPositiveTrackLorentzVector->Vect());}
9640a3d1 273
274 /*
275 * Get the Cos Pointing angle between the two tracks
276 */
277 Double_t GetCosPointingAngle(){return fCurrentV0->GetV0CosineOfPointingAngle();}
278
279 /*
280 * Get the DCA between the two tracks
281 */
282 Double_t GetDcaDaughters(){return fCurrentV0->GetDcaV0Daughters();}
283
284 /*
285 * Get the Normalized DCA between the two tracks
286 */
287 Double_t GetNormDcaDistDaughters(){return fCurrentV0->GetDcaV0Daughters()/fCurrentV0->GetDistSigma();}
288
289 /*
290 * Get the Likelihood for a Conversion
291 */
292 Double_t GetLikelihoodAP(){return fCurrentV0->GetLikelihoodAP(0,0);}
293
a0b94e5c 294 /*
295 * Gets the Energy of the negative track.
296 */
297 Double_t GetNegativeTrackEnergy() const{return fCurrentNegativeKFParticle->E();}
298
299 /*
300 * Gets the Energy of the positive track.
301 */
302 Double_t GetPositiveTrackEnergy() const{return fCurrentPositiveKFParticle->E();}
303
304 /*
305 * Gets the Energy of the mother candidate.
306 */
307 Double_t GetMotherCandidateEnergy() const{return fCurrentMotherKFCandidate->E();}
308
309 /*
310 * Gets the Pt of the negative track.
311 */
312 Double_t GetNegativeTrackPt() const{return fNegativeTrackLorentzVector->Pt();}
313
314 /*
315 * Gets the Pt of the positive track.
316 */
317 Double_t GetPositiveTrackPt() const{return fPositiveTrackLorentzVector->Pt();}
318
9640a3d1 319
a0b94e5c 320 /*
321 * Gets the Pt of the mother candidate.
322 */
323 Double_t GetMotherCandidatePt() const{return fMotherCandidateLorentzVector->Pt();}
9640a3d1 324
325
326 /*
327 * Gets the P of the mother candidate.
328 */
329 Double_t GetMotherCandidateP() const{return fMotherCandidateLorentzVector->P();}
a0b94e5c 330
9640a3d1 331
a0b94e5c 332 /*
333 * Gets the Eta of the negative track.
334 */
335 Double_t GetNegativeTrackEta() const{return fNegativeTrackLorentzVector->Eta();}
336 /*
337 * Gets the Eta of the positive track.
338 */
339 Double_t GetPositiveTrackEta() const{return fPositiveTrackLorentzVector->Eta();}
340 /*
341 * Gets the Eta of the mother candidate.
342 */
343 Double_t GetMotherCandidateEta() const{return fMotherCandidateLorentzVector->Eta();}
344
345 /*
346 * Gets the NDF of the mother candidate.
347 */
348 Double_t GetMotherCandidateNDF() const{return fCurrentMotherKFCandidate->GetNDF();}
349
350 /*
351 * Gets the Chi2 of the mother candidate.
352 */
353 Double_t GetMotherCandidateChi2() const{return fCurrentMotherKFCandidate->GetChi2();}
354
355 /*
356 * Gets the Mass of the mother candidate.
357 */
358 Double_t GetMotherCandidateMass() const{return fMotherCandidateKFMass;}
359
360 /*
361 * Gets the Width of the mother candidate.
362 */
363 Double_t GetMotherCandidateWidth() const{return fMotherCandidateKFWidth;}
364
365 /*
366 * Gets the Phi of the negative track.
367 */
368 Double_t GetNegativeTrackPhi() const;
369
370 /*
371 * Gets the Phi of the positive track.
372 */
373 Double_t GetPositiveTrackPhi() const;
374
375 /*
376 * Gets the Phi of the mother candidate.
377 */
378 Double_t GetMotherCandidatePhi() const;
379
380 /*
381 * Gets the Rapidity of the mother candidate.
382 */
383 Double_t GetMotherCandidateRapidity() const;
384
9640a3d1 385
386 /*
387 * Gets the P of the negative track.
388 */
389 Double_t GetNegativeTrackP() const{return fNegativeTrackLorentzVector->P();}
390
391 /*
392 * Gets the P of the positive track.
393 */
394 Double_t GetPositiveTrackP() const{return fPositiveTrackLorentzVector->P();}
395
396 /*
397 * Gets the dE/dx in the TPC of the negative track.
398 */
399 Double_t GetNegativeTrackTPCdEdx() const{return fCurrentNegativeESDTrack->GetTPCsignal();}
400
401 /*
402 * Gets the dE/dx in the TPC of the positive track.
403 */
404 Double_t GetPositiveTrackTPCdEdx() const{return fCurrentPositiveESDTrack->GetTPCsignal();}
ebcfaa7e 405
406 /*
407 * Gets the Number of the TPC clusters of the negative track.
408 */
409 Double_t GetNegativeTracknTPCClusters() const{return fCurrentNegativeESDTrack->GetNcls(1);}
410
411 /*
412 * Gets the Number of the TPC clusters of the positive track.
413 */
414 Double_t GetPositiveTracknTPCClusters() const{return fCurrentPositiveESDTrack->GetNcls(1);}
415
416 /*
417 * Gets the Number of the ITS clusters of the negative track.
418 */
419 Double_t GetNegativeTracknITSClusters() const{return fCurrentNegativeESDTrack->GetNcls(0);}
420
421 /*
422 * Gets the Number of the ITS clusters of the positive track.
423 */
424 Double_t GetPositiveTracknITSClusters() const{return fCurrentPositiveESDTrack->GetNcls(0);}
a0b94e5c 425
426 /*
427 * Update data which need to be updated every event.
428 */
429 void UpdateEventByEventData();
430
431 /*
432 * Gets the MaxRCut value.
433 */
434 Double_t GetMaxRCut() const{return fMaxR;}
435
436 /*
437 * Gets the Eta cut value.
438 */
439 Double_t GetEtaCut() const{return fEtaCut;}
440
441 /*
442 * Gets the Pt cut value.
443 */
444 Double_t GetPtCut() const{return fPtCut;}
445
446
447 /*
448 * Gets the MaxZCut value.
449 */
450 Double_t GetMaxZCut() const{return fMaxZ;}
451
452
48682642 453 /*
454 * Gets the MinClsTPC value.
455 */
456 Double_t GetMinClsTPCCut() const{return fMinClsTPC;}
457
458
a0b94e5c 459 /*
460 * Gets the line cut values.
461 */
462 Double_t GetLineCutZRSlope() const{return fLineCutZRSlope;}
463 Double_t GetLineCutZValue() const{return fLineCutZValue;}
464
465 /*
466 * Gets the Chi2 cut value for the conversions.
467 */
468 Double_t GetChi2CutConversion() const{return fChi2CutConversion;}
469
470 /*
471 * Gets the Chi2 cut value for the mesons.
472 */
473 Double_t GetChi2CutMeson() const{return fChi2CutMeson;}
474
475 Double_t GetPositiveTrackLength() const{return fCurrentPositiveESDTrack->GetIntegratedLength();}
476 Double_t GetNegativeTrackLength() const{return fCurrentNegativeESDTrack->GetIntegratedLength();}
477
478 Double_t GetPositiveNTPCClusters() const{return fCurrentPositiveESDTrack->GetTPCNcls();}
479 Double_t GetNegativeNTPCClusters() const{return fCurrentNegativeESDTrack->GetTPCNcls();}
480
481 /*
482 * Sets the MaxRCut value.
483 */
484 void SetMaxRCut(Double_t maxR){fMaxR=maxR;}
485
486 /*
487 * Sets the EtaCut value.
488 */
489 void SetEtaCut(Double_t etaCut){fEtaCut=etaCut;}
490
491 /*
492 * Sets the PtCut value.
493 */
494 void SetPtCut(Double_t ptCut){fPtCut=ptCut;}
495
48682642 496 /*
497 * Sets the PtCut value.
498 */
499 void SetSinglePtCut(Double_t singleptCut){fSinglePtCut=singleptCut;}
500
a0b94e5c 501
502 /*
503 * Sets the MaxZCut value.
504 */
505 void SetMaxZCut(Double_t maxZ){fMaxZ=maxZ;}
506
48682642 507 /*
508 * Sets the MinClsTPC value.
509 */
510 void SetMinClsTPCCut(Double_t minClsTPC){fMinClsTPC=minClsTPC;}
a0b94e5c 511
512 /*
513 * Sets the LineCut values.
514 */
515 void SetLineCutZRSlope(Double_t LineCutZRSlope){fLineCutZRSlope=LineCutZRSlope;}
516 void SetLineCutZValue(Double_t LineCutZValue){fLineCutZValue=LineCutZValue;}
517
518 /*
519 * Sets the Chi2Cut value for conversions.
520 */
521 void SetChi2CutConversion(Double_t chi2){fChi2CutConversion=chi2;}
522
523 /*
524 * Sets the Chi2Cut for the mesons.
525 */
526 void SetChi2CutMeson(Double_t chi2){fChi2CutMeson=chi2;}
527
528 /*
529 * Sets the XVertexCut value.
530 */
531 void SetXVertexCut(Double_t xVtx){fCurrentXValue=xVtx;}
532
533 /*
534 * Sets the YVertexCut value.
535 */
536 void SetYVertexCut(Double_t yVtx){fCurrentYValue=yVtx;}
537
538 /*
539 * Sets the ZVertexCut value.
540 */
541 void SetZVertexCut(Double_t zVtx){fCurrentZValue=zVtx;}
542
543 /*
544 * Sets the PIDProbabilityCut value for track particles.
545 */
546 void SetPIDProbability(Double_t pidProb){fPIDProbabilityCutPositiveParticle=pidProb; fPIDProbabilityCutNegativeParticle=pidProb;}
547
548 /*
549 * Sets the PIDProbability cut value for the negative track.
550 */
551 void SetPIDProbabilityNegativeParticle(Double_t pidProb){fPIDProbabilityCutNegativeParticle=pidProb;}
552
553 /*
554 * Sets the PIDProbability cut value for the positive track.
555 */
556 void SetPIDProbabilityPositiveParticle(Double_t pidProb){fPIDProbabilityCutPositiveParticle=pidProb;}
9640a3d1 557
558 /*
559 * Sets the PIDnSigmaAboveElectron cut value for the tracks.
560 */
561 void SetPIDnSigmaAboveElectronLine(Double_t nSigmaAbove){fPIDnSigmaAboveElectronLine=nSigmaAbove;}
562
563 /*
564 * Sets the PIDnSigmaBelowElectron cut value for the tracks.
565 */
566 void SetPIDnSigmaBelowElectronLine(Double_t nSigmaBelow){fPIDnSigmaBelowElectronLine=nSigmaBelow;}
a0b94e5c 567
9640a3d1 568 /*
569 * Sets the PIDnSigmaAbovePion cut value for the tracks.
570 */
571 void SetPIDnSigmaAbovePionLine(Double_t nSigmaAbovePion){fPIDnSigmaAbovePionLine=nSigmaAbovePion;}
572
573 /*
574 * Sets the PIDMinPnSigmaAbovePion cut value for the tracks.
575 */
576 void SetPIDMinPnSigmaAbovePionLine(Double_t MinPnSigmaAbovePion){fPIDMinPnSigmaAbovePionLine=MinPnSigmaAbovePion;}
577
a0b94e5c 578 /*
579 * Sets the SigmaMassCut value.
580 */
581 void SetSigmaMass(Double_t sigmaMass){fNSigmaMass=sigmaMass;}
582
583 /*
584 * Sets the flag to enable/disable the usage of MC information.
585 */
586 void SetDoMCTruth(Bool_t doMC){fDoMC = doMC;}
61374d97 587
588 /*
589 * Sets the flag to enable/disable the usage of MC information.
590 */
037dc2db 591 Bool_t GetDoMCTruth() const {return fDoMC;}
a0b94e5c 592
9640a3d1 593 /*
594 * Sets the flag to enable/disable the cut dedx N sigma
595 */
596
597 void SetDodEdxSigmaCut( Bool_t dodEdxSigmaCut){fDodEdxSigmaCut=dodEdxSigmaCut;}
598
599
a0b94e5c 600 /*
601 * Updates the V0 information of the current V0.
602 */
603 Bool_t UpdateV0Information();
604
605 /*
606 * Resets the V0 index.
607 */
608 void ResetV0IndexNumber(){fCurrentV0IndexNumber=0;}
609
610 /*
611 * Sets the histograms.
612 */
4a6157dc 613 void SetHistograms(AliGammaConversionHistograms * const histograms){fHistograms=histograms;}
a0b94e5c 614
615 /*
616 * Check for primary vertex.
617 */
618 Bool_t CheckForPrimaryVertex();
619
620 /*
621 * Gets a vector of good v0s.
622 */
5e55d806 623 TClonesArray* GetCurrentEventGoodV0s() const{return fCurrentEventGoodV0s;}
a0b94e5c 624
625 /*
626 * Gets the vector of previous events v0s (for bacground analysis)
627 */
5e55d806 628 AliGammaConversionKFVector* GetBGGoodV0s(Int_t event);
629 // vector<AliKFParticle> GetPreviousEventGoodV0s() const{return fPreviousEventGoodV0s;}
a0b94e5c 630
631 void SetUseOwnXYZCalculation(Bool_t flag){fUseOwnXYZCalculation=flag;}
632
633 Bool_t GetHelixCenter(AliESDtrack* track, Double_t b,Int_t charge, Double_t center[2]);
634
635 Bool_t GetConvPosXY(AliESDtrack* ptrack,AliESDtrack* ntrack, Double_t b, Double_t convpos[2]);
636
637 Double_t GetConvPosZ(AliESDtrack* ptrack,AliESDtrack* ntrack, Double_t b);
1e7846f4 638
48682642 639 Bool_t GetArmenterosQtAlfa(AliKFParticle * posKFparticle,AliKFParticle * negKFparticle,AliKFParticle * gamKFparticle,Double_t armenterosQtAlfa[2]);
640
1e7846f4 641 void SetDoCF(Bool_t flag){fDoCF = flag;}
642
77880bd8 643 Bool_t CheckV0FinderStatus(Int_t index);
644
645 void SetOnFlyFlag(Bool_t flag){fUseOnFlyV0Finder = flag;}
87f6de3e 646
647 Int_t GetNBGEvents(){return fBGEventHandler->GetNBGEvents();}
77880bd8 648
87f6de3e 649 void SetCalculateBackground(Bool_t flag){fCalculateBackground=flag;}
77880bd8 650
037dc2db 651 AliGammaConversionBGHandler* GetBGHandler() const {return fBGEventHandler;}
652
653 Double_t GetVertexZ(){return fESDEvent->GetPrimaryVertex()->GetZ();}
654
655 Int_t GetMultiplicity(){return CountESDTracks();}
656
657 void SetESDtrackCuts(AliESDtrackCuts * const trackCuts){fEsdTrackCuts = trackCuts;}
658
659 Int_t CountESDTracks();
660
661 Int_t GetCurrentV0IndexNumber() const {return fCurrentV0IndexNumber;}
662
663 Bool_t CheckIfPi0IsMother(Int_t label);
664
a0b94e5c 665 private:
666 AliStack * fMCStack; // pointer to MonteCarlo particle stack
48682642 667 // AliMCEventHandler* fMCTruth; // for CF pointer to the MC object
a0b94e5c 668 AliMCEvent *fMCEvent; // for CF pointer to MC event
669 TChain * fChain; // pointer to the TChain
670
48682642 671 // AliESDInputHandler* fESDHandler; //! pointer to esd object
a0b94e5c 672 AliESDEvent *fESDEvent; //! pointer to esd object
673
674
675 // for CF
4a6157dc 676 AliCFManager *fCFManager; // pointer to the cf manager
677 // AliCFContainer *container;
a0b94e5c 678
9640a3d1 679 // for dEdx cut based on nSigma to a particle line
037dc2db 680 AliESDpid * fESDpid; // esd pid
a0b94e5c 681
a81d2986 682 AliGammaConversionHistograms *fHistograms; // pointer to histogram handling class
a0b94e5c 683
4a6157dc 684 Int_t fCurrentV0IndexNumber; // the current v0 index number
a0b94e5c 685 AliESDv0 * fCurrentV0; //! pointer to the current v0
686 AliKFParticle * fCurrentNegativeKFParticle; //! pointer to the negative KF particle
687 AliKFParticle * fCurrentPositiveKFParticle; //! pointer to the positive KF particle
688 AliKFParticle * fCurrentMotherKFCandidate; //! pointer to the positive KF particle
689
690 AliESDtrack * fCurrentNegativeESDTrack; //! pointer to the negative ESD track
691 AliESDtrack * fCurrentPositiveESDTrack; //! pointer to the positive ESD track
692
693 TLorentzVector * fNegativeTrackLorentzVector; //! pointer to the negative Track Lorentz Vector
694 TLorentzVector * fPositiveTrackLorentzVector; //! pointer to the positive Track Lorentz Vector
695 TLorentzVector * fMotherCandidateLorentzVector; //! pointer to the mother candidate Track Lorentz Vector
696
697 Double_t fCurrentXValue; // current x value
698 Double_t fCurrentYValue; // current y value
699 Double_t fCurrentZValue; // current z value
700
701 Int_t fPositiveTrackPID; // positive track pid
702 Int_t fNegativeTrackPID; // negative track pid
703
704 TParticle *fNegativeMCParticle; //!
705 TParticle *fPositiveMCParticle; //!
706 TParticle *fMotherMCParticle; //!
707
708 Double_t fMotherCandidateKFMass; // mass of mother candidate KF particle
709 Double_t fMotherCandidateKFWidth; // width of mother candidate KF particle
710
711 Bool_t fUseKFParticle; // flag
712 Bool_t fUseESDTrack; // flag
713 Bool_t fDoMC; // flag
714
715 //cuts
716 Double_t fMaxR; //r cut
717 Double_t fEtaCut; //eta cut
718 Double_t fPtCut; // pt cut
48682642 719 Double_t fSinglePtCut; // pt cut for electron/positron
720 Double_t fMaxZ; //z cut
721 Double_t fMinClsTPC;
a0b94e5c 722 Double_t fLineCutZRSlope; //linecut
723 Double_t fLineCutZValue; //linecut
724 Double_t fChi2CutConversion; //chi2cut
725 Double_t fChi2CutMeson; //chi2cut
726 Double_t fPIDProbabilityCutNegativeParticle; //pid cut
727 Double_t fPIDProbabilityCutPositiveParticle; //pid cut
9640a3d1 728 Bool_t fDodEdxSigmaCut; // flag to use the dEdxCut based on sigmas
037dc2db 729 Double_t fPIDnSigmaAboveElectronLine; // sigma cut
730 Double_t fPIDnSigmaBelowElectronLine; // sigma cut
731 Double_t fPIDnSigmaAbovePionLine; // sigma cut
732 Double_t fPIDMinPnSigmaAbovePionLine; // sigma cut
a0b94e5c 733 Double_t fXVertexCut; //vertex cut
734 Double_t fYVertexCut; //vertex cut
735 Double_t fZVertexCut; // vertexcut
736
737 Double_t fNSigmaMass; //nsigma cut
738
739 Bool_t fUseImprovedVertex; //flag
740
741 Bool_t fUseOwnXYZCalculation; //flag that determines if we use our own calculation of xyz (markus)
1e7846f4 742
cb90a330 743 Bool_t fDoCF; //flag
744
037dc2db 745 Bool_t fUseOnFlyV0Finder; //flag
77880bd8 746
cb90a330 747 Bool_t fUpdateV0AlreadyCalled; //flag
a0b94e5c 748
5e55d806 749 TClonesArray* fCurrentEventGoodV0s; //vector of good v0s
750 // vector<AliKFParticle> fPreviousEventGoodV0s; // vector of good v0s from prevous events
751
037dc2db 752 Bool_t fCalculateBackground; //flag
753 AliGammaConversionBGHandler *fBGEventHandler; // background handler
754 Bool_t fBGEventInitialized; //flag
a0b94e5c 755
037dc2db 756 AliESDtrackCuts *fEsdTrackCuts; // track cuts
757 Int_t fNumberOfESDTracks; //track counter
758
759 ClassDef(AliV0Reader,10)
a0b94e5c 760};
761#endif
762
763
764