]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h
Add Id keyword
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / charmFlow / AliAnalysisTaskSEHFv2.h
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
18 /* $Id$ */
19
20 #include "AliAnalysisTaskSE.h"
21 #include "AliAnalysisVertexingHF.h"
22
23 class TH1F;
24 class TH2D;
25 class AliMultiDimVector;
26 class AliRDHFCuts;
27 class TVector2;
28
29 class AliAnalysisTaskSEHFv2 : public AliAnalysisTaskSE
30 {
31
32  public:
33
34   enum DecChannel{kDplustoKpipi,kD0toKpi,kDstartoKpipi}; //more particles can be added
35
36   AliAnalysisTaskSEHFv2();
37   AliAnalysisTaskSEHFv2(const char *name, AliRDHFCuts *rdCuts, Int_t decaychannel,Int_t nbinsphi, Float_t *phibinlimits,TH2D** histPar);
38  
39   virtual ~AliAnalysisTaskSEHFv2();
40
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;}
49
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);
63     
64  private:
65
66   AliAnalysisTaskSEHFv2(const AliAnalysisTaskSEHFv2 &source);
67   AliAnalysisTaskSEHFv2& operator=(const AliAnalysisTaskSEHFv2& source); 
68
69   void CalculateInvMasses(AliAODRecoDecayHF* d,Float_t* &masses,Int_t& nmasses);
70
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);
76
77
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
95
96   ClassDef(AliAnalysisTaskSEHFv2,1); // AliAnalysisTaskSE for the HF v2 analysis
97 };
98
99 #endif