]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/AliAnalysisTaskSEDs.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSEDs.h
CommitLineData
25c94fc8 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
7b45817b 7/* $Id$ */
25c94fc8 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"
4c230f6d 22#include "AliRDHFCutsDstoKKpi.h"
c3379416 23
24class AliNormalizationCounter;
25
25c94fc8 26
27class AliAnalysisTaskSEDs : public AliAnalysisTaskSE
28{
29 public:
2e153422 30
25c94fc8 31 AliAnalysisTaskSEDs();
1f796bc2 32 AliAnalysisTaskSEDs(const char *name, AliRDHFCutsDstoKKpi* analysiscuts, Int_t fillNtuple=0);
25c94fc8 33 virtual ~AliAnalysisTaskSEDs();
96b8e7bb 34 void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
35 void SetWriteOnlySignalInNtuple(Bool_t opt=kTRUE){
36 if(fReadMC) fWriteOnlySignal=opt;
37 else AliError("fReadMC has to be kTRUE");
38 }
2e153422 39 void SetFillNtuple(Int_t fill=0){fFillNtuple=fill;}
9dbb1d69 40 void SetMassRange(Double_t rang=0.4){fMassRange=rang;}
41 void SetDoCutVarHistos(Bool_t opt=kTRUE) {fDoCutVarHistos=opt;}
42 void SetUseSelectionBit(Bool_t opt=kFALSE){ fUseSelectionBit=opt;}
43
a0bb2d06 44 void SetInvMassBinSize(Double_t binsiz=0.002){fMassBinSize=binsiz;}
4c230f6d 45 void SetPtBins(Int_t n, Float_t* lim);
4c230f6d 46 void SetAnalysisCuts(AliRDHFCutsDstoKKpi* cuts){fAnalysisCuts=cuts;}
25c94fc8 47 // Implementation of interface methods
48 virtual void UserCreateOutputObjects();
49 virtual void Init();
50 virtual void LocalInit() {Init();}
51 virtual void UserExec(Option_t *option);
52 virtual void Terminate(Option_t *option);
53
54 private:
c2a0a9d5 55 Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*4;}
56 Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+1;}
57 Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*4+2;}
58 Int_t GetReflSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+3;}
25c94fc8 59
c135594e 60 enum {kMaxPtBins=20};
25c94fc8 61
62 AliAnalysisTaskSEDs(const AliAnalysisTaskSEDs &source);
63 AliAnalysisTaskSEDs& operator=(const AliAnalysisTaskSEDs& source);
64
65 TList* fOutput; //! list send on output slot 0
66 TH1F* fHistNEvents; //! hist. for No. of events
c2a0a9d5 67 TH1F* fChanHist[4]; //! hist. with KKpi and piKK candidates (sig,bkg,tot)
c2a0a9d5 68 TH1F* fMassHist[4*kMaxPtBins]; //! hist. of mass spectra (sig,bkg,tot)
addffa76 69 TH1F* fMassHistPhi[4*kMaxPtBins]; //! hist. of mass spectra via phi (sig,bkg,tot)
70 TH1F* fMassHistK0st[4*kMaxPtBins]; //! hist. of mass spectra via K0* (sig,bkg,tot)
71 TH1F* fMassHistKK[kMaxPtBins]; //! hist. of mass spectra of KK
72 TH1F* fMassHistKpi[kMaxPtBins]; //! hist. of mass spectra of Kpi
c2a0a9d5 73 TH1F* fCosPHist[4*kMaxPtBins]; //! hist. of cos pointing angle (sig,bkg,tot)
74 TH1F* fDLenHist[4*kMaxPtBins]; //! hist. of decay length (sig,bkg,tot)
75 TH1F* fSumd02Hist[4*kMaxPtBins]; //! hist. for sum d02 (Prod Cuts)
76 TH1F* fSigVertHist[4*kMaxPtBins]; //! hist. for sigVert (Prod Cuts)
77 TH1F* fPtMaxHist[4*kMaxPtBins]; //! hist. for Pt Max (Prod Cuts)
78 TH1F* fPtCandHist[4*kMaxPtBins]; //! hist. for Pt Max (Prod Cuts)
79 TH1F* fDCAHist[4*kMaxPtBins]; //! hist. for DCA (Prod Cuts)
80 TH1F* fPtProng0Hist[4*kMaxPtBins]; //! hist. for Pt Max (Prod Cuts)
81 TH1F* fPtProng1Hist[4*kMaxPtBins]; //! hist. for DCA (Prod Cuts)
82 TH1F* fPtProng2Hist[4*kMaxPtBins]; //! hist. for DCA (Prod Cuts)
83 TH2F* fDalitz[4*kMaxPtBins]; //! dalitz plot (sig,bkg,tot)
86ede1c0 84 TH2F* fDalitzPhi[4*kMaxPtBins]; //! dalitz plot via phi (sig,bkg,tot)
85 TH2F* fDalitzK0st[4*kMaxPtBins]; //! dalitz plot via K0* (sig,bkg,tot)
3787d195 86 TH2F *fPtVsMass; //! hist. of pt vs. mass (prod. cuts)
811a34ce 87 TH2F *fPtVsMassPhi; //! hist. of pt vs. mass (phi selection)
88 TH2F *fPtVsMassK0st; //! hist. of pt vs. mass (K0* selection)
3787d195 89 TH2F *fYVsPt; //! hist. of Y vs. Pt (prod. cuts)
3787d195 90 TH2F *fYVsPtSig; //! hist. of Y vs. Pt (MC, only sig, prod. cuts)
010f88b8 91 TH1F *fHistCentrality[3];//!hist. for cent distr (all,sel ev, )
92 TH2F *fHistCentralityMult[3];//!hist. for cent distr vs mult (all,sel ev, )
2e153422 93 TNtuple *fNtupleDs; //! output ntuple
94 Int_t fFillNtuple; // 0 not to fill ntuple
95 // 1 for filling ntuple for events through Phi
96 // 2 for filling ntuple for events through K0Star
97 // 3 for filling all
98
99
25c94fc8 100 Bool_t fReadMC; // flag for access to MC
96b8e7bb 101 Bool_t fWriteOnlySignal; // flag to control ntuple writing in MC
9dbb1d69 102 Bool_t fDoCutVarHistos; // flag to create and fill histos with distributions of cut variables
103 Bool_t fUseSelectionBit; // flag for useage of HasSelectionBit
25c94fc8 104 UChar_t fNPtBins; // number of Pt bins
4c230f6d 105 TList *fListCuts; //list of cuts
106 Float_t fPtLimits[kMaxPtBins+1]; // limits for pt bins
25c94fc8 107 Double_t fMassRange; // range for mass histogram
a0bb2d06 108 Double_t fMassBinSize; // bin size for inv. mass histo
109
f93cbbb4 110 AliNormalizationCounter *fCounter;//!Counter for normalization
a0bb2d06 111 AliRDHFCutsDstoKKpi *fAnalysisCuts; // Cuts for Analysis
25c94fc8 112
addffa76 113 ClassDef(AliAnalysisTaskSEDs,14); // AliAnalysisTaskSE for Ds mass spectra
25c94fc8 114};
115
116#endif
117
f93cbbb4 118