Fix for coverity (AdC)
[u/mrichter/AliRoot.git] / PWGPP / AliAnalysisTaskV0QA.h
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
28 class AliAnalysisTaskV0QA : public AliAnalysisTaskSE {
29  public:
30   //  AliAnalysisTaskV0QA() : AliAnalysisTask(), fESD(0), fChain(0) {}
31     AliAnalysisTaskV0QA();
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
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
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
77   //////////////////////////////////
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
147   Int_t fpiPosK0Index;    //      
148   Int_t fpiNegK0Index;    //
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
187   AliAnalysisTaskV0QA (const AliAnalysisTaskV0QA & v0QA );
188   AliAnalysisTaskV0QA & operator=(const AliAnalysisTaskV0QA & v0QA);
189
190
191
192   ClassDef(AliAnalysisTaskV0QA, 1); // example of analysis
193 };
194
195
196 #endif