]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TFluka/TFluka.h
pdfs for LHAPDF version 5.3.1
[u/mrichter/AliRoot.git] / TFluka / TFluka.h
index c3edc798ad18f46cfc8ec3660041e04f0c1e55b0..de67f50f90b39d10aaab7bef54e839e8b30bd6ab 100644 (file)
@@ -184,8 +184,8 @@ class TFluka : public TVirtualMC {
   virtual void       SetModelParameter(const char* parName, Double_t parValue, Int_t imed);
   virtual TObjArray* GetListOfUserConfigs() {return fUserConfig;}
   virtual Double_t   Xsec(char*, Double_t, Int_t, Int_t);
-
-  
+  virtual void       SetLowEnergyNeutronTransport(Bool_t flag) {fLowEnergyNeutronTransport = flag;}
+  virtual Bool_t     LowEnergyNeutronTransport() {return fLowEnergyNeutronTransport;}
   // Particle table usage         
   virtual Int_t    IdFromPDG(Int_t id) const;
   virtual Int_t    PDGFromId(Int_t pdg) const;
@@ -305,7 +305,10 @@ class TFluka : public TVirtualMC {
   // Particle Properties
   // -------------------
   //
-  virtual Bool_t DefineParticle(int, const char*, TMCParticleType, double, double, double) {return kFALSE;}
+  virtual Bool_t DefineParticle(Int_t, const char*, TMCParticleType, Double_t, Double_t, Double_t) {return kFALSE;}
+  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 TString  ParticleName(int pdg)      const;
   virtual Double_t ParticleMass(int pdg)      const;
@@ -371,7 +374,7 @@ class TFluka : public TVirtualMC {
   void  SetXsco(Double_t x) {fXsco = x;}
   void  SetYsco(Double_t y) {fYsco = y;}
   void  SetZsco(Double_t z) {fZsco = z;}
-
+  void  SetPint(Double_t px, Double_t py, Double_t pz, Double_t e) {fPint[0] = px; fPint[1] = py; fPint[2] = pz; fPint[3] = e;}
   void  SetTrackIsEntering(){fTrackIsEntering = kTRUE; fTrackIsExiting = kFALSE;}
   void  SetTrackIsExiting() {fTrackIsExiting  = kTRUE; fTrackIsEntering = kFALSE;}
   void  SetTrackIsInside()  {fTrackIsExiting  = kFALSE; fTrackIsEntering = kFALSE;}
@@ -397,9 +400,12 @@ class TFluka : public TVirtualMC {
   // Info about primary ionization electrons
   Int_t    GetNPrimaryElectrons();
   Double_t GetPrimaryElectronKineticEnergy(Int_t i) const;
-  void     GetPrimaryElectronPosition(Int_t i, Double_t& x, Double_t& y, Double_t& z) const;
+  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     PrimaryIonisationStepping(Int_t nprim);
+  void     CalcPrimaryIonisationTime();
+  void  AddIon(Int_t a, Int_t z) const;
+  Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
  private:
    
   // Copy constructor and operator= declared but not implemented (-Weff++ flag)
@@ -408,8 +414,11 @@ class TFluka : public TVirtualMC {
  
   void  PrintHeader();
   void  AddParticlesToPdgDataBase() const;
-  Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
 
+  Int_t GetSpecialPdg(Int_t number) const;
+  
+  Float_t* CreateFloatArray(Double_t* array, Int_t size) const;
+  
   //
   Int_t   fVerbosityLevel; //Verbosity level (0 lowest - 3 highest)
   Int_t   fNEvent;         //Current event number
@@ -423,6 +432,10 @@ class TFluka : public TVirtualMC {
   Double_t              fXsco;             // Fluka Draw procedures formal parameter
   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
@@ -432,6 +445,7 @@ class TFluka : public TVirtualMC {
   Bool_t   fStopEvent;            // Flag for stopped event
   Bool_t   fStopRun;              // Flag for stopped run 
   Int_t    fPrimaryElectronIndex; // Primary electron Index
+  Bool_t   fLowEnergyNeutronTransport; // Flag to force low energy neutron transport
   
   //
   //Geometry through TGeo