]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/SPECTRA/AliAnalysisTaskCheckCascade.h
Upgrade of the Cascade envt :
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskCheckCascade.h
1 #ifndef ALIANALYSISTASKCHECKCASCADE_H
2 #define ALIANALYSISTASKCHECKCASCADE_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-----------------------------------------------------------------
7 //                 AliAnalysisTaskCheckCascade class
8 //            (AliAnalysisTaskCheckCascade)
9 //            This task has four roles :
10 //              1. QAing the Cascades from ESD and AOD
11 //                 Origin:  AliAnalysisTaskESDCheckV0 by B.H. Nov2007, hippolyt@in2p3.fr
12 //              2. Prepare the plots which stand as raw material for yield extraction (wi/wo PID)
13 //              3. Supply an AliCFContainer meant to define the optimised topological selections
14 //              4. Rough azimuthal correlation study (Eta, Phi)
15 //            Adapted to Cascade : A.Maire Mar2008, antonin.maire@ires.in2p3.fr
16 //            Modified :           A.Maire Jan2010, antonin.maire@ires.in2p3.fr
17 //-----------------------------------------------------------------
18
19 class TList;
20 class TH1F;
21 class TH2F;
22 class TH3F;
23 class TVector3;
24 class THnSparse;
25  
26 class AliESDpid;
27 class AliESDEvent;
28 class AliPhysicsSelection;
29 class AliCFContainer;
30
31
32 #include "TString.h"
33
34 #include "AliAnalysisTaskSE.h"
35
36 class AliAnalysisTaskCheckCascade : public AliAnalysisTaskSE {
37  public:
38   AliAnalysisTaskCheckCascade();
39   AliAnalysisTaskCheckCascade(const char *name);
40   virtual ~AliAnalysisTaskCheckCascade() {}
41   
42   virtual void   UserCreateOutputObjects();
43   virtual void   UserExec(Option_t *option);
44           void   DoAngularCorrelation(const Char_t   *lCascType, 
45                                             Double_t  lInvMassCascade, 
46                                       const Int_t    *lArrTrackID,
47                                             TVector3 &lTVect3MomXi, 
48                                             Double_t  lEtaXi);
49   virtual Int_t  DoESDTrackWithTPCrefitMultiplicity(const AliESDEvent *lESDevent);
50   
51   virtual void   Terminate(Option_t *);
52   
53   void SetCollidingSystems(Short_t collidingSystems = 0)     {fCollidingSystems = collidingSystems;}
54   void SetAnalysisType    (const char* analysisType = "ESD") {fAnalysisType = analysisType;}
55   
56   
57  private:
58         // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
59         // your data member object is created on the worker nodes and streaming is not needed.
60         // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
61
62
63         TString         fAnalysisType;         // "ESD" or "AOD" analysis type  
64         Short_t         fCollidingSystems;     // 0 = pp collisions or 1 = AA collisions
65
66         AliESDpid       *fESDpid;               // Tool data member to manage the TPC Bethe-Bloch info
67
68
69
70              TList      *fListHistCascade;              //! List of Cascade histograms
71
72         // - General histos (filled for any event)
73         TH1F    *fHistTrackMultiplicity;                //! Track multiplicity distribution (without any cut = include ITS stand-alone + global tracks)
74         TH1F    *fHistTPCrefitTrackMultiplicity;        //! Track multiplicity distribution for tracks with TPCrefit
75         TH1F    *fHistCascadeMultiplicity;              //! Cascade multiplicity distribution
76
77
78         // - Characteristics for event with >1 cascade : Track Multiplicity, TPC clusters + Prim. vertex positions
79         TH1F    *fHistTPCrefitTrackMultiplicityForCascadeEvt;   //! TPCrefit Track multiplicity distribution for event with >1 cascade candidate (NB: after quality sel. within the task)
80
81         TH1F    *fHistPosV0TPCClusters;                 //! TPC clusters distribution for Positive V0 daughter track
82         TH1F    *fHistNegV0TPCClusters;                 //! TPC clusters distribution for Negative V0 daughter track
83         TH1F    *fHistBachTPCClusters;                  //! TPC clusters distribution for Bachelor             track
84
85         TH1F    *fHistVtxStatus;                        //! Is there a tracking vertex in the cascade event ?
86
87                 // Vtx coming from the full tracking
88         TH1F    *fHistPosTrkgPrimaryVtxX;               //! primary vertex position distribution in x 
89         TH1F    *fHistPosTrkgPrimaryVtxY;               //! primary vertex position distribution in y
90         TH1F    *fHistPosTrkgPrimaryVtxZ;               //! primary vertex position distribution in z
91         TH1F    *fHistTrkgPrimaryVtxRadius;             //! primary vertex (3D) radius distribution 
92
93                 // Best primary Vtx available for the event
94         TH1F    *fHistPosBestPrimaryVtxX;               //! (best) primary vertex position distribution in x 
95         TH1F    *fHistPosBestPrimaryVtxY;               //! (best) primary vertex position distribution in y
96         TH1F    *fHistPosBestPrimaryVtxZ;               //! (best) primary vertex position distribution in z
97         TH1F    *fHistBestPrimaryVtxRadius;             //! (best) primary vertex radius distribution 
98
99                 // Correlation Best Vtx / Full Tracking Vtx
100         TH2F    *f2dHistTrkgPrimVtxVsBestPrimVtx;       //!  Radius of prim. Vtx from tracks Vs Radius of best Prim. Vtx
101
102
103 // PART 1 : Adavanced QA
104 // - Typical histos on the variables used for the selection of cascades
105         TH1F    *fHistEffMassXi;                        //! reconstructed cascade effective mass
106         TH1F    *fHistChi2Xi;                           //! chi2 value
107         TH1F    *fHistDcaXiDaughters;                   //! dca between Xi's daughters
108         TH1F    *fHistDcaBachToPrimVertex;              //! dca of the bachelor track to primary vertex
109         TH1F    *fHistXiCosineOfPointingAngle;          //! cosine of Xi pointing angle in a cascade
110         TH1F    *fHistXiRadius;                         //! (transverse) radius of the cascade vertex 
111                 
112         // - Histos about ~ the "V0 selection part" of the cascade,  coming by inheritance from AliESDv0
113         TH1F    *fHistMassLambdaAsCascDghter;           //! Test Invariant Mass of Lambda coming from Cascade
114         TH1F    *fHistV0Chi2Xi;                         //! V0 chi2 distribution, for the V0 associated to a cascade
115         TH1F    *fHistDcaV0DaughtersXi;                 //! Dca between V0 daughters, for the V0 associated to a cascade
116         TH1F    *fHistDcaV0ToPrimVertexXi;              //! Dca of V0 to primary vertex, for the V0 associated to a cascade     
117         TH1F    *fHistV0CosineOfPointingAngleXi;        //! Cosine of V0 pointing angle, for the V0 associated to a cascade
118         TH1F    *fHistV0RadiusXi;                       //! V0 (transverse) distance distribution, for the V0 associated to a cascade
119
120         TH1F    *fHistDcaPosToPrimVertexXi;             //! Dca of V0 positive daughter to primary vertex, for the V0 associated to a cascade
121         TH1F    *fHistDcaNegToPrimVertexXi;             //! Dca of V0 negative daughter to primary vertex, for the V0 associated to a cascade
122         
123
124         // - Effective mass histos for cascades.
125         TH1F    *fHistMassXiMinus;                      //! reconstructed cascade effective mass, under Xi- hyp.
126         TH1F    *fHistMassXiPlus;                       //! reconstructed cascade effective mass, under Xi+ hyp.
127         TH1F    *fHistMassOmegaMinus;                   //! reconstructed cascade effective mass, under Omega- hyp.
128         TH1F    *fHistMassOmegaPlus;                    //! reconstructed cascade effective mass, under Omega+ hyp.
129         
130         TH1F    *fHistMassWithCombPIDXiMinus;           //! reconstructed Xi- effective mass, with bach. comb PID
131         TH1F    *fHistMassWithCombPIDXiPlus;            //! reconstructed Xi+ effective mass, with bach. comb PID
132         TH1F    *fHistMassWithCombPIDOmegaMinus;        //! reconstructed Omega- effective mass, with bach. comb PID
133         TH1F    *fHistMassWithCombPIDOmegaPlus;         //! reconstructed Omega+ effective mass, with bach. comb PID
134
135         // - Complements for QA
136         TH1F    *fHistXiTransvMom;                      //! Xi transverse momentum 
137         TH1F    *fHistXiTotMom;                         //! Xi momentum norm
138         
139         TH1F    *fHistBachTransvMom;                    //! bachelor transverse momentum 
140         TH1F    *fHistBachTotMom;                       //! bachelor momentum norm
141                                 
142         TH1F    *fHistChargeXi;                         //! Charge sign of the cascade candidate
143         TH1F    *fHistV0toXiCosineOfPointingAngle;      //! Cos. of Pointing angle between the V0 mom and the Xi-V0 vtx line
144   
145         TH1F    *fHistRapXi;                            //! rapidity of Xi candidates
146         TH1F    *fHistRapOmega;                         //! rapidity of Omega candidates
147         TH1F    *fHistEta;                              //! eta distrib. of all the cascade candidates
148         TH1F    *fHistTheta;                            //! theta distrib. of all the cascade candidates
149         TH1F    *fHistPhi;                              //! phi distrib. of all the cascade candidates
150         
151         TH2F    *f2dHistArmenteros;                     //! alpha(casc. cand.) Vs PtArm(casc. cand.)
152         
153         TH2F    *f2dHistEffMassLambdaVsEffMassXiMinus;  //! Xi- Eff mass Vs V0 Eff mass, under Xi- hyp.
154         TH2F    *f2dHistEffMassXiVsEffMassOmegaMinus;   //! Xi- Eff mass Vs Omega- Eff mass, for negative cascades
155         TH2F    *f2dHistEffMassLambdaVsEffMassXiPlus;   //! Xi+ Eff mass Vs V0 Eff mass, under Xi+ hyp.
156         TH2F    *f2dHistEffMassXiVsEffMassOmegaPlus;    //! Xi+ Eff mass Vs Omega+ Eff mass, for positive cascades
157         
158         TH2F    *f2dHistXiRadiusVsEffMassXiMinus;       //! transv. casc. decay radius Vs Xi- Eff mass, under Xi- hyp.
159         TH2F    *f2dHistXiRadiusVsEffMassXiPlus;        //! transv. casc. decay radius Vs Xi+ Eff mass, under Xi+ hyp.
160         TH2F    *f2dHistXiRadiusVsEffMassOmegaMinus;    //! transv. casc. decay radius Vs Omega- Eff mass, under Omega- hyp.
161         TH2F    *f2dHistXiRadiusVsEffMassOmegaPlus;     //! transv. casc. decay radius Vs Omega+ Eff mass, under Omega+ hyp.
162         
163         
164         // PART 2 : TH3F needed for pt spectrum and yield extraction
165         // Without any PID
166         TH3F    *f3dHistXiPtVsEffMassVsYXiMinus;        //! casc. transv. momemtum Vs Xi- Eff mass Vs Y
167         TH3F    *f3dHistXiPtVsEffMassVsYXiPlus;         //! casc. transv. momemtum Vs Xi+ Eff mass Vs Y
168         TH3F    *f3dHistXiPtVsEffMassVsYOmegaMinus;     //! casc. transv. momemtum Vs Omega- Eff mass Vs Y
169         TH3F    *f3dHistXiPtVsEffMassVsYOmegaPlus;      //! casc. transv. momemtum Vs Omega+ Eff mass Vs Y
170         
171         // With single PID : proton PID for Xi (pion = useless) / bachelor PID for Omega
172         // = a priori, the most important PID info for each species
173         TH3F    *f3dHistXiPtVsEffMassVsYWithCombPIDXiMinus;     //! casc. transv. momemtum Vs Xi- Eff mass Vs Y
174         TH3F    *f3dHistXiPtVsEffMassVsYWithCombPIDXiPlus;      //! casc. transv. momemtum Vs Xi+ Eff mass Vs Y
175         TH3F    *f3dHistXiPtVsEffMassVsYWithCombPIDOmegaMinus;  //! casc. transv. momemtum Vs Omega- Eff mass Vs Y
176         TH3F    *f3dHistXiPtVsEffMassVsYWithCombPIDOmegaPlus;   //! casc. transv. momemtum Vs Omega+ Eff mass Vs Y
177         
178         // With double PID : proton PID + bachelor PID for Omega
179         // = "second order" refinement for omegas
180         TH3F    *f3dHistXiPtVsEffMassVsYWith2CombPIDOmegaMinus; //! casc. transv. momemtum Vs Omega- Eff mass Vs Y
181         TH3F    *f3dHistXiPtVsEffMassVsYWith2CombPIDOmegaPlus;  //! casc. transv. momemtum Vs Omega+ Eff mass Vs Y
182         
183         // With TPC PID : 3-sigma band on the Bethe-Bloch curve
184         // = directly detector-based
185         TH3F    *f3dHistXiPtVsEffMassVsYWithTpcPIDOmegaMinus;   //! casc. transv. momemtum Vs Omega- Eff mass Vs Y
186         
187         // Compilation of all PID plots (3D = casc. transv. momemtum Vs Casc Eff mass Vs Y), stored into an AliCFContainer
188         AliCFContainer  *fCFContCascadePIDXiMinus;      //! for Xi-   : Container to store any 3D histos with the different PID flavours
189         AliCFContainer  *fCFContCascadePIDXiPlus;       //! for Xi+   : Container to store any 3D histos with the different PID flavours
190         AliCFContainer  *fCFContCascadePIDOmegaMinus;   //! for Omega-: Container to store any 3D histos with the different PID flavours
191         AliCFContainer  *fCFContCascadePIDOmegaPlus;    //! for Omega+: Container to store any 3D histos with the different PID flavours
192         
193         
194         
195         // PART 3 : Towards the optimisation of topological selections
196         AliCFContainer  *fCFContCascadeCuts;            //! Container meant to store all the relevant distributions corresponding to the cut variables
197         
198         
199         // PART 4 :  Azimuthal correlation study
200         THnSparseF      *fHnSpAngularCorrXiMinus;       //! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
201         THnSparseF      *fHnSpAngularCorrXiPlus;        //! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
202         THnSparseF      *fHnSpAngularCorrOmegaMinus;    //! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
203         THnSparseF      *fHnSpAngularCorrOmegaPlus;     //! Delta Phi(Casc,any trck) Vs Delta Eta(Casc,any trck) Vs Casc Pt Vs Pt of the tracks Vs Eff Mass
204
205
206   AliAnalysisTaskCheckCascade(const AliAnalysisTaskCheckCascade&);            // not implemented
207   AliAnalysisTaskCheckCascade& operator=(const AliAnalysisTaskCheckCascade&); // not implemented
208   
209   ClassDef(AliAnalysisTaskCheckCascade, 9);
210 };
211
212 #endif