#include <G4ILawTruncatedExp.hh>
Definition at line 46 of file G4ILawTruncatedExp.hh.
 
      
        
          | G4ILawTruncatedExp::G4ILawTruncatedExp  | 
          ( | 
          G4String  | 
          name = "expForceInteractionLaw" | ) | 
           | 
        
      
 
Definition at line 31 of file G4ILawTruncatedExp.cc.
   33     fMaximumDistance(0.0),
 
   35     fCrossSectionDefined(
false),
 
G4VBiasingInteractionLaw(G4String name)
 
 
 
 
  
  
      
        
          | G4ILawTruncatedExp::~G4ILawTruncatedExp  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::ComputeEffectiveCrossSectionAt  | 
          ( | 
          G4double  | 
          length | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Implements G4VBiasingInteractionLaw.
Definition at line 58 of file G4ILawTruncatedExp.cc.
   60   if ( !fCrossSectionDefined )
 
   62       G4Exception(
"G4ILawTruncatedExp::ComputeEffectiveCrossSection(..)",
 
   65           "Cross-section value requested, but has not been defined yet. Assumes 0 !");
 
   67       return 1.0 / ( fMaximumDistance - distance );
 
   69   G4double denum = 1.0 - std::exp( -fCrossSection * ( fMaximumDistance - distance) );
 
   70   return fCrossSection / denum;
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
 
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::ComputeNonInteractionProbabilityAt  | 
          ( | 
          G4double  | 
          length | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Implements G4VBiasingInteractionLaw.
Definition at line 73 of file G4ILawTruncatedExp.cc.
   75   if (!fCrossSectionDefined)
 
   77       G4Exception(
"G4ILawTruncatedExp::ComputeNonInteractionProbability(..)",
 
   80           "Non interaction probability value requested, but cross section has not been defined yet. Assumes it to be 0 !");
 
   82       return 1.0 - distance / fMaximumDistance;
 
   84   G4double   num = 1.0 - std::exp( -fCrossSection*distance         );
 
   85   G4double denum = 1.0 - std::exp( -fCrossSection*fMaximumDistance );
 
   86   return 1.0 - num/denum;
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
 
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::GetInteractionDistance  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::GetMaximumDistance  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
  
  
      
        
          | virtual G4bool G4ILawTruncatedExp::IsSingular  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlinevirtual   | 
  
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::SampleInteractionLength  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Implements G4VBiasingInteractionLaw.
Definition at line 89 of file G4ILawTruncatedExp.cc.
   91   if ( !fCrossSectionDefined )
 
   96           "Trying to sample while cross-section is not defined, assuming 0 !");
 
   98       return fInteractionDistance;
 
  100   fInteractionDistance = -std::log(1.0 - 
G4UniformRand()* (1.0 - std::exp(-fCrossSection*fMaximumDistance)))/fCrossSection;
 
  101   return fInteractionDistance;
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
 
 
 
      
        
          | void G4ILawTruncatedExp::SetForceCrossSection  | 
          ( | 
          G4double  | 
          xs | ) | 
           | 
        
      
 
Definition at line 42 of file G4ILawTruncatedExp.cc.
   44   if (crossSection < 0.0)
 
   46       G4Exception(
"G4ILawTruncatedExp::SetForceCrossSection(..)",
 
   49           "Cross-section value passed is negative. It is set to zero !");
 
   54   fCrossSectionDefined = 
true;
 
   55   fCrossSection        = crossSection;
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
 
 
 
  
  
      
        
          | G4double G4ILawTruncatedExp::UpdateInteractionLengthForStep  | 
          ( | 
          G4double  | 
          truePathLength | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
Reimplemented from G4VBiasingInteractionLaw.
Definition at line 105 of file G4ILawTruncatedExp.cc.
  107   fInteractionDistance -= truePathLength;
 
  108   fMaximumDistance     -= truePathLength;
 
  110   if ( fInteractionDistance < 0 )
 
  113       ed << 
" Negative number of interaction length for `" << 
GetName() << 
"' " << fInteractionDistance << 
", set it to zero !" << 
G4endl; 
 
  114       G4Exception(
"G4ILawTruncatedExp::UpdateInteractionLengthForStep(...)",
 
  117           "Trying to sample while cross-section is not defined, assuming 0 !");
 
  118       fInteractionDistance = 0.;
 
  121   return  fInteractionDistance;
 
std::ostringstream G4ExceptionDescription
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
const G4String & GetName() const 
 
 
 
 
The documentation for this class was generated from the following files: