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