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