]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef ALIMC_H |
2 | #define ALIMC_H | |
3 | /////////////////////////////////////////////////////////////////////////////// | |
4 | // // | |
5 | // // | |
6 | // Generic interface to MC for AliRoot // | |
7 | // // | |
8 | // // | |
9 | /////////////////////////////////////////////////////////////////////////////// | |
10 | ||
11 | #include <TNamed.h> | |
0a6d8768 | 12 | #include <TLorentzVector.h> |
fe4da5cc | 13 | |
14 | class AliMC : public TNamed | |
15 | { | |
16 | ||
17 | private: | |
18 | static AliMC* fgMC; | |
19 | ||
20 | public: | |
21 | AliMC(const char *name, const char *title); | |
22 | AliMC(); | |
23 | virtual ~AliMC() {} | |
24 | //Generic access functions | |
25 | static inline AliMC* GetMC() {return fgMC;} | |
26 | // | |
27 | virtual Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const =0; | |
0a6d8768 | 28 | virtual Int_t CurrentVolID(Int_t&) const =0; |
29 | virtual Int_t CurrentVolOffID(Int_t, Int_t& ) const =0; | |
30 | virtual const char* CurrentVolName() const =0; | |
31 | virtual const char* CurrentVolOffName(Int_t) const =0; | |
5e68170f | 32 | virtual Int_t NofVolumes() const =0; |
fe4da5cc | 33 | virtual Int_t VolId(Text_t*) const =0; |
1578254f | 34 | virtual Int_t IdFromPDG(Int_t) const =0; |
35 | virtual Int_t PDGFromId(Int_t) const =0; | |
36 | virtual void DefineParticles() = 0; | |
0a6d8768 | 37 | virtual void TrackPosition(TLorentzVector&) const =0; |
38 | virtual void TrackMomentum(TLorentzVector&) const =0; | |
fe4da5cc | 39 | virtual Float_t TrackCharge() const =0; |
40 | virtual Float_t TrackMass() const =0; | |
41 | virtual Float_t TrackStep() const =0; | |
42 | virtual Int_t TrackPid() const =0; | |
0a6d8768 | 43 | virtual Bool_t IsTrackInside() const =0; |
44 | virtual Bool_t IsTrackEntering() const =0; | |
45 | virtual Bool_t IsTrackExiting() const =0; | |
46 | virtual Bool_t IsTrackOut() const =0; | |
47 | virtual Bool_t IsTrackDisappeared() const =0; | |
48 | virtual Bool_t IsTrackStop() const =0; | |
fe4da5cc | 49 | virtual Float_t TrackLength() const =0; |
50 | virtual Float_t TrackTime() const =0; | |
0a6d8768 | 51 | virtual Bool_t IsTrackAlive() const=0; |
fe4da5cc | 52 | virtual Int_t NSecondaries() const=0; |
53 | virtual Int_t CurrentEvent() const=0; | |
54 | virtual void ProdProcess(char*) const=0; | |
55 | virtual void GetSecondary(Int_t, Int_t&, Float_t*, Float_t*)=0; | |
56 | virtual void StopTrack() =0; | |
57 | virtual void StopEvent() =0; | |
58 | virtual Float_t MaxStep() const =0; | |
59 | virtual void SetMaxStep(Float_t ) =0; | |
60 | virtual void SetMaxNStep(Int_t) =0; | |
61 | virtual Int_t GetMaxNStep() const =0; | |
00df1490 | 62 | virtual void SetUserDecay(Int_t) =0; |
fe4da5cc | 63 | virtual void GetParticle(const Int_t, char*, Float_t&) const =0; |
64 | virtual Int_t GetMedium() const =0; | |
65 | virtual void DrawOneSpec(const char*)=0; | |
66 | virtual Float_t Edep() const =0; | |
67 | virtual Float_t Etot() const =0; | |
19c996f7 | 68 | virtual const char* VolName(Int_t) const=0; |
fe4da5cc | 69 | virtual void Gstpar(Int_t, const char *, Float_t)=0; |
70 | virtual Int_t Gsvolu(const char*, const char*, Int_t, Float_t*, Int_t)=0; | |
71 | virtual void Gsdvn(const char*, const char*, Int_t, Int_t)=0; | |
72 | virtual void Gsdvn2(const char*, const char*, Int_t, Int_t, | |
73 | Float_t, Int_t)=0; | |
74 | virtual void Gsdvt(const char*, const char*, Float_t, Int_t, | |
75 | Int_t, Int_t)=0; | |
76 | virtual void Gsdvt2(const char*, const char*, Float_t, Int_t, | |
77 | Float_t, Int_t, Int_t)=0; | |
78 | virtual void Gspos(const char*, Int_t, const char*, Float_t, Float_t, | |
79 | Float_t, Int_t, const char *konly="ONLY")=0; | |
80 | virtual void Gsposp(const char*, Int_t, const char*, Float_t, Float_t, | |
81 | Float_t, Int_t, const char*, Float_t*, Int_t)=0; | |
82 | virtual void Gfmate(Int_t, char*, Float_t&, Float_t&, Float_t&, | |
83 | Float_t&, Float_t&, Float_t*, Int_t&)=0; | |
84 | virtual void Gsatt(const char*, const char*, Int_t)=0; | |
85 | virtual void Gmtod(Float_t*, Float_t*, Int_t)=0; | |
86 | virtual void Gdtom(Float_t*, Float_t*, Int_t)=0; | |
87 | virtual void Gdraw(const char*,Float_t theta=30, Float_t phi=30, | |
88 | Float_t psi=0,Float_t u0=10,Float_t v0=10, | |
89 | Float_t ul=0.01,Float_t vl=0.01)=0; | |
90 | virtual void WriteEuclid(const char*, const char*, Int_t, Int_t)=0; | |
91 | virtual void Rndm(Float_t*, const Int_t) const=0; | |
92 | virtual void Material(Int_t&, const char*, Float_t, Float_t, Float_t, Float_t, | |
93 | Float_t, Float_t* buf=0, Int_t nwbuf=0) =0; | |
94 | virtual void Mixture(Int_t&, const char*, Float_t*, Float_t*, Float_t, Int_t, Float_t*) =0; | |
95 | virtual void Medium(Int_t&, const char*, Int_t, Int_t, Int_t, Float_t, Float_t, | |
96 | Float_t, Float_t, Float_t, Float_t, Float_t *ubuf=0, Int_t nbuf=0) =0; | |
97 | virtual void Matrix(Int_t&, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) =0; | |
98 | ||
99 | //________________________________________________________________________ | |
100 | // | |
101 | // Geant3 specific prototypes | |
102 | // | |
103 | //------------------------------------------------------------------------ | |
104 | ||
105 | virtual void Gdopt(const char*,const char*)=0; | |
106 | virtual void SetClipBox(const char*,Float_t=-9999,Float_t=0, Float_t=-9999,Float_t=0,Float_t=-9999,Float_t=0)=0; | |
107 | virtual void DefaultRange()=0; | |
108 | virtual void Gdhead(Int_t, const char*, Float_t=0)=0; | |
109 | virtual void Gdman(Float_t, Float_t, const char*)=0; | |
110 | virtual void Gsord(const char *name, Int_t iax)=0; | |
fe4da5cc | 111 | virtual void Ggclos()=0; |
112 | virtual void SetColors()=0; | |
113 | virtual void Gphysi()=0; | |
114 | virtual void Gtrigi()=0; | |
115 | virtual void Gtreve()=0; | |
1578254f | 116 | virtual void Gtreve_root()=0; |
fe4da5cc | 117 | virtual void Gtrigc()=0; |
118 | virtual void Gtrig()=0; | |
119 | virtual void Gckmat(Int_t, char*)=0; | |
120 | virtual void InitLego()=0; | |
121 | virtual void Gfpart(Int_t, char*, Int_t&, Float_t&, Float_t&, Float_t&)=0; | |
122 | virtual void Gspart(Int_t, const char*, Int_t, Float_t, Float_t, Float_t)=0; | |
123 | ||
124 | ClassDef(AliMC,1) //Generic MonteCarlo Class | |
125 | ||
126 | }; | |
127 | ||
128 | R__EXTERN AliMC *gMC; | |
129 | ||
130 | #endif | |
131 |