AliPhysics  b555aef (b555aef)
AliAnalysisTaskV0QA.h
Go to the documentation of this file.
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 
8 #include "THnSparse.h"
9 #include "TList.h"
10 #include "AliPID.h"
11 #include "AliAnalysisTaskSE.h"
12 #include "AliAnalysisManager.h"
13 #include "AliAnalysisDataContainer.h"
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;
23 class AliESDtrackCuts;
24 class AliMCEventHandler;
25 class AliStack;
26 class TChain;
27 
29  public:
30  // AliAnalysisTaskV0QA() : AliAnalysisTask(), fESD(0), fChain(0) {}
32  AliAnalysisTaskV0QA(const char *name);
33 
34  virtual ~AliAnalysisTaskV0QA();
35 
36  virtual void UserCreateOutputObjects();
37  virtual void UserExec(Option_t *option);
38  virtual void Terminate(Option_t *);
39 
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 
57 
58 
59 
60 
61  private:
62 
63 
64 
65  AliESDEvent *fESD; // ESD object
66  AliStack * fStack; // The MC Stack
67  AliMCEventHandler* fMCtruth; // The mc info
68 
69  TChain * fChain; // Input chian
70  TList * fOutputContainer; // ! output data container
71 
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
76 
78 
79  Int_t fnEv; // Number of event to analyse
80  Int_t fgDim; // Dimension of the THnSparse
81 
82  Int_t fnConvGamGeant; // number of conversions in mc
83 
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
89 
90 
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 
98 
99 
100  // Lambda
101  Int_t fnDecayLGeant; // number of Lambda in mc
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
107 
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.
114 
115 
116  // AntiLambda
117  Int_t fnDecayALGeant; // number of Lambdabar in mc
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
123 
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
130 
131 
132  // K0S
133  Int_t fnDecayK0Geant; // number of K0s in mc
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
146 
149 
150 
151  Int_t fnTracksPrim; // number of primary tracks contributing to vertex
152 
153 
154  Int_t ftpcRefit; // tpcRefit condition
155  Int_t fitsRefit; // itsRefit condition
156  Int_t ftrdRefit; // trdRefit condition
157  Int_t ftrdOut; // trdOut condition
158 
159 
160 
161 
162  //Double_t fprobabilityPos[AliPID::kSPECIES];
163  //Double_t fprobabilityNeg[AliPID::kSPECIES];
164 
165  Int_t fDim; // number of dimensions THnSparse
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  Int_t fCentralityC; // centrality
175 
176 
177 
178  TObjArray* fRefTPC; // references for the tpc
179  int fLabelsTPC[100000]; // labels for the tpc
180 
181 
182  TClonesArray *fclRefsN; // negative references for the tpc
183  TClonesArray *fclRefsP; // positive references for the tpc
184 
185  // MC variables
186 
189 
190 
191 
192  ClassDef(AliAnalysisTaskV0QA, 1); // example of analysis
193 };
194 
195 
196 #endif
double Double_t
Definition: External.C:58
virtual void UserExec(Option_t *option)
Int_t GetTPCReference(Int_t label)
AliMCEventHandler * fMCtruth
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
virtual void UserCreateOutputObjects()
virtual void Terminate(Option_t *)
const char Option_t
Definition: External.C:48
AliAnalysisTaskV0QA & operator=(const AliAnalysisTaskV0QA &v0QA)
Definition: External.C:196