1 #ifndef ALIANALYSISTASKSESIGNIFICANCE_H
2 #define ALIANALYSISTASKSESIGNIFICANCE_H
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // AliAnalysisTaskSESignificane to calculate effects on
9 // significance of D mesons cut
10 // Authors: G. Ortona, ortona@to.infn.it
11 // F. Prino, prino@to.infn.it
12 // Renu Bala, bala@to.infn.it
13 // Chiara Bianchin, cbianchi@pd.infn.it
14 //*************************************************************************
16 #include "AliAnalysisTaskSE.h"
17 #include "AliAnalysisVertexingHF.h"
20 class AliMultiDimVector;
23 class AliAnalysisTaskSESignificance : public AliAnalysisTaskSE
27 AliAnalysisTaskSESignificance();
28 AliAnalysisTaskSESignificance(const char *name, TList *listMDV,AliRDHFCuts *RDCuts, Int_t decaychannel,Int_t selectionlevel=AliRDHFCuts::kAll);
30 virtual ~AliAnalysisTaskSESignificance();
32 Bool_t CheckConsistency();
33 void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
34 void SetMassLimits(Float_t range,Int_t pdg);
35 void SetMassLimits(Float_t lowlimit, Float_t uplimit);
36 //void SetMultiVector(const AliMultiDimVector *MultiDimVec){fMultiDimVec->CopyStructure(MultiDimVec);}
37 Float_t GetUpperMassLimit(){return fUpmasslimit;}
38 Float_t GetLowerMassLimit(){return fLowmasslimit;}
40 // Implementation of interface methods
41 virtual void UserCreateOutputObjects();
42 virtual void LocalInit();// {Init();}
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *option);
48 AliAnalysisTaskSESignificance(const AliAnalysisTaskSESignificance &source);
49 AliAnalysisTaskSESignificance& operator=(const AliAnalysisTaskSESignificance& source);
50 Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*3;}
51 Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;}
52 Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;}
53 Int_t GetLSHistoIndex(Int_t iPtBin)const { return iPtBin*5;}
58 enum {kMaxNHist=500000};
59 enum {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi};
61 TList *fOutput; //! list send on output slot 0
62 TList *fCutList; //Multidimvector container
63 TH1F *fMassHist[kMaxNHist]; //!hist. for inv mass
64 TH1F *fSigHist[kMaxNHist]; //!hist. for inv mass (sig from MC truth)
65 TH1F *fBkgHist[kMaxNHist]; //!hist. for inv mass (bkg from MC truth)
66 TH1F *fRflHist[kMaxNHist]; //!hist. for inv mass (bkg from MC truth)
67 TH1F* fHistNEvents; //! hist of n of aods
68 Float_t fUpmasslimit; //upper inv mass limit for histos
69 Float_t fLowmasslimit; //lower inv mass limit for histos
70 AliRDHFCuts *fRDCuts;//prong cut values
71 Int_t fNPtBins; //number of pt bins
72 Bool_t fReadMC; //flag for access to MC
73 Int_t fDecChannel; //decay channel identifier
74 Int_t fSelectionlevel;//selection level: kALL,kTracks,kCandidate
76 ClassDef(AliAnalysisTaskSESignificance,1); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates