]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliAnalysisTaskSEDs.h
Fix typo
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSEDs.h
1 #ifndef ALIANALYSISTASKDS_H
2 #define ALIANALYSISTASKDS_H
3
4 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ///////////////////////////////////////////////////////////////////
10 //                                                               //
11 // Analysis task to produce Ds candidates mass spectra           //
12 // Origin: F.Prino, Torino, prino@to.infn.it                     //
13 //                                                               //
14 ///////////////////////////////////////////////////////////////////
15
16 #include <TROOT.h>
17 #include <TSystem.h>
18 #include <TH1F.h>
19 #include <TH2F.h>
20
21 #include "AliAnalysisTaskSE.h"
22 #include "AliRDHFCutsDstoKKpi.h"
23
24 class AliNormalizationCounter;
25
26
27 class AliAnalysisTaskSEDs : public AliAnalysisTaskSE
28 {
29  public:
30  
31   AliAnalysisTaskSEDs();
32   AliAnalysisTaskSEDs(const char *name, AliRDHFCutsDstoKKpi* analysiscuts, Int_t fillNtuple=0);
33   virtual ~AliAnalysisTaskSEDs();
34   void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
35   void SetFillNtuple(Int_t fill=0){fFillNtuple=fill;}
36   void SetMassRange(Double_t rang=0.4){fMassRange=rang;}
37   void SetDoCutVarHistos(Bool_t opt=kTRUE) {fDoCutVarHistos=opt;}
38   void SetUseSelectionBit(Bool_t opt=kFALSE){ fUseSelectionBit=opt;}
39
40   void SetInvMassBinSize(Double_t binsiz=0.002){fMassBinSize=binsiz;}
41   void SetPtBins(Int_t n, Float_t* lim);
42   void SetAnalysisCuts(AliRDHFCutsDstoKKpi* cuts){fAnalysisCuts=cuts;}
43   // Implementation of interface methods
44   virtual void UserCreateOutputObjects();
45   virtual void Init();
46   virtual void LocalInit() {Init();}
47   virtual void UserExec(Option_t *option);
48   virtual void Terminate(Option_t *option);
49     
50  private:
51   Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*4;}
52   Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+1;}
53   Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*4+2;}
54   Int_t GetReflSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+3;}
55
56   enum {kMaxPtBins=20};
57
58   AliAnalysisTaskSEDs(const AliAnalysisTaskSEDs &source);
59   AliAnalysisTaskSEDs& operator=(const AliAnalysisTaskSEDs& source); 
60
61   TList*  fOutput;                    //! list send on output slot 0
62   TH1F*   fHistNEvents;               //! hist. for No. of events  
63   TH1F*   fChanHist[4];               //! hist. with KKpi and piKK candidates (sig,bkg,tot)
64   TH1F*   fMassHist[4*kMaxPtBins];    //! hist. of mass spectra (sig,bkg,tot)
65   TH1F*   fMassHistPhi[3*kMaxPtBins];    //! hist. of mass spectra via phi (sig,bkg,tot)
66   TH1F*   fMassHistK0st[3*kMaxPtBins];    //! hist. of mass spectra via K0* (sig,bkg,tot)
67   TH1F*   fCosPHist[4*kMaxPtBins];    //! hist. of cos pointing angle (sig,bkg,tot)
68   TH1F*   fDLenHist[4*kMaxPtBins];    //! hist. of decay length (sig,bkg,tot)
69   TH1F*   fSumd02Hist[4*kMaxPtBins];  //! hist. for sum d02 (Prod Cuts)
70   TH1F*   fSigVertHist[4*kMaxPtBins]; //! hist. for sigVert (Prod Cuts)
71   TH1F*   fPtMaxHist[4*kMaxPtBins];   //! hist. for Pt Max (Prod Cuts)
72   TH1F*   fPtCandHist[4*kMaxPtBins];  //! hist. for Pt Max (Prod Cuts)
73   TH1F*   fDCAHist[4*kMaxPtBins];     //! hist. for DCA (Prod Cuts)
74   TH1F*   fPtProng0Hist[4*kMaxPtBins]; //! hist. for Pt Max (Prod Cuts)
75   TH1F*   fPtProng1Hist[4*kMaxPtBins]; //! hist. for DCA (Prod Cuts)
76   TH1F*   fPtProng2Hist[4*kMaxPtBins]; //! hist. for DCA (Prod Cuts)
77   TH2F*   fDalitz[4*kMaxPtBins];      //! dalitz plot (sig,bkg,tot)
78   TH2F*   fDalitzPhi[4*kMaxPtBins];   //! dalitz plot via phi (sig,bkg,tot)
79   TH2F*   fDalitzK0st[4*kMaxPtBins];   //! dalitz plot via K0* (sig,bkg,tot)
80   TH2F *fPtVsMass;    //! hist. of pt vs. mass (prod. cuts)
81   TH2F *fPtVsMassPhi;    //! hist. of pt vs. mass (phi selection)
82   TH2F *fPtVsMassK0st;   //! hist. of pt vs. mass (K0* selection)
83   TH2F *fYVsPt;       //! hist. of Y vs. Pt (prod. cuts)
84   TH2F *fYVsPtSig;    //! hist. of Y vs. Pt (MC, only sig, prod. cuts)
85   TNtuple *fNtupleDs; //! output ntuple
86   Int_t fFillNtuple;                 // 0 not to fill ntuple
87                                      // 1 for filling ntuple for events through Phi
88                                      // 2 for filling ntuple for events through K0Star
89                                      // 3 for filling all 
90                                     
91                                      
92   Bool_t  fReadMC;                    //  flag for access to MC
93   Bool_t  fDoCutVarHistos;            //  flag to create and fill histos with distributions of cut variables
94   Bool_t  fUseSelectionBit;           // flag for useage of HasSelectionBit
95   UChar_t fNPtBins;                   // number of Pt bins
96   TList *fListCuts; //list of cuts
97   Float_t fPtLimits[kMaxPtBins+1];    //  limits for pt bins
98   Double_t fMassRange;                // range for mass histogram 
99   Double_t fMassBinSize;              // bin size for inv. mass histo
100
101   AliNormalizationCounter *fCounter;//!Counter for normalization
102   AliRDHFCutsDstoKKpi *fAnalysisCuts; // Cuts for Analysis
103   
104   ClassDef(AliAnalysisTaskSEDs,11);    //  AliAnalysisTaskSE for Ds mass spectra
105 };
106
107 #endif
108
109