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