]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TFluka/TFluka.h
Updated geometry. Includes FMD named shapes
[u/mrichter/AliRoot.git] / TFluka / TFluka.h
index c63767152e294c16e262ed4a5eeb1e46d5a27587..6a659ccdad06890b7f41579a61374438095cd24d 100644 (file)
@@ -191,7 +191,11 @@ class TFluka : public TVirtualMC {
   virtual Int_t    PDGFromId(Int_t pdg) const;
   virtual void     DefineParticles()
   {Warning("DefineParticles", "Not yet implemented !\n");}     
+  virtual Bool_t   SetDecayMode(Int_t /*pdg*/,
+                                Float_t /*bratio*/[6], Int_t /*mode*/[6][3])
+      {return kFALSE;}
   
+
   //
   // methods for step management
   // ------------------------------------------------
@@ -309,7 +313,8 @@ class TFluka : public TVirtualMC {
   virtual Bool_t DefineParticle(Int_t, const char*, TMCParticleType, Double_t, Double_t, Double_t,
                                const TString&, Double_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t,
                                Bool_t, Bool_t = kFALSE, const TString& = "", Int_t = 0, Double_t = 0.0, Double_t = 0.0) {return kFALSE;}
-  virtual Bool_t DefineIon(const char*, int, int, int, double, double) {return kFALSE;}
+  virtual Bool_t DefineIon(const char* name , Int_t z, Int_t a, Int_t q, Double_t exE, Double_t mass);
+  
   virtual TString  ParticleName(int pdg)      const;
   virtual Double_t ParticleMass(int pdg)      const;
   virtual Double_t ParticleMassFPC(int fpc)   const;
@@ -403,9 +408,7 @@ class TFluka : public TVirtualMC {
   void     GetPrimaryElectronPosition(Int_t i, Double_t& x, Double_t& y, Double_t& z, Double_t& t) const;
   void     SetCurrentPrimaryElectronIndex(Int_t i)  {fPrimaryElectronIndex = i;}
   void     PrimaryIonisationStepping(Int_t nprim);
-
-  void  AddIon(Int_t a, Int_t z) const;
-  Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
+  void     CalcPrimaryIonisationTime();
  private:
    
   // Copy constructor and operator= declared but not implemented (-Weff++ flag)
@@ -433,6 +436,9 @@ class TFluka : public TVirtualMC {
   Double_t              fYsco;             // Fluka Draw procedures formal parameter
   Double_t              fZsco;             // Fluka Draw procedures formal parameter
   Double_t              fPint[4];          // 4-vector of particle after interaction
+  Double_t*             fPItime;           // Time distribution of primary ionisations
+  Double_t*             fPIlength;         // Track length distribution of primary ionisations
+  Int_t                 fNPI;              // Number of primary ionisation steps
   Bool_t   fTrackIsEntering;      // Flag for track entering
   Bool_t   fTrackIsExiting;       // Flag for track exiting  
   Bool_t   fTrackIsNew;           // Flag for new track
@@ -457,9 +463,12 @@ class TFluka : public TVirtualMC {
   // SetProcess, SetCut and user Scoring dynamic storage
   TObjArray* fUserConfig;            // List of user physics configuration 
   TObjArray* fUserScore;             // List of user scoring options
+  // User defined Ion
+  Bool_t               fUserIons;    // User requests ion transport
   
+  //
 
-  ClassDef(TFluka,1)  //C++ interface to Fluka montecarlo
+  ClassDef(TFluka,1)                 // C++ interface to Fluka montecarlo
 
 
   // Temporary implementation of new functions