]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/charmFlow/AliAnalysisTaskSEHFv2.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / charmFlow / AliAnalysisTaskSEHFv2.h
CommitLineData
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 25class TH1F;
26class TH2D;
27class AliMultiDimVector;
28class AliRDHFCuts;
29class TVector2;
30
31class 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