]>
Commit | Line | Data |
---|---|---|
7f11ea62 | 1 | #ifndef AliAnalysisTaskV0QA_h |
2 | #define AliAnalysisTaskV0QA_h | |
3 | //---------------------------------- | |
4 | // Class to check the V0 method efficiency for | |
5 | // Author A. Marin revision 18/10/2009 | |
6 | //---------------------------------- | |
7 | ||
d38f1e88 | 8 | #include "THnSparse.h" |
9 | #include "TList.h" | |
8b04dae1 | 10 | #include "AliPID.h" |
47dce8bb | 11 | #include "AliAnalysisTaskSE.h" |
d38f1e88 | 12 | #include "AliAnalysisManager.h" |
13 | #include "AliAnalysisDataContainer.h" | |
7f11ea62 | 14 | |
15 | class TH1; | |
16 | class THnSparse; | |
17 | class TList; | |
18 | class AliESDEvent; | |
19 | class AliESD; | |
20 | class TLorentzVector; | |
21 | class AliAnalysisManager; | |
22 | class AliAnalysisDataContainer; | |
d38f1e88 | 23 | class AliESDtrackCuts; |
8b04dae1 | 24 | class AliMCEventHandler; |
25 | class AliStack; | |
d38f1e88 | 26 | class TChain; |
27 | ||
47dce8bb | 28 | class AliAnalysisTaskV0QA : public AliAnalysisTaskSE { |
d38f1e88 | 29 | public: |
30 | // AliAnalysisTaskV0QA() : AliAnalysisTask(), fESD(0), fChain(0) {} | |
47dce8bb | 31 | AliAnalysisTaskV0QA(); |
32 | AliAnalysisTaskV0QA(const char *name); | |
33 | ||
d38f1e88 | 34 | virtual ~AliAnalysisTaskV0QA(); |
35 | ||
47dce8bb | 36 | virtual void UserCreateOutputObjects(); |
37 | virtual void UserExec(Option_t *option); | |
d38f1e88 | 38 | virtual void Terminate(Option_t *); |
39 | ||
40 | void InspectListOfChargedParticles(); | |
41 | void InspectListOfV0s(); | |
42 | void FillHnSparseGamma(); | |
43 | void FillHnSparseK0(); | |
44 | void FillHnSparseL(); | |
45 | void FillHnSparseAL(); | |
46 | ||
47 | // void getPID(AliESDtrack *esdTrack, Stat_t &fpid, Stat_t &fweight); | |
48 | ||
49 | ||
50 | // AliESDtrackCuts* fEsdTrackCuts; // Object containing the parameters of the esd track cuts | |
51 | // void SetESDtrackCuts(); | |
52 | ||
53 | ||
54 | ||
55 | ||
56 | Int_t GetTPCReference(Int_t label); | |
57 | ||
58 | ||
59 | ||
60 | ||
61 | private: | |
62 | ||
63 | ||
64 | ||
7f11ea62 | 65 | AliESDEvent *fESD; // ESD object |
66 | AliStack * fStack; // The MC Stack | |
67 | AliMCEventHandler* fMCtruth; // The mc info | |
d38f1e88 | 68 | |
7f11ea62 | 69 | TChain * fChain; // Input chian |
d38f1e88 | 70 | TList * fOutputContainer; // ! output data container |
71 | ||
7f11ea62 | 72 | THnSparse *fSparseV0; // THnSparse with Gamma info |
73 | THnSparse *fSparseK0; // THnSparse with K0 info | |
74 | THnSparse *fSparseL; // THnSparse with L info | |
75 | THnSparse *fSparseAL; // THnSparse with antiL info | |
d38f1e88 | 76 | |
77 | ////////////////////////////////// | |
78 | ||
7f11ea62 | 79 | Int_t fnEv; // Number of event to analyse |
ec835029 | 80 | Int_t fgDim; // Dimension of the THnSparse |
d38f1e88 | 81 | |
7f11ea62 | 82 | Int_t fnConvGamGeant; // number of conversions in mc |
d38f1e88 | 83 | |
ec835029 | 84 | Int_t * fgConvGamGeantIndex; //[fgDim] index of conversions in mc |
85 | Int_t * feNegConvGamGeantIndex; //[fgDim] index of e- from conversions in mc | |
86 | Int_t * fePosConvGamGeantIndex; //[fgDim] index of e+ from conversions in mc | |
87 | Float_t * feNegConvGamGeantLength; //[fgDim] length of the e- from conv | |
88 | Float_t * fePosConvGamGeantLength; //[fgDim] length of the e+ from conv | |
d38f1e88 | 89 | |
90 | ||
ec835029 | 91 | Int_t * feNegConvGamSingleRecIndex; //[fgDim] index of e- from conversions reconstructed single |
92 | Int_t * fePosConvGamSingleRecIndex; //[fgDim] index of e+ from conversions reconstructed single | |
93 | Int_t * feNegConvGamV0RecIndex; //[fgDim] index of e- from conversions reconstructed in V0 | |
94 | Int_t * fePosConvGamV0RecIndex; //[fgDim] index of e- from conversions reconstructed in V0 | |
95 | Int_t * fConvGamV0RecIndexPos; //[fgDim] index of V0 from conversions reconstructed | |
96 | Int_t * fConvGamV0RecIndexNeg; //[fgDim] index of V0 from conversions reconstructed | |
97 | ||
d38f1e88 | 98 | |
99 | ||
7f11ea62 | 100 | // Lambda |
101 | Int_t fnDecayLGeant; // number of Lambda in mc | |
ec835029 | 102 | Int_t * flDecayLGeantIndex; //[fgDim] index of Lambda in MC |
103 | Int_t * fpiNegDecayLGeantIndex; //[fgDim] index of pi- from L in MC | |
104 | Int_t * fpPosDecayLGeantIndex; //[fgDim] index of proton from L in MC | |
105 | Float_t * fpiNegDecayLGeantLength; //[fgDim] length of the pi- from MC | |
106 | Float_t * fpPosDecayLGeantLength; //[fgDim] length of the proton from MC | |
d38f1e88 | 107 | |
ec835029 | 108 | Int_t * fpiNegDecayLSingleRecIndex; //[fgDim] index of pi- from L reconstr. single |
109 | Int_t * fpPosDecayLSingleRecIndex; //[fgDim] index of proton from L reconstr. single | |
110 | Int_t * fpiNegDecayLV0RecIndex; //[fgDim] index of pi- from L reconstr. V0 | |
111 | Int_t * fpPosDecayLV0RecIndex; //[fgDim] index of proton from L reconstr. V0 | |
112 | Int_t * fDecayLV0RecIndexPos; //[fgDim] index of pi- from L reconstr. V0 | |
113 | Int_t * fDecayLV0RecIndexNeg; //[fgDim] index of proton from L reconstr. | |
d38f1e88 | 114 | |
115 | ||
116 | // AntiLambda | |
7f11ea62 | 117 | Int_t fnDecayALGeant; // number of Lambdabar in mc |
ec835029 | 118 | Int_t * falDecayALGeantIndex; //[fgDim] index of Lambdabar in MC |
119 | Int_t * fpiPosDecayALGeantIndex; //[fgDim] index of pi+ from AL in MC | |
120 | Int_t * fapNegDecayALGeantIndex; //[fgDim] index of antiproton from AL in MC | |
121 | Float_t * fpiPosDecayALGeantLength; //[fgDim] Length of pi+ in MC | |
122 | Float_t * fapNegDecayALGeantLength; //[fgDim] Length of antiproton in MC | |
d38f1e88 | 123 | |
ec835029 | 124 | Int_t * fpiPosDecayALSingleRecIndex; //[fgDim] index of pi+ from AL reconstr. single |
125 | Int_t * fapNegDecayALSingleRecIndex; //[fgDim] index of antiproton from AL reconstr. single | |
126 | Int_t * fpiPosDecayALV0RecIndex; //[fgDim] index of pi+ from AL reconstr. V0 | |
127 | Int_t * fapNegDecayALV0RecIndex; //[fgDim] index of antiproton from AL reconstr. V0 | |
128 | Int_t * fDecayALV0RecIndexPos; //[fgDim] index of pi+ V0 | |
129 | Int_t * fDecayALV0RecIndexNeg; //[fgDim] index of antiproton V0 | |
d38f1e88 | 130 | |
131 | ||
132 | // K0S | |
7f11ea62 | 133 | Int_t fnDecayK0Geant; // number of K0s in mc |
ec835029 | 134 | Int_t * fK0DecayK0GeantIndex; //[fgDim] index of K0S in MC |
135 | Int_t * fpiNegDecayK0GeantIndex; //[fgDim] index of pi- from K0s in MC | |
136 | Int_t * fpiPosDecayK0GeantIndex; //[fgDim] index of pi+ from K0s in MC | |
137 | Float_t * fpiNegDecayK0GeantLength; //[fgDim] length of the pi- from K0s in MC | |
138 | Float_t * fpiPosDecayK0GeantLength; //[fgDim] length of the pi+ from K0s in MC | |
139 | ||
140 | Int_t * fpiNegDecayK0SingleRecIndex; //[fgDim] index of pi- from K0S reconstr. single | |
141 | Int_t * fpiPosDecayK0SingleRecIndex; //[fgDim] index of pi+ from K0S reconstr. single | |
142 | Int_t * fpiNegDecayK0V0RecIndex; //[fgDim] index of pi- from K0S reconstr. V0 | |
143 | Int_t * fpiPosDecayK0V0RecIndex; //[fgDim] index of pi+ from K0S reconstr. V0 | |
144 | Int_t * fDecayK0V0RecIndexPos; //[fgDim] index of pi+ V0 | |
145 | Int_t * fDecayK0V0RecIndexNeg; //[fgDim] index of pi- V0 | |
7f11ea62 | 146 | |
147 | Int_t fpiPosK0Index; // | |
148 | Int_t fpiNegK0Index; // | |
d38f1e88 | 149 | |
150 | ||
7f11ea62 | 151 | Int_t fnTracksPrim; // number of primary tracks contributing to vertex |
d38f1e88 | 152 | |
153 | ||
7f11ea62 | 154 | Int_t ftpcRefit; // tpcRefit condition |
155 | Int_t fitsRefit; // itsRefit condition | |
156 | Int_t ftrdRefit; // trdRefit condition | |
157 | Int_t ftrdOut; // trdOut condition | |
d38f1e88 | 158 | |
159 | ||
160 | ||
161 | ||
7f11ea62 | 162 | Double_t fprobabilityPos[AliPID::kSPECIES]; |
163 | Double_t fprobabilityNeg[AliPID::kSPECIES]; | |
d38f1e88 | 164 | |
7f11ea62 | 165 | Int_t fDim; // number of dimensions THnSparse |
ec835029 | 166 | Double_t * fValueL; //[fDim] values to THnSparse for L |
167 | Double_t * fValueAL; //[fDim] values to THnSparse for AL | |
168 | Double_t * fValueK0; //[fDim] values to THnSparse for K0 | |
169 | Double_t * fValueV0; //[fDim] values to THnSparse for Gamma | |
170 | ||
171 | Double_t * fxminV0; //[fDim] min value to THnSparse | |
172 | Double_t * fxmaxV0; //[fDim] max value to THnSparse | |
173 | Int_t * fbinsV0; //[fDim] number of bins to THnSparse | |
174 | ||
d38f1e88 | 175 | |
176 | ||
177 | ||
7f11ea62 | 178 | TObjArray* fRefTPC; // references for the tpc |
179 | int fLabelsTPC[100000]; // labels for the tpc | |
d38f1e88 | 180 | |
181 | ||
7f11ea62 | 182 | TClonesArray *fclRefsN; // negative references for the tpc |
183 | TClonesArray *fclRefsP; // positive references for the tpc | |
d38f1e88 | 184 | |
185 | // MC variables | |
186 | ||
187 | AliAnalysisTaskV0QA (const AliAnalysisTaskV0QA & v0QA ); | |
188 | AliAnalysisTaskV0QA & operator=(const AliAnalysisTaskV0QA & v0QA); | |
189 | ||
190 | ||
191 | ||
192 | ClassDef(AliAnalysisTaskV0QA, 1); // example of analysis | |
193 | }; | |
7f11ea62 | 194 | |
195 | ||
196 | #endif |