Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
View File
@@ -57,6 +57,7 @@
class G4ParticleDefinition;
class G4VEmProcess;
class G4VEnergyLossProcess;
class G4EmDataHandler
{
@@ -191,6 +191,10 @@ public:
// total number of models
inline G4int NumberOfModels() const;
// hide assignment operator
G4EmModelManager(G4EmModelManager &) = delete;
G4EmModelManager & operator=(const G4EmModelManager &right) = delete;
private:
inline G4double ComputeDEDX(G4VEmModel* model,
@@ -199,15 +203,8 @@ private:
G4double cutEnergy,
G4double minEnergy);
// hide assignment operator
G4EmModelManager(G4EmModelManager &) = delete;
G4EmModelManager & operator=(const G4EmModelManager &right) = delete;
// =====================================================================
private:
const G4DataVector* theCuts;
G4DataVector* theCutsNew;
G4DataVector* theSubCuts;
@@ -62,6 +62,13 @@
#include "G4Threading.hh"
#include <vector>
enum G4eSingleScatteringType
{
fWVI = 0,
fMott,
fDPWA
};
class G4EmParametersMessenger;
class G4EmExtraParameters;
class G4EmLowEParameters;
@@ -207,6 +214,8 @@ public:
void SetBremsstrahlungTh(G4double val);
G4double BremsstrahlungTh() const;
void SetMuHadBremsstrahlungTh(G4double val);
G4double MuHadBremsstrahlungTh() const;
void SetLambdaFactor(G4double val);
G4double LambdaFactor() const;
@@ -278,6 +287,9 @@ public:
void SetMscMuHadStepLimitType(G4MscStepLimitType val);
G4MscStepLimitType MscMuHadStepLimitType() const;
void SetSingleScatteringType(G4eSingleScatteringType val);
G4eSingleScatteringType SingleScatteringType() const;
void SetNuclearFormfactorType(G4NuclearFormfactorType val);
G4NuclearFormfactorType NuclearFormfactorType() const;
@@ -395,6 +407,7 @@ private:
G4double lowestTripletEnergy;
G4double linLossLimit;
G4double bremsTh;
G4double bremsMuHadTh;
G4double lambdaFactor;
G4double factorForAngleLimit;
G4double thetaLimit;
@@ -417,6 +430,7 @@ private:
G4MscStepLimitType mscStepLimit;
G4MscStepLimitType mscStepLimitMuHad;
G4NuclearFormfactorType nucFormfactor;
G4eSingleScatteringType fSStype;
#ifdef G4MULTITHREADED
static G4Mutex emParametersMutex;
@@ -110,6 +110,7 @@ private:
G4UIcmdWithADoubleAndUnit* lowhEnCmd;
G4UIcmdWithADouble* lllCmd;
G4UIcmdWithADoubleAndUnit* brCmd;
G4UIcmdWithADoubleAndUnit* br1Cmd;
G4UIcmdWithADouble* labCmd;
G4UIcmdWithADouble* mscfCmd;
G4UIcmdWithADoubleAndUnit* angCmd;
@@ -134,6 +135,7 @@ private:
G4UIcmdWithAString* mscCmd;
G4UIcmdWithAString* msc1Cmd;
G4UIcmdWithAString* nffCmd;
G4UIcmdWithAString* ssCmd;
G4UIcommand* dumpCmd;
@@ -60,11 +60,14 @@ enum G4EmProcessSubType
fGammaConversion = 14,
fGammaConversionToMuMu = 15,
fGammaGeneralProcess = 16,
fPositronGeneralProcess = 17,
fCerenkov = 21,
fScintillation = 22,
fSynchrotronRadiation = 23,
fTransitionRadiation = 24
fTransitionRadiation = 24,
fSurfaceReflection = 25
};
#endif
+1 -1
View File
@@ -94,7 +94,7 @@ public:
// dump G4 list
void DumpG4BirksCoefficients();
// this method should not be overwitten
// this method should not be overwritten
inline G4double VisibleEnergyDepositionAtAStep(const G4Step*) const;
inline void SetVerbose(G4int);
@@ -223,9 +223,13 @@ public:
inline G4VEmProcess* GetGammaGeneralProcess();
inline void SetElectronGeneralProcess(G4VEnergyLossProcess*);
inline void SetElectronGeneralProcess(G4VEmProcess*);
inline G4VEnergyLossProcess* GetElectronGeneralProcess();
inline G4VEmProcess* GetElectronGeneralProcess();
inline void SetPositronGeneralProcess(G4VEmProcess*);
inline G4VEmProcess* GetPositronGeneralProcess();
private:
@@ -294,7 +298,8 @@ private:
G4EmParameters* theParameters;
G4VEmProcess* gGeneral;
G4VEnergyLossProcess* eGeneral;
G4VEmProcess* eGeneral;
G4VEmProcess* pGeneral;
G4int verbose;
};
@@ -431,20 +436,32 @@ inline G4VEmProcess* G4LossTableManager::GetGammaGeneralProcess()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline
void G4LossTableManager::SetElectronGeneralProcess(G4VEnergyLossProcess* ptr)
inline void G4LossTableManager::SetElectronGeneralProcess(G4VEmProcess* ptr)
{
eGeneral = ptr;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4VEnergyLossProcess* G4LossTableManager::GetElectronGeneralProcess()
inline G4VEmProcess* G4LossTableManager::GetElectronGeneralProcess()
{
return eGeneral;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void G4LossTableManager::SetPositronGeneralProcess(G4VEmProcess* ptr)
{
pGeneral = ptr;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4VEmProcess* G4LossTableManager::GetPositronGeneralProcess()
{
return pGeneral;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#endif
View File
@@ -0,0 +1,272 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// -------------------------------------------------------------------
//
// GEANT4 Class header file
//
// File name: G4OpticalParameters
//
// Author: Daren Sawkey based on G4EmParameters
//
// Creation date: 14.07.2020
//
// Modifications:
//
//
// Class Description:
//
// A utility static class, responsable for keeping parameters
// for all optical physics processes and models.
//
// It is initialized by the master thread but can be updated
// at any moment. Parameters may be used in run time or at
// initialisation
//
// -------------------------------------------------------------------
//
#ifndef G4OpticalParameters_h
#define G4OpticalParameters_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4ThreeVector.hh"
#include "G4Threading.hh"
#include <vector>
class G4OpticalParametersMessenger;
class G4StateManager;
enum G4OpticalProcessIndex {
kCerenkov, ///< Cerenkov process index
kScintillation, ///< Scintillation process index
kAbsorption, ///< Absorption process index
kRayleigh, ///< Rayleigh scattering process index
kMieHG, ///< Mie scattering process index
kBoundary, ///< Boundary process index
kWLS, ///< Wave Length Shifting process index
kWLS2, ///< Second Wave Length Shifting process index
kNoProcess ///< Number of processes, no selected process
};
/// Return the name for a given optical process index
G4String G4OpticalProcessName(G4int );
inline
G4String G4OpticalProcessName(G4int processNumber)
{
switch ( processNumber ) {
case kCerenkov: return "Cerenkov";
case kScintillation: return "Scintillation";
case kAbsorption: return "OpAbsorption";
case kRayleigh: return "OpRayleigh";
case kMieHG: return "OpMieHG";
case kBoundary: return "OpBoundary";
case kWLS: return "OpWLS";
case kWLS2: return "OpWLS2";
default: return "NoProcess";
}
}
class G4OpticalParameters
{
public:
static G4OpticalParameters* Instance();
~G4OpticalParameters();
void SetDefaults();
// printing
void StreamInfo(std::ostream& os) const;
void Dump() const;
friend std::ostream& operator<< (std::ostream& os, const G4OpticalParameters&);
void SetVerboseLevel(G4int);
G4int GetVerboseLevel() const;
void SetProcessActivation(const G4String&, G4bool);
G4bool GetProcessActivation(const G4String&) const;
// DEPRECATED, use Set/GetProcessActivation instead
void Configure(G4OpticalProcessIndex, G4bool);
G4bool GetConfiguration(G4OpticalProcessIndex);
// DEPRECATED, use Set/GetCerenkovTrackSecondariesFirst and
// Set/GetScintTrackSecondariesFirst instead
void SetTrackSecondariesFirst(G4OpticalProcessIndex, G4bool);
G4bool GetTrackSecondariesFirst(G4OpticalProcessIndex);
// Cerenkov
void SetCerenkovMaxPhotonsPerStep(G4int);
G4int GetCerenkovMaxPhotonsPerStep() const;
void SetCerenkovVerboseLevel(G4int);
G4int GetCerenkovVerboseLevel() const;
void SetCerenkovMaxBetaChange(G4double);
G4double GetCerenkovMaxBetaChange() const;
void SetCerenkovTrackSecondariesFirst(G4bool);
G4bool GetCerenkovTrackSecondariesFirst() const;
void SetCerenkovStackPhotons(G4bool);
G4bool GetCerenkovStackPhotons() const;
// Scintillation
void SetScintYieldFactor(G4double);
G4double GetScintYieldFactor() const;
void SetScintExcitationRatio(G4double);
G4double GetScintExcitationRatio() const;
void SetScintByParticleType(G4bool);
G4bool GetScintByParticleType() const;
void SetScintTrackInfo(G4bool);
G4bool GetScintTrackInfo() const;
void SetScintTrackSecondariesFirst(G4bool);
G4bool GetScintTrackSecondariesFirst() const;
void SetScintFiniteRiseTime(G4bool);
G4bool GetScintFiniteRiseTime() const;
void SetScintStackPhotons(G4bool);
G4bool GetScintStackPhotons() const;
void SetScintVerboseLevel(G4int);
G4int GetScintVerboseLevel() const;
void SetScintEnhancedTimeConstants(G4bool);
G4bool GetScintEnhancedTimeConstants() const;
// WLS
void SetWLSTimeProfile(const G4String&);
G4String GetWLSTimeProfile() const;
void SetWLSVerboseLevel(G4int);
G4int GetWLSVerboseLevel() const;
// WLS2
void SetWLS2TimeProfile(const G4String&);
G4String GetWLS2TimeProfile() const;
void SetWLS2VerboseLevel(G4int);
G4int GetWLS2VerboseLevel() const;
// boundary
void SetBoundaryVerboseLevel(G4int);
G4int GetBoundaryVerboseLevel() const;
void SetBoundaryInvokeSD(G4bool);
G4bool GetBoundaryInvokeSD() const;
// absorption
void SetAbsorptionVerboseLevel(G4int);
G4int GetAbsorptionVerboseLevel() const;
// rayleigh
void SetRayleighVerboseLevel(G4int);
G4int GetRayleighVerboseLevel() const;
// mie
void SetMieVerboseLevel(G4int);
G4int GetMieVerboseLevel() const;
private:
G4OpticalParameters();
void Initialise();
G4bool IsLocked() const;
void PrintWarning(G4ExceptionDescription& ed) const;
static G4OpticalParameters* theInstance;
G4OpticalParametersMessenger* theMessenger;
G4StateManager* fStateManager;
G4int verboseLevel;
// Whether to activate each process
std::map<G4String, G4bool> processActivation;
// cerenkov/////////////////
G4bool cerenkovStackPhotons;
G4bool cerenkovTrackSecondariesFirst;
G4int cerenkovVerboseLevel;
G4int cerenkovMaxPhotons;
G4double cerenkovMaxBetaChange;
// scintillation /////////////////
G4double scintYieldFactor;
/// Note: this is to be removed in the next major release.
/// Use material properties SCINTILLATIONYIELD1, 2, 3 instead
G4double scintExcitationRatio;
/// option to set a finite rise-time; Note: the G4Scintillation
/// process expects the user to have set the constant material
/// property FAST/SLOWSCINTILLATIONRISETIME
G4bool scintFiniteRiseTime;
/// option to allow for the light yield to be a function of
/// particle type and deposited energy in case of non-linear
/// light emission in scintillators
G4bool scintByParticleType;
/// option to allow for G4ScintillationTrackInformation
/// to be attached to a scintillation photon's track
G4bool scintTrackInfo;
/// option to allow stacking of secondary Scintillation photons
G4bool scintStackPhotons;
/// new in version 10.7; allow > 2 time constants, and > 1 time
/// constant for scintillation by particle type
G4bool scintEnhancedTimeConstants;
G4int scintVerboseLevel;
G4bool scintTrackSecondariesFirst;
///////////////// WLS
G4String wlsTimeProfileName;
G4int wlsVerboseLevel;
///////////////// WLS2
G4String wls2TimeProfileName;
G4int wls2VerboseLevel;
//////////////// absorption
G4int absorptionVerboseLevel;
//////////////// rayleigh
G4int rayleighVerboseLevel;
//////////////// mie
G4int mieVerboseLevel;
//////////////// boundary
/// G4OpBoundaryProcess to call InvokeSD method
G4bool boundaryInvokeSD;
G4int boundaryVerboseLevel;
#ifdef G4MULTITHREADED
static G4Mutex opticalParametersMutex;
#endif
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,174 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
//---------------------------------------------------------------------------
//
// ClassName: G4OpticalPhysicsMessenger
//
// Author: P.Gumplinger 30.09.2009
//
// Modified: P.Gumplinger 29.09.2011
// (based on code from I. Hrivnacova)
//
//----------------------------------------------------------------------------
//
// This class defines commands for the optical physics
//
#ifndef G4OpticalParametersMessenger_h
#define G4OpticalParametersMessenger_h 1
#include "G4UImessenger.hh"
//#include "G4OpticalProcessIndex.hh"
#include "globals.hh"
class G4VProcess;
class G4OpticalParameters;
class G4UIdirectory;
class G4UIcmdWithABool;
class G4UIcmdWithADouble;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4UIcommand;
// Messenger class that defines commands for the optical physics
class G4OpticalParametersMessenger: public G4UImessenger
{
public:
G4OpticalParametersMessenger(G4OpticalParameters*);
virtual ~G4OpticalParametersMessenger();
// methods
virtual void SetNewValue(G4UIcommand*, G4String);
private:
G4OpticalParametersMessenger() = delete;
G4OpticalParametersMessenger(const G4OpticalParametersMessenger& right) = delete;
G4OpticalParametersMessenger& operator=(const G4OpticalParametersMessenger& right) = delete;
void Deprecated(void);
// data members
/// associated class
G4OpticalParameters* params;
/// command directory
G4UIdirectory* fDir;
G4UIdirectory* fDir2;
/// selected optical process
//G4OpticalProcessIndex fSelectedProcessIndex;
/// selectOpProcess command
G4UIcommand* fActivateProcessCmd;
/// setProcessVerbose command
G4UIcmdWithAnInteger* fVerboseCmd;
/// setTrackSecondariesFirst command
G4UIcommand* fTrackSecondariesFirstCmd;
// Cerenkov
// setCerenkovMaxPhotons command
G4UIcmdWithAnInteger* fCerenkovMaxPhotonsCmd;
G4UIcmdWithAnInteger* fCerenkovMaxPhotons1Cmd;
/// setCerenkovMaxBetaChange command
G4UIcmdWithADouble* fCerenkovMaxBetaChangeCmd;
G4UIcmdWithADouble* fCerenkovMaxBetaChange1Cmd;
/// setStackPhotons command
G4UIcmdWithABool* fCerenkovStackPhotonsCmd;
G4UIcmdWithABool* fCerenkovStackPhotons1Cmd;
G4UIcmdWithABool* fCerenkovTrackSecondariesFirstCmd;
G4UIcmdWithAnInteger* fCerenkovVerboseLevelCmd;
// Scintillation
// setScintillationYieldFactor command
G4UIcmdWithADouble* fScintYieldFactorCmd;
G4UIcmdWithADouble* fScintYieldFactor1Cmd;
/// setScintillationByParticleType command
G4UIcmdWithABool* fScintByParticleTypeCmd;
G4UIcmdWithABool* fScintByParticleType1Cmd;
/// setScintillationTrackInfo command
G4UIcmdWithABool* fScintTrackInfoCmd;
G4UIcmdWithABool* fScintTrackInfo1Cmd;
/// setStackPhotons command
G4UIcmdWithABool* fScintStackPhotonsCmd;
G4UIcmdWithABool* fScintStackPhotons1Cmd;
G4UIcmdWithADouble* fScintExcitationRatioCmd;
G4UIcmdWithABool* fScintTrackSecondariesFirstCmd;
/// setFiniteRiseTime command
G4UIcmdWithABool* fScintFiniteRiseTimeCmd;
G4UIcmdWithABool* fScintFiniteRiseTime1Cmd;
// setEnhancedTimeConstants commnad
G4UIcmdWithABool* fScintEnhancedTimeConstantsCmd;
G4UIcmdWithAnInteger* fScintVerboseLevelCmd;
// WLS
/// setWLSTimeProfile command
G4UIcmdWithAString* fWLSTimeProfileCmd;
G4UIcmdWithAString* fWLSTimeProfile1Cmd;
G4UIcmdWithAnInteger* fWLSVerboseLevelCmd;
// WLS2
/// setWLS2TimeProfile command
G4UIcmdWithAString* fWLS2TimeProfileCmd;
G4UIcmdWithAnInteger* fWLS2VerboseLevelCmd;
/// setInvokeSD command
G4UIcmdWithABool* fBoundaryInvokeSDCmd;
G4UIcmdWithABool* fBoundaryInvokeSD1Cmd;
G4UIcmdWithAnInteger* fBoundaryVerboseLevelCmd;
G4UIcmdWithAnInteger* fAbsorptionVerboseLevelCmd;
G4UIcmdWithAnInteger* fRayleighVerboseLevelCmd;
G4UIcmdWithAnInteger* fMieVerboseLevelCmd;
G4UIcommand* fDumpCmd;
};
#endif // G4OpticalParametersMessenger_h
+2 -2
View File
@@ -157,12 +157,12 @@ public:
G4double& eLoss,
G4int coupleIndex);
private:
// copy constructor and hide assignment operator
G4VAtomDeexcitation(G4VAtomDeexcitation &) = delete;
G4VAtomDeexcitation & operator=(const G4VAtomDeexcitation &right) = delete;
private:
G4EmParameters* theParameters;
const G4ParticleDefinition* gamma;
@@ -50,7 +50,6 @@
#define G4VEmAngularDistribution_h 1
#include "globals.hh"
#include "Randomize.hh"
#include "G4ThreeVector.hh"
#include "G4DynamicParticle.hh"
@@ -92,17 +91,18 @@ public:
inline const G4String& GetName() const;
protected:
G4ThreeVector fLocalDirection;
private:
// hide assignment operator
G4VEmAngularDistribution &
operator=(const G4VEmAngularDistribution &right) = delete;
G4VEmAngularDistribution(const G4VEmAngularDistribution&) = delete;
protected:
G4ThreeVector fLocalDirection;
G4bool fPolarisation;
private:
G4String fName;
};
@@ -55,7 +55,6 @@
#ifndef G4VEmFluctuationModel_h
#define G4VEmFluctuationModel_h 1
#include "globals.hh"
#include <CLHEP/Random/RandomEngine.h>
@@ -103,13 +102,13 @@ public:
inline const G4String& GetName() const;
private:
// hide assignment operator
G4VEmFluctuationModel &
operator=(const G4VEmFluctuationModel &right) = delete;
G4VEmFluctuationModel(const G4VEmFluctuationModel&) = delete;
private:
const G4String name;
G4LossTableManager* fManager;
};
@@ -124,15 +124,15 @@ public:
// Methods for initialisation of MT; may be overwritten if needed
//------------------------------------------------------------------------
// initilisation in local thread
// initialisation in local thread
virtual void InitialiseLocal(const G4ParticleDefinition*,
G4VEmModel* masterModel);
// initilisation of a new material at run time
// initialisation of a new material at run time
virtual void InitialiseForMaterial(const G4ParticleDefinition*,
const G4Material*);
// initilisation of a new element at run time
// initialisation of a new element at run time
virtual void InitialiseForElement(const G4ParticleDefinition*,
G4int Z);
@@ -211,7 +211,7 @@ public:
virtual G4double MinEnergyCut(const G4ParticleDefinition*,
const G4MaterialCutsCouple*);
// initilisation at run time for a given material
// initialisation at run time for a given material
virtual void SetupForMaterial(const G4ParticleDefinition*,
const G4Material*,
G4double kineticEnergy);
@@ -393,6 +393,10 @@ public:
inline void SetLocked(G4bool);
// hide assignment operator
G4VEmModel & operator=(const G4VEmModel &right) = delete;
G4VEmModel(const G4VEmModel&) = delete;
protected:
inline const G4MaterialCutsCouple* CurrentCouple() const;
@@ -401,10 +405,6 @@ protected:
private:
// hide assignment operator
G4VEmModel & operator=(const G4VEmModel &right);
G4VEmModel(const G4VEmModel&);
// ======== Parameters of the class fixed at construction =========
G4VEmFluctuationModel* flucModel;
@@ -138,7 +138,7 @@ public:
// (return true if the Physics Table can be build by using file)
// (return false if the process has no functionality or in case of failure)
// File name should is constructed as processName+particleName and the
// should be placed under the directory specifed by the argument.
// should be placed under the directory specified by the argument.
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition*,
const G4String& directory,
G4bool ascii) override;
@@ -84,6 +84,8 @@ public:
void InitialiseParameters(const G4ParticleDefinition*);
void DumpParameters(std::ostream& out) const;
// empty method
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
@@ -172,12 +174,12 @@ public:
G4double kinEnergy,
G4double logKinEnergy);
private:
// hide assignment operator
G4VMscModel & operator=(const G4VMscModel &right) = delete;
G4VMscModel(const G4VMscModel&) = delete;
private:
G4SafetyHelper* safetyHelper;
G4VEnergyLossProcess* ionisation;
const G4ParticleDefinition* currentPart;
@@ -136,7 +136,7 @@ public:
// (return true if the Physics Table can be build by using file)
// (return false if the process has no functionality or in case of failure)
// File name should is constructed as processName+particleName and the
// should be placed under the directory specifed by the argument.
// should be placed under the directory specified by the argument.
G4bool RetrievePhysicsTable(const G4ParticleDefinition*,
const G4String& directory,
G4bool ascii) override;