]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/AliAnalysisTaskExtractPerformanceCascade.h
Final modifications for simultaneous acquisition of ZNA, V0A, V0M, TRK and SPD centra...
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / AliAnalysisTaskExtractPerformanceCascade.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 ALIANALYSISTASKEXTRACTPERFORMANCECASCADE_H
26 #define ALIANALYSISTASKEXTRACTPERFORMANCECASCADE_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 AliAnalysisTaskExtractPerformanceCascade : public AliAnalysisTaskSE {
46  public:
47   AliAnalysisTaskExtractPerformanceCascade();
48   AliAnalysisTaskExtractPerformanceCascade(const char *name);
49   virtual ~AliAnalysisTaskExtractPerformanceCascade();
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
56   void SetIsNuclear           (Bool_t lIsNuclear   = kTRUE ) { fkIsNuclear   = lIsNuclear;   }
57   void SetINT7Trigger         (Bool_t lSwitchINT7  = kTRUE ) { fkSwitchINT7   = lSwitchINT7; }
58   void SetpARapidityShift     (Double_t lRapShift = 0.465 ) { fpArapidityShift = lRapShift; }
59   void SetCentralityEstimator (TString lCentralityEstimator = "V0M" ) { fCentralityEstimator = lCentralityEstimator; }
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  *fListHist;  //! List of Cascade histograms
66   TTree  *fTreeCascade;              //! Output Tree, Cascades
67
68   //Objects that have to be streamed:
69   AliPIDResponse *fPIDResponse;     // PID response object
70   AliESDtrackCuts *fESDtrackCuts;   // ESD track cuts used for primary track definition
71
72   //Objects Controlling Task Behaviour 
73   // (have to be streamed too or configuration is lost)
74   
75   Bool_t fkIsNuclear;   //if true, replace multiplicity est. by centrality (default FALSE) 
76   Bool_t fkSwitchINT7 ; //if true, skip FASTOnly (default FALSE)
77   Double_t fpArapidityShift; //pA rapidity shift (should be 0.465, usually)
78   TString fCentralityEstimator; //Centrality Estimator String value (default V0M)
79
80         Double_t        fV0Sels[7];                     // Array to store the 7 values for the different selections V0 related
81         Double_t        fCascSels[8];                   // Array to store the 8 values for the different selections Casc. related
82
83
84 //===========================================================================================
85 //   Variables for tree, cascades
86 //===========================================================================================
87
88   Int_t fTreeCascVarCharge;         //! 
89   Float_t fTreeCascVarMassAsXi;     //! 
90   Float_t fTreeCascVarMassAsOmega;  //! 
91   Float_t fTreeCascVarPt;           //!
92   Float_t fTreeCascVarPtMC;         //!
93   Float_t fTreeCascVarRapMC;        //!
94   Float_t fTreeCascVarRapXi;        //!
95   Float_t fTreeCascVarRapOmega;     //!
96   Float_t fTreeCascVarNegEta;       //!
97   Float_t fTreeCascVarPosEta;       //!
98   Float_t fTreeCascVarBachEta;      //!
99   Float_t fTreeCascVarDCACascDaughters; //!
100   Float_t fTreeCascVarDCABachToPrimVtx; //!
101   Float_t fTreeCascVarDCAV0Daughters;   //!
102   Float_t fTreeCascVarDCAV0ToPrimVtx;   //!
103   Float_t fTreeCascVarDCAPosToPrimVtx;  //!
104   Float_t fTreeCascVarDCANegToPrimVtx;  //!
105   Float_t fTreeCascVarCascCosPointingAngle; //!
106   Float_t fTreeCascVarCascRadius;           //!
107   Float_t fTreeCascVarV0Mass;               //!
108   Float_t fTreeCascVarV0CosPointingAngle;   //!
109   Float_t fTreeCascVarV0Radius;             //!
110   Int_t   fTreeCascVarLeastNbrClusters;     //!
111   
112   Int_t   fTreeCascVarMultiplicity;         //!
113   Int_t   fTreeCascVarMultiplicityV0A;         //!
114   Int_t   fTreeCascVarMultiplicityZNA;         //!
115   Int_t   fTreeCascVarMultiplicityTRK;         //!
116   Int_t   fTreeCascVarMultiplicitySPD;         //!
117   
118   Float_t fTreeCascVarDistOverTotMom;       //!
119   Int_t   fTreeCascVarPID;         //!
120   Int_t   fTreeCascVarPIDBachelor; //!  
121   Int_t   fTreeCascVarPIDNegative; //!
122   Int_t   fTreeCascVarPIDPositive; //!
123   Float_t fTreeCascVarPosTransMom;   //!
124   Float_t fTreeCascVarNegTransMom;   //!
125   Float_t fTreeCascVarPosTransMomMC; //!
126   Float_t fTreeCascVarNegTransMomMC; //!
127   Float_t fTreeCascVarNegNSigmaPion;   //!
128   Float_t fTreeCascVarNegNSigmaProton; //!
129   Float_t fTreeCascVarPosNSigmaPion;   //! 
130   Float_t fTreeCascVarPosNSigmaProton; //! 
131   Float_t fTreeCascVarBachNSigmaPion;  //! 
132   Float_t fTreeCascVarBachNSigmaKaon;  //! 
133
134 //===========================================================================================
135 //   Histograms
136 //===========================================================================================
137
138    TH1F      *fHistV0MultiplicityBeforeTrigSel;              //! V0 multiplicity distribution
139    TH1F      *fHistV0MultiplicityForTrigEvt;                 //! V0 multiplicity distribution
140    TH1F      *fHistV0MultiplicityForSelEvt;                  //! V0 multiplicity distribution
141    TH1F      *fHistV0MultiplicityForSelEvtNoTPCOnly;         //! V0 multiplicity distribution
142    TH1F      *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup; //! V0 multiplicity distribution
143
144    TH1F      *fHistMultiplicityBeforeTrigSel;     //! multiplicity distribution      
145    TH1F      *fHistMultiplicityForTrigEvt;        //! multiplicity distribution
146    TH1F      *fHistMultiplicity;                  //! multiplicity distribution
147    TH1F      *fHistMultiplicityNoTPCOnly;         //! multiplicity distribution
148    TH1F      *fHistMultiplicityNoTPCOnlyNoPileup; //! multiplicity distribution
149   
150   //V0A Centrality
151   TH1F    *fHistMultiplicityV0ABeforeTrigSel;           //! multiplicity distribution
152         TH1F    *fHistMultiplicityV0AForTrigEvt;                        //! multiplicity distribution
153         TH1F    *fHistMultiplicityV0A;                                                  //! multiplicity distribution
154         TH1F    *fHistMultiplicityV0ANoTPCOnly;                         //! multiplicity distribution
155         TH1F    *fHistMultiplicityV0ANoTPCOnlyNoPileup;                 //! multiplicity distribution
156   
157   //ZNA Centrality
158   TH1F    *fHistMultiplicityZNABeforeTrigSel;           //! multiplicity distribution
159         TH1F    *fHistMultiplicityZNAForTrigEvt;                        //! multiplicity distribution
160         TH1F    *fHistMultiplicityZNA;                                                  //! multiplicity distribution
161         TH1F    *fHistMultiplicityZNANoTPCOnly;                         //! multiplicity distribution
162         TH1F    *fHistMultiplicityZNANoTPCOnlyNoPileup;                 //! multiplicity distribution
163   
164   //TRK Centrality
165   TH1F    *fHistMultiplicityTRKBeforeTrigSel;           //! multiplicity distribution
166         TH1F    *fHistMultiplicityTRKForTrigEvt;                        //! multiplicity distribution
167         TH1F    *fHistMultiplicityTRK;                                                  //! multiplicity distribution
168         TH1F    *fHistMultiplicityTRKNoTPCOnly;                         //! multiplicity distribution
169         TH1F    *fHistMultiplicityTRKNoTPCOnlyNoPileup;                 //! multiplicity distribution
170   
171   //SPD Centrality
172   TH1F    *fHistMultiplicitySPDBeforeTrigSel;           //! multiplicity distribution
173         TH1F    *fHistMultiplicitySPDForTrigEvt;                        //! multiplicity distribution
174         TH1F    *fHistMultiplicitySPD;                                                  //! multiplicity distribution
175         TH1F    *fHistMultiplicitySPDNoTPCOnly;                         //! multiplicity distribution
176         TH1F    *fHistMultiplicitySPDNoTPCOnlyNoPileup;                 //! multiplicity distribution
177
178 //---> Generated Histograms
179
180    TH3F      *f3dHistGenPtVsYVsMultXiMinus;      //! Generated Xi- Distrib
181    TH3F      *f3dHistGenPtVsYVsMultXiPlus;       //! Generated Xi+ Distrib
182    TH3F      *f3dHistGenPtVsYVsMultOmegaMinus;      //! Generated Omega- Distrib
183    TH3F      *f3dHistGenPtVsYVsMultOmegaPlus;       //! Generated Omega+ Distrib
184
185    TH3F      *f3dHistGenSelectedPtVsYVsMultXiMinus;      //! Generated Xi- Distrib, at event selection level
186    TH3F      *f3dHistGenSelectedPtVsYVsMultXiPlus;       //! Generated Xi+ Distrib, at event selection level
187    TH3F      *f3dHistGenSelectedPtVsYVsMultOmegaMinus;      //! Generated Omega- Distrib, at event selection level
188    TH3F      *f3dHistGenSelectedPtVsYVsMultOmegaPlus;       //! Generated Omega+ Distrib, at event selection level
189
190    TH3F      *f3dHistGenPtVsYCMSVsMultXiMinus;      //! Generated Xi- Distrib
191    TH3F      *f3dHistGenPtVsYCMSVsMultXiPlus;       //! Generated Xi+ Distrib
192    TH3F      *f3dHistGenPtVsYCMSVsMultOmegaMinus;      //! Generated Omega- Distrib
193    TH3F      *f3dHistGenPtVsYCMSVsMultOmegaPlus;       //! Generated Omega+ Distrib
194
195    TH3F      *f3dHistGenSelectedPtVsYCMSVsMultXiMinus;      //! Generated Xi- Distrib, at event selection level
196    TH3F      *f3dHistGenSelectedPtVsYCMSVsMultXiPlus;       //! Generated Xi+ Distrib, at event selection level
197    TH3F      *f3dHistGenSelectedPtVsYCMSVsMultOmegaMinus;      //! Generated Omega- Distrib, at event selection level
198    TH3F      *f3dHistGenSelectedPtVsYCMSVsMultOmegaPlus;       //! Generated Omega+ Distrib, at event selection level
199
200    TH1F      *fHistPVx;                      //! PVx distrib
201    TH1F      *fHistPVy;                      //! PVy distrib
202    TH1F      *fHistPVz;                      //! PVz distrib
203    TH1F      *fHistPVxAnalysis;                      //! PVx distrib
204    TH1F      *fHistPVyAnalysis;                      //! PVy distrib
205    TH1F      *fHistPVzAnalysis;                      //! PVz distrib
206
207    AliAnalysisTaskExtractPerformanceCascade(const AliAnalysisTaskExtractPerformanceCascade&);            // not implemented
208    AliAnalysisTaskExtractPerformanceCascade& operator=(const AliAnalysisTaskExtractPerformanceCascade&); // not implemented
209    
210    ClassDef(AliAnalysisTaskExtractPerformanceCascade, 11);
211 };
212
213 #endif