]>
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; } | |
38927449 | 69 | //--------------------------------------------------------------------------------------- |
70 | //Setters for the V0 Vertexer Parameters | |
71 | void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; } | |
72 | void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; } | |
73 | void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; } | |
74 | void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; } | |
75 | void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; } | |
76 | void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; } | |
77 | void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; } | |
78 | //--------------------------------------------------------------------------------------- | |
79 | //Setters for the Cascade Vertexer Parameters | |
80 | void SetCascVertexerMaxChisquare ( Double_t lParameter ){ fCascadeVertexerSels[0] = lParameter; } | |
81 | void SetCascVertexerMinV0ImpactParameter ( Double_t lParameter ){ fCascadeVertexerSels[1] = lParameter; } | |
82 | void SetCascVertexerV0MassWindow ( Double_t lParameter ){ fCascadeVertexerSels[2] = lParameter; } | |
83 | void SetCascVertexerDCABachToPV ( Double_t lParameter ){ fCascadeVertexerSels[3] = lParameter; } | |
84 | void SetCascVertexerDCACascadeDaughters ( Double_t lParameter ){ fCascadeVertexerSels[4] = lParameter; } | |
85 | void SetCascVertexerCascadeCosinePA ( Double_t lParameter ){ fCascadeVertexerSels[5] = lParameter; } | |
86 | void SetCascVertexerCascadeMinRadius ( Double_t lParameter ){ fCascadeVertexerSels[6] = lParameter; } | |
87 | void SetCascVertexerCascadeMaxRadius ( Double_t lParameter ){ fCascadeVertexerSels[7] = lParameter; } | |
88 | //--------------------------------------------------------------------------------------- | |
76029adc | 89 | |
90 | private: | |
91 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
92 | // your data member object is created on the worker nodes and streaming is not needed. | |
93 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
94 | TList *fListHist; //! List of Cascade histograms | |
95 | TTree *fTreeCascade; //! Output Tree, Cascades | |
96 | ||
97 | //Objects that have to be streamed: | |
98 | AliPIDResponse *fPIDResponse; // PID response object | |
99 | AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition | |
2add50c1 | 100 | AliAnalysisUtils *fUtils; // analysis utils (for pA vertex selection) |
76029adc | 101 | |
102 | //Objects Controlling Task Behaviour | |
103 | // (have to be streamed too or configuration is lost) | |
76029adc | 104 | Bool_t fkIsNuclear; //if true, replace multiplicity est. by centrality (default FALSE) |
2213f6fc | 105 | Bool_t fkSwitchINT7; //if true, skip FASTOnly (default FALSE) |
da3539d8 | 106 | TString fCentralityEstimator; //Centrality Estimator String value (default V0M) |
2add50c1 | 107 | Bool_t fkpAVertexSelection; //if true, select vertex with pPb Methods |
cda235e2 | 108 | Double_t fEtaRefMult; //Reference multiplicity eta |
38927449 | 109 | //Objects Controlling Task Behaviour: has to be streamed! |
110 | Bool_t fkRunVertexers; // if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb! | |
3eb670b7 | 111 | Bool_t fkDebugMode; //Store extra debugging information in tree |
38927449 | 112 | Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related |
113 | Double_t fCascadeVertexerSels[8]; // Array to store the 8 values for the different selections Casc. related | |
76029adc | 114 | |
3eb670b7 | 115 | |
b68d5ca6 | 116 | //Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related |
117 | //Double_t fCascSels[8]; // Array to store the 8 values for the different selections Casc. related | |
d8841e95 | 118 | |
76029adc | 119 | //=========================================================================================== |
120 | // Variables for tree, cascades | |
121 | //=========================================================================================== | |
122 | ||
123 | Int_t fTreeCascVarCharge; //! | |
124 | Float_t fTreeCascVarMassAsXi; //! | |
125 | Float_t fTreeCascVarMassAsOmega; //! | |
126 | Float_t fTreeCascVarPt; //! | |
127 | Float_t fTreeCascVarPtMC; //! | |
128 | Float_t fTreeCascVarRapMC; //! | |
129 | Float_t fTreeCascVarRapXi; //! | |
130 | Float_t fTreeCascVarRapOmega; //! | |
131 | Float_t fTreeCascVarNegEta; //! | |
132 | Float_t fTreeCascVarPosEta; //! | |
133 | Float_t fTreeCascVarBachEta; //! | |
134 | Float_t fTreeCascVarDCACascDaughters; //! | |
135 | Float_t fTreeCascVarDCABachToPrimVtx; //! | |
136 | Float_t fTreeCascVarDCAV0Daughters; //! | |
137 | Float_t fTreeCascVarDCAV0ToPrimVtx; //! | |
138 | Float_t fTreeCascVarDCAPosToPrimVtx; //! | |
139 | Float_t fTreeCascVarDCANegToPrimVtx; //! | |
140 | Float_t fTreeCascVarCascCosPointingAngle; //! | |
141 | Float_t fTreeCascVarCascRadius; //! | |
142 | Float_t fTreeCascVarV0Mass; //! | |
143 | Float_t fTreeCascVarV0CosPointingAngle; //! | |
571c9e48 | 144 | Float_t fTreeCascVarV0CosPointingAngleSpecial; //! |
76029adc | 145 | Float_t fTreeCascVarV0Radius; //! |
146 | Int_t fTreeCascVarLeastNbrClusters; //! | |
147 | Int_t fTreeCascVarMultiplicity; //! | |
5d43de53 | 148 | Int_t fTreeCascVarMultiplicityV0A; //! |
149 | Int_t fTreeCascVarMultiplicityZNA; //! | |
150 | Int_t fTreeCascVarMultiplicityTRK; //! | |
151 | Int_t fTreeCascVarMultiplicitySPD; //! | |
76029adc | 152 | Float_t fTreeCascVarDistOverTotMom; //! |
153 | Int_t fTreeCascVarPID; //! | |
154 | Int_t fTreeCascVarPIDBachelor; //! | |
155 | Int_t fTreeCascVarPIDNegative; //! | |
156 | Int_t fTreeCascVarPIDPositive; //! | |
19e2af54 | 157 | Float_t fTreeCascVarBachTransMom; //! |
76029adc | 158 | Float_t fTreeCascVarPosTransMom; //! |
159 | Float_t fTreeCascVarNegTransMom; //! | |
160 | Float_t fTreeCascVarPosTransMomMC; //! | |
161 | Float_t fTreeCascVarNegTransMomMC; //! | |
162 | ||
163 | Float_t fTreeCascVarNegNSigmaPion; //! | |
164 | Float_t fTreeCascVarNegNSigmaProton; //! | |
165 | Float_t fTreeCascVarPosNSigmaPion; //! | |
166 | Float_t fTreeCascVarPosNSigmaProton; //! | |
167 | Float_t fTreeCascVarBachNSigmaPion; //! | |
168 | Float_t fTreeCascVarBachNSigmaKaon; //! | |
169 | ||
9cf85007 | 170 | Bool_t fTreeCascVarkITSRefitBachelor; //! |
171 | Bool_t fTreeCascVarkITSRefitNegative; //! | |
d55fa19c | 172 | Bool_t fTreeCascVarkITSRefitPositive; //! |
173 | ||
174 | //Debugging information, if requested | |
175 | //Part A: EbyE info, Run number | |
176 | Int_t fTreeCascVarRunNumber; //! | |
177 | ULong64_t fTreeCascVarEventNumber; //! | |
178 | ||
179 | //Part B: Shared Clusters | |
180 | Int_t fTreeCascVarNegSharedClusters; //! | |
181 | Int_t fTreeCascVarPosSharedClusters; //! | |
182 | Int_t fTreeCascVarBachSharedClusters; //! | |
183 | ||
184 | //Part C: All momenta | |
185 | Float_t fTreeCascVarNegPx; //! | |
186 | Float_t fTreeCascVarNegPy; //! | |
187 | Float_t fTreeCascVarNegPz; //! | |
188 | Float_t fTreeCascVarPosPx; //! | |
189 | Float_t fTreeCascVarPosPy; //! | |
190 | Float_t fTreeCascVarPosPz; //! | |
191 | Float_t fTreeCascVarBachPx; //! | |
192 | Float_t fTreeCascVarBachPy; //! | |
193 | Float_t fTreeCascVarBachPz; //! | |
3eb670b7 | 194 | |
195 | Float_t fTreeCascVarV0DecayX; //! | |
196 | Float_t fTreeCascVarV0DecayY; //! | |
197 | Float_t fTreeCascVarV0DecayZ; //! | |
198 | Float_t fTreeCascVarCascadeDecayX; //! | |
199 | Float_t fTreeCascVarCascadeDecayY; //! | |
200 | Float_t fTreeCascVarCascadeDecayZ; //! | |
d55fa19c | 201 | |
76029adc | 202 | //=========================================================================================== |
203 | // Histograms | |
204 | //=========================================================================================== | |
205 | ||
206 | TH1F *fHistV0MultiplicityBeforeTrigSel; //! V0 multiplicity distribution | |
207 | TH1F *fHistV0MultiplicityForTrigEvt; //! V0 multiplicity distribution | |
208 | TH1F *fHistV0MultiplicityForSelEvt; //! V0 multiplicity distribution | |
209 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly; //! V0 multiplicity distribution | |
210 | TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution | |
211 | ||
5d43de53 | 212 | //V0M Centrality (default) |
76029adc | 213 | TH1F *fHistMultiplicityBeforeTrigSel; //! multiplicity distribution |
214 | TH1F *fHistMultiplicityForTrigEvt; //! multiplicity distribution | |
215 | TH1F *fHistMultiplicity; //! multiplicity distribution | |
216 | TH1F *fHistMultiplicityNoTPCOnly; //! multiplicity distribution | |
217 | TH1F *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution | |
5d43de53 | 218 | |
219 | //V0A Centrality | |
220 | TH1F *fHistMultiplicityV0ABeforeTrigSel; //! multiplicity distribution | |
221 | TH1F *fHistMultiplicityV0AForTrigEvt; //! multiplicity distribution | |
222 | TH1F *fHistMultiplicityV0A; //! multiplicity distribution | |
223 | TH1F *fHistMultiplicityV0ANoTPCOnly; //! multiplicity distribution | |
224 | TH1F *fHistMultiplicityV0ANoTPCOnlyNoPileup; //! multiplicity distribution | |
225 | ||
226 | //ZNA Centrality | |
227 | TH1F *fHistMultiplicityZNABeforeTrigSel; //! multiplicity distribution | |
228 | TH1F *fHistMultiplicityZNAForTrigEvt; //! multiplicity distribution | |
229 | TH1F *fHistMultiplicityZNA; //! multiplicity distribution | |
230 | TH1F *fHistMultiplicityZNANoTPCOnly; //! multiplicity distribution | |
231 | TH1F *fHistMultiplicityZNANoTPCOnlyNoPileup; //! multiplicity distribution | |
232 | ||
233 | //TRK Centrality | |
234 | TH1F *fHistMultiplicityTRKBeforeTrigSel; //! multiplicity distribution | |
235 | TH1F *fHistMultiplicityTRKForTrigEvt; //! multiplicity distribution | |
236 | TH1F *fHistMultiplicityTRK; //! multiplicity distribution | |
237 | TH1F *fHistMultiplicityTRKNoTPCOnly; //! multiplicity distribution | |
238 | TH1F *fHistMultiplicityTRKNoTPCOnlyNoPileup; //! multiplicity distribution | |
239 | ||
240 | //SPD Centrality | |
241 | TH1F *fHistMultiplicitySPDBeforeTrigSel; //! multiplicity distribution | |
242 | TH1F *fHistMultiplicitySPDForTrigEvt; //! multiplicity distribution | |
243 | TH1F *fHistMultiplicitySPD; //! multiplicity distribution | |
244 | TH1F *fHistMultiplicitySPDNoTPCOnly; //! multiplicity distribution | |
245 | TH1F *fHistMultiplicitySPDNoTPCOnlyNoPileup; //! multiplicity distribution | |
76029adc | 246 | |
247 | //---> Generated Histograms | |
248 | ||
249 | TH1F *fHistPVx; //! PVx distrib | |
250 | TH1F *fHistPVy; //! PVy distrib | |
251 | TH1F *fHistPVz; //! PVz distrib | |
252 | TH1F *fHistPVxAnalysis; //! PVx distrib | |
253 | TH1F *fHistPVyAnalysis; //! PVy distrib | |
254 | TH1F *fHistPVzAnalysis; //! PVz distrib | |
255 | ||
256 | AliAnalysisTaskExtractCascade(const AliAnalysisTaskExtractCascade&); // not implemented | |
257 | AliAnalysisTaskExtractCascade& operator=(const AliAnalysisTaskExtractCascade&); // not implemented | |
258 | ||
259 | ClassDef(AliAnalysisTaskExtractCascade, 11); | |
260 | }; | |
261 | ||
262 | #endif |