]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliAnalysisTaskSESignificance.h
Update of D+ classes: added acceptance cut, added histograms (Francesco)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSESignificance.h
1 #ifndef ALIANALYSISTASKSESIGNIFICANCE_H
2 #define ALIANALYSISTASKSESIGNIFICANCE_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 // 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 //*************************************************************************
15
16 #include "AliAnalysisTaskSE.h"
17 #include "AliAnalysisVertexingHF.h"
18
19 class TH1F;
20 class AliMultiDimVector;
21 class AliRDHFCuts;
22
23 class AliAnalysisTaskSESignificance : public AliAnalysisTaskSE
24 {
25  public:
26
27   AliAnalysisTaskSESignificance();
28   AliAnalysisTaskSESignificance(const char *name, TList *listMDV,AliRDHFCuts *RDCuts, Int_t decaychannel,Int_t selectionlevel=AliRDHFCuts::kAll);
29  
30   virtual ~AliAnalysisTaskSESignificance();
31
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;}
39   
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);
45     
46  private:
47
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;}
54  
55   enum {kMaxPtBins=5};
56   enum {kMaxCutVar=5};
57   enum {kMaxSteps=10};
58   enum {kMaxNHist=500000};
59   enum {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi};
60
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
75    
76   ClassDef(AliAnalysisTaskSESignificance,1); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates
77 };
78
79 #endif
80
81