]>
Commit | Line | Data |
---|---|---|
259c3296 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
259c3296 | 15 | /************************************************************************** |
16 | * * | |
17 | * QA class of Heavy Flavor quark and fragmeted/decayed particles * | |
dbe3abbe | 18 | * -Check kinematics of Heavy Quarks/hadrons, and decayed leptons * |
19 | * pT, rapidity * | |
20 | * decay lepton kinematics w/wo acceptance * | |
21 | * heavy hadron decay length, electron pT fraction carried from decay * | |
22 | * -Check yield of Heavy Quarks/hadrons * | |
23 | * Number of produced heavy quark * | |
24 | * Number of produced hadron of given pdg code * | |
259c3296 | 25 | * * |
26 | **************************************************************************/ | |
27 | ||
dbe3abbe | 28 | #ifndef ALIHFEMCQA_H |
29 | #define ALIHFEMCQA_H | |
259c3296 | 30 | |
31 | #ifndef ROOT_TObject | |
32 | #include <TObject.h> | |
33 | #endif | |
34 | ||
35 | class TH1F; | |
36 | class TH2F; | |
37 | class TParticle; | |
38 | class TString; | |
39 | class AliStack; | |
40 | ||
41 | //________________________________________________________________ | |
42 | class AliHFEmcQA: public TObject { | |
43 | ||
44 | public: | |
dbe3abbe | 45 | enum heavyType {kCharm=4, kBeauty=5, kElectronPDG=11}; |
46 | enum qType {kQuark, kantiQuark, kHadron, keHadron, kDeHadron, kElectron, kElectron2nd}; | |
259c3296 | 47 | AliHFEmcQA(); |
48 | AliHFEmcQA(const AliHFEmcQA &p); // copy constructor | |
49 | AliHFEmcQA &operator=(const AliHFEmcQA &); // assignment operator | |
50 | ||
51 | virtual ~AliHFEmcQA(); | |
52 | ||
dbe3abbe | 53 | const void PostAnalyze(); |
54 | void CreateHistograms(const Int_t kquark, Int_t icut, TString hnopt=""); // create histograms for mc qa analysis | |
55 | void SetStack(AliStack* const stack){fStack=stack;} // set stack pointer | |
259c3296 | 56 | void Init(); |
dbe3abbe | 57 | |
259c3296 | 58 | void GetQuarkKine(Int_t iTrack, const Int_t kquark); // get heavy quark kinematics distribution |
dbe3abbe | 59 | void GetHadronKine(Int_t iTrack, const Int_t kquark); // get heavy hadron kinematics distribution |
60 | void GetDecayedKine(Int_t iTrack, const Int_t kquark, const Int_t kdecayed, Int_t icut, Bool_t isbarrel=kFALSE); // get decay electron kinematics distribution | |
259c3296 | 61 | void EndOfEventAna(const Int_t kquark); // run analysis which should be done at the end of the event loop |
dbe3abbe | 62 | |
63 | protected: | |
259c3296 | 64 | void IdentifyMother(Int_t mother_label, Int_t &mother_pdg, Int_t &grandmother_label); // |
65 | void HardScattering(const Int_t kquark, Int_t &motherID, Int_t &mothertype, Int_t &motherlabel); // check if the quark is produced from hard scattering | |
dbe3abbe | 66 | void ReportStrangeness(Int_t &motherID, Int_t &mothertype, Int_t &motherlabel); // report if the quark production process is unknown |
259c3296 | 67 | 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 |
68 | 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 | |
dbe3abbe | 69 | const Float_t GetRapidity(TParticle *part); // return rapidity |
259c3296 | 70 | |
dbe3abbe | 71 | AliStack* fStack; // stack pointer |
259c3296 | 72 | |
dbe3abbe | 73 | static const Int_t fgkGluon; // gluon pdg code |
74 | static const Int_t fgkMaxGener; // ancester level wanted to be checked | |
75 | static const Int_t fgkMaxIter; // number of iteration to find out matching particle | |
76 | static const Int_t fgkqType; // number of particle type to be checked | |
259c3296 | 77 | |
78 | ||
79 | enum ProcessType_t | |
80 | { | |
dbe3abbe | 81 | kPairCreationFromq, kPairCreationFromg, kFlavourExitation, kGluonSplitting, kInitialPartonShower, kLightQuarkShower |
259c3296 | 82 | }; |
83 | ||
259c3296 | 84 | struct hists{ |
85 | TH1F *fPdgCode; // histogram to store particle pdg code | |
86 | TH1F *fPt; // histogram to store pt | |
87 | TH1F *fY; // histogram to store rapidity | |
88 | TH1F *fEta; // histogram to store eta | |
89 | }; | |
90 | struct histsComm { | |
91 | TH1F *fNq; // histogram to store number of quark | |
92 | TH1F *fProcessID; // histogram to store process id | |
dbe3abbe | 93 | TH2F *fePtRatio; // fraction of electron pT from D or B hadron |
94 | TH2F *fDePtRatio; // fraction of D electron pT from B hadron | |
95 | TH2F *feDistance; // distance between electron production point to mother particle | |
96 | TH2F *fDeDistance; // distance between D electron production point to mother particle | |
259c3296 | 97 | }; |
98 | ||
dbe3abbe | 99 | hists fHist[2][7][5]; // struct of histograms to store kinematics of given particles |
100 | histsComm fHistComm[2][5]; // struct of additional histograms of given particles | |
259c3296 | 101 | |
dbe3abbe | 102 | TParticle *fHeavyQuark[50]; // store pointer of heavy flavour quark |
103 | Int_t fIsHeavy[2]; // count of heavy flavour | |
104 | Int_t fNparents; // number of heavy hadrons to be considered | |
105 | Int_t fParentSelect[2][7]; // heavy hadron species | |
259c3296 | 106 | |
107 | ||
dbe3abbe | 108 | ClassDef(AliHFEmcQA,0); |
259c3296 | 109 | }; |
110 | ||
111 | #endif |