]>
Commit | Line | Data |
---|---|---|
a8f6c03f | 1 | #ifndef ALIANALYSISTASKSEHFV2_H |
2 | #define ALIANALYSISTASKSEHFV2_H | |
3 | ||
4 | /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //************************************************************************* | |
8 | // AliAnalysisTaskSEHFv2 gives the needed tools for the D | |
9 | // mesons v2 analysis | |
10 | // Authors: Chiara Bianchin, cbianchi@pd.infn.it, | |
11 | // Robert Grajcarek, grajcarek@physi.uni-heidelberg.de | |
12 | // Giacomo Ortona, ortona@to.infn.it, | |
13 | // Carlos Perez Lara, carlos.eugenio.perez.lara@cern.ch | |
14 | // Francesco Prino, prino@to.infn.it | |
15 | // | |
16 | //************************************************************************* | |
17 | ||
f829c4f7 | 18 | /* $Id$ */ |
19 | ||
a8f6c03f | 20 | #include "AliAnalysisTaskSE.h" |
21 | #include "AliAnalysisVertexingHF.h" | |
ed352b10 | 22 | #include "AliHFAfterBurner.h" |
a8f6c03f | 23 | |
35405405 | 24 | |
a8f6c03f | 25 | class TH1F; |
26 | class TH2D; | |
27 | class AliMultiDimVector; | |
28 | class AliRDHFCuts; | |
29 | class TVector2; | |
30 | ||
31 | class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE | |
32 | { | |
33 | ||
34 | public: | |
35 | ||
36 | enum DecChannel{kDplustoKpipi,kD0toKpi,kDstartoKpipi}; //more particles can be added | |
1c451ce0 | 37 | enum EventPlaneMeth{kTPC,kTPCVZERO,kVZERO,kVZEROA,kVZEROC}; //Event plane to be calculated in the task |
b356f0ee | 38 | // enum SubEvents{kFullTPC,kPosTPC,kNegTPC,kSingleV0Side}; //Sub-events for V0 EP |
39 | ||
a8f6c03f | 40 | AliAnalysisTaskSEHFv2(); |
590dea9c | 41 | AliAnalysisTaskSEHFv2(const char *name, AliRDHFCuts *rdCuts, Int_t decaychannel); |
a8f6c03f | 42 | |
43 | virtual ~AliAnalysisTaskSEHFv2(); | |
44 | ||
45 | void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;} | |
46 | void SetMassLimits(Float_t range,Int_t pdg); | |
47 | void SetMassLimits(Float_t lowlimit, Float_t uplimit); | |
48 | void SetNMassBins(Int_t nbins){fNMassBins=nbins;} | |
a8f6c03f | 49 | void SetV0EventPlaneOrder(Int_t n){fV0EPorder=n;} |
05620b8d | 50 | void SetMinCentrality(Int_t mincentr){fMinCentr=mincentr;} |
51 | void SetMaxCentrality(Int_t maxcentr){fMaxCentr=maxcentr;} | |
ed352b10 | 52 | void SetUseAfterBurner(Bool_t ab){fUseAfterBurner=ab;} |
53 | void SetAfterBurner(AliHFAfterBurner *ab){fAfterBurner=ab;} | |
35405405 | 54 | void SetEtaGapFeatureForEventplaneFromTracks (Bool_t etaGap) {fEtaGap = etaGap;} |
2363fee4 | 55 | void SetCentralityBinWidthPerMil(Int_t w){fCentBinSizePerMil=w;} |
56 | ||
b356f0ee | 57 | |
58 | void SetNTPCSubEvents(Int_t nsub); | |
59 | void Set2TPCEPSubEvents(){SetNTPCSubEvents(2);} | |
60 | void Set3TPCEPSubEvents(){SetNTPCSubEvents(3);} | |
590dea9c | 61 | void SetEventPlaneMethod(Int_t epmethod); |
62 | void SetTPCEPOnly(){SetEventPlaneMethod(kTPC);} | |
1c451ce0 | 63 | void SetVZEROEP(){SetEventPlaneMethod(kVZERO);} |
64 | void SetVZEROAEP(){SetEventPlaneMethod(kVZEROA);} | |
65 | void SetVZEROCEP(){SetEventPlaneMethod(kVZEROC);} | |
590dea9c | 66 | void SetTPCEP(){SetEventPlaneMethod(kTPCVZERO);} |
590dea9c | 67 | void SetEventPlanesCompatibility(Float_t comp) {fEventPlanesComp=comp;} |
b356f0ee | 68 | //void SetSubEvents(Int_t subev){if(subev>=kFullTPC&&subev<=kSingleV0Side)fSubEvents=subev;} |
590dea9c | 69 | |
70 | Int_t GetEventPlaneMethod()const {return fEventPlaneMeth;} | |
b356f0ee | 71 | Int_t GetNTPCSubEvents()const {return fSubEvents;} |
590dea9c | 72 | Float_t GetEventPlanesCompatibility()const {return fEventPlanesComp;} |
a8f6c03f | 73 | Float_t GetUpperMassLimit()const {return fUpmasslimit;} |
74 | Float_t GetLowerMassLimit()const {return fLowmasslimit;} | |
75 | Int_t GetNMassBins()const {return fNMassBins;} | |
a8f6c03f | 76 | //Float_t GetPhi02Pi(Float_t phi); |
77 | Float_t GetPhi0Pi(Float_t phi); | |
ed352b10 | 78 | AliHFAfterBurner *GetAfterBurner()const {return fAfterBurner;} |
590dea9c | 79 | |
a8f6c03f | 80 | // Implementation of interface methods |
81 | virtual void UserCreateOutputObjects(); | |
82 | virtual void LocalInit();// {Init();} | |
83 | virtual void UserExec(Option_t *option); | |
84 | virtual void Terminate(Option_t *option); | |
85 | ||
86 | private: | |
87 | ||
88 | AliAnalysisTaskSEHFv2(const AliAnalysisTaskSEHFv2 &source); | |
89 | AliAnalysisTaskSEHFv2& operator=(const AliAnalysisTaskSEHFv2& source); | |
90 | ||
91 | void CalculateInvMasses(AliAODRecoDecayHF* d,Float_t* &masses,Int_t& nmasses); | |
92 | ||
e2e3b87b | 93 | void FillDplus(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi, const Float_t* masses,Int_t isSel,Int_t icentr, Double_t phiD); |
94 | void FillD02p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi, const Float_t* masses, Int_t isSel,Int_t icentr, Double_t phiD); | |
95 | void FillDstar(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi, const Float_t* masses,Int_t isSel,Int_t icentr, Double_t phiD); | |
ad34433d | 96 | Float_t GetEventPlaneForCandidate(AliAODRecoDecayHF* d, const TVector2* q,AliEventplane *pl,const TVector2* qsub1,const TVector2* qsub2); |
590dea9c | 97 | // Float_t GetEventPlaneFromV0(AliAODEvent *aodEvent); |
a8f6c03f | 98 | |
99 | ||
100 | TH1F* fhEventsInfo; //! histogram send on output slot 1 | |
101 | TList *fOutput; //! list send on output slot 2 | |
102 | AliRDHFCuts *fRDCuts; //cut values (saved in slot 3) | |
a8f6c03f | 103 | Float_t fLowmasslimit; //lower inv mass limit for histos |
104 | Float_t fUpmasslimit; //upper inv mass limit for histos | |
105 | Int_t fNPtBins; //number of pt bins | |
a8f6c03f | 106 | Int_t fNMassBins; //number of bins in the mass histograms |
107 | Bool_t fReadMC; //flag for access to MC | |
ed352b10 | 108 | Bool_t fUseAfterBurner; //enable afterburning |
a8f6c03f | 109 | Int_t fDecChannel; //decay channel identifier |
ed352b10 | 110 | AliHFAfterBurner *fAfterBurner;//Afterburner options |
590dea9c | 111 | Int_t fEventPlaneMeth; //flag to select EP method |
112 | Float_t fEventPlanesComp; // Maximum distance between TPC/VZERO event planes | |
a8f6c03f | 113 | Int_t fV0EPorder; //harmonic for VZERO event plane |
05620b8d | 114 | Int_t fMinCentr; //minimum centrality |
115 | Int_t fMaxCentr; //maximum centrality | |
35405405 | 116 | Bool_t fEtaGap; // Eta gap feature for Eventplane from tracks; be careful that you do the correct settings in AddTaskEventPlane.C !!!! |
b356f0ee | 117 | Int_t fSubEvents; //Sub-events definition for TPC EP |
2363fee4 | 118 | Int_t fCentBinSizePerMil; // width of centrality bins |
a8f6c03f | 119 | |
2363fee4 | 120 | ClassDef(AliAnalysisTaskSEHFv2,3); // AliAnalysisTaskSE for the HF v2 analysis |
a8f6c03f | 121 | }; |
122 | ||
123 | #endif |