// using the charm hadron impact parameter to the primary vertex
//
//
-// Author: Andrea Rossi andrea.rossi@ts.infn.it
+// Author: Andrea Rossi andrea.rossi@pd.infn.it
//*************************************************************************
class TH1F;
class AliAODMCParticle;
class AliAnalysisVertexingHF;
class AliRDHFCutsD0toKpi;
+class AliNormalizationCounter;
+
#include "AliAnalysisTaskSE.h"
class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
Int_t SetStandardCuts(Double_t pt,Double_t invMassCut);
Int_t SetStandardCuts(Float_t *&ptbinlimits);
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;}
+ Int_t GetAnalysisLevel(){return fFastAnalysis;}
AliAODRecoDecayHF *GetD0toKPiSignalType(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);
/* ######### THE FOLLOWING IS FOR FURTHER IMPLEMENATION ############
// 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 isSideBand,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);
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 fsplitMassD0D0bar; // Flag to use two shistos for D0 and D0bar invariant masses
Bool_t fLikeSign; // Flag to analyse Like Sign array
Double_t fsidebandInvMassCut; // invariant mass cut to define side band region lower limit
Double_t fsidebandInvMassWindow; // invariant mass cut to define side band region width
Bool_t fUseMC; // flag to use or not MC info
+ Bool_t fCleanCandOwnVtx; // flag to switch on/off cleaning of the candidate own vtx
TH1F *fNentries; //!histo for #AOD analysed, container 1
TH1F *fSignalType; //!histo for the type of MC signal , container 2
TH1F *fSignalTypeLsCuts; //!histo for the type of MC signal with loose cuts , container 3
TH1F *fSignalTypeTghCuts; //!histo for the type of MC signal with tight cuts, container 4
+ AliNormalizationCounter *fCounter; //!counter for the normalization
TList *flistMCproperties; //!TLists for MC properties of D0 w.r.t. B mesons and c quarks cntainer 5
TList *flistNoCutsSignal; //!TList for signal (D prompt) with nocuts, container 6
TList *flistNoCutsBack; //!TList for background with nocuts, container 7
AliAnalysisTaskSECharmFraction(const AliAnalysisTaskSECharmFraction&); // not implemented
AliAnalysisTaskSECharmFraction& operator=(const AliAnalysisTaskSECharmFraction&); // not implemented
- ClassDef(AliAnalysisTaskSECharmFraction,1); // analysis task for prompt charm fraction
+ ClassDef(AliAnalysisTaskSECharmFraction,3); // analysis task for prompt charm fraction
};
#endif