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