1 /* Copyright(c) 1998-2012, ALICE Experiment at CERN, All rights reserved.
2 * See cxx source for full Copyright notice
4 * AliAnalysisTaskV0ChCorrelations class
6 * The task selects candidates for K0s, Lambdas and AntiLambdas (trigger particles)
7 * and calculates correlations with charged unidentified particles (associated particles) in phi and eta.
8 * The task works with AOD events only and containes also mixing for acceptance corrections.
9 * Edited by Marek Bombara, last update October2012, Marek.Bombara@cern.ch
12 #ifndef ALIANALYSISTASKV0CHCORRELATIONS_H
13 #define ALIANALYSISTASKV0CHCORRELATIONS_H
21 class AliEventPoolManager;
23 #ifndef ALIANALYSISTASKSE_H
24 #include "AliAnalysisTaskSE.h"
27 class AliAnalysisTaskV0ChCorrelations : public AliAnalysisTaskSE {
29 AliAnalysisTaskV0ChCorrelations();
30 AliAnalysisTaskV0ChCorrelations(const char *name);
31 virtual ~AliAnalysisTaskV0ChCorrelations();
33 virtual void UserCreateOutputObjects();
34 virtual void UserExec(Option_t *option);
35 virtual void Terminate(Option_t *);
37 Bool_t IsMyGoodPrimaryTrack(const AliAODTrack* aodtrack);
38 Bool_t IsMyGoodDaughterTrack(const AliAODTrack* aodtrack);
39 Bool_t IsMyGoodV0(const AliAODEvent* aod, const AliAODv0* aodv0, const AliAODTrack* tr1, const AliAODTrack* tr2);
42 Bool_t fFillMixed; // enable event mixing (default: ON)
43 Int_t fMixingTracks; // size of track buffer for event mixing
44 AliEventPoolManager* fPoolMgr; //! event pool manager
46 TList *fOutput; // Output list
47 AliPIDResponse *fPIDResponse; // PID response
49 TH2F *fHistCentVtx; // centrality vs. z vertex - to see statistics for mixing
50 TH1F *fHistMultiMain; // multiplicity of main events
52 THnSparseF *fHistMassK0; // K0 mass
53 THnSparseF *fHistMassLambda; // Lambda mass
54 THnSparseF *fHistMassAntiLambda; // AntiLambda mass
56 THnSparseF *fHistdPhidEtaSib; // dPhi vs. dEta, same event
57 THnSparseF *fHistdPhidEtaMix; // dPhi vs. dEta, mixed events
58 THnSparseF *fHistTrigSib; // pt of trigger particles, same event
59 THnSparseF *fHistTrigMix; // pt of trigger particles involved in mixing
61 TH1D *fHistTemp; // temporary histogram for debugging
63 ClassDef(AliAnalysisTaskV0ChCorrelations, 1); // class for V0Ch correlation analysis
66 /* AliV0ChBasicParticle class contains only quantities
67 * required for the analysis in order to reduce memory consumption for event mixing.
69 class AliV0ChBasicParticle : public AliVParticle
72 AliV0ChBasicParticle(Float_t eta, Float_t phi, Float_t pt, Short_t candidate)
73 : fEta(eta), fPhi(phi), fpT(pt), fCandidate(candidate)
76 virtual ~AliV0ChBasicParticle() {}
79 virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
80 virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
81 virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
82 virtual Double_t Pt() const { return fpT; }
83 virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
84 virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
86 virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
87 virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
88 virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
89 virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
91 virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0; }
92 virtual Double_t Phi() const { return fPhi; }
93 virtual Double_t Theta() const { AliFatal("Not implemented"); return 0; }
96 virtual Double_t E() const { AliFatal("Not implemented"); return 0; }
97 virtual Double_t M() const { AliFatal("Not implemented"); return 0; }
99 virtual Double_t Eta() const { return fEta; }
100 virtual Double_t Y() const { AliFatal("Not implemented"); return 0; }
102 virtual Short_t Charge() const { AliFatal("Not implemented"); return 0; }
103 virtual Int_t GetLabel() const { AliFatal("Not implemented"); return 0; }
105 virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0; }
106 virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
108 virtual Short_t WhichCandidate() const { return fCandidate; }
114 Short_t fCandidate; // V0 candidate: 1 - K0sig, 2 - Lamsig, 3 - Alamsig, 4 - K0bg, 5 - Lambg, 6 - Alambg
116 ClassDef( AliV0ChBasicParticle, 1); // class required for event mixing