1 #ifndef ALIANALYSISTASKCHECKCASCADE_H
2 #define ALIANALYSISTASKCHECKCASCADE_H
4 /* See cxx source for full Copyright notice */
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 //-----------------------------------------------------------------
28 class AliPhysicsSelection;
34 #include "AliAnalysisTaskSE.h"
36 class AliAnalysisTaskCheckCascade : public AliAnalysisTaskSE {
38 AliAnalysisTaskCheckCascade();
39 AliAnalysisTaskCheckCascade(const char *name);
40 virtual ~AliAnalysisTaskCheckCascade() {}
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,
49 virtual Int_t DoESDTrackWithTPCrefitMultiplicity(const AliESDEvent *lESDevent);
51 virtual void Terminate(Option_t *);
53 void SetCollidingSystems(Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;}
54 void SetAnalysisType (const char* analysisType = "ESD") {fAnalysisType = analysisType;}
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
63 TString fAnalysisType; // "ESD" or "AOD" analysis type
64 Short_t fCollidingSystems; // 0 = pp collisions or 1 = AA collisions
66 AliESDpid *fESDpid; // Tool data member to manage the TPC Bethe-Bloch info
70 TList *fListHistCascade; //! List of Cascade histograms
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
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)
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
85 TH1F *fHistVtxStatus; //! Is there a tracking vertex in the cascade event ?
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
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
99 // Correlation Best Vtx / Full Tracking Vtx
100 TH2F *f2dHistTrkgPrimVtxVsBestPrimVtx; //! Radius of prim. Vtx from tracks Vs Radius of best Prim. Vtx
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
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
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
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.
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
135 // - Complements for QA
136 TH1F *fHistXiTransvMom; //! Xi transverse momentum, around the mass peak of Xi-/+
137 TH1F *fHistXiTotMom; //! Xi momentum norm, around the mass peak of Xi-/+
139 TH1F *fHistBachTransvMomXi; //! bachelor transverse momentum, for cand. around the mass peak of Xi-/+
140 TH1F *fHistBachTotMomXi; //! bachelor momentum norm, for cand. around the mass peak of Xi-/+
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
145 TH1F *fHistRapXi; //! rapidity of Xi candidates, around the mass peak of Xi-/+
146 TH1F *fHistRapOmega; //! rapidity of Omega candidates, around the mass peak of Omega-/+
147 TH1F *fHistEtaXi; //! eta distrib. of all the cascade candidates, around the mass peak of Xi-/+
148 TH1F *fHistThetaXi; //! theta distrib. of all the cascade candidates, around the mass peak of Xi-/+
149 TH1F *fHistPhiXi; //! phi distrib. of all the cascade candidates, around the mass peak of Xi-/+
151 TH2F *f2dHistArmenteros; //! alpha(casc. cand.) Vs PtArm(casc. cand.)
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
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.
164 // PART 2 : TH3F needed for pt spectrum and yield extraction
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
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
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
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
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
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
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
206 AliAnalysisTaskCheckCascade(const AliAnalysisTaskCheckCascade&); // not implemented
207 AliAnalysisTaskCheckCascade& operator=(const AliAnalysisTaskCheckCascade&); // not implemented
209 ClassDef(AliAnalysisTaskCheckCascade, 10);