1 #ifndef ALIANALYSISTASKSED0MASS_H
2 #define ALIANALYSISTASKSED0MASS_H
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // Class AliAnalysisTaskSED0Mass
9 // AliAnalysisTaskSE for D0 candidates invariant mass histogram
10 // and comparison to MC truth (kinematics stored in the AOD) and cut variables
12 // Authors: A.Dainese, andrea.dainese@ln.infn.it
13 // and C.Bianchin, chiara.bianchin@pd.infn.it
14 //*************************************************************************
21 #include "AliAnalysisTaskSE.h"
22 #include "AliRDHFCutsD0toKpi.h"
23 #include "AliNormalizationCounter.h"
27 class AliAnalysisTaskSED0Mass : public AliAnalysisTaskSE
31 AliAnalysisTaskSED0Mass();
32 AliAnalysisTaskSED0Mass(const char *name,AliRDHFCutsD0toKpi* cuts);
33 virtual ~AliAnalysisTaskSED0Mass();
36 // Implementation of interface methods
37 virtual void UserCreateOutputObjects();
39 virtual void LocalInit() {Init();}
40 virtual void UserExec(Option_t *option);
41 virtual void Terminate(Option_t *option);
43 void SetArray(Int_t type=AliAnalysisTaskSED0Mass::kD0){fArray=type;}
46 void SetReadMC(Bool_t readMC=kFALSE){fReadMC=readMC;}
47 void SetCutOnDistr(Bool_t cutondistr=kFALSE){fCutOnDistr=cutondistr;}
48 void SetUsePid4Distr(Bool_t usepid=kTRUE){fUsePid4Distr=usepid;}
49 void SetFillOnlyD0D0bar(Int_t flagfill){fFillOnlyD0D0bar=flagfill;}
51 Bool_t GetCutOnDistr() const {return fCutOnDistr;}
52 Bool_t GetUsePid4Distr() const {return fUsePid4Distr;}
53 Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;}
57 AliAnalysisTaskSED0Mass(const AliAnalysisTaskSED0Mass &source);
58 AliAnalysisTaskSED0Mass& operator=(const AliAnalysisTaskSED0Mass& source);
59 void FillMassHists(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout);
60 void FillVarHists(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout);
61 AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *d);
63 TList *fOutputMass; //! list send on output slot 1
64 TList *fDistr; //! list send on output slot 2
65 TH1F *fNentries; //! histogram with number of events on output slot 3
66 AliRDHFCutsD0toKpi *fCuts; // Cuts - sent to output slot 4
67 Int_t fArray; // can be D0 or Like Sign candidates
68 Bool_t fReadMC; // flag for MC array: kTRUE = read it, kFALSE = do not read it
69 Bool_t fCutOnDistr; // flag to decide if apply cut also on distributions: 0 no cuts, 1 looser cuts, 2 tighter cuts
70 Bool_t fUsePid4Distr; // flag to use the particle identification to fill the signal histograms of distributions. It has effect only with fReadMC=kFALSE
71 AliNormalizationCounter *fCounter;//!AliNormalizationCounter on output slot 6
72 Int_t fNPtBins; // number of pt bins
73 Double_t fLsNormalization; // normalization
74 Int_t fFillOnlyD0D0bar; // flag to fill mass histogram with D0/D0bar only (0 = fill with both, 1 = fill with D0 only, 2 = fill with D0bar only)
76 ClassDef(AliAnalysisTaskSED0Mass,11); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates