#ifndef ALIANALYSISTASKSECHARMFRACTION_H
#define ALIANALYSISTASKSECHARMFRACTION_H
class TH1F;
class TH2F;
class TF1;
class AliAODDEvent;
class AliAODMCHeader;
class AliAODRecoDecayHF2Prong;
class AliAODRecoDecayHF;
class AliAODMCParticle;
class AliAnalysisVertexingHF;
class AliRDHFCutsD0toKpi;
class AliNormalizationCounter;
class AliVertexingHFUtils;
#include "AliAnalysisTaskSE.h"
class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
public:
AliAnalysisTaskSECharmFraction();
AliAnalysisTaskSECharmFraction(const char *name);
AliAnalysisTaskSECharmFraction(const char *name,AliRDHFCutsD0toKpi *cutsA,AliRDHFCutsD0toKpi *cutsB);
virtual ~AliAnalysisTaskSECharmFraction();
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
void SetSplitMassD0D0bar(Bool_t splitD0D0bar=kTRUE){fsplitMassD0D0bar=splitD0D0bar;}
Bool_t GetIsSplitMassD0D0bar(){return fsplitMassD0D0bar;}
void SetUsePID(Bool_t pid){fusePID=pid;}
void SetAnalyzeLikeSign(Bool_t likesign=kFALSE){fLikeSign=likesign;}
void SetNMaxTrForVtx(const Int_t ntrMaxforVtx){fNtrMaxforVtx=ntrMaxforVtx;}
Int_t GetNMaxTrForVtx(){return fNtrMaxforVtx;}
void SetPtBins(Int_t nbins,const Float_t *ptbins);
void SetSignalInvMassCut(const Double_t signalInvMassCut=0.027){fsignalInvMassCut=signalInvMassCut;}
void SetLargeInvMassCut(const Double_t largeInvMassCut=2.){flargeInvMassCut=largeInvMassCut;}
void SetSideBandInvMassCut(const Double_t sidebandInvMassCut=0.054){
fsidebandInvMassCut=sidebandInvMassCut;
}
void SetSideBandInvMassWindow(const Double_t sidebandInvMassWindow=0.108){
fsidebandInvMassWindow=sidebandInvMassWindow;
}
void SetAcceptanceCut(const Double_t eta=0.8,const Double_t nITSpoints=5.,const Double_t nSPDpoints=2.){fAcceptanceCuts[0]=eta;fAcceptanceCuts[1]=nITSpoints;fAcceptanceCuts[2]=nSPDpoints;}
void SetStandardMassSelection();
Int_t SetStandardCuts();
void CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar);
void SetAnalysisLevel(Int_t level){fFastAnalysis=level;}
void SetCheckBitD0flag(Bool_t checkfl){fcheckD0Bit=checkfl;}
Bool_t GetCheckBitD0flag(){return fcheckD0Bit;}
Int_t GetAnalysisLevel(){return fFastAnalysis;}
Int_t CheckOrigin(const TClonesArray* arrayMC, const AliAODMCParticle *mcPartCandidate)const;
AliAODRecoDecayHF *GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx,Int_t &isD0D0bar);
AliAODRecoDecayHF *GetD0toKPiSignalTypeObsolete(const AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx);
AliAODRecoDecayHF* ConstructFakeTrueSecVtx(const AliAODMCParticle *b1,const AliAODMCParticle *b2,const AliAODMCParticle *mum,Double_t *primaryVtxTrue);
void SetUseMC(Bool_t useMC){fUseMC=useMC;}
Bool_t SpecialSelD0(AliAODRecoDecayHF2Prong *d,Int_t &nusedforVtx);
Bool_t FillAziList(AliAODEvent *aod,Double_t azilist[30000],Int_t trkIDlist[30000],Int_t &nprim)const;
void FillAziHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Double_t azilist[30000],Int_t trkIDlist[30000],Int_t nprim,Int_t okD0,Int_t okD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBandD0,Bool_t isSideBandD0bar)const;
AliAODVertex* GetPrimaryVtxSkipped(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *d);
void SetRejecCandidateMCUpgrade(Bool_t selection){fselectForUpgrade=selection;}
void SetSkipEventSelection(Bool_t skip){fskipEventSelection=skip;}
void SetMaxZvtxForSkipEventSelection(Double_t zmax){fZvtxUpgr=zmax;}
void SetPtWeightsFromDataPbPb276overLHC12a17a();
AliRDHFCutsD0toKpi* GetLooseCut(){
return fCutsLoose;
}
AliRDHFCutsD0toKpi* GetTightCut(){
return fCutsTight;
}
private:
Bool_t FillHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Int_t okD0,Int_t okD0bar,Double_t invMassD0,Double_t invMassD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBandD0,Bool_t isSideBandD0bar,Double_t massmumtrue,AliAODRecoDecayHF *aodDMC,Double_t *vtxTrue,Int_t isD0D0barMC);
void FillHistoMCproperties(TClonesArray *arrayMC);
AliRDHFCutsD0toKpi *fCutsLoose;
AliRDHFCutsD0toKpi *fCutsTight;
Int_t fFastAnalysis;
Bool_t fReadMC;
Bool_t fcheckD0Bit;
Bool_t fsplitMassD0D0bar;
Bool_t fLikeSign;
Bool_t fusePID;
Double_t fmD0PDG;
Int_t fnbins;
Float_t *fptbins;
Int_t fNtrMaxforVtx;
Double_t fptAll;
Double_t fptAllSq;
Double_t fptMax[3];
Double_t fAcceptanceCuts[3];
Double_t fsignalInvMassCut;
Double_t flargeInvMassCut;
Double_t fsidebandInvMassCut;
Double_t fsidebandInvMassWindow;
Bool_t fUseMC;
Bool_t fCleanCandOwnVtx;
TH1F *fNentries;
TH1F *fSignalType;
TH1F *fSignalTypeLsCuts;
TH1F *fSignalTypeTghCuts;
AliNormalizationCounter *fCounter;
TList *flistMCproperties;
TList *flistNoCutsSignal;
TList *flistNoCutsBack;
TList *flistNoCutsFromB;
TList *flistNoCutsFromDstar;
TList *flistNoCutsOther;
TList *flistLsCutsSignal;
TList *flistLsCutsBack;
TList *flistLsCutsFromB;
TList *flistLsCutsFromDstar;
TList *flistLsCutsOther;
TList *flistTghCutsSignal;
TList *flistTghCutsBack;
TList *flistTghCutsFromB;
TList *flistTghCutsFromDstar;
TList *flistTghCutsOther;
AliVertexingHFUtils *fVertUtil;
Bool_t fselectForUpgrade;
Bool_t fskipEventSelection;
Double_t fZvtxUpgr;
TF1 *fWeightPt;
AliAnalysisTaskSECharmFraction(const AliAnalysisTaskSECharmFraction&);
AliAnalysisTaskSECharmFraction& operator=(const AliAnalysisTaskSECharmFraction&);
ClassDef(AliAnalysisTaskSECharmFraction,5);
};
#endif
AliAnalysisTaskSECharmFraction.h:1 AliAnalysisTaskSECharmFraction.h:2 AliAnalysisTaskSECharmFraction.h:3 AliAnalysisTaskSECharmFraction.h:4 AliAnalysisTaskSECharmFraction.h:5 AliAnalysisTaskSECharmFraction.h:6 AliAnalysisTaskSECharmFraction.h:7 AliAnalysisTaskSECharmFraction.h:8 AliAnalysisTaskSECharmFraction.h:9 AliAnalysisTaskSECharmFraction.h:10 AliAnalysisTaskSECharmFraction.h:11 AliAnalysisTaskSECharmFraction.h:12 AliAnalysisTaskSECharmFraction.h:13 AliAnalysisTaskSECharmFraction.h:14 AliAnalysisTaskSECharmFraction.h:15 AliAnalysisTaskSECharmFraction.h:16 AliAnalysisTaskSECharmFraction.h:17 AliAnalysisTaskSECharmFraction.h:18 AliAnalysisTaskSECharmFraction.h:19 AliAnalysisTaskSECharmFraction.h:20 AliAnalysisTaskSECharmFraction.h:21 AliAnalysisTaskSECharmFraction.h:22 AliAnalysisTaskSECharmFraction.h:23 AliAnalysisTaskSECharmFraction.h:24 AliAnalysisTaskSECharmFraction.h:25 AliAnalysisTaskSECharmFraction.h:26 AliAnalysisTaskSECharmFraction.h:27 AliAnalysisTaskSECharmFraction.h:28 AliAnalysisTaskSECharmFraction.h:29 AliAnalysisTaskSECharmFraction.h:30 AliAnalysisTaskSECharmFraction.h:31 AliAnalysisTaskSECharmFraction.h:32 AliAnalysisTaskSECharmFraction.h:33 AliAnalysisTaskSECharmFraction.h:34 AliAnalysisTaskSECharmFraction.h:35 AliAnalysisTaskSECharmFraction.h:36 AliAnalysisTaskSECharmFraction.h:37 AliAnalysisTaskSECharmFraction.h:38 AliAnalysisTaskSECharmFraction.h:39 AliAnalysisTaskSECharmFraction.h:40 AliAnalysisTaskSECharmFraction.h:41 AliAnalysisTaskSECharmFraction.h:42 AliAnalysisTaskSECharmFraction.h:43 AliAnalysisTaskSECharmFraction.h:44 AliAnalysisTaskSECharmFraction.h:45 AliAnalysisTaskSECharmFraction.h:46 AliAnalysisTaskSECharmFraction.h:47 AliAnalysisTaskSECharmFraction.h:48 AliAnalysisTaskSECharmFraction.h:49 AliAnalysisTaskSECharmFraction.h:50 AliAnalysisTaskSECharmFraction.h:51 AliAnalysisTaskSECharmFraction.h:52 AliAnalysisTaskSECharmFraction.h:53 AliAnalysisTaskSECharmFraction.h:54 AliAnalysisTaskSECharmFraction.h:55 AliAnalysisTaskSECharmFraction.h:56 AliAnalysisTaskSECharmFraction.h:57 AliAnalysisTaskSECharmFraction.h:58 AliAnalysisTaskSECharmFraction.h:59 AliAnalysisTaskSECharmFraction.h:60 AliAnalysisTaskSECharmFraction.h:61 AliAnalysisTaskSECharmFraction.h:62 AliAnalysisTaskSECharmFraction.h:63 AliAnalysisTaskSECharmFraction.h:64 AliAnalysisTaskSECharmFraction.h:65 AliAnalysisTaskSECharmFraction.h:66 AliAnalysisTaskSECharmFraction.h:67 AliAnalysisTaskSECharmFraction.h:68 AliAnalysisTaskSECharmFraction.h:69 AliAnalysisTaskSECharmFraction.h:70 AliAnalysisTaskSECharmFraction.h:71 AliAnalysisTaskSECharmFraction.h:72 AliAnalysisTaskSECharmFraction.h:73 AliAnalysisTaskSECharmFraction.h:74 AliAnalysisTaskSECharmFraction.h:75 AliAnalysisTaskSECharmFraction.h:76 AliAnalysisTaskSECharmFraction.h:77 AliAnalysisTaskSECharmFraction.h:78 AliAnalysisTaskSECharmFraction.h:79 AliAnalysisTaskSECharmFraction.h:80 AliAnalysisTaskSECharmFraction.h:81 AliAnalysisTaskSECharmFraction.h:82 AliAnalysisTaskSECharmFraction.h:83 AliAnalysisTaskSECharmFraction.h:84 AliAnalysisTaskSECharmFraction.h:85 AliAnalysisTaskSECharmFraction.h:86 AliAnalysisTaskSECharmFraction.h:87 AliAnalysisTaskSECharmFraction.h:88 AliAnalysisTaskSECharmFraction.h:89 AliAnalysisTaskSECharmFraction.h:90 AliAnalysisTaskSECharmFraction.h:91 AliAnalysisTaskSECharmFraction.h:92 AliAnalysisTaskSECharmFraction.h:93 AliAnalysisTaskSECharmFraction.h:94 AliAnalysisTaskSECharmFraction.h:95 AliAnalysisTaskSECharmFraction.h:96 AliAnalysisTaskSECharmFraction.h:97 AliAnalysisTaskSECharmFraction.h:98 AliAnalysisTaskSECharmFraction.h:99 AliAnalysisTaskSECharmFraction.h:100 AliAnalysisTaskSECharmFraction.h:101 AliAnalysisTaskSECharmFraction.h:102 AliAnalysisTaskSECharmFraction.h:103 AliAnalysisTaskSECharmFraction.h:104 AliAnalysisTaskSECharmFraction.h:105 AliAnalysisTaskSECharmFraction.h:106 AliAnalysisTaskSECharmFraction.h:107 AliAnalysisTaskSECharmFraction.h:108 AliAnalysisTaskSECharmFraction.h:109 AliAnalysisTaskSECharmFraction.h:110 AliAnalysisTaskSECharmFraction.h:111 AliAnalysisTaskSECharmFraction.h:112 AliAnalysisTaskSECharmFraction.h:113 AliAnalysisTaskSECharmFraction.h:114 AliAnalysisTaskSECharmFraction.h:115 AliAnalysisTaskSECharmFraction.h:116 AliAnalysisTaskSECharmFraction.h:117 AliAnalysisTaskSECharmFraction.h:118 AliAnalysisTaskSECharmFraction.h:119 AliAnalysisTaskSECharmFraction.h:120 AliAnalysisTaskSECharmFraction.h:121 AliAnalysisTaskSECharmFraction.h:122 AliAnalysisTaskSECharmFraction.h:123 AliAnalysisTaskSECharmFraction.h:124 AliAnalysisTaskSECharmFraction.h:125 AliAnalysisTaskSECharmFraction.h:126 AliAnalysisTaskSECharmFraction.h:127 AliAnalysisTaskSECharmFraction.h:128 AliAnalysisTaskSECharmFraction.h:129 AliAnalysisTaskSECharmFraction.h:130 AliAnalysisTaskSECharmFraction.h:131 AliAnalysisTaskSECharmFraction.h:132 AliAnalysisTaskSECharmFraction.h:133 AliAnalysisTaskSECharmFraction.h:134 AliAnalysisTaskSECharmFraction.h:135 AliAnalysisTaskSECharmFraction.h:136 AliAnalysisTaskSECharmFraction.h:137 AliAnalysisTaskSECharmFraction.h:138 AliAnalysisTaskSECharmFraction.h:139 AliAnalysisTaskSECharmFraction.h:140 AliAnalysisTaskSECharmFraction.h:141 AliAnalysisTaskSECharmFraction.h:142 AliAnalysisTaskSECharmFraction.h:143 AliAnalysisTaskSECharmFraction.h:144 AliAnalysisTaskSECharmFraction.h:145 AliAnalysisTaskSECharmFraction.h:146 AliAnalysisTaskSECharmFraction.h:147 AliAnalysisTaskSECharmFraction.h:148 AliAnalysisTaskSECharmFraction.h:149 AliAnalysisTaskSECharmFraction.h:150 AliAnalysisTaskSECharmFraction.h:151 AliAnalysisTaskSECharmFraction.h:152 AliAnalysisTaskSECharmFraction.h:153 AliAnalysisTaskSECharmFraction.h:154 AliAnalysisTaskSECharmFraction.h:155 AliAnalysisTaskSECharmFraction.h:156 AliAnalysisTaskSECharmFraction.h:157 AliAnalysisTaskSECharmFraction.h:158 AliAnalysisTaskSECharmFraction.h:159 AliAnalysisTaskSECharmFraction.h:160 AliAnalysisTaskSECharmFraction.h:161 AliAnalysisTaskSECharmFraction.h:162 AliAnalysisTaskSECharmFraction.h:163 AliAnalysisTaskSECharmFraction.h:164 AliAnalysisTaskSECharmFraction.h:165 AliAnalysisTaskSECharmFraction.h:166 AliAnalysisTaskSECharmFraction.h:167 AliAnalysisTaskSECharmFraction.h:168 AliAnalysisTaskSECharmFraction.h:169 AliAnalysisTaskSECharmFraction.h:170 AliAnalysisTaskSECharmFraction.h:171 AliAnalysisTaskSECharmFraction.h:172 AliAnalysisTaskSECharmFraction.h:173 AliAnalysisTaskSECharmFraction.h:174 AliAnalysisTaskSECharmFraction.h:175 AliAnalysisTaskSECharmFraction.h:176 AliAnalysisTaskSECharmFraction.h:177 AliAnalysisTaskSECharmFraction.h:178 AliAnalysisTaskSECharmFraction.h:179 AliAnalysisTaskSECharmFraction.h:180 AliAnalysisTaskSECharmFraction.h:181