]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSEDs.h
Techical fix to avoid silent exception when the EMCAL raw data are empty (Yves)
[u/mrichter/AliRoot.git] / PWG3 / 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
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"
4c230f6d 23#include "AliRDHFCutsDstoKKpi.h"
25c94fc8 24
25class AliAnalysisTaskSEDs : public AliAnalysisTaskSE
26{
27 public:
28
29 AliAnalysisTaskSEDs();
4c230f6d 30 AliAnalysisTaskSEDs(const char *name, AliRDHFCutsDstoKKpi* productioncuts, AliRDHFCutsDstoKKpi* analysiscuts);
25c94fc8 31 virtual ~AliAnalysisTaskSEDs();
32 void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
33 void SetMassRange(Double_t rang=0.2){fMassRange=rang;}
a0bb2d06 34 void SetInvMassBinSize(Double_t binsiz=0.002){fMassBinSize=binsiz;}
4c230f6d 35 void SetPtBins(Int_t n, Float_t* lim);
36 void SetProductionCuts(AliRDHFCutsDstoKKpi* cuts){fProdCuts=cuts;}
37 void SetAnalysisCuts(AliRDHFCutsDstoKKpi* cuts){fAnalysisCuts=cuts;}
25c94fc8 38 // Implementation of interface methods
39 virtual void UserCreateOutputObjects();
40 virtual void Init();
41 virtual void LocalInit() {Init();}
42 virtual void UserExec(Option_t *option);
43 virtual void Terminate(Option_t *option);
44
45 private:
c2a0a9d5 46 Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*4;}
47 Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+1;}
48 Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*4+2;}
49 Int_t GetReflSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+3;}
25c94fc8 50
51 enum {kMaxPtBins=10};
52
53 AliAnalysisTaskSEDs(const AliAnalysisTaskSEDs &source);
54 AliAnalysisTaskSEDs& operator=(const AliAnalysisTaskSEDs& source);
55
56 TList* fOutput; //! list send on output slot 0
57 TH1F* fHistNEvents; //! hist. for No. of events
c2a0a9d5 58 TH1F* fChanHist[4]; //! hist. with KKpi and piKK candidates (sig,bkg,tot)
59 TH1F* fChanHistCuts[4]; //! hist. with KKpi and piKK candidates analysis cuts
60 TH1F* fMassHist[4*kMaxPtBins]; //! hist. of mass spectra (sig,bkg,tot)
61 TH1F* fMassHistCuts[4*kMaxPtBins];//! hist. of mass spectra (sig,bkg,tot) analysis cuts
86ede1c0 62 TH1F* fMassHistPhi[3*kMaxPtBins]; //! hist. of mass spectra via phi (sig,bkg,tot)
63 TH1F* fMassHistCutsPhi[3*kMaxPtBins];//! hist. of mass spectra via phi (sig,bkg,tot) analysis cuts
64 TH1F* fMassHistK0st[3*kMaxPtBins]; //! hist. of mass spectra via K0* (sig,bkg,tot)
65 TH1F* fMassHistCutsK0st[3*kMaxPtBins];//! hist. of mass spectra via K0* (sig,bkg,tot) analysis cuts
c2a0a9d5 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)
86ede1c0 77 TH2F* fDalitzPhi[4*kMaxPtBins]; //! dalitz plot via phi (sig,bkg,tot)
78 TH2F* fDalitzK0st[4*kMaxPtBins]; //! dalitz plot via K0* (sig,bkg,tot)
3787d195 79 TH2F *fPtVsMass; //! hist. of pt vs. mass (prod. cuts)
80 TH2F *fPtVsMassAC; //! hist. of pt vs. mass (analysis cuts)
81 TH2F *fYVsPt; //! hist. of Y vs. Pt (prod. cuts)
82 TH2F *fYVsPtAC; //! hist. of Y vs. Pt (analysis cuts)
83 TH2F *fYVsPtSig; //! hist. of Y vs. Pt (MC, only sig, prod. cuts)
84 TH2F *fYVsPtSigAC; //! hist. of Y vs. Pt (MC, only sig, analysis cuts)
85
25c94fc8 86 Bool_t fReadMC; // flag for access to MC
87 UChar_t fNPtBins; // number of Pt bins
4c230f6d 88 TList *fListCuts; //list of cuts
89 Float_t fPtLimits[kMaxPtBins+1]; // limits for pt bins
25c94fc8 90 Double_t fMassRange; // range for mass histogram
a0bb2d06 91 Double_t fMassBinSize; // bin size for inv. mass histo
92
93 AliRDHFCutsDstoKKpi *fProdCuts; // Cuts for Analysis
94 AliRDHFCutsDstoKKpi *fAnalysisCuts; // Cuts for Analysis
25c94fc8 95
3787d195 96 ClassDef(AliAnalysisTaskSEDs,6); // AliAnalysisTaskSE for Ds mass spectra
25c94fc8 97};
98
99#endif
100