Dplus and Ds tasks use the new cuts classes (Francesco, Renu, Giacomo)
[u/mrichter/AliRoot.git] / PWG3 / 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
8 /* $Id: $ */
9
10 ///////////////////////////////////////////////////////////////////
11 //                                                               //
12 // Analysis task to produce Ds candidates mass spectra           //
13 // Origin: F.Prino, Torino, prino@to.infn.it                     //
14 //                                                               //
15 ///////////////////////////////////////////////////////////////////
16
17 #include <TROOT.h>
18 #include <TSystem.h>
19 #include <TH1F.h>
20 #include <TH2F.h>
21
22 #include "AliAnalysisTaskSE.h"
23 #include "AliRDHFCutsDstoKKpi.h"
24
25 class AliAnalysisTaskSEDs : public AliAnalysisTaskSE
26 {
27  public:
28
29   AliAnalysisTaskSEDs();
30   AliAnalysisTaskSEDs(const char *name, AliRDHFCutsDstoKKpi* productioncuts, AliRDHFCutsDstoKKpi* analysiscuts);
31   virtual ~AliAnalysisTaskSEDs();
32   void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
33   void SetMassRange(Double_t rang=0.2){fMassRange=rang;}
34   void SetPtBins(Int_t n, Float_t* lim);
35   void SetProductionCuts(AliRDHFCutsDstoKKpi* cuts){fProdCuts=cuts;}
36   void SetAnalysisCuts(AliRDHFCutsDstoKKpi* cuts){fAnalysisCuts=cuts;}
37   // Implementation of interface methods
38   virtual void UserCreateOutputObjects();
39   virtual void Init();
40   virtual void LocalInit() {Init();}
41   virtual void UserExec(Option_t *option);
42   virtual void Terminate(Option_t *option);
43     
44  private:
45   Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*3;}
46   Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;}
47   Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;}
48
49   enum {kMaxPtBins=10};
50
51   AliAnalysisTaskSEDs(const AliAnalysisTaskSEDs &source);
52   AliAnalysisTaskSEDs& operator=(const AliAnalysisTaskSEDs& source); 
53
54   TList*  fOutput;                    //! list send on output slot 0
55   TH1F*   fHistNEvents;               //! hist. for No. of events  
56   TH1F*   fChanHist[3];               //! hist. with KKpi and piKK candidates (sig,bkg,tot)
57   TH1F*   fChanHistCuts[3];           //! hist. with KKpi and piKK candidates analysis cuts
58   TH1F*   fMassHist[3*kMaxPtBins];    //! hist. of mass spectra (sig,bkg,tot)
59   TH1F*   fMassHistCuts[3*kMaxPtBins];//! hist. of mass spectra (sig,bkg,tot) analysis cuts
60   TH1F*   fCosPHist[3*kMaxPtBins];    //! hist. of cos pointing angle (sig,bkg,tot)
61   TH1F*   fDLenHist[3*kMaxPtBins];    //! hist. of decay length (sig,bkg,tot)
62   TH2F*   fDalitz[3*kMaxPtBins];      //! dalitz plot (sig,bkg,tot)
63   Bool_t  fReadMC;                    //  flag for access to MC
64   UChar_t fNPtBins;                   // number of Pt bins
65   TList *fListCuts; //list of cuts
66   Float_t fPtLimits[kMaxPtBins+1];    //  limits for pt bins
67   Double_t fMassRange;                // range for mass histogram 
68   AliRDHFCutsDstoKKpi *fProdCuts;     //Cuts for Analysis
69   AliRDHFCutsDstoKKpi *fAnalysisCuts; //Cuts for Analysis
70   
71   ClassDef(AliAnalysisTaskSEDs,2);    //  AliAnalysisTaskSE for Ds mass spectra
72 };
73
74 #endif
75