]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSESignificance.h
Skip tracks without ITS
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSESignificance.h
CommitLineData
cbedddce 1#ifndef ALIANALYSISTASKSESIGNIFICANCE_H
2#define ALIANALYSISTASKSESIGNIFICANCE_H
3
4/* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//*************************************************************************
8// AliAnalysisTaskSESignificane to calculate effects on
9// significance of D mesons cut
10// Authors: G. Ortona, ortona@to.infn.it
11// F. Prino, prino@to.infn.it
12// Renu Bala, bala@to.infn.it
13// Chiara Bianchin, cbianchi@pd.infn.it
14//*************************************************************************
15
16#include "AliAnalysisTaskSE.h"
17#include "AliAnalysisVertexingHF.h"
18
19class TH1F;
20class AliMultiDimVector;
21class AliRDHFCuts;
22
23class AliAnalysisTaskSESignificance : public AliAnalysisTaskSE
24{
25 public:
26
33c5731e 27 enum FeedDownEnum {kBoth,kCharmOnly,kBeautyOnly};
28
cbedddce 29 AliAnalysisTaskSESignificance();
30 AliAnalysisTaskSESignificance(const char *name, TList *listMDV,AliRDHFCuts *RDCuts, Int_t decaychannel,Int_t selectionlevel=AliRDHFCuts::kAll);
31
32 virtual ~AliAnalysisTaskSESignificance();
33
3aa6ce53 34 Bool_t CheckConsistency();
cbedddce 35 void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
33c5731e 36 void SetBFeedDown(FeedDownEnum flagB);//see enum
37 void SetDFromCharmOnly(){SetBFeedDown(kCharmOnly);}
38 void SetDFromBeautyOnly(){SetBFeedDown(kBeautyOnly);}
cbedddce 39 void SetMassLimits(Float_t range,Int_t pdg);
40 void SetMassLimits(Float_t lowlimit, Float_t uplimit);
f80a6da9 41 void SetNBins(Int_t nbins){fNBins=nbins;}
42 void SetFillWithPartAntiPartBoth(Int_t value){fPartOrAndAntiPart=value;}
cbedddce 43 //void SetMultiVector(const AliMultiDimVector *MultiDimVec){fMultiDimVec->CopyStructure(MultiDimVec);}
f80a6da9 44 Float_t GetUpperMassLimit()const {return fUpmasslimit;}
45 Float_t GetLowerMassLimit()const {return fLowmasslimit;}
46 Int_t GetNBins()const {return fNBins;}
47 Int_t GetFillWithPartAntiPartBoth()const {return fPartOrAndAntiPart;}
33c5731e 48 Int_t GetBFeedDown()const {return fBFeedDown;}
f80a6da9 49
cbedddce 50 // Implementation of interface methods
51 virtual void UserCreateOutputObjects();
52 virtual void LocalInit();// {Init();}
53 virtual void UserExec(Option_t *option);
54 virtual void Terminate(Option_t *option);
55
56 private:
57
58 AliAnalysisTaskSESignificance(const AliAnalysisTaskSESignificance &source);
59 AliAnalysisTaskSESignificance& operator=(const AliAnalysisTaskSESignificance& source);
60 Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*3;}
61 Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;}
62 Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;}
63 Int_t GetLSHistoIndex(Int_t iPtBin)const { return iPtBin*5;}
f80a6da9 64
65 void CalculateInvMasses(AliAODRecoDecayHF* d,Double_t* &masses,Int_t& nmasses);
66
67 void FillDplus(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses,Int_t isSel);
68 void FillD02p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses, Int_t isSel);
69 void FillDs(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses,Int_t isSel);
70 void FillDstar(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses,Int_t isSel);
71 void FillD04p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses,Int_t isSel);
72 void FillLambdac(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Double_t* masses,Int_t isSel);
73
74
cbedddce 75 enum {kMaxPtBins=5};
76 enum {kMaxCutVar=5};
77 enum {kMaxSteps=10};
78 enum {kMaxNHist=500000};
5ecc6e9b 79 enum {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi};
cbedddce 80
81 TList *fOutput; //! list send on output slot 0
82 TList *fCutList; //Multidimvector container
83 TH1F *fMassHist[kMaxNHist]; //!hist. for inv mass
84 TH1F *fSigHist[kMaxNHist]; //!hist. for inv mass (sig from MC truth)
85 TH1F *fBkgHist[kMaxNHist]; //!hist. for inv mass (bkg from MC truth)
86 TH1F *fRflHist[kMaxNHist]; //!hist. for inv mass (bkg from MC truth)
87 TH1F* fHistNEvents; //! hist of n of aods
88 Float_t fUpmasslimit; //upper inv mass limit for histos
89 Float_t fLowmasslimit; //lower inv mass limit for histos
90 AliRDHFCuts *fRDCuts;//prong cut values
91 Int_t fNPtBins; //number of pt bins
92 Bool_t fReadMC; //flag for access to MC
33c5731e 93 FeedDownEnum fBFeedDown; //flag to search for D from B decays
cbedddce 94 Int_t fDecChannel; //decay channel identifier
95 Int_t fSelectionlevel;//selection level: kALL,kTracks,kCandidate
f80a6da9 96 Int_t fNBins; //number of bins in the mass histograms
97 Int_t fPartOrAndAntiPart; //fill histograms with particle only (+1), antiparticle only (-1), both (0)
98
99 ClassDef(AliAnalysisTaskSESignificance,2); // AliAnalysisTaskSE for the MC association of heavy-flavour decay candidates
cbedddce 100};
101
102#endif
103
104