]>
Commit | Line | Data |
---|---|---|
fd1d0cb9 | 1 | #ifndef ALIMUONINFOSTOREMC_H |
2 | #define ALIMUONINFOSTOREMC_H | |
3 | ||
4 | /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
27de2dfb | 7 | /* $Id$ */ |
8 | ||
fd1d0cb9 | 9 | //*********************************************************** |
10 | // Class AliMuonInfoStoreRD | |
11 | // class used to extract and store info of MC particle | |
12 | // Author: X-M. Zhang, zhang@clermont.in2p3.fr | |
13 | // zhangxm@iopp.ccnu.edu.cn | |
14 | //*********************************************************** | |
15 | ||
16 | #include <TString.h> | |
17 | #include <TParticle.h> | |
18 | #include <TLorentzVector.h> | |
19 | #include <TClonesArray.h> | |
20 | ||
21 | #include "AliMCEventHandler.h" | |
22 | #include "AliStack.h" | |
23 | #include "AliAODMCParticle.h" | |
24 | #include "AliESDEvent.h" | |
25 | #include "AliESDMuonTrack.h" | |
26 | #include "AliAODTrack.h" | |
27 | #include "AliMuonInfoStoreRD.h" | |
1195bb6f | 28 | #include "AliMCEvent.h" |
fd1d0cb9 | 29 | |
30 | class AliMuonInfoStoreMC : public AliMuonInfoStoreRD { | |
31 | public: | |
32 | ||
33 | AliMuonInfoStoreMC(); | |
1195bb6f | 34 | AliMuonInfoStoreMC(AliAODTrack *trkAOD, AliMCEvent *mcEvent, Bool_t full=kFALSE); |
35 | AliMuonInfoStoreMC(AliESDMuonTrack *trkESD, AliMCEvent *mcEvent, Bool_t full=kFALSE); | |
fd1d0cb9 | 36 | AliMuonInfoStoreMC(const AliMuonInfoStoreMC &src); |
37 | AliMuonInfoStoreMC& operator=(const AliMuonInfoStoreMC &src); | |
38 | virtual ~AliMuonInfoStoreMC(); | |
39 | ||
1195bb6f | 40 | Int_t ParentFlavour(Int_t i=0) const; |
fd1d0cb9 | 41 | Bool_t IsMotherAResonance(Int_t i) const; |
1195bb6f | 42 | |
43 | TLorentzVector LorentzP() const { return fLorentzP; } | |
44 | Int_t Source() const { return fSource; } | |
45 | Int_t TrackIndex() const { return fTrackIndex; } | |
46 | Int_t TrackPDGCode() const { return fTrackPDGCode; } | |
47 | Int_t ParentsN() const { return fNParents; } | |
48 | Int_t ParentIndex(Int_t i=0) const { return (i<fNParents ? fParentIndex[i] : -1); } | |
49 | Int_t ParentPDGCode(Int_t i=0) const { return (i<fNParents ? fParentPDGCode[i] : 0); } | |
50 | Int_t QuarkIndex(Int_t i=0) const { return (i<4 ? fQuarkIndex[i] : -1); } | |
51 | Int_t QuarkPDGCode(Int_t i=0) const { return (i<4 ? fQuarkPDGCode[i] : 0); } | |
52 | Bool_t IsOscillation() const { return fOscillation; } | |
53 | Double_t Weight() const { return fWeight; } | |
fd1d0cb9 | 54 | |
55 | static const char* StdBranchName() { return fgkStdBranchName.Data(); } | |
1195bb6f | 56 | static Int_t SourcesN() { return fgkSourcesN; } |
fd1d0cb9 | 57 | |
58 | private: | |
59 | ||
1195bb6f | 60 | void SetMCInfoAOD(AliMCEvent *mcEvent, Int_t label); |
61 | void SetMCInfoESD(AliMCEvent *mcEvent, Int_t label); | |
62 | void FillHistoryQuarksAOD(AliMCEvent *mcEvent, Int_t lineM); | |
63 | void FillHistoryQuarksESD(AliMCEvent *mcEvent, Int_t lineM); | |
fd1d0cb9 | 64 | Int_t SelectHFMuon(); |
65 | ||
66 | Bool_t IsDiquark(Int_t pdg); | |
67 | void ResetQuarkInfo(); | |
68 | ||
69 | static const TString fgkStdBranchName; // Standard branch name | |
1195bb6f | 70 | static const Int_t fgkSourcesN; // num. of muon sources |
fd1d0cb9 | 71 | |
72 | Bool_t fIsFull; // whether to use full mode (Pb-Pb) | |
73 | TLorentzVector fLorentzP; // lorentz momentum of particle | |
74 | Int_t fTrackIndex; // index of the MC particle | |
75 | Int_t fTrackPDGCode; // PDG code of the MC particle | |
76 | Int_t fSource; // = 0, mu<-b | |
77 | // = 1, mu<-c | |
78 | // = 2, primary mu | |
79 | // = 3, secondary mu | |
80 | // = 4, not mu | |
81 | // = 5, unidentified track | |
82 | ||
83 | Int_t fParentIndex[5]; // index of parents | |
84 | Int_t fParentPDGCode[5]; // PDG code of parents | |
85 | Int_t fNParents; // num. of parents | |
86 | Bool_t fOscillation; // flag of oscillation | |
87 | ||
88 | Int_t fQuarkIndex[4]; // index of quarks | |
89 | Int_t fQuarkPDGCode[4]; // PDG code of quarks | |
90 | ||
91 | Double_t fWeight; // for PbPb collisoions | |
92 | ||
9bcac085 | 93 | ClassDef(AliMuonInfoStoreMC, 5); |
fd1d0cb9 | 94 | }; |
95 | ||
96 | #endif |