class TH1F;
class TH2F;
+class TF1;
class AliAODDEvent;
class AliAODMCHeader;
class AliAODRecoDecayHF2Prong;
class AliAnalysisVertexingHF;
class AliRDHFCutsD0toKpi;
class AliNormalizationCounter;
+class AliVertexingHFUtils;
#include "AliAnalysisTaskSE.h"
}
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(Double_t pt,Double_t invMassCut);
- Int_t SetStandardCuts(Float_t *&ptbinlimits);
+ 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);
+ 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;}
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();
/* ######### THE FOLLOWING IS FOR FURTHER IMPLEMENATION ############
Int_t GetPtBin(Double_t pt)const;
void SetD0Cuts(Int_t ptbin,Double_t &*d0cutsLoose,Double_t &*d0cutsTight);
// Int_t SetCuts(AliAnalysisTaskSECharmFraction *alchfr,Double_t pt,Double_t invMassCut);
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);
+ 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; // Loose cuts object
AliRDHFCutsD0toKpi *fCutsTight; // Vertexer heavy flavour
Int_t fFastAnalysis; // Level of analysis speed: default is 1, switch it to 2 to fill the THnSparse
Bool_t fReadMC; // Flag To switch on/off access to MC
+ Bool_t fcheckD0Bit; // Flag to check the D0 bit flag
Bool_t fsplitMassD0D0bar; // Flag to use two shistos for D0 and D0bar invariant masses
Bool_t fLikeSign; // Flag to analyse Like Sign array
Bool_t fusePID; // Flag to use PID
TList *flistTghCutsFromB; //!TList for D from B or D from Dstar from Bwith tight cuts, container 18
TList *flistTghCutsFromDstar; //!TList for D from Dstar Dstar with tight cuts, container 19
TList *flistTghCutsOther; //!TList for others with tight cuts, container 20
+ AliVertexingHFUtils *fVertUtil; // vertexing HF Util
+ Bool_t fselectForUpgrade; // switch to reject candidates from HIJING and not Pythia for upgrade studies
+ Bool_t fskipEventSelection; // switch to skip event selection (for upgrade studies)
+ Double_t fZvtxUpgr; // cut value on max zvtx used ONLY if fskipEventSelection is kTRUE
+ TF1 *fWeightPt; // function with pt weights used only for MC histos for reflections and signal mass shape
/* Bool_t fD0usecuts; // Switch on the use of the cuts TO BE IMPLEMENTED
Bool_t fcheckMC; // Switch on MC check: minimum check is same mother TO BE IMPLEMENTED
Bool_t fcheckMCD0; // check the mother is a D0 TO BE IMPLEMENTED
Bool_t fStudyd0fromBTrue; // Flag for analyze true impact par of D0 from B TO BE IMPLEMENTED
Bool_t fStudyPureBackground; // Flag to study the background (reverse the selection on the signal) TO BE IMPLEMENTED
Double_t fSideBands; //Side bands selection (see cxx) TO BE IMPLEMENTED
- */
+ */
AliAnalysisTaskSECharmFraction(const AliAnalysisTaskSECharmFraction&); // not implemented
AliAnalysisTaskSECharmFraction& operator=(const AliAnalysisTaskSECharmFraction&); // not implemented
- ClassDef(AliAnalysisTaskSECharmFraction,3); // analysis task for prompt charm fraction
+ ClassDef(AliAnalysisTaskSECharmFraction,5); // analysis task for prompt charm fraction
};
#endif