]>
Commit | Line | Data |
---|---|---|
d486095a | 1 | #ifndef ALIANALYSISTASKDPLUS_H |
2 | #define ALIANALYSISTASKDPLUS_H | |
3 | ||
4 | /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //************************************************************************* | |
8 | // Class AliAnalysisTaskSEDplus | |
4afc48a2 | 9 | // AliAnalysisTaskSE for the D+ candidates Invariant Mass Histogram and |
10 | //comparison of heavy-flavour decay candidates | |
d486095a | 11 | // to MC truth (kinematics stored in the AOD) |
4afc48a2 | 12 | // Renu Bala, bala@to.infn.it |
d486095a | 13 | //************************************************************************* |
14 | ||
15 | #include <TROOT.h> | |
16 | #include <TSystem.h> | |
17 | #include <TNtuple.h> | |
18 | #include <TH1F.h> | |
82bb8d4b | 19 | #include <TArrayD.h> |
d486095a | 20 | |
21 | #include "AliAnalysisTaskSE.h" | |
22 | #include "AliAnalysisVertexingHF.h" | |
23 | ||
24 | class AliAnalysisTaskSEDplus : public AliAnalysisTaskSE | |
25 | { | |
26 | public: | |
27 | ||
28 | AliAnalysisTaskSEDplus(); | |
1f4e9722 | 29 | AliAnalysisTaskSEDplus(const char *name, Bool_t fillNtuple=kFALSE); |
d486095a | 30 | virtual ~AliAnalysisTaskSEDplus(); |
82bb8d4b | 31 | |
4afc48a2 | 32 | void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;} |
33 | void SetDoLikeSign(Bool_t dols=kTRUE){fDoLS=dols;} | |
82bb8d4b | 34 | void SetMassLimits(Float_t range); |
35 | void SetMassLimits(Float_t lowlimit, Float_t uplimit); | |
36 | void SetPtBinLimit(Int_t n, Double_t *limitarray); | |
37 | ||
38 | Float_t GetUpperMassLimit(){return fUpmasslimit;} | |
39 | Float_t GetLowerMassLimit(){return fLowmasslimit;} | |
40 | Int_t GetNBinsPt(){return fNPtBins;} | |
41 | Double_t GetPtBinLimit(Int_t ibin); | |
42 | ||
43 | void LSAnalysis(TClonesArray *arrayOppositeSign,TClonesArray *arrayLikeSign,AliAODEvent *aod,AliAODVertex *vtx1, Int_t nDplusOS); | |
44 | ||
d486095a | 45 | // Implementation of interface methods |
46 | virtual void UserCreateOutputObjects(); | |
47 | virtual void Init(); | |
48 | virtual void LocalInit() {Init();} | |
49 | virtual void UserExec(Option_t *option); | |
50 | virtual void Terminate(Option_t *option); | |
4afc48a2 | 51 | |
d486095a | 52 | private: |
53 | ||
54 | AliAnalysisTaskSEDplus(const AliAnalysisTaskSEDplus &source); | |
55 | AliAnalysisTaskSEDplus& operator=(const AliAnalysisTaskSEDplus& source); | |
82bb8d4b | 56 | Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*3;} |
57 | Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;} | |
58 | Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;} | |
59 | Int_t GetLSHistoIndex(Int_t iPtBin)const { return iPtBin*5;} | |
60 | ||
61 | enum {kMaxPtBins=10}; | |
62 | ||
d486095a | 63 | TList *fOutput; //! list send on output slot 0 |
4afc48a2 | 64 | TH1F *fHistNEvents; //!hist. for No. of events |
82bb8d4b | 65 | TH1F *fMassHist[3*kMaxPtBins]; //!hist. for inv mass (LC) |
66 | TH1F *fMassHistTC[3*kMaxPtBins]; //!hist. for inv mass (TC) | |
67 | TH1F *fMassHistLS[5*kMaxPtBins];//!hist. for LS inv mass (LC) | |
68 | TH1F *fMassHistLSTC[5*kMaxPtBins];//!hist. for LS inv mass (TC) | |
1f4e9722 | 69 | TNtuple *fNtupleDplus; //! output ntuple |
82bb8d4b | 70 | Float_t fUpmasslimit; //upper inv mass limit for histos |
71 | Float_t fLowmasslimit; //lower inv mass limit for histos | |
72 | Int_t fNPtBins; //number of bins in Pt for histograms | |
73 | Double_t fArrayBinLimits[kMaxPtBins+1]; //limits for the Pt bins | |
1f4e9722 | 74 | Bool_t fFillNtuple; // flag for filling ntuple |
82bb8d4b | 75 | Bool_t fReadMC; //flag for access to MC |
76 | Bool_t fDoLS; //flag to do LS analysis | |
d486095a | 77 | AliAnalysisVertexingHF *fVHF; // Vertexer heavy flavour (used to pass the cuts) |
78 | ||
1f4e9722 | 79 | ClassDef(AliAnalysisTaskSEDplus,4); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates |
d486095a | 80 | }; |
81 | ||
82 | #endif | |
83 |