]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0/AliAnalysisTaskExtractPerformanceV0pPb.h
Commit for Simone - Changed bin size and phi calculation
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / AliAnalysisTaskExtractPerformanceV0pPb.h
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 AliAnalysisTaskExtractPerformanceV0pPb_H
26 #define AliAnalysisTaskExtractPerformanceV0pPb_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 AliAnalysisUtils;
38 class AliESDEvent;
39 class AliPhysicsSelection;
40 class AliCFContainer;
41
42 //#include "TString.h"
43 //#include "AliESDtrackCuts.h"
44 //#include "AliAnalysisTaskSE.h"
45
46 class AliAnalysisTaskExtractPerformanceV0pPb : public AliAnalysisTaskSE {
47  public:
48   AliAnalysisTaskExtractPerformanceV0pPb();
49   AliAnalysisTaskExtractPerformanceV0pPb(const char *name);
50   virtual ~AliAnalysisTaskExtractPerformanceV0pPb();
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 SetDiffractiveOnly ( Bool_t lDiffractiveOnly = kTRUE ) { fDiffractiveOnly = lDiffractiveOnly; }
58
59  private:
60         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
61         // your data member object is created on the worker nodes and streaming is not needed.
62         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
63   TList  *fListHistV0;  //! List of Cascade histograms
64   TTree  *fTree;              //! Output Tree, V0
65   TTree  *fTreeEvents;        //! Output Tree for events
66
67   AliPIDResponse *fPIDResponse;     // PID response object
68
69   //Objects Controlling Task Behaviour 
70   Bool_t fDiffractiveOnly; //Only look at diffractive generated events
71
72 //===========================================================================================
73 //   Variables for Tree, V0s
74 //===========================================================================================
75    Int_t    fTreeVariablePrimaryStatus;      //!
76    Int_t    fTreeVariablePrimaryStatusMother;      //!
77    Float_t fTreeVariableChi2V0;             //!
78    Float_t fTreeVariableDcaV0Daughters; //!
79    Float_t fTreeVariableDcaV0ToPrimVertex; //!
80    Float_t fTreeVariableDcaPosToPrimVertex; //!
81    Float_t fTreeVariableDcaNegToPrimVertex; //!
82    Float_t fTreeVariableV0CosineOfPointingAngle; //!
83    Float_t fTreeVariableV0Radius; //!
84    Float_t fTreeVariablePt; //!
85    Float_t fTreeVariablePtMC; //!
86    Float_t fTreeVariableRapK0Short; //!
87    Float_t fTreeVariableRapLambda; //!
88    Float_t fTreeVariableRapMC; //!
89    Float_t fTreeVariableInvMassK0s; //!
90    Float_t fTreeVariableInvMassLambda; //!
91    Float_t fTreeVariableInvMassAntiLambda; //!
92    Float_t fTreeVariableAlphaV0; //!
93    Float_t fTreeVariablePtArmV0;//!
94    Float_t fTreeVariableNegTotMomentum; //!               
95    Float_t fTreeVariablePosTotMomentum; //!
96    Float_t fTreeVariableNegTransvMomentum; //!   
97    Float_t fTreeVariablePosTransvMomentum; //!
98    Float_t fTreeVariableNegTransvMomentumMC; //!   
99    Float_t fTreeVariablePosTransvMomentumMC; //!
100    
101    Float_t fTreeVariableNSigmasPosProton; //!
102    Float_t fTreeVariableNSigmasPosPion; //! 
103    Float_t fTreeVariableNSigmasNegProton; //!
104    Float_t fTreeVariableNSigmasNegPion; //! 
105
106    Float_t fTreeVariablePtMother; //!
107    Float_t fTreeVariableV0CreationRadius; //!
108    Int_t fTreeVariablePID; //!
109    Int_t fTreeVariablePIDPositive; //!
110    Int_t fTreeVariablePIDNegative; //!
111    Int_t fTreeVariablePIDMother; //!
112
113    //Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.
114    Float_t fTreeVariableDistOverTotMom;//!
115
116    Float_t fTreeVariablePosEta; //!
117    Float_t fTreeVariableNegEta; //!
118
119    Float_t fTreeVariableVertexZ; //!
120
121    Int_t fTreeVariableLeastNbrCrossedRows;//!
122    Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
123   
124   Float_t fTreeVariableCentrality; //! 
125
126   //Variables for Event Tree
127   Float_t fTreeEventsCentrality; //! 
128
129 //===========================================================================================
130 //   Histograms
131 //===========================================================================================
132
133   //Default V0A Centrality only 
134    TH1F      *fHistCentralityProcessed; //! All processed
135    TH1F      *fHistCentralityTrigEvt;   //! Those selected by PS / Trigger
136    TH1F      *fHistCentralityHasVtx;    //! Those that have a well-established vertex
137    TH1F      *fHistCentralityVtxZ;      //! Those whose vertex falls within |z|<10cm
138
139 //---> Filled At Analysis Scope
140
141 //---> Strategy for yCMS shift: do binning in "400,-1,1" combination in rapidity. 
142 //     This will allow for post-processing shifts with a granularity of 0.005 to 
143 //     be applied as needed, and note the shift we need is 0.465 so it fits this 
144 //     binning. 
145
146 //---> At final Analysis Event selection
147    TH3F      *f3dHist_Analysis_PtVsYVsV0A_Lambda;      //! Lambda
148    TH3F      *f3dHist_Analysis_PtVsYVsV0A_AntiLambda;  //! AntiLambda
149    TH3F      *f3dHist_Analysis_PtVsYVsV0A_K0Short;     //! K0Short
150
151 //---> At generator level (before any event selection except centrality binning)
152 //     ...though note that centrality is already a selection. 
153    TH3F      *f3dHist_Generated_PtVsYVsV0A_Lambda;      //! Lambda
154    TH3F      *f3dHist_Generated_PtVsYVsV0A_AntiLambda;  //! AntiLambda
155    TH3F      *f3dHist_Generated_PtVsYVsV0A_K0Short;     //! K0Short
156
157 //Cross-checking histograms: Charged Kaons (to compare with neutral ones at generator level) 
158   TH3F      *f3dHist_Analysis_PtVsYVsV0A_KPlus;     //! Added for cross-check of any bias
159   TH3F      *f3dHist_Analysis_PtVsYVsV0A_KMinus;    //! Added for cross-check of any bias
160   TH3F      *f3dHist_Generated_PtVsYVsV0A_KPlus;     //! Added for cross-check of any bias
161   TH3F      *f3dHist_Generated_PtVsYVsV0A_KMinus;    //! Added for cross-check of any bias
162
163 //---> Needed for FeedDown Corrections
164
165 //V0A Containers
166
167   TH3F      *f3dHist_Analysis_PtVsYVsV0A_XiMinus;      //! Generated Xi- Distrib
168   TH3F      *f3dHist_Analysis_PtVsYVsV0A_XiPlus;       //! Generated Xi+ Distrib
169
170   TH3F      *f3dHist_Generated_PtVsYVsV0A_XiMinus;      //! Generated Xi- Distrib
171   TH3F      *f3dHist_Generated_PtVsYVsV0A_XiPlus;       //! Generated Xi+ Distrib
172
173 //With YCMS shift... 
174
175 //---> At final Analysis Event selection
176    TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_Lambda;      //! Lambda
177    TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_AntiLambda;  //! AntiLambda
178    TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_K0Short;     //! K0Short
179
180 //---> At generator level (before any event selection except centrality binning)
181 //     ...though note that centrality is already a selection. 
182    TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_Lambda;      //! Lambda
183    TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_AntiLambda;  //! AntiLambda
184    TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_K0Short;     //! K0Short
185
186 //Cross-checking histograms: Charged Kaons (to compare with neutral ones at generator level) 
187   TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_KPlus;     //! Added for cross-check of any bias
188   TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_KMinus;    //! Added for cross-check of any bias
189   TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_KPlus;     //! Added for cross-check of any bias
190   TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_KMinus;    //! Added for cross-check of any bias
191
192 //---> Needed for FeedDown Corrections
193
194 //V0A Containers
195
196   TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_XiMinus;      //! Generated Xi- Distrib
197   TH3F      *f3dHist_Analysis_PtVsYCMSVsV0A_XiPlus;       //! Generated Xi+ Distrib
198
199   TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_XiMinus;      //! Generated Xi- Distrib
200   TH3F      *f3dHist_Generated_PtVsYCMSVsV0A_XiPlus;       //! Generated Xi+ Distrib
201
202   
203    AliAnalysisTaskExtractPerformanceV0pPb(const AliAnalysisTaskExtractPerformanceV0pPb&);            // not implemented
204    AliAnalysisTaskExtractPerformanceV0pPb& operator=(const AliAnalysisTaskExtractPerformanceV0pPb&); // not implemented
205    
206    ClassDef(AliAnalysisTaskExtractPerformanceV0pPb, 11);
207 };
208
209 #endif