1 #ifndef ALIANALYSISTASKSEHFV2_H
2 #define ALIANALYSISTASKSEHFV2_H
4 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // AliAnalysisTaskSEHFv2 gives the needed tools for the D
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
16 //*************************************************************************
20 #include "AliAnalysisTaskSE.h"
21 #include "AliAnalysisVertexingHF.h"
25 class AliMultiDimVector;
29 class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE
34 enum DecChannel{kDplustoKpipi,kD0toKpi,kDstartoKpipi}; //more particles can be added
36 AliAnalysisTaskSEHFv2();
37 AliAnalysisTaskSEHFv2(const char *name, AliRDHFCuts *rdCuts, Int_t decaychannel,Int_t nbinsphi, Float_t *phibinlimits,TH2D** histPar);
39 virtual ~AliAnalysisTaskSEHFv2();
41 void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
42 void SetMassLimits(Float_t range,Int_t pdg);
43 void SetMassLimits(Float_t lowlimit, Float_t uplimit);
44 void SetNMassBins(Int_t nbins){fNMassBins=nbins;}
45 void SetUpperCentLimit(Float_t lim){fCentUpLimit = lim;}
46 void SetLowerCentLimit(Float_t lim){fCentLowLimit = lim;}
47 void SetUseV0EP(Bool_t flagV0EP){fUseV0EP=flagV0EP;}
48 void SetV0EventPlaneOrder(Int_t n){fV0EPorder=n;}
50 Float_t GetUpperMassLimit()const {return fUpmasslimit;}
51 Float_t GetLowerMassLimit()const {return fLowmasslimit;}
52 Int_t GetNMassBins()const {return fNMassBins;}
53 Int_t GetPhiBin(Float_t deltaphi);
54 //Float_t GetPhi02Pi(Float_t phi);
55 Float_t GetPhi0Pi(Float_t phi);
56 Float_t GetLowerCentLimit()const {return fCentLowLimit;}
57 Float_t GetUpperCentLimit()const {return fCentUpLimit;}
58 // Implementation of interface methods
59 virtual void UserCreateOutputObjects();
60 virtual void LocalInit();// {Init();}
61 virtual void UserExec(Option_t *option);
62 virtual void Terminate(Option_t *option);
66 AliAnalysisTaskSEHFv2(const AliAnalysisTaskSEHFv2 &source);
67 AliAnalysisTaskSEHFv2& operator=(const AliAnalysisTaskSEHFv2& source);
69 void CalculateInvMasses(AliAODRecoDecayHF* d,Float_t* &masses,Int_t& nmasses);
71 void FillDplus(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi,Float_t* masses,Int_t isSel,Int_t icentr);
72 void FillD02p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi,Float_t* masses, Int_t isSel,Int_t icentr);
73 void FillDstar(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t ptbin, Float_t dphi,Float_t* masses,Int_t isSel,Int_t icentr);
74 Float_t GetEventPlaneForCandidate(AliAODRecoDecayHF* d, TVector2* q,AliEventplane *pl);
75 Float_t GetEventPlaneFromV0(AliAODEvent *aodEvent);
78 TH1F* fhEventsInfo; //! histogram send on output slot 1
79 TList *fOutput; //! list send on output slot 2
80 AliRDHFCuts *fRDCuts; //cut values (saved in slot 3)
81 TList *fParHist; //list for VZERO EP parameters (slot 4)
82 TH2D *fHistvzero[6]; //histograms for VZERO EP parameters
83 Float_t fLowmasslimit; //lower inv mass limit for histos
84 Float_t fUpmasslimit; //upper inv mass limit for histos
85 Int_t fNPtBins; //number of pt bins
86 Int_t fNPhiBinLims; //number of delta phi bins limits (= number of bins +1)
87 Float_t *fPhiBins; //[fNPhiBinLims] limits of each phi bin
88 Float_t fCentLowLimit; //lower centrality limit
89 Float_t fCentUpLimit; //upper centrality limit
90 Int_t fNMassBins; //number of bins in the mass histograms
91 Bool_t fReadMC; //flag for access to MC
92 Int_t fDecChannel; //decay channel identifier
93 Bool_t fUseV0EP; //flag to select EP method
94 Int_t fV0EPorder; //harmonic for VZERO event plane
96 ClassDef(AliAnalysisTaskSEHFv2,1); // AliAnalysisTaskSE for the HF v2 analysis