Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
@@ -22,7 +22,7 @@
//
//
// $Id: G4AnnihiToMuPair.hh,v 1.2 2003/02/04 11:08:41 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------ G4AnnihiToMuPair physics process ------
// by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002
@@ -22,7 +22,7 @@
//
//
// $Id: G4ComptonScattering.hh,v 1.9 2002/04/09 17:34:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//------------------ G4ComptonScattering physics process -----------------------
// by Michel Maire, April 1996
@@ -22,7 +22,7 @@
//
//
// $Id: G4ComptonScattering.icc,v 1.8 2001/09/21 09:50:53 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//------------------ G4ComptonScattering physics process -----------------------
// by Michel Maire, April 1996
@@ -22,7 +22,7 @@
//
//
// $Id: G4GammaConversion.hh,v 1.10 2002/04/09 17:34:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//------------------ G4GammaConversion physics process -------------------------
// by Michel Maire, 24 May 1996
@@ -22,7 +22,7 @@
//
//
// $Id: G4GammaConversion.icc,v 1.7 2001/09/17 17:07:11 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// ------------ G4GammaConversion physics process -------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4GammaConversionToMuons.hh,v 1.2 2002/05/06 09:32:41 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4GammaConversionToMuons.hh,v 1.3 2003/05/26 16:13:13 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------ G4GammaConversionToMuons physics process ------
// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002
@@ -77,7 +77,7 @@ class G4GammaConversionToMuons : public G4VDiscreteProcess
void SetCrossSecFactor(G4double fac);
// Set the factor to artificially increase the crossSection (default 1)
G4double inline GetCrossSecFactor() { return CrossSecFactor;}
G4double GetCrossSecFactor() { return CrossSecFactor;}
// Get the factor to artificially increase the cross section
G4double GetMeanFreePath(const G4Track& aTrack,
@@ -22,7 +22,7 @@
//
//
// $Id: G4GammaConversionToMuons.icc,v 1.1 2002/04/19 14:44:33 hbu Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------ G4GammaConversionToMuons physics process ------
// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002
@@ -93,7 +93,7 @@ public:
G4double tmin,
G4double maxEnergy);
G4std::vector<G4DynamicParticle*>* SampleSecondaries(
std::vector<G4DynamicParticle*>* SampleSecondaries(
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin,
@@ -126,7 +126,7 @@ private:
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4double G4MollerBhabhaModel::MaxSecondaryEnergy(
const G4ParticleDefinition* p,
const G4ParticleDefinition*,
G4double kinEnergy)
{
G4double tmax = kinEnergy;
@@ -21,27 +21,20 @@
// ********************************************************************
//
//
// $Id: G4PAIonisation.hh,v 1.17 2003/03/10 10:50:56 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: based on object model of
// 2nd December 1995, G.Cosmo
// ---------- G4hIonisation physics process -----------
// by V. Grichine, 30 Nov 1997
// ************************************************************
// It is the first implementation of the NEW IONISATION
// PROCESS. ( delta rays + continuous energy loss)
// It calculates the ionisation for charged hadrons.
// ************************************************************
//
// corrected by V. Grichine on 24/11/97
// 12.07.00 V.Grichine GetFreePath and GetdEdx were added
// 22.09.00 V.Grichine and K.Assamagan new function GetEnergyTransfer(G4d,G4i)
// 28.05.01 V.Ivanchenko minor changes to provide ANSI -wall compilation
// R&D since 1996: Vladimir.Grichine@cern.ch
//
//
// 29.04.03 V.Grichine, corrections for cuts per region
// 28.05.01 V. Ivanchenko minor changes to provide ANSI -wall compilation
// 22.09.00 V. Grichine and K.Assamagan new function GetEnergyTransfer(G4d,G4i)
// 12.07.00 V. Grichine GetFreePath and GetdEdx were added
// 24.11.97 V. Grichine corrections
#ifndef G4PAIonisation_h
@@ -59,6 +52,8 @@
#include "G4PhysicsLinearVector.hh"
#include "G4PhysicsFreeVector.hh"
#include "G4PhysicsVector.hh"
class G4LogicalVolume;
class G4MaterialCutsCouple;
class G4PAIonisation : public G4VPAIenergyLoss
@@ -66,6 +61,9 @@ class G4PAIonisation : public G4VPAIenergyLoss
{
public:
G4PAIonisation( G4LogicalVolume* lV,
const G4String& processName = "PAIonisation");
G4PAIonisation( const G4String& materialName,
const G4String& processName = "PAIonisation");
@@ -88,7 +86,7 @@ class G4PAIonisation : public G4VPAIenergyLoss
G4double GetConstraints(const G4DynamicParticle *aParticle,
G4Material *aMaterial);
G4VParticleChange *PostStepDoIt( const G4Track& track,
G4VParticleChange* PostStepDoIt( const G4Track& track,
const G4Step& Step ) ;
@@ -127,11 +125,17 @@ class G4PAIonisation : public G4VPAIenergyLoss
G4double GetLossWithFluct(G4double Step,
const G4DynamicParticle *aParticle,
G4Material *aMaterial) ;
G4double GetAlongStepDelta(G4double Step,
const G4DynamicParticle *aParticle,
G4Material *aMaterial) ;
G4double GetRandomEnergyTransfer( G4double scaledTkin ) ;
G4double GetEnergyTransfer( G4int iPlace, G4double position, G4int iTransfer ) ;
G4double GetPostStepTransfer( G4double scaledTkin ) ;
// static
G4double GetEnergyTransfer( G4int iPlace, G4double position, G4int iTransfer ) ;
G4double GetdNdxCut( G4int iPlace, G4double cutTransfer) ;
// static
static G4double GetMaxKineticEnergy();
static G4double GetMinKineticEnergy();
@@ -144,17 +148,17 @@ class G4PAIonisation : public G4VPAIenergyLoss
// Compute Sandia photoabsorption coefficient matrix
void ComputeSandiaPhotoAbsCof() ;
private:
G4PhysicsLogVector* GetProtonEnergyVector();
private:
// private data members
G4LogicalVolume* fLogicalVolume;
size_t fMatIndex ; // index of material, where dE/dx is calculated
size_t fMatCutsIndex ; // index of material, where dE/dx is calculated
G4Material* fMaterial;
G4MaterialCutsCouple* fMaterialCutsCouple;
G4PhysicsTable* theMeanFreePathTable;
// LowestKineticEnergy = lower limit of particle kinetic energy
@@ -166,7 +170,14 @@ class G4PAIonisation : public G4VPAIenergyLoss
static const G4double HighestKineticEnergy;
static G4int TotBin;
static G4PhysicsLogVector* fProtonEnergyVector ;
G4PhysicsLogVector* fLambdaVector ;
G4PhysicsLogVector* fdNdxCutVector ;
G4PhysicsLogVector* fdEdxVector ;
// cut in range
G4double* CutInRange ;
G4double* lastCutInRange ;
// particles , cuts in kinetic energy
@@ -174,7 +185,7 @@ class G4PAIonisation : public G4VPAIenergyLoss
const G4Proton* theProton;
const G4AntiProton* theAntiProton;
const G4std::vector<G4double>* DeltaCutInKineticEnergy ;
const std::vector<G4double>* DeltaCutInKineticEnergy ;
G4double DeltaCutInKineticEnergyNow ;
@@ -186,6 +197,9 @@ class G4PAIonisation : public G4VPAIenergyLoss
};
#include "G4PAIonisation.icc"
#endif
@@ -22,20 +22,15 @@
//
//
//
//
// ---------------------------------------------------------------
// GEANT 4 class inlined methods file
//
// ------------ G4PAIonisation physics process ------------
// by Laszlo Urban, 30 May 1997
// ***************************************************************
// It is the first implementation of the NEW IONISATION PROCESS.
// It calculates the ionisation of charged hadrons.
// ***************************************************************
// corrected by L.Urban on 24/09/97
// 06.01.00 V.Grichine, modifications in GetConstraints and GetMenaFreePath
// R&D since 1996: Vladimir.Grichine@cern.ch
//
//
// 29.04.03 V.Grichine, corrections for cuts per region
// 12.07.00 V.Grichine, GetFreePath and GetdEdx were added
// 11.07.00 V.Grichine, modifications in GetMeanFreePath
// 12.07.00 V.Grichinw, GetFreePath and GetdEdx were added
// 06.01.00 V.Grichine, modifications in GetConstraints and GetMenaFreePath
// corrected by L.Urban on 24/09/97
////////////////////////////////////////////////////////////////////
@@ -43,7 +38,7 @@
//
inline G4double
G4PAIonisation::GetConstraints(const G4DynamicParticle *aParticle,
G4PAIonisation::GetConstraints(const G4DynamicParticle *,
G4Material *aMaterial )
{
size_t index = aMaterial->GetIndex() ;
@@ -94,7 +89,7 @@ G4PAIonisation::GetContinuousStepLimit( const G4Track& track ,
inline G4double G4PAIonisation::
GetMeanFreePath( const G4Track& trackData,
G4double previousStepSize,
G4double,
G4ForceCondition* condition )
{
// G4cout<<"G4PAIonisation::GetMeanFreePath is called"<<G4endl ;
@@ -124,7 +119,8 @@ GetMeanFreePath( const G4Track& trackData,
for(iTkin=0;iTkin<G4PAIonisation::GetBinNumber();iTkin++)
{
if(scaledE < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) // <= ?
// if(scaledE < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) // <= ?
if(scaledE < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) // <= ?
{
break ;
}
@@ -143,8 +139,8 @@ GetMeanFreePath( const G4Track& trackData,
}
else
{
E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ;
E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ;
E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ;
E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ;
W = 1.0/(E2 - E1) ;
W1 = (E2 - scaledE)*W ;
W2 = (scaledE - E1)*W ;
@@ -173,7 +169,7 @@ GetFreePath( G4double scaledTkin, G4double charge2 )
for( iTkin = 0 ; iTkin < G4PAIonisation::GetBinNumber() ; iTkin++ )
{
if(scaledTkin < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) break ;
if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ;
}
iPlace = iTkin - 1 ;
@@ -189,8 +185,8 @@ GetFreePath( G4double scaledTkin, G4double charge2 )
}
else
{
E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ;
E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ;
E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ;
E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ;
W = 1.0/(E2 - E1) ;
W1 = (E2 - scaledTkin)*W ;
W2 = (scaledTkin - E1)*W ;
@@ -219,7 +215,7 @@ GetdEdx( G4double scaledTkin, G4double charge2 )
for( iTkin = 0 ; iTkin < G4PAIonisation::GetBinNumber() ; iTkin++ )
{
if(scaledTkin < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) break ;
if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ;
}
iPlace = iTkin - 1 ;
@@ -235,8 +231,8 @@ GetdEdx( G4double scaledTkin, G4double charge2 )
}
else
{
E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ;
E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ;
E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ;
E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ;
W = 1.0/(E2 - E1) ;
W1 = (E2 - scaledTkin)*W ;
W2 = (scaledTkin - E1)*W ;
@@ -22,7 +22,7 @@
//
//
// $Id: G4PAIxSection.hh,v 1.9 2002/10/14 17:30:10 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// G4PAIxSection.hh -- header file
@@ -22,7 +22,7 @@
//
//
// $Id: G4PhotoElectricEffect.hh,v 1.15 2002/05/02 11:37:22 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4PhotoElectricEffect.icc,v 1.10 2002/04/18 10:12:01 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -22,7 +22,7 @@
//
//
// $Id: G4PolarizedComptonScattering.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// --------- G4PolarizedComptonScattering physics process ----------------------
// by Vicente Lara, March 1998
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SynchrotronRadiation.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4SynchrotronRadiation.hh,v 1.8 2003/05/26 16:13:14 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -138,7 +138,7 @@ class G4SynchrotronRadiation : public G4VDiscreteProcess
inline G4double
G4SynchrotronRadiation::GetMeanFreePath( const G4Track& trackData,
G4double previousStepSize,
G4double,
G4ForceCondition* condition)
{
const G4DynamicParticle* aDynamicParticle;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VPAIenergyLoss.hh,v 1.9 2003/03/10 12:22:02 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4VPAIenergyLoss.hh,v 1.10 2003/06/16 17:01:57 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -55,8 +55,8 @@
#define G4VPAIenergyLoss_h 1
#include "G4ios.hh"
#include "g4std/fstream"
#include "g4std/iomanip"
#include <fstream>
#include <iomanip>
#include "globals.hh"
#include "Randomize.hh"
@@ -43,7 +43,7 @@
//
inline G4double
G4VPAIenergyLoss::GetConstraints(const G4DynamicParticle *aParticle,
G4VPAIenergyLoss::GetConstraints(const G4DynamicParticle *,
G4Material *aMaterial )
{
// G4cout<<"G4VPAIenergyLoss::GetConstraints is called"<<endl ;
@@ -63,25 +63,6 @@ inline G4double
//
//
/* ***********************************************************************
inline G4double G4VPAIenergyLoss::GetContinuousStepLimit(
const G4Track& track,
G4double,
G4double currentMinimumStep,
G4double&)
{
G4double Step =
GetConstraints(track.GetDynamicParticle(),track.GetMaterial()) ;
if( (Step > 0.0) && (Step < currentMinimumStep) ) currentMinimumStep = Step ;
return Step ;
}
*********************************************************** */
inline G4bool G4VPAIenergyLoss::IsApplicable(const G4ParticleDefinition&
particle)
{
@@ -22,7 +22,7 @@
//
//
// $Id: G4VeEnergyLoss.hh,v 1.12 2003/01/17 18:55:42 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// -----------------------------------------------------------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VeEnergyLoss.icc,v 1.11 2003/04/26 12:11:04 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4VeEnergyLoss.icc,v 1.13 2003/06/16 17:01:58 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
@@ -54,7 +54,7 @@ inline G4double G4VeEnergyLoss::GetConstraints(
G4EnergyLossTables::GetRange(ParticleType,KineticEnergy,couple);
// compute the Step limit
G4double r = G4std::min(finalRange, couple->GetProductionCuts()
G4double r = std::min(finalRange, couple->GetProductionCuts()
->GetProductionCut(idxG4ElectronCut));
if (fRangeNow>r)
{
@@ -22,7 +22,7 @@
//
//
// $Id: G4VhEnergyLoss.hh,v 1.17 2003/01/22 14:03:53 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------- G4VhEnergyLoss physics process --------------------------------
// by Laszlo Urban, 30 May 1997
@@ -22,7 +22,7 @@
//
//
// $Id: G4VhEnergyLoss.icc,v 1.6 2003/01/17 18:55:42 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// ---------------- G4VhEnergyLoss physics process -----------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4eBremsstrahlung.hh,v 1.15 2003/01/17 18:55:42 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4eBremsstrahlung.hh,v 1.16 2003/06/16 17:01:59 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// ------------ G4eBremsstrahlung physics process ------
@@ -172,7 +172,7 @@ class G4eBremsstrahlung : public G4VeEnergyLoss
static G4double probsup;
static G4bool LPMflag;
const G4std::vector<G4double>* secondaryEnergyCuts;
const std::vector<G4double>* secondaryEnergyCuts;
public:
@@ -22,7 +22,7 @@
//
//
// $Id: G4eBremsstrahlung.icc,v 1.7 2003/01/17 18:55:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// ------------ G4eBremsstrahlung physics process ---------
// by Michel Maire, 27 July 1996
@@ -93,7 +93,7 @@ public:
G4double tmin,
G4double maxEnergy);
G4std::vector<G4DynamicParticle*>* SampleSecondaries(
std::vector<G4DynamicParticle*>* SampleSecondaries(
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin,
@@ -113,7 +113,7 @@ private:
void SetParticle(const G4ParticleDefinition* p);
G4double ComputeBremLoss(G4double Z, G4double tkin, G4double cut, G4double x);
G4double ComputeBremLoss(G4double Z, G4double tkin, G4double cut);
G4double PositronCorrFactorLoss(G4double Z, G4double tkin, G4double cut);
@@ -146,7 +146,7 @@ private:
G4double LPMconstant;
G4bool isElectron;
G4bool theLPMflag;
G4std::vector<G4DataVector*> partialSumSigma;
std::vector<G4DataVector*> partialSumSigma;
};
@@ -74,7 +74,7 @@ public:
G4eBremsstrahlungSTD(const G4String& name = "eBrem");
~G4eBremsstrahlungSTD();
G4bool IsApplicable(const G4ParticleDefinition& p)
{return (&p == G4Electron::Electron() || &p == G4Positron::Positron());};
@@ -82,7 +82,7 @@ public:
const G4Material*, G4double cut)
{return cut;};
virtual G4std::vector<G4Track*>* SecondariesAlongStep(
virtual std::vector<G4Track*>* SecondariesAlongStep(
const G4Step&,
G4double&,
G4double&,
@@ -95,7 +95,7 @@ public:
G4double&,
G4double&);
void PrintInfoDefinition() const;
void PrintInfoDefinition();
// Print out of the class parameters
protected:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4eIonisation.hh,v 1.17 2003/01/17 18:55:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4eIonisation.hh,v 1.18 2003/06/16 17:02:02 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//--------------- G4eIonisation physics process --------------------------------
// by Laszlo Urban, 20 March 1997
@@ -151,7 +151,7 @@ class G4eIonisation : public G4VeEnergyLoss
G4double HighestKineticEnergy;
G4int TotBin;
const G4std::vector<G4double>* secondaryEnergyCuts;
const std::vector<G4double>* secondaryEnergyCuts;
public: // with description
@@ -22,7 +22,7 @@
//
//
// $Id: G4eIonisation.icc,v 1.11 2003/01/17 18:55:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
//----------------- G4eIonisation physics process ------------------------------
@@ -44,6 +44,8 @@
// 24-01-03 Make models region aware (V.Ivanchenko)
// 05-02-03 Fix compilation warnings (V.Ivanchenko)
// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko)
// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko)
// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko)
//
//
// Class Description:
@@ -64,6 +66,7 @@
class G4Material;
class G4ParticleDefinition;
class G4VEmFluctuationModel;
class G4eIonisationSTD : public G4VEnergyLossSTD
{
@@ -79,7 +82,7 @@ public:
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*, G4double cut);
virtual G4std::vector<G4Track*>* SecondariesAlongStep(
virtual std::vector<G4Track*>* SecondariesAlongStep(
const G4Step&,
G4double&,
G4double&,
@@ -94,7 +97,7 @@ public:
void SetSubCutoff(G4bool val);
void PrintInfoDefinition() const;
void PrintInfoDefinition();
// Print out of the class parameters
protected:
@@ -112,10 +115,11 @@ private:
G4eIonisationSTD(const G4eIonisationSTD&);
const G4ParticleDefinition* theElectron;
G4VEmFluctuationModel* flucModel;
G4bool subCutoff;
G4bool isElectron;
G4bool isInitialised;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -150,13 +154,13 @@ inline G4double G4eIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dp
#include "G4VSubCutoffProcessor.hh"
inline G4std::vector<G4Track*>* G4eIonisationSTD::SecondariesAlongStep(
inline std::vector<G4Track*>* G4eIonisationSTD::SecondariesAlongStep(
const G4Step& step,
G4double& tmax,
G4double& eloss,
G4double& kinEnergy)
{
G4std::vector<G4Track*>* newp = 0;
std::vector<G4Track*>* newp = 0;
if(subCutoff) {
G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex());
if (sp) {
@@ -22,7 +22,7 @@
//
//
// $Id: G4eplusAnnihilation.hh,v 1.10 2002/04/09 17:34:41 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -22,7 +22,7 @@
//
//
// $Id: G4eplusAnnihilation.icc,v 1.8 2001/09/17 17:07:11 maire Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4hIonisation.hh,v 1.21 2003/01/17 18:55:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4hIonisation.hh,v 1.22 2003/06/16 17:02:04 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
// --------------- G4hIonisation physics process -------------------------------
// by Laszlo Urban, 30 May 1997
@@ -156,7 +156,7 @@ class G4hIonisation : public G4VhEnergyLoss
G4double Tmincut; // min energy of d-rays
G4double initialMass; // mass for Lambda table
const G4std::vector<G4double>* secondaryEnergyCuts;
const std::vector<G4double>* secondaryEnergyCuts;
public: // with description
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4hIonisation.icc,v 1.12 2003/01/17 18:55:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: G4hIonisation.icc,v 1.14 2003/06/18 13:48:57 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
//------------------ G4hIonisation physics process -----------------------------
@@ -34,6 +34,7 @@
// 14-08-01: 'cleanup' of GetMeanFreePath (mma)
// 09-04-02: e+- are not applicable (V.Ivanchenko)
// 15-01-03: Migrade to cut per region (V.Ivanchenko)
// 16-06-03: ShortLived are not applicable any more (V.Ivanchenko)
//
//------------------------------------------------------------------------------
@@ -43,7 +44,9 @@
inline G4bool G4hIonisation::IsApplicable(
const G4ParticleDefinition& particle)
{
return(particle.GetPDGCharge() != 0. && particle.GetPDGMass() > 10.*MeV);
return(particle.GetPDGCharge() != 0. &&
particle.GetPDGMass() > 10.*MeV &&
!particle.IsShortLived());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -73,7 +76,7 @@ inline G4double G4hIonisation::GetMeanFreePath(const G4Track& track, G4double,
inline G4double G4hIonisation::SecondaryEnergyThreshold(size_t index)
{
return G4std::max((*secondaryEnergyCuts)[index],Tmincut);
return std::max((*secondaryEnergyCuts)[index],Tmincut);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -48,6 +48,9 @@
// 05-02-03 Fix compilation warnings (V.Ivanchenko)
// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko)
// 15-02-03 Add control on delta pointer (V.Ivanchenko)
// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko)
// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko)
// 16-06-03 ShortLived are not applicable any more (V.Ivanchenko)
//
// Class Description:
//
@@ -67,6 +70,7 @@
#include "globals.hh"
class G4Material;
class G4VEmFluctuationModel;
class G4hIonisationSTD : public G4VEnergyLossSTD
{
@@ -82,7 +86,7 @@ public:
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
const G4Material*, G4double cut);
virtual G4std::vector<G4Track*>* SecondariesAlongStep(
virtual std::vector<G4Track*>* SecondariesAlongStep(
const G4Step&,
G4double&,
G4double&,
@@ -97,7 +101,7 @@ public:
void SetSubCutoff(G4bool val);
void PrintInfoDefinition() const;
void PrintInfoDefinition();
// Print out of the class parameters
protected:
@@ -119,8 +123,10 @@ private:
const G4ParticleDefinition* theParticle;
const G4ParticleDefinition* theBaseParticle;
G4VEmFluctuationModel* flucModel;
G4bool subCutoff;
G4bool isInitialised;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -128,7 +134,9 @@ private:
inline G4bool G4hIonisationSTD::IsApplicable(const G4ParticleDefinition& p)
{
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);
return (p.GetPDGCharge() != 0.0 &&
p.GetPDGMass() > 10.0*MeV &&
!p.IsShortLived());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -158,13 +166,13 @@ inline G4double G4hIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dy
#include "G4VSubCutoffProcessor.hh"
inline G4std::vector<G4Track*>* G4hIonisationSTD::SecondariesAlongStep(
inline std::vector<G4Track*>* G4hIonisationSTD::SecondariesAlongStep(
const G4Step& step,
G4double& tmax,
G4double& eloss,
G4double& kinEnergy)
{
G4std::vector<G4Track*>* newp = 0;
std::vector<G4Track*>* newp = 0;
if(subCutoff) {
G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex());
if (sp) {
@@ -39,6 +39,7 @@
// 05-02-03 Fix compilation warnings (V.Ivanchenko)
// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko)
// 15-02-03 Add control on delta pointer (V.Ivanchenko)
// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko)
//
// Class Description:
//
@@ -55,6 +56,7 @@
#include "G4VEnergyLossSTD.hh"
class G4Material;
class G4VEmFluctuationModel;
class G4ionIonisation : public G4VEnergyLossSTD
{
@@ -70,7 +72,7 @@ public:
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
const G4Material*, G4double cut);
virtual G4std::vector<G4Track*>* SecondariesAlongStep(
virtual std::vector<G4Track*>* SecondariesAlongStep(
const G4Step&,
G4double&,
G4double&,
@@ -85,7 +87,7 @@ public:
void SetSubCutoff(G4bool val);
void PrintInfoDefinition() const;
void PrintInfoDefinition();
// Print out of the class parameters
protected:
@@ -108,6 +110,7 @@ private:
const G4ParticleDefinition* theParticle;
const G4ParticleDefinition* theBaseParticle;
G4VEmFluctuationModel* flucModel;
G4bool subCutoff;
};
@@ -167,13 +170,13 @@ inline G4double G4ionIonisation::GetMeanFreePath(const G4Track& track,
#include "G4VSubCutoffProcessor.hh"
inline G4std::vector<G4Track*>* G4ionIonisation::SecondariesAlongStep(
inline std::vector<G4Track*>* G4ionIonisation::SecondariesAlongStep(
const G4Step& step,
G4double& tmax,
G4double& eloss,
G4double& kinEnergy)
{
G4std::vector<G4Track*>* newp = 0;
std::vector<G4Track*>* newp = 0;
if(subCutoff) {
G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex());
if (sp) {