X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=PWG3%2Fhfe%2FAliHFEmcQA.h;h=19de7001b112b5513c272c3837bc5a36dd38a091;hb=2691ce9cc4770afad101bec5dcff0317b931c46d;hp=dd7222411976044af3c79dbe51c33d30da7515be;hpb=722347d80113ef3c41662bf523a3ae02cee3433b;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG3/hfe/AliHFEmcQA.h b/PWG3/hfe/AliHFEmcQA.h index dd722241197..19de7001b11 100644 --- a/PWG3/hfe/AliHFEmcQA.h +++ b/PWG3/hfe/AliHFEmcQA.h @@ -12,18 +12,16 @@ * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ -/************************************************************************** - * * - * QA class of Heavy Flavor quark and fragmeted/decayed particles * - * -Check kinematics of Heavy Quarks/hadrons, and decayed leptons * - * pT, rapidity * - * decay lepton kinematics w/wo acceptance * - * heavy hadron decay length, electron pT fraction carried from decay * - * -Check yield of Heavy Quarks/hadrons * - * Number of produced heavy quark * - * Number of produced hadron of given pdg code * - * * - **************************************************************************/ +// +// QA class of Heavy Flavor quark and fragmeted/decayed particles +// -Check kinematics of Heavy Quarks/hadrons, and decayed leptons +// pT, rapidity +// decay lepton kinematics w/wo acceptance +// heavy hadron decay length, electron pT fraction carried from decay +// -Check yield of Heavy Quarks/hadrons +// Number of produced heavy quark +// Number of produced hadron of given pdg code +// #ifndef ALIHFEMCQA_H #define ALIHFEMCQA_H @@ -37,6 +35,7 @@ class TH2F; class TParticle; class TString; class AliStack; +class AliAODMCParticle; //________________________________________________________________ class AliHFEmcQA: public TObject { @@ -44,21 +43,31 @@ class AliHFEmcQA: public TObject { public: enum heavyType {kCharm=4, kBeauty=5, kElectronPDG=11}; enum qType {kQuark, kantiQuark, kHadron, keHadron, kDeHadron, kElectron, kElectron2nd}; + enum SourceType {kDirectCharm=1, kDirectBeauty=2, kBeautyCharm=3, kGamma=4, kPi0=5, kElse=6}; + enum ProcessType + { + kPairCreationFromq, kPairCreationFromg, kFlavourExitation, kGluonSplitting, kInitialPartonShower, kLightQuarkShower + }; + AliHFEmcQA(); AliHFEmcQA(const AliHFEmcQA &p); // copy constructor AliHFEmcQA &operator=(const AliHFEmcQA &); // assignment operator virtual ~AliHFEmcQA(); - void PostAnalyze(); + void PostAnalyze() const; void CreateHistograms(const Int_t kquark, Int_t icut, TString hnopt=""); // create histograms for mc qa analysis void SetStack(AliStack* const stack){fStack=stack;} // set stack pointer + void SetMCArray(TClonesArray* const mcarry){fMCArray=mcarry;} // set mcarray pointer void Init(); 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 EndOfEventAna(const Int_t kquark); // run analysis which should be done at the end of the event loop + Int_t GetElectronSource(TParticle* mcpart); // return electron source id + Int_t GetElectronSource(AliAODMCParticle *mcpart); // return electron source id for AOD protected: void IdentifyMother(Int_t motherlabel, Int_t &motherpdg, Int_t &grandmotherlabel); // @@ -66,21 +75,17 @@ class AliHFEmcQA: public TObject { void ReportStrangeness(Int_t &motherID, Int_t &mothertype, Int_t &motherlabel); // report if the quark production process is unknown Bool_t IsFromInitialShower(Int_t inputmotherlabel, Int_t &motherID, Int_t &mothertype, Int_t &motherlabel); // check if the quark is produced from initial parton shower Bool_t IsFromFinalParton(Int_t inputmotherlabel, Int_t &motherID, Int_t &mothertype, Int_t &motherlabel); // check if the quark is produced from final parton shower - Float_t GetRapidity(TParticle *part); // return rapidity + Float_t GetRapidity(TParticle *part) const; // return rapidity + Float_t GetRapidity(AliAODMCParticle *part) const; // return rapidity AliStack* fStack; // stack pointer + TClonesArray *fMCArray; // mc array pointer static const Int_t fgkGluon; // gluon pdg code static const Int_t fgkMaxGener; // ancester level wanted to be checked static const Int_t fgkMaxIter; // number of iteration to find out matching particle static const Int_t fgkqType; // number of particle type to be checked - - enum ProcessType - { - kPairCreationFromq, kPairCreationFromg, kFlavourExitation, kGluonSplitting, kInitialPartonShower, kLightQuarkShower - }; - struct AliHists{ TH1F *fPdgCode; // histogram to store particle pdg code TH1F *fPt; // histogram to store pt