]>
Commit | Line | Data |
---|---|---|
49061176 | 1 | #ifndef ALIANALYSISTASKSED0MASS_H |
2 | #define ALIANALYSISTASKSED0MASS_H | |
3 | ||
4 | /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
27de2dfb | 7 | /* $Id$ */ |
8 | ||
49061176 | 9 | //************************************************************************* |
10 | // Class AliAnalysisTaskSED0Mass | |
11 | // AliAnalysisTaskSE for D0 candidates invariant mass histogram | |
a41f6fad | 12 | // and comparison to MC truth (kinematics stored in the AOD) and cut variables |
13 | // distributions | |
49061176 | 14 | // Authors: A.Dainese, andrea.dainese@ln.infn.it |
15 | // and C.Bianchin, chiara.bianchin@pd.infn.it | |
16 | //************************************************************************* | |
17 | ||
18 | #include <TROOT.h> | |
19 | #include <TSystem.h> | |
20 | #include <TNtuple.h> | |
21 | #include <TH1F.h> | |
22 | ||
23 | #include "AliAnalysisTaskSE.h" | |
ea0d8716 | 24 | #include "AliRDHFCutsD0toKpi.h" |
a96083b9 | 25 | #include "AliNormalizationCounter.h" |
ea0d8716 | 26 | |
4e61a020 | 27 | class AliAODEvent; |
49061176 | 28 | |
29 | class AliAnalysisTaskSED0Mass : public AliAnalysisTaskSE | |
30 | { | |
31 | public: | |
32 | ||
33 | AliAnalysisTaskSED0Mass(); | |
ea0d8716 | 34 | AliAnalysisTaskSED0Mass(const char *name,AliRDHFCutsD0toKpi* cuts); |
49061176 | 35 | virtual ~AliAnalysisTaskSED0Mass(); |
36 | ||
37 | ||
38 | // Implementation of interface methods | |
39 | virtual void UserCreateOutputObjects(); | |
40 | virtual void Init(); | |
41 | virtual void LocalInit() {Init();} | |
42 | virtual void UserExec(Option_t *option); | |
43 | virtual void Terminate(Option_t *option); | |
44 | ||
feb73eca | 45 | void SetArray(Int_t type=AliAnalysisTaskSED0Mass::kD0){fArray=type;} |
feb73eca | 46 | enum{kD0,kLS}; |
ce39f0ac | 47 | |
48 | void SetReadMC(Bool_t readMC=kFALSE){fReadMC=readMC;} | |
ea0d8716 | 49 | void SetCutOnDistr(Bool_t cutondistr=kFALSE){fCutOnDistr=cutondistr;} |
6b3e3c78 | 50 | void SetUsePid4Distr(Bool_t usepid=kTRUE){fUsePid4Distr=usepid;} |
449b1302 | 51 | void SetFillOnlyD0D0bar(Int_t flagfill){fFillOnlyD0D0bar=flagfill;} |
d7688946 | 52 | void SetFillVarHists(Bool_t flag) {fFillVarHists=flag;} |
a8ce111e | 53 | void SetSystem(Int_t sys){fSys=sys; if(fSys==1) SetFillVarHists(kFALSE);} |
2b35ac47 | 54 | void SetRejectSDDClusters(Bool_t flag) { fIsRejectSDDClusters=flag; } |
6b3e3c78 | 55 | |
56 | Bool_t GetCutOnDistr() const {return fCutOnDistr;} | |
57 | Bool_t GetUsePid4Distr() const {return fUsePid4Distr;} | |
449b1302 | 58 | Int_t GetFillOnlyD0D0bar() const {return fFillOnlyD0D0bar;} |
a8ce111e | 59 | Int_t GetSystem() const {return fSys;} |
2b35ac47 | 60 | Bool_t GetRejectSDDClusters() { return fIsRejectSDDClusters; } |
449b1302 | 61 | |
49061176 | 62 | private: |
63 | ||
64 | AliAnalysisTaskSED0Mass(const AliAnalysisTaskSED0Mass &source); | |
65 | AliAnalysisTaskSED0Mass& operator=(const AliAnalysisTaskSED0Mass& source); | |
d7688946 | 66 | void FillMassHists(AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout); |
4e61a020 | 67 | void FillVarHists(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *part, TClonesArray *arrMC, AliRDHFCutsD0toKpi *cuts, TList *listout); |
d7688946 | 68 | AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent *aodev); |
4e61a020 | 69 | |
6b3e3c78 | 70 | TList *fOutputMass; //! list send on output slot 1 |
71 | TList *fDistr; //! list send on output slot 2 | |
72 | TH1F *fNentries; //! histogram with number of events on output slot 3 | |
09f85846 | 73 | AliRDHFCutsD0toKpi *fCuts; // Cuts - sent to output slot 4 |
6b3e3c78 | 74 | Int_t fArray; // can be D0 or Like Sign candidates |
75 | Bool_t fReadMC; // flag for MC array: kTRUE = read it, kFALSE = do not read it | |
76 | Bool_t fCutOnDistr; // flag to decide if apply cut also on distributions: 0 no cuts, 1 looser cuts, 2 tighter cuts | |
77 | Bool_t fUsePid4Distr; // flag to use the particle identification to fill the signal histograms of distributions. It has effect only with fReadMC=kFALSE | |
a96083b9 | 78 | AliNormalizationCounter *fCounter;//!AliNormalizationCounter on output slot 6 |
6b3e3c78 | 79 | Int_t fNPtBins; // number of pt bins |
6b3e3c78 | 80 | Double_t fLsNormalization; // normalization |
449b1302 | 81 | 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) |
d7688946 | 82 | TObjArray fDaughterTracks; // keeps the daughter tracks |
83 | Int_t fIsSelectedCandidate; // selection outcome | |
84 | Bool_t fFillVarHists; // flag to enable filling variable histos | |
a8ce111e | 85 | Int_t fSys; // fSys=0 -> p-p; fSys=1 ->PbPb (in this case fFillVarHists=kFALSE by default: set it to kTRUE *after* if needed) |
2b35ac47 | 86 | Bool_t fIsRejectSDDClusters; // flag to reject events with SDD clusters |
6b3e3c78 | 87 | |
2b35ac47 | 88 | ClassDef(AliAnalysisTaskSED0Mass,15); // AliAnalysisTaskSE for D0->Kpi |
49061176 | 89 | }; |
90 | ||
91 | #endif | |
87020237 | 92 |