#ifndef ALIANALYSISTASKSESIGNIFICANCE_H
#define ALIANALYSISTASKSESIGNIFICANCE_H
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisVertexingHF.h"
class TH1F;
class AliMultiDimVector;
class AliRDHFCuts;
class AliAnalysisTaskSESignificance : public AliAnalysisTaskSE
{
public:
enum FeedDownEnum {kBoth,kCharmOnly,kBeautyOnly};
enum ChanDs {kAllReson,kPhi,kK0star};
AliAnalysisTaskSESignificance();
AliAnalysisTaskSESignificance(const char *name, TList *listMDV,AliRDHFCuts *RDCuts, Int_t decaychannel,Int_t selectionlevel=AliRDHFCuts::kAll);
virtual ~AliAnalysisTaskSESignificance();
Bool_t CheckConsistency();
void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
void SetBFeedDown(FeedDownEnum flagB);
void SetDFromCharmOnly(){SetBFeedDown(kCharmOnly);}
void SetDFromBeautyOnly(){SetBFeedDown(kBeautyOnly);}
void SetMassLimits(Float_t range,Int_t pdg);
void SetMassLimits(Float_t lowlimit, Float_t uplimit);
void SetNBins(Int_t nbins){fNBins=nbins;}
void SetFillWithPartAntiPartBoth(Int_t value){fPartOrAndAntiPart=value;}
void SetDsChannel(Int_t chan){fDsChannel=chan;}
void SetUseSelBit(Bool_t selBit=kTRUE){fUseSelBit=selBit;}
Float_t GetUpperMassLimit()const {return fUpmasslimit;}
Float_t GetLowerMassLimit()const {return fLowmasslimit;}
Int_t GetNBins()const {return fNBins;}
Int_t GetFillWithPartAntiPartBoth()const {return fPartOrAndAntiPart;}
Int_t GetBFeedDown()const {return fBFeedDown;}
Int_t GetDsChannel()const {return fDsChannel;}
Bool_t GetUseSelBit()const {return fUseSelBit;}
virtual void UserCreateOutputObjects();
virtual void LocalInit();
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
private:
void SetPDGdaughterDstoKKpi(){
fPDGdaughters[0]=321;
fPDGdaughters[1]=321;
fPDGdaughters[2]=211;
fPDGdaughters[3]=0;
}
void SetPDGdaughterDstopiKK(){
fPDGdaughters[0]=211;
fPDGdaughters[1]=321;
fPDGdaughters[2]=321;
fPDGdaughters[3]=0;
}
AliAnalysisTaskSESignificance(const AliAnalysisTaskSESignificance &source);
AliAnalysisTaskSESignificance& operator=(const AliAnalysisTaskSESignificance& source);
void SetPDGCodes();
Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*3;}
Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*3+1;}
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*3+2;}
Int_t GetLSHistoIndex(Int_t iPtBin)const { return iPtBin*5;}
Int_t CheckOrigin(const AliAODMCParticle* mcPart, const TClonesArray* mcArray) const;
void FillDplus(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Int_t isSel);
void FillD02p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index, Int_t isSel);
void FillDs(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Int_t isSel,Int_t optDecay);
void FillDstar(AliAODRecoCascadeHF* dstarD0pi,TClonesArray *arrayMC,Int_t index,Int_t isSel);
void FillD04p(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index,Int_t isSel);
void FillLambdac(AliAODRecoDecayHF* d,TClonesArray *arrayMC,Int_t index, Int_t isSel);
enum {kMaxPtBins=8};
enum {kMaxCutVar=10};
enum {kMaxSteps=10};
enum {kMaxNHist=500000};
enum {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi};
TList *fOutput;
TList *fCutList;
TH1F *fMassHist[kMaxNHist];
TH1F *fSigHist[kMaxNHist];
TH1F *fBkgHist[kMaxNHist];
TH1F *fRflHist[kMaxNHist];
TH1F* fHistNEvents;
Float_t fUpmasslimit;
Float_t fLowmasslimit;
AliRDHFCuts *fRDCuts;
Int_t fNPtBins;
Bool_t fReadMC;
Bool_t fUseSelBit;
FeedDownEnum fBFeedDown;
Int_t fDecChannel;
Int_t fPDGmother;
Int_t fNProngs;
Int_t fPDGdaughters[4];
TString fBranchName;
Int_t fSelectionlevel;
Int_t fNVars;
Float_t fVars[kMaxCutVar];
Int_t fNBins;
Int_t fPartOrAndAntiPart;
Int_t fDsChannel;
Int_t fPDGDStarToD0pi[2];
Int_t fPDGD0ToKpi[2];
ClassDef(AliAnalysisTaskSESignificance,5);
};
#endif
AliAnalysisTaskSESignificance.h:1 AliAnalysisTaskSESignificance.h:2 AliAnalysisTaskSESignificance.h:3 AliAnalysisTaskSESignificance.h:4 AliAnalysisTaskSESignificance.h:5 AliAnalysisTaskSESignificance.h:6 AliAnalysisTaskSESignificance.h:7 AliAnalysisTaskSESignificance.h:8 AliAnalysisTaskSESignificance.h:9 AliAnalysisTaskSESignificance.h:10 AliAnalysisTaskSESignificance.h:11 AliAnalysisTaskSESignificance.h:12 AliAnalysisTaskSESignificance.h:13 AliAnalysisTaskSESignificance.h:14 AliAnalysisTaskSESignificance.h:15 AliAnalysisTaskSESignificance.h:16 AliAnalysisTaskSESignificance.h:17 AliAnalysisTaskSESignificance.h:18 AliAnalysisTaskSESignificance.h:19 AliAnalysisTaskSESignificance.h:20 AliAnalysisTaskSESignificance.h:21 AliAnalysisTaskSESignificance.h:22 AliAnalysisTaskSESignificance.h:23 AliAnalysisTaskSESignificance.h:24 AliAnalysisTaskSESignificance.h:25 AliAnalysisTaskSESignificance.h:26 AliAnalysisTaskSESignificance.h:27 AliAnalysisTaskSESignificance.h:28 AliAnalysisTaskSESignificance.h:29 AliAnalysisTaskSESignificance.h:30 AliAnalysisTaskSESignificance.h:31 AliAnalysisTaskSESignificance.h:32 AliAnalysisTaskSESignificance.h:33 AliAnalysisTaskSESignificance.h:34 AliAnalysisTaskSESignificance.h:35 AliAnalysisTaskSESignificance.h:36 AliAnalysisTaskSESignificance.h:37 AliAnalysisTaskSESignificance.h:38 AliAnalysisTaskSESignificance.h:39 AliAnalysisTaskSESignificance.h:40 AliAnalysisTaskSESignificance.h:41 AliAnalysisTaskSESignificance.h:42 AliAnalysisTaskSESignificance.h:43 AliAnalysisTaskSESignificance.h:44 AliAnalysisTaskSESignificance.h:45 AliAnalysisTaskSESignificance.h:46 AliAnalysisTaskSESignificance.h:47 AliAnalysisTaskSESignificance.h:48 AliAnalysisTaskSESignificance.h:49 AliAnalysisTaskSESignificance.h:50 AliAnalysisTaskSESignificance.h:51 AliAnalysisTaskSESignificance.h:52 AliAnalysisTaskSESignificance.h:53 AliAnalysisTaskSESignificance.h:54 AliAnalysisTaskSESignificance.h:55 AliAnalysisTaskSESignificance.h:56 AliAnalysisTaskSESignificance.h:57 AliAnalysisTaskSESignificance.h:58 AliAnalysisTaskSESignificance.h:59 AliAnalysisTaskSESignificance.h:60 AliAnalysisTaskSESignificance.h:61 AliAnalysisTaskSESignificance.h:62 AliAnalysisTaskSESignificance.h:63 AliAnalysisTaskSESignificance.h:64 AliAnalysisTaskSESignificance.h:65 AliAnalysisTaskSESignificance.h:66 AliAnalysisTaskSESignificance.h:67 AliAnalysisTaskSESignificance.h:68 AliAnalysisTaskSESignificance.h:69 AliAnalysisTaskSESignificance.h:70 AliAnalysisTaskSESignificance.h:71 AliAnalysisTaskSESignificance.h:72 AliAnalysisTaskSESignificance.h:73 AliAnalysisTaskSESignificance.h:74 AliAnalysisTaskSESignificance.h:75 AliAnalysisTaskSESignificance.h:76 AliAnalysisTaskSESignificance.h:77 AliAnalysisTaskSESignificance.h:78 AliAnalysisTaskSESignificance.h:79 AliAnalysisTaskSESignificance.h:80 AliAnalysisTaskSESignificance.h:81 AliAnalysisTaskSESignificance.h:82 AliAnalysisTaskSESignificance.h:83 AliAnalysisTaskSESignificance.h:84 AliAnalysisTaskSESignificance.h:85 AliAnalysisTaskSESignificance.h:86 AliAnalysisTaskSESignificance.h:87 AliAnalysisTaskSESignificance.h:88 AliAnalysisTaskSESignificance.h:89 AliAnalysisTaskSESignificance.h:90 AliAnalysisTaskSESignificance.h:91 AliAnalysisTaskSESignificance.h:92 AliAnalysisTaskSESignificance.h:93 AliAnalysisTaskSESignificance.h:94 AliAnalysisTaskSESignificance.h:95 AliAnalysisTaskSESignificance.h:96 AliAnalysisTaskSESignificance.h:97 AliAnalysisTaskSESignificance.h:98 AliAnalysisTaskSESignificance.h:99 AliAnalysisTaskSESignificance.h:100 AliAnalysisTaskSESignificance.h:101 AliAnalysisTaskSESignificance.h:102 AliAnalysisTaskSESignificance.h:103 AliAnalysisTaskSESignificance.h:104 AliAnalysisTaskSESignificance.h:105 AliAnalysisTaskSESignificance.h:106 AliAnalysisTaskSESignificance.h:107 AliAnalysisTaskSESignificance.h:108 AliAnalysisTaskSESignificance.h:109 AliAnalysisTaskSESignificance.h:110 AliAnalysisTaskSESignificance.h:111 AliAnalysisTaskSESignificance.h:112 AliAnalysisTaskSESignificance.h:113 AliAnalysisTaskSESignificance.h:114 AliAnalysisTaskSESignificance.h:115 AliAnalysisTaskSESignificance.h:116 AliAnalysisTaskSESignificance.h:117 AliAnalysisTaskSESignificance.h:118 AliAnalysisTaskSESignificance.h:119 AliAnalysisTaskSESignificance.h:120 AliAnalysisTaskSESignificance.h:121 AliAnalysisTaskSESignificance.h:122 AliAnalysisTaskSESignificance.h:123 AliAnalysisTaskSESignificance.h:124 AliAnalysisTaskSESignificance.h:125 AliAnalysisTaskSESignificance.h:126 AliAnalysisTaskSESignificance.h:127 AliAnalysisTaskSESignificance.h:128 AliAnalysisTaskSESignificance.h:129 AliAnalysisTaskSESignificance.h:130 AliAnalysisTaskSESignificance.h:131 AliAnalysisTaskSESignificance.h:132 AliAnalysisTaskSESignificance.h:133