]>
Commit | Line | Data |
---|---|---|
76029adc | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
17 | // | |
18 | // Modified version of AliAnalysisTaskCheckCascade.h | |
19 | // Used bits of code from AliAnalysisTaskCheckPerformanceStrange | |
20 | // | |
21 | // --- David Dobrigkeit Chinellato | |
22 | // | |
23 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
24 | ||
25 | #ifndef ALIANALYSISTASKEXTRACTCASCADE_H | |
26 | #define ALIANALYSISTASKEXTRACTCASCADE_H | |
27 | ||
28 | class TList; | |
29 | class TH1F; | |
30 | class TH2F; | |
31 | class TH3F; | |
32 | class TVector3; | |
33 | class THnSparse; | |
34 | ||
35 | class AliESDpid; | |
36 | class AliESDtrackCuts; | |
37 | class AliESDEvent; | |
38 | class AliPhysicsSelection; | |
39 | class AliCFContainer; | |
2add50c1 | 40 | class AliAnalysisUtils; |
76029adc | 41 | |
42 | //#include "TString.h" | |
43 | //#include "AliESDtrackCuts.h" | |
44 | #include "AliAnalysisTaskSE.h" | |
45 | ||
46 | class AliAnalysisTaskExtractCascade : public AliAnalysisTaskSE { | |
47 | public: | |
48 | AliAnalysisTaskExtractCascade(); | |
49 | AliAnalysisTaskExtractCascade(const char *name); | |
50 | virtual ~AliAnalysisTaskExtractCascade(); | |
51 | ||
52 | virtual void UserCreateOutputObjects(); | |
53 | virtual void UserExec(Option_t *option); | |
54 | virtual void Terminate(Option_t *); | |
55 | Double_t MyRapidity(Double_t rE, Double_t rPz) const; | |
56 | ||
57 | void SetIsNuclear (Bool_t lIsNuclear = kTRUE ) { fkIsNuclear = lIsNuclear; } | |
2213f6fc | 58 | void SetINT7Trigger (Bool_t lSwitchINT7 = kTRUE ) { fkSwitchINT7 = lSwitchINT7; } |
da3539d8 | 59 | void SetCentralityEstimator (TString lCentralityEstimator = "V0M" ) { fCentralityEstimator = lCentralityEstimator; } |
2add50c1 | 60 | void SetpAVertexSelection (Bool_t lpAVertexSelection = kTRUE) {fkpAVertexSelection = lpAVertexSelection; } |
cda235e2 | 61 | void SetEtaRefMult ( Double_t lEtaRefMult = 0.5 ) { fEtaRefMult = lEtaRefMult; } |
38927449 | 62 | |
63 | //--------------------------------------------------------------------------------------- | |
64 | //Task Configuration: Meant to enable quick re-execution of vertexer if needed | |
65 | void SetRunVertexers ( Bool_t lRunVertexers = kTRUE) { fkRunVertexers = lRunVertexers; } | |
3eb670b7 | 66 | //--------------------------------------------------------------------------------------- |
67 | //Set Debug Mode | |
68 | void SetDebugMode ( Bool_t lDebugMode = kTRUE) { fkDebugMode = lDebugMode; } | |
47d2266a | 69 | //--------------------------------------------------------------------------------------- |
70 | //Set Peripheral event debugging mode (Pb-Pb X-check) | |
b21a3912 | 71 | void SetSelectCentrality ( Bool_t lSelectCentrality = kTRUE, Double_t lCentSelLow = 0.0, Double_t lCentSelHigh = 10.0) { |
72 | fkSelectCentrality = lSelectCentrality; | |
73 | fCentSel_Low = lCentSelLow; | |
74 | fCentSel_High = lCentSelHigh; | |
75 | } | |
47d2266a | 76 | //--------------------------------------------------------------------------------------- |
165ff019 | 77 | void SetLowPtCutoff ( Double_t lLowPtCutoff = 1.0) { |
78 | fLowPtCutoff = lLowPtCutoff; | |
79 | } | |
80 | //--------------------------------------------------------------------------------------- | |
81 | //Setters for the V0 Vertexer Parameters | |
38927449 | 82 | void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; } |
83 | void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; } | |
84 | void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; } | |
85 | void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; } | |
86 | void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; } | |
87 | void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; } | |
88 | void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; } | |
89 | //--------------------------------------------------------------------------------------- | |
90 | //Setters for the Cascade Vertexer Parameters | |
91 | void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } | |
92 | void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } | |
93 | void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } | |
94 | void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } | |
95 | void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; } | |
96 | void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; } | |
97 | void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; } | |
98 | void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; } | |
99 | //--------------------------------------------------------------------------------------- | |
76029adc | 100 | |
101 | private: | |
102 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
103 | // your data member object is created on the worker nodes and streaming is not needed. | |
104 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
105 | TList *fListHist; //! List of Cascade histograms | |
106 | TTree *fTreeCascade; //! Output Tree, Cascades | |
107 | ||
108 | //Objects that have to be streamed: | |
109 | AliPIDResponse *fPIDResponse; // PID response object | |
110 | AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
2add50c1 | 111 | AliAnalysisUtils *fUtils; // analysis utils (for pA vertex selection) |
76029adc | 112 | |
113 | //Objects Controlling Task Behaviour | |
114 | // (have to be streamed too or configuration is lost) | |
76029adc | 115 | Bool_t fkIsNuclear; //if true, replace multiplicity est. by centrality (default FALSE) |
2213f6fc | 116 | Bool_t fkSwitchINT7; //if true, skip FASTOnly (default FALSE) |
da3539d8 | 117 | TString fCentralityEstimator; //Centrality Estimator String value (default V0M) |
2add50c1 | 118 | Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods |
cda235e2 | 119 | Double_t fEtaRefMult; //Reference multiplicity eta |
38927449 | 120 | //Objects Controlling Task Behaviour: has to be streamed! |
121 | Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb! | |
3eb670b7 | 122 | Bool_t fkDebugMode; //Store extra debugging information in tree |
b21a3912 | 123 | Bool_t fkSelectCentrality; //Switch to skip anything other than 60-80% V0M |
38927449 | 124 | Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related |
125 | Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related | |
b21a3912 | 126 | |
127 | Double_t fCentSel_Low; | |
128 | Double_t fCentSel_High; | |
165ff019 | 129 | |
130 | Double_t fLowPtCutoff; //Reduction of data volume | |
3eb670b7 | 131 | |
b68d5ca6 | 132 | //Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related |
133 | //Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related | |
d8841e95 | 134 | |
76029adc | 135 | //=========================================================================================== |
136 | // Variables for tree, cascades | |
137 | //=========================================================================================== | |
138 | ||
139 | Int_t fTreeCascVarCharge; //! | |
140 | Float_t fTreeCascVarMassAsXi; //! | |
141 | Float_t fTreeCascVarMassAsOmega; //! | |
142 | Float_t fTreeCascVarPt; //! | |
143 | Float_t fTreeCascVarPtMC; //! | |
144 | Float_t fTreeCascVarRapMC; //! | |
145 | Float_t fTreeCascVarRapXi; //! | |
146 | Float_t fTreeCascVarRapOmega; //! | |
147 | Float_t fTreeCascVarNegEta; //! | |
148 | Float_t fTreeCascVarPosEta; //! | |
149 | Float_t fTreeCascVarBachEta; //! | |
150 | Float_t fTreeCascVarDCACascDaughters; //! | |
151 | Float_t fTreeCascVarDCABachToPrimVtx; //! | |
152 | Float_t fTreeCascVarDCAV0Daughters; //! | |
153 | Float_t fTreeCascVarDCAV0ToPrimVtx; //! | |
154 | Float_t fTreeCascVarDCAPosToPrimVtx; //! | |
155 | Float_t fTreeCascVarDCANegToPrimVtx; //! | |
156 | Float_t fTreeCascVarCascCosPointingAngle; //! | |
157 | Float_t fTreeCascVarCascRadius; //! | |
158 | Float_t fTreeCascVarV0Mass; //! | |
159 | Float_t fTreeCascVarV0CosPointingAngle; //! | |
571c9e48 | 160 | Float_t fTreeCascVarV0CosPointingAngleSpecial; //! |
76029adc | 161 | Float_t fTreeCascVarV0Radius; //! |
162 | Int_t fTreeCascVarLeastNbrClusters; //! | |
163 | Int_t fTreeCascVarMultiplicity; //! | |
5d43de53 | 164 | Int_t fTreeCascVarMultiplicityV0A; //! |
165 | Int_t fTreeCascVarMultiplicityZNA; //! | |
166 | Int_t fTreeCascVarMultiplicityTRK; //! | |
167 | Int_t fTreeCascVarMultiplicitySPD; //! | |
76029adc | 168 | Float_t fTreeCascVarDistOverTotMom; //! |
169 | Int_t fTreeCascVarPID; //! | |
170 | Int_t fTreeCascVarPIDBachelor; //! | |
171 | Int_t fTreeCascVarPIDNegative; //! | |
172 | Int_t fTreeCascVarPIDPositive; //! | |
19e2af54 | 173 | Float_t fTreeCascVarBachTransMom; //! |
76029adc | 174 | Float_t fTreeCascVarPosTransMom; //! |
175 | Float_t fTreeCascVarNegTransMom; //! | |
176 | Float_t fTreeCascVarPosTransMomMC; //! | |
177 | Float_t fTreeCascVarNegTransMomMC; //! | |
178 | ||
179 | Float_t fTreeCascVarNegNSigmaPion; //! | |
180 | Float_t fTreeCascVarNegNSigmaProton; //! | |
181 | Float_t fTreeCascVarPosNSigmaPion; //! | |
182 | Float_t fTreeCascVarPosNSigmaProton; //! | |
183 | Float_t fTreeCascVarBachNSigmaPion; //! | |
184 | Float_t fTreeCascVarBachNSigmaKaon; //! | |
185 | ||
9cf85007 | 186 | Bool_t fTreeCascVarkITSRefitBachelor; //! |
187 | Bool_t fTreeCascVarkITSRefitNegative; //! | |
d55fa19c | 188 | Bool_t fTreeCascVarkITSRefitPositive; //! |
189 | ||
190 | //Debugging information, if requested | |
191 | //Part A: EbyE info, Run number | |
192 | Int_t fTreeCascVarRunNumber; //! | |
193 | ULong64_t fTreeCascVarEventNumber; //! | |
194 | ||
195 | //Part B: Shared Clusters | |
80521867 | 196 | Int_t fTreeCascVarNegClusters; //! |
197 | Int_t fTreeCascVarPosClusters; //! | |
198 | Int_t fTreeCascVarBachClusters; //! | |
d55fa19c | 199 | Int_t fTreeCascVarNegSharedClusters; //! |
200 | Int_t fTreeCascVarPosSharedClusters; //! | |
201 | Int_t fTreeCascVarBachSharedClusters; //! | |
202 | ||
203 | //Part C: All momenta | |
204 | Float_t fTreeCascVarNegPx; //! | |
205 | Float_t fTreeCascVarNegPy; //! | |
206 | Float_t fTreeCascVarNegPz; //! | |
207 | Float_t fTreeCascVarPosPx; //! | |
208 | Float_t fTreeCascVarPosPy; //! | |
209 | Float_t fTreeCascVarPosPz; //! | |
210 | Float_t fTreeCascVarBachPx; //! | |
211 | Float_t fTreeCascVarBachPy; //! | |
212 | Float_t fTreeCascVarBachPz; //! | |
3eb670b7 | 213 | |
214 | Float_t fTreeCascVarV0DecayX; //! | |
215 | Float_t fTreeCascVarV0DecayY; //! | |
216 | Float_t fTreeCascVarV0DecayZ; //! | |
217 | Float_t fTreeCascVarCascadeDecayX; //! | |
218 | Float_t fTreeCascVarCascadeDecayY; //! | |
219 | Float_t fTreeCascVarCascadeDecayZ; //! | |
d55fa19c | 220 | |
45ecf7a7 | 221 | Bool_t fTreeCascVarBadCascadeJai; //! |
222 | Float_t fTreeCascVarDeltaDCA; //! | |
223 | ||
76029adc | 224 | //=========================================================================================== |
225 | // Histograms | |
226 | //=========================================================================================== | |
227 | ||
228 | TH1F *fHistV0MultiplicityBeforeTrigSel; //! V0 multiplicity distribution | |
229 | TH1F *fHistV0MultiplicityForTrigEvt; //! V0 multiplicity distribution | |
230 | TH1F *fHistV0MultiplicityForSelEvt; //! V0 multiplicity distribution | |
231 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly; //! V0 multiplicity distribution | |
232 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution | |
233 | ||
5d43de53 | 234 | //V0M Centrality (default) |
76029adc | 235 | TH1F *fHistMultiplicityBeforeTrigSel; //! multiplicity distribution |
236 | TH1F *fHistMultiplicityForTrigEvt; //! multiplicity distribution | |
237 | TH1F *fHistMultiplicity; //! multiplicity distribution | |
238 | TH1F *fHistMultiplicityNoTPCOnly; //! multiplicity distribution | |
239 | TH1F *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution | |
5d43de53 | 240 | |
241 | //V0A Centrality | |
242 | TH1F *fHistMultiplicityV0ABeforeTrigSel; //! multiplicity distribution | |
243 | TH1F *fHistMultiplicityV0AForTrigEvt; //! multiplicity distribution | |
244 | TH1F *fHistMultiplicityV0A; //! multiplicity distribution | |
245 | TH1F *fHistMultiplicityV0ANoTPCOnly; //! multiplicity distribution | |
246 | TH1F *fHistMultiplicityV0ANoTPCOnlyNoPileup; //! multiplicity distribution | |
247 | ||
248 | //ZNA Centrality | |
249 | TH1F *fHistMultiplicityZNABeforeTrigSel; //! multiplicity distribution | |
250 | TH1F *fHistMultiplicityZNAForTrigEvt; //! multiplicity distribution | |
251 | TH1F *fHistMultiplicityZNA; //! multiplicity distribution | |
252 | TH1F *fHistMultiplicityZNANoTPCOnly; //! multiplicity distribution | |
253 | TH1F *fHistMultiplicityZNANoTPCOnlyNoPileup; //! multiplicity distribution | |
254 | ||
255 | //TRK Centrality | |
256 | TH1F *fHistMultiplicityTRKBeforeTrigSel; //! multiplicity distribution | |
257 | TH1F *fHistMultiplicityTRKForTrigEvt; //! multiplicity distribution | |
258 | TH1F *fHistMultiplicityTRK; //! multiplicity distribution | |
259 | TH1F *fHistMultiplicityTRKNoTPCOnly; //! multiplicity distribution | |
260 | TH1F *fHistMultiplicityTRKNoTPCOnlyNoPileup; //! multiplicity distribution | |
261 | ||
262 | //SPD Centrality | |
263 | TH1F *fHistMultiplicitySPDBeforeTrigSel; //! multiplicity distribution | |
264 | TH1F *fHistMultiplicitySPDForTrigEvt; //! multiplicity distribution | |
265 | TH1F *fHistMultiplicitySPD; //! multiplicity distribution | |
266 | TH1F *fHistMultiplicitySPDNoTPCOnly; //! multiplicity distribution | |
267 | TH1F *fHistMultiplicitySPDNoTPCOnlyNoPileup; //! multiplicity distribution | |
76029adc | 268 | |
269 | //---> Generated Histograms | |
270 | ||
271 | TH1F *fHistPVx; //! PVx distrib | |
272 | TH1F *fHistPVy; //! PVy distrib | |
273 | TH1F *fHistPVz; //! PVz distrib | |
274 | TH1F *fHistPVxAnalysis; //! PVx distrib | |
275 | TH1F *fHistPVyAnalysis; //! PVy distrib | |
276 | TH1F *fHistPVzAnalysis; //! PVz distrib | |
277 | ||
278 | AliAnalysisTaskExtractCascade(const AliAnalysisTaskExtractCascade&); // not implemented | |
279 | AliAnalysisTaskExtractCascade& operator=(const AliAnalysisTaskExtractCascade&); // not implemented | |
280 | ||
281 | ClassDef(AliAnalysisTaskExtractCascade, 11); | |
282 | }; | |
283 | ||
284 | #endif |