]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0/AliAnalysisTaskExtractPerformanceV0.h
Committed additional histograms with particle creation radius with respect to primary...
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / AliAnalysisTaskExtractPerformanceV0.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 ALIANALYSISTASKEXTRACTPERFORMANCEV0_H
26 #define ALIANALYSISTASKEXTRACTPERFORMANCEV0_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;
40
41 //#include "TString.h"
42 //#include "AliESDtrackCuts.h"
43 #include "AliAnalysisTaskSE.h"
44
45 class AliAnalysisTaskExtractPerformanceV0 : public AliAnalysisTaskSE {
46  public:
47   AliAnalysisTaskExtractPerformanceV0();
48   AliAnalysisTaskExtractPerformanceV0(const char *name);
49   virtual ~AliAnalysisTaskExtractPerformanceV0();
50   
51   virtual void   UserCreateOutputObjects();
52   virtual void   UserExec(Option_t *option);
53   virtual void   Terminate(Option_t *);
54   Double_t MyRapidity(Double_t rE, Double_t rPz) const;
55   void CheckChargeV0(AliESDv0 *thisv0);
56
57   void SetIsNuclear           (Bool_t lIsNuclear   = kTRUE ) { fkIsNuclear   = lIsNuclear;   }
58   void SetIsLowEnergyPP       (Bool_t lLowEnergyPP = kTRUE ) { fkLowEnergyPP = lLowEnergyPP; }
59   void SetUseOnTheFly         (Bool_t lUseOnTheFly = kTRUE ) { fkUseOnTheFly = lUseOnTheFly; }
60   
61  private:
62         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
63         // your data member object is created on the worker nodes and streaming is not needed.
64         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
65   TList  *fListHistV0;  //! List of Cascade histograms
66   TTree  *fTree;              //! Output Tree
67
68   AliPIDResponse *fPIDResponse;     // PID response object
69
70   //Objects Controlling Task Behaviour 
71   
72   Bool_t fkIsNuclear;   //if true, replace multiplicity est. by centrality (default FALSE) 
73   Bool_t fkLowEnergyPP; //if true, skip FASTOnly (default FALSE)
74   Bool_t fkUseOnTheFly; //if true, will use On-the-fly V0s instead of Offline V0s (default FALSE)
75
76   //Variables for Tree
77    Int_t    fTreeVariablePrimaryStatus;      //!
78    Int_t    fTreeVariablePrimaryStatusMother;      //!
79    Float_t fTreeVariableChi2V0;             //!
80    Float_t fTreeVariableDcaV0Daughters; //!
81    Float_t fTreeVariableDcaV0ToPrimVertex; //!
82    Float_t fTreeVariableDcaPosToPrimVertex; //!
83    Float_t fTreeVariableDcaNegToPrimVertex; //!
84    Float_t fTreeVariableV0CosineOfPointingAngle; //!
85    Float_t fTreeVariableV0Radius; //!
86    Float_t fTreeVariablePt; //!
87    Float_t fTreeVariablePtMC; //!
88    Float_t fTreeVariableRapK0Short; //!
89    Float_t fTreeVariableRapLambda; //!
90    Float_t fTreeVariableRapMC; //!
91    Float_t fTreeVariableInvMassK0s; //!
92    Float_t fTreeVariableInvMassLambda; //!
93    Float_t fTreeVariableInvMassAntiLambda; //!
94    Float_t fTreeVariableAlphaV0; //!
95    Float_t fTreeVariablePtArmV0;//!
96    Float_t fTreeVariableNegTotMomentum; //!               
97    Float_t fTreeVariablePosTotMomentum; //!
98    Float_t fTreeVariableNegTransvMomentum; //!   
99    Float_t fTreeVariablePosTransvMomentum; //!
100    Float_t fTreeVariableNegTransvMomentumMC; //!   
101    Float_t fTreeVariablePosTransvMomentumMC; //!
102    
103    Float_t fTreeVariableNSigmasPosProton; //!
104    Float_t fTreeVariableNSigmasPosPion; //! 
105    Float_t fTreeVariableNSigmasNegProton; //!
106    Float_t fTreeVariableNSigmasNegPion; //! 
107
108    Float_t fTreeVariablePtMother; //!
109    Float_t fTreeVariableV0CreationRadius; //!
110    Int_t fTreeVariablePID; //!
111    Int_t fTreeVariablePIDPositive; //!
112    Int_t fTreeVariablePIDNegative; //!
113    Int_t fTreeVariablePIDMother; //!
114    Int_t fTreeVariableIndexStatus; //!
115    Int_t fTreeVariableIndexStatusMother; //!
116
117    //Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.
118    Float_t fTreeVariableDistOverTotMom;//!
119
120    Float_t fTreeVariablePosEta; //!
121    Float_t fTreeVariableNegEta; //!
122
123    Int_t fTreeVariableLeastNbrCrossedRows;//!
124    Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
125    Int_t fTreeVariableMultiplicity;//!
126
127    TH1F      *fHistV0MultiplicityBeforeTrigSel;              //! V0 multiplicity distribution
128    TH1F      *fHistV0MultiplicityForTrigEvt;                 //! V0 multiplicity distribution
129    TH1F      *fHistV0MultiplicityForSelEvt;                  //! V0 multiplicity distribution
130    TH1F      *fHistV0MultiplicityForSelEvtNoTPCOnly;         //! V0 multiplicity distribution
131    TH1F      *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution
132
133    TH1F      *fHistMultiplicityBeforeTrigSel;     //! multiplicity distribution      
134    TH1F      *fHistMultiplicityForTrigEvt;        //! multiplicity distribution
135    TH1F      *fHistMultiplicity;                  //! multiplicity distribution
136    TH1F      *fHistMultiplicityNoTPCOnly;         //! multiplicity distribution
137    TH1F      *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution
138
139 //---> Filled At Analysis Scope
140
141    TH3F      *f3dHistPrimAnalysisPtVsYVsMultLambda;     //! Lambda
142    TH3F      *f3dHistPrimAnalysisPtVsYVsMultAntiLambda; //! AntiLambda
143    TH3F      *f3dHistPrimAnalysisPtVsYVsMultK0Short;    //! K0Short
144
145 //---> Containers for monte carlo information for calculating efficiency! 
146
147    TH3F      *f3dHistPrimRawPtVsYVsMultLambda;     //! Lambda
148    TH3F      *f3dHistPrimRawPtVsYVsMultAntiLambda; //! AntiLambda
149    TH3F      *f3dHistPrimRawPtVsYVsMultK0Short;    //! K0Short
150
151    TH3F      *f3dHistPrimCloseToPVPtVsYVsMultLambda;     //! Lambda
152    TH3F      *f3dHistPrimCloseToPVPtVsYVsMultAntiLambda; //! AntiLambda
153    TH3F      *f3dHistPrimCloseToPVPtVsYVsMultK0Short;    //! K0Short
154
155 //---> Filled vs Decay Length
156
157    TH3F      *f3dHistPrimRawPtVsYVsDecayLengthLambda;     //! Lambda
158    TH3F      *f3dHistPrimRawPtVsYVsDecayLengthAntiLambda; //! AntiLambda
159    TH3F      *f3dHistPrimRawPtVsYVsDecayLengthK0Short;    //! K0Short
160
161 //---> Needed for FeedDown Corrections
162
163    TH3F      *f3dHistGenPtVsYVsMultXiMinus;      //! Generated Xi- Distrib
164    TH3F      *f3dHistGenPtVsYVsMultXiPlus;       //! Generated Xi+ Distrib
165
166    TH1F      *fHistPVx;                      //! PVx distrib
167    TH1F      *fHistPVy;                      //! PVy distrib
168    TH1F      *fHistPVz;                      //! PVz distrib
169    TH1F      *fHistPVxAnalysis;                      //! PVx distrib
170    TH1F      *fHistPVyAnalysis;                      //! PVy distrib
171    TH1F      *fHistPVzAnalysis;                      //! PVz distrib
172    TH1F      *fHistPVxAnalysisHasHighPtLambda;                      //! PVx distrib
173    TH1F      *fHistPVyAnalysisHasHighPtLambda;                      //! PVy distrib
174    TH1F      *fHistPVzAnalysisHasHighPtLambda;                      //! PVz distrib
175
176    TH1F      *fHistSwappedV0Counter;                      //! Swapped v0 counter
177
178    AliAnalysisTaskExtractPerformanceV0(const AliAnalysisTaskExtractPerformanceV0&);            // not implemented
179    AliAnalysisTaskExtractPerformanceV0& operator=(const AliAnalysisTaskExtractPerformanceV0&); // not implemented
180    
181    ClassDef(AliAnalysisTaskExtractPerformanceV0, 11);
182 };
183
184 #endif