]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDsimpleMC.h
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / TRD / AliTRDsimpleMC.h
index ba6a2352ed42b2f52e42404d05edfa6b013bd079..20e3a11f7f66edbe9352db0d0dee4f011c15b0ad 100644 (file)
@@ -13,6 +13,7 @@
  
 #include "AliMC.h"
 #include "AliMCProcess.h"
+#include "AliDecayer.h"
 
 class AliTRDv1;
 class AliTRDparameter;
@@ -40,77 +41,96 @@ class AliTRDsimpleMC : public AliMC {
   //
 
   // Functions from GCONS 
-  virtual void          Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z,  
-                              Float_t &dens, Float_t &radl, Float_t &absl,
-                              Float_t* ubuf, Int_t& nbuf)                                { }; 
+    virtual void  Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z,  
+                        Float_t &dens, Float_t &radl, Float_t &absl,
+                        Float_t* ubuf, Int_t& nbuf)  {}
+    virtual void  Gfmate(Int_t imat, char *name, Double_t &a, Double_t &z,  
+                        Double_t &dens, Double_t &radl, Double_t &absl,
+                        Double_t* ubuf, Int_t& nbuf) {}
 
   // Detector composition
-  virtual void          Material(Int_t& kmat, const char* name, Float_t a, 
-                                 Float_t z, Float_t dens, Float_t radl, Float_t absl,
-                                 Float_t* buf, Int_t nwbuf)                               { };
-  virtual void          Mixture(Int_t& kmat, const char *name, Float_t *a, 
-                                Float_t *z, Float_t dens, Int_t nlmat, Float_t *wmat)     { };
-  virtual void          Medium(Int_t& kmed, const char *name, Int_t nmat, 
-                               Int_t isvol, Int_t ifield, Float_t fieldm, Float_t tmaxfd, 
-                               Float_t stemax, Float_t deemax, Float_t epsil, 
-                              Float_t stmin, Float_t* ubuf, Int_t nbuf)                  { };
-  virtual void          Matrix(Int_t& krot, Float_t thetaX, Float_t phiX, 
-                               Float_t thetaY, Float_t phiY, Float_t thetaZ, 
-                              Float_t phiZ)                                              { };
-  virtual void          Gstpar(Int_t itmed, const char *param, Float_t parval)            { }; 
+    virtual void  Material(Int_t& kmat, const char* name, Double_t a, 
+                     Double_t z, Double_t dens, Double_t radl, Double_t absl,
+                     Float_t* buf, Int_t nwbuf) {}
+    virtual void  Material(Int_t& kmat, const char* name, Double_t a, 
+                     Double_t z, Double_t dens, Double_t radl, Double_t absl,
+                     Double_t* buf, Int_t nwbuf) {}
+    virtual void  Mixture(Int_t& kmat, const char *name, Float_t *a, 
+                     Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat) {}
+    virtual void  Mixture(Int_t& kmat, const char *name, Double_t *a, 
+                     Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat) {}
+    virtual void  Medium(Int_t& kmed, const char *name, Int_t nmat, 
+                     Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, 
+                     Double_t stemax, Double_t deemax, Double_t epsil, 
+                    Double_t stmin, Float_t* ubuf, Int_t nbuf) {}
+    virtual void  Medium(Int_t& kmed, const char *name, Int_t nmat, 
+                     Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, 
+                     Double_t stemax, Double_t deemax, Double_t epsil, 
+                    Double_t stmin, Double_t* ubuf, Int_t nbuf) {}
+    virtual void  Matrix(Int_t& krot, Double_t thetaX, Double_t phiX, 
+                     Double_t thetaY, Double_t phiY, Double_t thetaZ, 
+                    Double_t phiZ) {}
+    virtual void  Gstpar(Int_t itmed, const char *param, Double_t parval) {} 
 
   // Functions from GGEOM 
-  virtual Int_t         Gsvolu(const char *name, const char *shape, Int_t nmed,  
-                              Float_t *upar, Int_t np)                                   { return 0; }; 
-  virtual void          Gsdvn(const char *name, const char *mother, Int_t ndiv, 
-                              Int_t iaxis)                                                { }; 
-  virtual void          Gsdvn2(const char *name, const char *mother, Int_t ndiv, 
-                               Int_t iaxis, Float_t c0i, Int_t numed)                     { }; 
-  virtual void          Gsdvt(const char *name, const char *mother, Float_t step, 
-                              Int_t iaxis, Int_t numed, Int_t ndvmx)                      { }; 
-  virtual void          Gsdvt2(const char *name, const char *mother, Float_t step, 
-                               Int_t iaxis, Float_t c0, Int_t numed, Int_t ndvmx)         { }; 
-  virtual void          Gsord(const char *name, Int_t iax)                                { }; 
-  virtual void          Gspos(const char *name, Int_t nr, const char *mother,  
-                              Float_t x, Float_t y, Float_t z, Int_t irot, 
-                              const char *konly="ONLY")                                   { }; 
-  virtual void          Gsposp(const char *name, Int_t nr, const char *mother,  
-                               Float_t x, Float_t y, Float_t z, Int_t irot,
-                               const char *konly, Float_t *upar, Int_t np)                { };
-  virtual void          Gsbool(const char* onlyVolName, const char* manyVolName) {}
-
-  virtual void          SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov,
-                                    Float_t *absco, Float_t *effic, Float_t *rindex)      { };
-    
+    virtual Int_t  Gsvolu(const char *name, const char *shape, Int_t nmed,  
+                          Float_t *upar, Int_t np)  { return 0; }
+    virtual Int_t  Gsvolu(const char *name, const char *shape, Int_t nmed,  
+                          Double_t *upar, Int_t np) { return 0; } 
+    virtual void  Gsdvn(const char *name, const char *mother, Int_t ndiv, 
+                         Int_t iaxis) {} 
+    virtual void  Gsdvn2(const char *name, const char *mother, Int_t ndiv, 
+                         Int_t iaxis, Double_t c0i, Int_t numed) {} 
+    virtual void  Gsdvt(const char *name, const char *mother, Double_t step, 
+                         Int_t iaxis, Int_t numed, Int_t ndvmx) {} 
+    virtual void  Gsdvt2(const char *name, const char *mother, Double_t step, 
+                         Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx) {} 
+    virtual void  Gsord(const char *name, Int_t iax) {} 
+    virtual void  Gspos(const char *name, Int_t nr, const char *mother,  
+                         Double_t x, Double_t y, Double_t z, Int_t irot, 
+                         const char *konly="ONLY") {} 
+    virtual void  Gsposp(const char *name, Int_t nr, const char *mother,  
+                         Double_t x, Double_t y, Double_t z, Int_t irot,
+                         const char *konly, Float_t *upar, Int_t np) {}
+    virtual void  Gsposp(const char *name, Int_t nr, const char *mother,  
+                         Double_t x, Double_t y, Double_t z, Int_t irot,
+                         const char *konly, Double_t *upar, Int_t np) {}
+    virtual void  Gsbool(const char* onlyVolName, const char* manyVolName) {}
+
+    virtual void  SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov,
+                               Float_t *absco, Float_t *effic, Float_t *rindex) {}
+    virtual void  SetCerenkov(Int_t itmed, Int_t npckov, Double_t *ppckov,
+                               Double_t *absco, Double_t *effic, Double_t *rindex) {}
+
   // Functions for drawing
-  virtual void          DrawOneSpec(const char* name)                                     { };
-  virtual void          Gsatt(const char* name, const char* att, Int_t val)               { };
-  virtual void          Gdraw(const char*,Float_t theta = 30, Float_t phi = 30,
-                             Float_t psi = 0, Float_t u0 = 10, Float_t v0 = 10,
-                             Float_t ul = 0.01, Float_t vl = 0.01)                       { };
+    virtual void  DrawOneSpec(const char* name) {}
+    virtual void  Gsatt(const char* name, const char* att, Int_t val) {}
+    virtual void  Gdraw(const char*,Double_t theta = 30, Double_t phi = 30,
+                       Double_t psi = 0, Double_t u0 = 10, Double_t v0 = 10,
+                       Double_t ul = 0.01, Double_t vl = 0.01) {}
 
   // Euclid
-  virtual void          WriteEuclid(const char *a, const char *b, Int_t c, Int_t d)       { };
+  virtual void          WriteEuclid(const char *a, const char *b, Int_t c, Int_t d) {}
                               
   // Get methods
-  virtual Int_t         VolId(const Text_t* volName) const;
-  virtual const char   *VolName(Int_t id) const                                           { return " "; };
-  virtual Int_t         NofVolumes() const                                                { return 0; };
-  virtual Int_t         VolId2Mate(Int_t id) const                                        { return 0; };
+    virtual Int_t VolId(const Text_t* volName) const;
+    virtual const char* VolName(Int_t id) const { return ""; }
+    virtual Int_t NofVolumes() const { return 0; }
+    virtual Int_t VolId2Mate(Int_t id) const { return 0; }
 
   //
   // Methods for physics management
   //
  
   // Set methods
-  virtual void          SetCut(const char* cutName, Float_t cutValue)                     { };
-  virtual void          SetProcess(const char* flagName, Int_t flagValue)                 { };
-  virtual Float_t       Xsec(char *a, Float_t b, Int_t c, Int_t d)                        { return 0.0; }; 
+    virtual void     SetCut(const char* cutName, Double_t cutValue) {}
+    virtual void     SetProcess(const char* flagName, Int_t flagValue) {}
+    virtual Double_t Xsec(char*, Double_t, Int_t, Int_t) { return 0.; } 
  
   // Particle table usage         
-  virtual Int_t         IdFromPDG(Int_t id) const                                         { return 0;   };  
-  virtual Int_t         PDGFromId(Int_t pdg) const                                        { return 0;   };  
-  virtual void          DefineParticles()                                                 { };      
+    virtual Int_t   IdFromPDG(Int_t id) const  { return 0; }  
+    virtual Int_t   PDGFromId(Int_t pdg) const { return 0; }  
+    virtual void    DefineParticles() {}      
   
   //
   // Methods for step management
@@ -121,7 +141,7 @@ class AliTRDsimpleMC : public AliMC {
   virtual void          StopEvent() { };   
 
   // Set methods
-  virtual void          SetMaxStep(Float_t step)                                          { fMaxStep = step; };
+  virtual void          SetMaxStep(Double_t step)                                         { fMaxStep = step; };
   virtual void          SetMaxNStep(Int_t n)                                              { };
   virtual void          SetUserDecay(Int_t d)                                             { };  
 
@@ -136,9 +156,11 @@ class AliTRDsimpleMC : public AliMC {
                                         Float_t &dens, Float_t &radl, 
                                        Float_t &absl) const                              { return 0;  };  
   virtual Int_t         CurrentEvent() const                                              { return 0;  }; 
-  virtual void          Gmtod(Float_t* xm, Float_t* xd, Int_t iflag)                      { };
-  virtual void          Gdtom(Float_t* xd, Float_t* xm, Int_t iflag)                      { } ;
-  virtual Float_t       MaxStep() const                                                   { return fMaxStep; };
+  virtual void          Gmtod(Float_t* xm, Float_t* xd, Int_t iflag)   {}
+  virtual void          Gmtod(Double_t* xm, Double_t* xd, Int_t iflag) {}
+  virtual void          Gdtom(Float_t* xd, Float_t* xm, Int_t iflag)   {}
+  virtual void          Gdtom(Double_t* xd, Double_t* xm, Int_t iflag) {}
+  virtual Double_t      MaxStep() const                                                   { return fMaxStep; };
   virtual Int_t         GetNStep() const                                                  { return fNStep;   };
   virtual Int_t         GetMaxNStep() const                                               { return 0;  };
   virtual Int_t         GetMedium() const                                                 { return 0;  };
@@ -146,16 +168,16 @@ class AliTRDsimpleMC : public AliMC {
   // Dynamic properties
   virtual void          TrackPosition(TLorentzVector& position) const;
   virtual void          TrackMomentum(TLorentzVector& momentum) const;
-  virtual Float_t       TrackStep() const                                                 { return fTrackStep; };
-  virtual Float_t       TrackLength() const                                               { return 0.0; }; 
-  virtual Float_t       TrackTime() const                                                 { return 0.0; };
-  virtual Float_t       Edep() const                                                      { return 0.0; };
+  virtual Double_t      TrackStep() const                                                 { return fTrackStep; };
+  virtual Double_t      TrackLength() const                                               { return 0.0; };
+  virtual Double_t      TrackTime() const                                                 { return 0.0; };
+  virtual Double_t      Edep() const                                                      { return 0.0; };
   
   // Static properties
   virtual Int_t         TrackPid() const                                                  { return fTrackPid;    };
-  virtual Float_t       TrackCharge() const                                               { return fTrackCharge; };
-  virtual Float_t       TrackMass() const                                                 { return fTrackMass;   };
-  virtual Float_t       Etot() const                                                      { return fTrackEtot;   };
+  virtual Double_t      TrackCharge() const                                               { return fTrackCharge; };
+  virtual Double_t      TrackMass() const                                                 { return fTrackMass;   };
+  virtual Double_t      Etot() const                                                      { return fTrackEtot;   };
 
   // Track status
   virtual Bool_t        IsNewTrack() const                                                { return kFALSE; };
@@ -180,22 +202,19 @@ class AliTRDsimpleMC : public AliMC {
   //
     
   // Geant3 specific methods
-  virtual void          Gdopt(const char *c1,const char*c2)                               { };
-  virtual void          SetClipBox(const char* cc,Float_t a=-9999,Float_t b=0, 
-                                   Float_t c=-9999,Float_t d=0,
-                                   Float_t e=-9999,Float_t f=0)                           { };
-  virtual void          DefaultRange()                                                    { };
-  virtual void          Gdhead(Int_t, const char *c, Float_t a=0)                         { };   
-  virtual void          Gdman(Float_t a, Float_t b, const char *c)                        { };
-  virtual void          SetColors()                                                       { };
-  virtual void          Gtreve()                                                          { };
-  virtual void          GtreveRoot()                                                      { };
-  virtual void          Gckmat(Int_t, char*)                                              { };
-  virtual void          InitLego()                                                        { };
-  virtual void          Gfpart(Int_t a, char *b, Int_t &c, Float_t &d, 
-                               Float_t &e, Float_t &g)                                    { }; 
-  virtual void          Gspart(Int_t a, const char *b, Int_t c, Float_t d, 
-                               Float_t e, Float_t g)                                      { }; 
+    virtual void Gdopt(const char*,const char*) {}
+    virtual void SetClipBox(const char*,Double_t=-9999,Double_t=0, Double_t=-9999,
+                             Double_t=0,Double_t=-9999,Double_t=0) {}
+    virtual void DefaultRange() {}
+    virtual void Gdhead(Int_t, const char*, Double_t=0) {}   
+    virtual void Gdman(Double_t, Double_t, const char*) {}
+    virtual void SetColors() {}
+    virtual void Gtreve() {}
+    virtual void GtreveRoot() {}
+    virtual void Gckmat(Int_t, char*) {}
+    virtual void InitLego() {}
+    virtual void Gfpart(Int_t, char*, Int_t&, Float_t&, Float_t&, Float_t&) {} 
+    virtual void Gspart(Int_t, const char*, Int_t, Double_t, Double_t, Double_t) {} 
 
   // Control Methods
   virtual void          Init()                                                            { };
@@ -203,7 +222,7 @@ class AliTRDsimpleMC : public AliMC {
   virtual void          BuildPhysics()                                                    { };
   virtual void          ProcessEvent();
   virtual void          ProcessRun(Int_t nevent)                                          { };
-  virtual AliMCGeomType     GetMCGeomType() const { return kGeant3; }
+  //virtual AliMCGeomType     GetMCGeomType() const { return kGeant3; }
 
   // External Decayer
   virtual void          SetExternalDecayer(AliDecayer* decayer)                           { };
@@ -242,3 +261,4 @@ class AliTRDsimpleMC : public AliMC {
  
 };
 #endif                                                                          
+