]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TGeant3/TGeant3.h
New files for folders and Stack
[u/mrichter/AliRoot.git] / TGeant3 / TGeant3.h
index d506d1b8cc8c94bcc6f733cd93fff83ea9ad80c6..fd466ffdb1331f51c7c6b10cdf08eac2c28487f5 100644 (file)
@@ -10,7 +10,7 @@
 //////////////////////////////////////////////// 
  
 #include <AliMC.h> 
-  
+
 //______________________________________________________________
 //
 //       Geant3 prototypes for commons
@@ -521,6 +521,7 @@ typedef struct {
  *                                                                      *
  ************************************************************************/
 
+class AliDecayer;
 class TGeant3 : public AliMC { 
 
 public: 
@@ -558,6 +559,7 @@ public:
   void  TrackPosition(TLorentzVector &xyz) const;
   void  TrackMomentum(TLorentzVector &xyz) const;  
   Int_t NofVolumes() const;
+  Int_t VolId2Mate(Int_t id) const;
   Float_t TrackTime() const;  
   Float_t TrackCharge() const;
   Float_t TrackMass() const;
@@ -574,7 +576,8 @@ public:
   Bool_t IsTrackAlive() const;
   Int_t  NSecondaries() const;
   Int_t  CurrentEvent() const;
-  const char*  ProdProcess() const;
+  AliMCProcess  ProdProcess(Int_t isec) const;
+  Int_t  StepProcesses(TArrayI &proc) const;
   void   GetSecondary(Int_t isec, Int_t& ipart, TLorentzVector &x, 
                      TLorentzVector &p);
   void   StopTrack();
@@ -586,10 +589,14 @@ public:
   void SetCut(const char* cutName, Float_t cutValue);
   void SetProcess(const char* flagName, Int_t flagValue);
   //  void GetParticle(const Int_t pdg, char *name, Float_t &mass) const;
+  // Set the external decayer
+  void SetExternalDecayer(AliDecayer* decayer) {fDecayer=decayer;}
+  // Get the external decayer
+  AliDecayer* Decayer() const {return fDecayer;}
+
   virtual Int_t GetMedium() const;
   virtual Float_t Edep() const;
   virtual Float_t Etot() const;
-  virtual void    Rndm(Float_t* r, const Int_t n) const;
 
   virtual void   Material(Int_t& kmat, const char* name, Float_t a, Float_t z,
                           Float_t dens, Float_t radl, Float_t absl, 
@@ -682,7 +689,7 @@ public:
    virtual  void  Gmate(); 
    virtual  void  Gpart(); 
    virtual  void  Gsckov(Int_t itmed, Int_t npckov, Float_t *ppckov,
-                        Float_t *absco, Float_t *effic, Float_t *rindex); 
+                       Float_t *absco, Float_t *effic, Float_t *rindex); 
    virtual  void  Gsdk(Int_t ipart, Float_t *bratio, Int_t *mode); 
    virtual  void  Gsmate(Int_t imat, const char *name, Float_t a, Float_t z,  
                          Float_t dens, Float_t radl, Float_t absl); 
@@ -696,7 +703,9 @@ public:
                          Float_t stmin); 
    virtual  void  Gstpar(Int_t itmed, const char *param, Float_t parval); 
  
-      // functions from GKINE 
+   virtual void  SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov,
+                            Float_t *absco, Float_t *effic, Float_t *rindex);
+  // functions from GKINE 
    virtual  void  Gfkine(Int_t itra, Float_t *vert, Float_t *pvert, 
                          Int_t &ipart, Int_t &nvert); 
    virtual  void  Gfvert(Int_t nvtx, Float_t *v, Int_t &ntbeam, Int_t &nttarg, Float_t &tofg); 
@@ -752,6 +761,7 @@ public:
                         Int_t& natt, Float_t* par, Float_t* att);
    virtual  void  Gckpar(Int_t ish, Int_t npar, Float_t *par);
    virtual  void  Gckmat(Int_t itmed, char *natmed);
+   virtual  Int_t Glvolu(Int_t nlev, Int_t *lnam,Int_t *lnum);
     
       // functions from GDRAW 
    virtual  void  DefaultRange();
@@ -828,39 +838,38 @@ protected:
   Int_t fNextVol;    // Iterator for GeomIter
 
 //--------------Declarations for ZEBRA--------------------- 
-  Int_t *fZiq;                // Good Old IQ of Zebra
-  Int_t *fZlq;                // Good Old LQ of Zebra
-  Float_t *fZq;               // Good Old Q of Zebra
-
-  Quest_t  *fQuest;           // QUEST common structure
-  Gcbank_t *fGcbank;          // GCBANK common structure
-  Gclink_t *fGclink;          // GCLINK common structure
-  Gccuts_t *fGccuts;          // GCCUTS common structure
-  Gcmulo_t *fGcmulo;          // GCMULO common structure
-  Gcmate_t *fGcmate;          // GCMATE common structure
-  Gctpol_t *fGctpol;          // GCTPOL common structure
-  Gcnum_t  *fGcnum;           // GCNUM common structure
-  Gcsets_t *fGcsets;          // GCSETS common structure
-  Gcopti_t *fGcopti;          // GCOPTI common structure
-  Gctlit_t *fGctlit;          // GCTLIT common structure
-  Gcvdma_t *fGcvdma;          // GCVDMA common structure
-  Gcvolu_t *fGcvolu;          // GCVOLU common structure
-  Gckine_t *fGckine;          // GCKINE common structure
-  Gcflag_t *fGcflag;          // GCFLAG common structure
-  Gctmed_t *fGctmed;          // GCTMED common structure
-  Gcphys_t *fGcphys;          // GCPHYS common structure
-  Gcphlt_t *fGcphlt;          // GCPHLT common structure
-  Gcking_t *fGcking;          // GCKING common structure
-  Gckin2_t *fGckin2;          // GCKIN2 common structure
-  Gckin3_t *fGckin3;          // GCKIN3 common structure
-  Gctrak_t *fGctrak;          // GCTRAK common structure
-
+  Int_t *fZiq;                //! Good Old IQ of Zebra
+  Int_t *fZlq;                //! Good Old LQ of Zebra
+  Float_t *fZq;               //! Good Old Q of Zebra
+
+  Quest_t  *fQuest;           //! QUEST common structure
+  Gcbank_t *fGcbank;          //! GCBANK common structure
+  Gclink_t *fGclink;          //! GCLINK common structure
+  Gccuts_t *fGccuts;          //! GCCUTS common structure
+  Gcmulo_t *fGcmulo;          //! GCMULO common structure
+  Gcmate_t *fGcmate;          //! GCMATE common structure
+  Gctpol_t *fGctpol;          //! GCTPOL common structure
+  Gcnum_t  *fGcnum;           //! GCNUM common structure
+  Gcsets_t *fGcsets;          //! GCSETS common structure
+  Gcopti_t *fGcopti;          //! GCOPTI common structure
+  Gctlit_t *fGctlit;          //! GCTLIT common structure
+  Gcvdma_t *fGcvdma;          //! GCVDMA common structure
+  Gcvolu_t *fGcvolu;          //! GCVOLU common structure
+  Gckine_t *fGckine;          //! GCKINE common structure
+  Gcflag_t *fGcflag;          //! GCFLAG common structure
+  Gctmed_t *fGctmed;          //! GCTMED common structure
+  Gcphys_t *fGcphys;          //! GCPHYS common structure
+  Gcphlt_t *fGcphlt;          //! GCPHLT common structure
+  Gcking_t *fGcking;          //! GCKING common structure
+  Gckin2_t *fGckin2;          //! GCKIN2 common structure
+  Gckin3_t *fGckin3;          //! GCKIN3 common structure
+  Gctrak_t *fGctrak;          //! GCTRAK common structure
 
   // commons for GEANE
-  Ertrio_t *fErtrio;          // ERTRIO common structure
-  Eropts_t *fEropts;          // EROPTS common structure
-  Eroptc_t *fEroptc;          // EROPTC common structure
-  Erwork_t *fErwork;          // ERWORK common structure
+  Ertrio_t *fErtrio;          //! ERTRIO common structure
+  Eropts_t *fEropts;          //! EROPTS common structure
+  Eroptc_t *fEroptc;          //! EROPTC common structure
+  Erwork_t *fErwork;          //! ERWORK common structure
 
   //Put here all volume names
 
@@ -872,6 +881,10 @@ protected:
 
   Int_t fPDGCode[kMaxParticles];  // Translation table of PDG codes
 
+  AliDecayer* fDecayer;      // Pointer to decayer
+
+  AliMCProcess G3toVMC(Int_t iproc) const;
+
 private:
   TGeant3(const TGeant3 &) {}
   TGeant3 & operator=(const TGeant3&) {return *this;}