]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliHFEmcQA.h
Update of the hfe package
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEmcQA.h
index 1a4e5fa33a057a0e175bde231a8c8dbfb169b184..23bcd5145bbaf1d653b229cb934b401656e9551c 100644 (file)
@@ -37,6 +37,7 @@ class TParticle;
 class TString;
 class AliMCEvent;
 class AliGenEventHeader;
+class AliMCParticle;
 class AliAODMCParticle;
 class AliHFEcollection;
 
@@ -50,6 +51,13 @@ class AliHFEmcQA: public TObject {
     enum ProcessType {
       kPairCreationFromq,  kPairCreationFromg,  kFlavourExitation,  kGluonSplitting, kInitialPartonShower, kLightQuarkShower
     };
+    enum{
+      kBgPtBins = 44,
+       kElecBgSpecies = 6,
+       kCentBins = 11,
+       kBgLevels = 3
+    };
+
 
     AliHFEmcQA();
     AliHFEmcQA(const AliHFEmcQA &p); // copy constructor
@@ -69,12 +77,23 @@ class AliHFEmcQA: public TObject {
     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); // 
@@ -181,6 +200,14 @@ class AliHFEmcQA: public TObject {
     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);
 };