class TString;
class AliMCEvent;
class AliGenEventHeader;
+class AliMCParticle;
class AliAODMCParticle;
class AliHFEcollection;
enum ProcessType {
kPairCreationFromq, kPairCreationFromg, kFlavourExitation, kGluonSplitting, kInitialPartonShower, kLightQuarkShower
};
+ enum{
+ kBgPtBins = 44,
+ kElecBgSpecies = 6,
+ kCentBins = 11,
+ kBgLevels = 3
+ };
+
AliHFEmcQA();
AliHFEmcQA(const AliHFEmcQA &p); // copy constructor
void GetQuarkKine(TParticle *part, Int_t iTrack, const Int_t kquark); // get heavy quark kinematics distribution
void GetHadronKine(TParticle *part, const Int_t kquark); // get heavy hadron kinematics distribution
void GetDecayedKine(TParticle *part, const Int_t kquark, const Int_t kdecayed, Int_t icut); // get decay electron kinematics distribution
- void GetDecayedKine(AliAODMCParticle *mcpart, const Int_t kquark, Int_t kdecayed, Int_t icut); // get decay electron kinematics for AOD
+ void GetDecayedKine(AliAODMCParticle *mcpart, const Int_t kquark, Int_t kdecayed, Int_t icut); // get decay electron kinematics for AOD
void GetMesonKine(); // get meson and its decay electron pt spectra
void EndOfEventAna(const Int_t kquark); // run analysis which should be done at the end of the event loop
- Int_t GetSource(const TParticle * const mcpart); // return source id
- Int_t GetElecSource(TParticle * const mcpart); // return electron source id
- Int_t GetSource(const AliAODMCParticle * const mcpart); // return electron source id for AOD
+ Int_t GetSource(const TParticle * const mcpart); // return source id
+ Int_t GetElecSource(TParticle * const mcpart); // return electron source id
+ Int_t GetSource(const AliAODMCParticle * const mcpart); // return electron source id for AOD
+ Double_t GetWeightFactor(AliMCParticle *mctrack, const Int_t iBgLevel); // return best/lower/upper weighting factor for electron's mother meson
+
+ void SetBackgroundWeightFactor(Double_t *elecBackgroundFactor, Double_t *binLimit);
+
+ void SetCentrality(Int_t centrality) { fCentrality = centrality; };
+ void SetPbPb() { fIsPbPb = kTRUE; };
+ void SetPP() { fIsPbPb = kFALSE; };
+ void SetPPMultiBin() { fIsppMultiBin = kFALSE; };
+ Bool_t IsPbPb() const { return fIsPbPb; };
+ Bool_t IsPP() const { return !fIsPbPb; };
+ Bool_t IsPPMultiBin() const { return fIsppMultiBin; };
protected:
void IdentifyMother(Int_t motherlabel, Int_t &motherpdg, Int_t &grandmotherlabel); //
Int_t fNparents; // number of heavy hadrons to be considered
Int_t fParentSelect[2][7]; // heavy hadron species
+ Double_t fElecBackgroundFactor[kBgLevels][kCentBins][kElecBgSpecies][kBgPtBins]; // Electron background factors
+ Double_t fBinLimit[kBgPtBins+1]; // Electron background bins
+
+private:
+ Int_t fCentrality; // Centrality
+ Bool_t fIsPbPb; // Analysis Type: pp or PbPb
+ Bool_t fIsppMultiBin; // pp multiplicity bin analysis
+
ClassDef(AliHFEmcQA,1);
};