add setter for dca cut parameters, initialize missing histograms in ctor
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaChargedParticles.h
CommitLineData
477d6cee 1#ifndef ALIANACHARGEDPARTICLES_H
2#define ALIANACHARGEDPARTICLES_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
477d6cee 5
6//_________________________________________________________________________
34c16486 7//
8// Class for track selection and identification (not done now)
9// Tracks from the CTS are kept in the AOD.
10// Few histograms produced.
477d6cee 11//
12//-- Author: Gustavo Conesa (INFN-LNF)
34c16486 13
7cd4e982 14// Root system
477d6cee 15class TH2F;
05d0d05d 16
7cd4e982 17// Analysis system
745913ae 18#include "AliAnaCaloTrackCorrBaseClass.h"
477d6cee 19
745913ae 20class AliAnaChargedParticles : public AliAnaCaloTrackCorrBaseClass {
477d6cee 21
22 public:
477d6cee 23 AliAnaChargedParticles() ; // default ctor
05d0d05d 24 virtual ~AliAnaChargedParticles() { ; } //virtual dtor
78219bac 25
52bd777f 26 Bool_t AcceptDCA(const Float_t pt, const Float_t dca) ;
27
477d6cee 28 TList * GetCreateOutputObjects();
29
52bd777f 30 Int_t GetVertexBC(const AliVVertex * vtx);
31
05d0d05d 32 void Init();
477d6cee 33
05d0d05d 34 void InitParameters();
477d6cee 35
05d0d05d 36 void Print(const Option_t * opt) const;
477d6cee 37
05d0d05d 38 void MakeAnalysisFillAOD() ;
477d6cee 39
05d0d05d 40 void MakeAnalysisFillHistograms() ;
477d6cee 41
52bd777f 42 void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
43 void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
fedea415 44
52bd777f 45 void SwitchOnFillVertexBC0Histograms() { fFillVertexBC0Histograms = kTRUE ; }
46 void SwitchOffFillVertexBC0Histograms() { fFillVertexBC0Histograms = kFALSE ; }
47
48 void SwitchOnRecalculateVertexBC() { fRecalculateVertexBC = kTRUE ; }
49 void SwitchOffRecalculateVertexBC() { fRecalculateVertexBC = kFALSE ; }
50
cbd6236f 51 void SetDCACutParameters(Int_t i, Float_t par) { if(i >= 0 && i < 3) fDCACutParam[i] = par ; }
52
fedea415 53 private:
05d0d05d 54
cbd6236f 55 Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
56 Bool_t fFillVertexBC0Histograms; // Fill histograms for tracks with vertex BC=0 or not related histograms
57 Bool_t fRecalculateVertexBC; // Recalculate vertex BC for older AODs
58 Float_t fDCACutParam[3]; // DCA cut function parameters
52bd777f 59
fedea415 60 //Histograms
05d0d05d 61 TH1F * fhNtracks; //! track multiplicity distribution
62 TH1F * fhPt; //! pT distribution
52bd777f 63 TH1F * fhPtNoCut; //! pT distribution, no cut
64 TH1F * fhPtCutDCA; //! pT distribution, Apply DCA cut
65 TH1F * fhPtCutDCABCOK;//! pT distribution, Apply DCA cut, BC=0 or -100
66
fedea415 67 TH1F * fhPtPileUp[7]; //! pT distribution, pile-up defined events
05d0d05d 68 TH2F * fhPhiNeg; //! phi distribution vs pT, negative
69 TH2F * fhEtaNeg; //! eta distribution vs pT, negative
70 TH2F * fhPhiPos; //! phi distribution vs pT, positive
71 TH2F * fhEtaPos; //! eta distribution vs pT, positive
72 TH2F * fhEtaPhiPos; //! eta vs phi distribution of positive charge
fe9615b9 73 TH2F * fhEtaPhiNeg; //! eta vs phi distribution of negative charge
74
52bd777f 75 TH1F * fhPtVtxOutBC0; //! pT distribution of tracks from a vertex with BC!=0
76 TH2F * fhEtaPhiVtxOutBC0;//! eta/phi distribution of tracks from a vertex with BC!=0
77 TH1F * fhPtVtxInBC0; //! pT distribution of tracks from a vertex with BC=0
78 TH2F * fhEtaPhiVtxInBC0; //! eta/phi distribution of tracks from a vertex with BC=0
79
8f467228 80 TH1F * fhPtSPDRefit; //! pT distribution of tracks with SPD and ITS refit
81 TH1F * fhPtNoSPDRefit; //! pT distribution of constrained tracks no SPD and with ITSRefit
82 TH1F * fhPtNoSPDNoRefit; //! pT distribution of constrained tracks with no SPD requierement and without ITSRefit
83
84 TH2F * fhEtaPhiSPDRefitPt02; //! eta-phi distribution of tracks with SPD and ITS refit, 0 < pT < 2 GeV
85 TH2F * fhEtaPhiNoSPDRefitPt02; //! eta-phi distribution of constrained tracks no SPD and with ITSRefit, 0 < pT < 2 GeV
86 TH2F * fhEtaPhiNoSPDNoRefitPt02; //! eta-phi distribution of constrained tracks with no SPD requierement and without ITSRefit, 0 < pT < 2 GeV
87
88 TH2F * fhEtaPhiSPDRefitPt3; //! eta-phi distribution of tracks with SPD and ITS refit, pT > 3 GeV
89 TH2F * fhEtaPhiNoSPDRefitPt3; //! eta-phi distribution of constrained tracks no SPD and with ITSRefit, pT > 3 GeV
90 TH2F * fhEtaPhiNoSPDNoRefitPt3; //! eta-phi distribution of constrained tracks with no SPD requierement and without ITSRefit, pT > 3 GeV
91
477d6cee 92 //MC
05d0d05d 93 TH1F * fhPtPion; //! pT distribution
94 TH2F * fhPhiPion; //! phi distribution vs pT
95 TH2F * fhEtaPion; //! eta distribution vs pT
477d6cee 96
05d0d05d 97 TH1F * fhPtProton; //! pT distribution
98 TH2F * fhPhiProton; //! phi distribution vs pT
99 TH2F * fhEtaProton; //! eta distribution vs pT
477d6cee 100
05d0d05d 101 TH1F * fhPtElectron; //! pT distribution
477d6cee 102 TH2F * fhPhiElectron; //! phi distribution vs pT
103 TH2F * fhEtaElectron; //! eta distribution vs pT
104
05d0d05d 105 TH1F * fhPtKaon; //! pT distribution
106 TH2F * fhPhiKaon; //! phi distribution vs pT
107 TH2F * fhEtaKaon; //! eta distribution vs pT
477d6cee 108
05d0d05d 109 TH1F * fhPtUnknown; //! pT distribution
110 TH2F * fhPhiUnknown; //! phi distribution vs pT
111 TH2F * fhEtaUnknown; //! eta distribution vs pT
477d6cee 112
fe9615b9 113 // TOF
fedea415 114 TH1F * fhTOFSignal; //! TOF signal
115 TH1F * fhTOFSignalPtCut; //! TOF signal pt and acceptance cut
116 TH1F * fhTOFSignalBCOK; //! TOF signal pt and acceptance cut
117 TH2F * fhPtTOFSignal; //! TOF signal vs track pT, good status
118 TH2F * fhPtTOFSignalPileUp[7]; //! TOF signal vs track pT, good status, pile-up
52bd777f 119 TH2F * fhPtTOFSignalVtxOutBC0; //! TOF signal vs track pT, good status
120 TH2F * fhPtTOFSignalVtxOutBC0PileUp[7];//! TOF signal vs track pT, good status, pile-up
121 TH2F * fhPtTOFSignalVtxInBC0; //! TOF signal vs track pT, good status
122 TH2F * fhPtTOFSignalVtxInBC0PileUp[7]; //! TOF signal vs track pT, good status, pile-up
fedea415 123 TH1F * fhPtTOFStatus0; //! pT of tracks not passing TOF status selection
124 TH2F * fhEtaPhiTOFStatus0; //! eta/phi of tracks not passing TOF status selection
125 TH2F * fhEtaPhiTOFBC0; //! eta/phi of tracks passing TOF status selection, tracks in BC=0
126 TH2F * fhEtaPhiTOFBCPlus; //! eta/phi of tracks passing TOF status selection, tracks in BC>0
127 TH2F * fhEtaPhiTOFBCMinus; //! eta/phi of tracks passing TOF status selection, tracks in BC<0
128 TH2F * fhEtaPhiTOFBC0PileUpSPD; //! eta/phi of tracks passing TOF status selection, tracks in BC=0, pile-up spd
129 TH2F * fhEtaPhiTOFBCPlusPileUpSPD; //! eta/phi of tracks passing TOF status selection, tracks in BC>0, pile-up spd
130 TH2F * fhEtaPhiTOFBCMinusPileUpSPD; //! eta/phi of tracks passing TOF status selection, tracks in BC<0, pile-up spd
52bd777f 131
132 TH1F * fhProductionVertexBC; //! check BC of production vertex
133 TH1F * fhProductionVertexBCPileUp[7]; //! check BC of production vertex, pile-up
fe9615b9 134
fedea415 135 TH2F * fhPtDCA[3]; //! DCA (xy,z,constrained) of all tracks
8f467228 136
137 TH2F * fhPtDCASPDRefit[3]; //! DCA (xy,z,constrained) of tracks with SPD and ITS refit
138 TH2F * fhPtDCANoSPDRefit[3]; //! DCA (xy,z,constrained) of constrained tracks no SPD and with ITSRefit
139 TH2F * fhPtDCANoSPDNoRefit[3]; //! DCA (xy,z,constrained) of constrained tracks with no SPD requierement and without ITSRefit
140
52bd777f 141 TH2F * fhPtDCAVtxOutBC0[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC!=0
142 TH2F * fhPtDCAVtxInBC0[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC==0
fedea415 143 TH2F * fhPtDCAPileUp[3]; //! DCA (xy,z,constrained) of all tracks, SPD pile-up
52bd777f 144 TH2F * fhPtDCAVtxOutBC0PileUp[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC!=0, SPD pile-up
145 TH2F * fhPtDCAVtxInBC0PileUp[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC==0, SPD pile-up
fedea415 146
147 TH2F * fhPtDCATOFBC0[3]; //! DCA (xy,z,constrained) of all tracks, hit in TOF and BC=0
148 TH2F * fhPtDCAPileUpTOFBC0[3]; //! DCA (xy,z,constrained) of all tracks, hit in TOF and BC=0
52bd777f 149 TH2F * fhPtDCATOFBCOut[3]; //! DCA (xy,z,constrained) of all tracks, hit in TOF and BC!=0
fedea415 150
151 TH2F * fhPtDCANoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, no hit in TOF
52bd777f 152 TH2F * fhPtDCAVtxOutBC0NoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC!=0, no hit in TOF
153 TH2F * fhPtDCAVtxInBC0NoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC=0, no hit in TOF
fedea415 154 TH2F * fhPtDCAPileUpNoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, SPD pile-up, no hit in TOF
52bd777f 155 TH2F * fhPtDCAVtxOutBC0PileUpNoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC!=0, SPD pile-up, no hit in TOF
156 TH2F * fhPtDCAVtxInBC0PileUpNoTOFHit[3]; //! DCA (xy,z,constrained) of all tracks, vertex BC=0, SPD pile-up, no hit in TOF
fedea415 157
158
34c16486 159 AliAnaChargedParticles( const AliAnaChargedParticles & ch) ; // cpy ctor
160 AliAnaChargedParticles & operator = (const AliAnaChargedParticles & ch) ; // cpy assignment
c5693f62 161
52bd777f 162 ClassDef(AliAnaChargedParticles,7)
05d0d05d 163
164} ;
477d6cee 165
166
167#endif //ALIANACHARGEDPARTICLES_H
168
169
170