Import Geant4 11.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2023-12-08 10:43:34 +01:00
parent dd1f179cda
commit 860a2b92bf
3962 changed files with 139318 additions and 164259 deletions
@@ -49,19 +49,19 @@ public:
G4DNACPA100LogLogInterpolation();
~G4DNACPA100LogLogInterpolation();
~G4DNACPA100LogLogInterpolation() override;
G4double Calculate(G4double point, G4int bin,
const G4DataVector& energies,
const G4DataVector& data) const;
const G4DataVector& data) const override;
G4double Calculate(G4double point, G4int bin,
const G4DataVector& energies,
const G4DataVector& data,
const G4DataVector& log_energies,
const G4DataVector& log_data) const;
const G4DataVector& log_data) const override;
virtual G4VDataSetAlgorithm* Clone() const;
G4VDataSetAlgorithm* Clone() const override;
private:
@@ -225,7 +225,7 @@ private:
std::unique_ptr<G4UIcmdWithoutParameter> fpInitChem;
static G4DNAChemistryManager* fgInstance;
G4bool fActiveChemistry;
G4bool fActiveChemistry{false};
struct ThreadLocalData{
ThreadLocalData();
@@ -236,20 +236,20 @@ private:
static G4ThreadLocal ThreadLocalData* fpThreadData;
G4bool fMasterInitialized;
G4bool fForceThreadReinitialization;
G4bool fMasterInitialized{false};
G4bool fForceThreadReinitialization{false};
std::unique_ptr<G4DNAWaterExcitationStructure> fpExcitationLevel;
std::unique_ptr<G4DNAWaterIonisationStructure> fpIonisationLevel;
std::unique_ptr<G4VUserChemistryList> fpUserChemistryList;
G4bool fOwnChemistryList;
G4bool fUseInStandalone;
G4bool fPhysicsTableBuilt;
G4bool fSkipReactions;
G4bool fOwnChemistryList{false};
G4bool fUseInStandalone{false};
G4bool fPhysicsTableBuilt{false};
G4bool fSkipReactions{false};
G4bool fGeometryClosed;
G4bool fGeometryClosed{false};
G4int fVerbose;
G4bool fResetCounterWhenRunEnds;
G4int fVerbose{0};
G4bool fResetCounterWhenRunEnds{true};
};
@@ -55,51 +55,55 @@ class G4DNACrossSectionDataSet : public G4VEMDataSet
{
public:
G4DNACrossSectionDataSet() = delete;
G4DNACrossSectionDataSet(G4VDataSetAlgorithm* algo,
G4double xUnit=CLHEP::MeV,
G4double dataUnit=CLHEP::barn);
virtual ~G4DNACrossSectionDataSet();
virtual G4double FindValue(G4double e, G4int componentId=0) const;
~G4DNACrossSectionDataSet() override;
virtual void PrintData(void) const;
G4DNACrossSectionDataSet(const G4DNACrossSectionDataSet & copy) = delete;
G4DNACrossSectionDataSet& operator=(const G4DNACrossSectionDataSet & right) = delete;
virtual const G4VEMDataSet* GetComponent(G4int componentId) const
G4double FindValue(G4double e, G4int componentId=0) const override;
void PrintData() const override;
const G4VEMDataSet* GetComponent(G4int componentId) const override
{ return components[componentId]; }
virtual void AddComponent(G4VEMDataSet* dataSet)
void AddComponent(G4VEMDataSet* dataSet) override
{ components.push_back(dataSet); }
virtual size_t NumberOfComponents(void) const
size_t NumberOfComponents() const override
{ return components.size(); }
virtual const G4DataVector& GetEnergies(G4int componentId) const
const G4DataVector& GetEnergies(G4int componentId) const override
{ return GetComponent(componentId)->GetEnergies(0); }
virtual const G4DataVector& GetData(G4int componentId) const
const G4DataVector& GetData(G4int componentId) const override
{ return GetComponent(componentId)->GetData(0); }
virtual const G4DataVector& GetLogEnergies(G4int componentId) const
const G4DataVector& GetLogEnergies(G4int componentId) const override
{ return GetComponent(componentId)->GetLogEnergies(0); }
virtual const G4DataVector& GetLogData(G4int componentId) const
const G4DataVector& GetLogData(G4int componentId) const override
{ return GetComponent(componentId)->GetLogData(0); }
virtual void SetEnergiesData(G4DataVector* x, G4DataVector* values, G4int componentId);
void SetEnergiesData(G4DataVector* x, G4DataVector* values, G4int componentId) override;
virtual void SetLogEnergiesData(G4DataVector* x,
void SetLogEnergiesData(G4DataVector* x,
G4DataVector* values,
G4DataVector* log_x,
G4DataVector* log_values,
G4int componentId);
G4int componentId) override;
virtual G4bool LoadData(const G4String & argFileName);
virtual G4bool LoadNonLogData(const G4String & argFileName);
G4bool LoadData(const G4String & argFileName) override;
G4bool LoadNonLogData(const G4String & argFileName) override;
virtual G4bool SaveData(const G4String & argFileName) const;
G4bool SaveData(const G4String & argFileName) const override;
virtual G4double RandomSelect(G4int /*componentId */) const { return -1.; };
G4double RandomSelect(G4int /*componentId */) const override { return -1.; };
// void CleanUpComponents();
@@ -108,11 +112,6 @@ private:
G4String FullFileName(const G4String & argFileName) const;
// Hide copy constructor and assignment operator
G4DNACrossSectionDataSet();
G4DNACrossSectionDataSet(const G4DNACrossSectionDataSet & copy);
G4DNACrossSectionDataSet& operator=(const G4DNACrossSectionDataSet & right);
std::vector<G4VEMDataSet*> components; // Owned pointers
G4int z;
@@ -126,7 +125,7 @@ private:
G4double GetUnitData() const { return unitData; }
const G4VDataSetAlgorithm* GetAlgorithm() const { return algorithm; }
void CleanUpComponents(void);
void CleanUpComponents();
};
@@ -51,8 +51,8 @@
class G4VDNAHit
{
public :
G4VDNAHit(){;}
virtual ~G4VDNAHit(){;}
G4VDNAHit()= default;
virtual ~G4VDNAHit()= default;
};
class G4DNAIndirectHit : public G4VDNAHit
@@ -60,7 +60,7 @@ class G4DNAIndirectHit : public G4VDNAHit
public :
G4DNAIndirectHit(const G4String& baseName, const G4Molecule* molecule,
const G4ThreeVector& position, G4double time);
virtual ~G4DNAIndirectHit();
~G4DNAIndirectHit() override;
inline const G4Molecule* GetMolecule() {return fpMolecule;}
inline const G4ThreeVector& GetPosition() {return fPosition;}
@@ -54,7 +54,7 @@ public:
private:
G4int nLevels;
G4int nLevels{5};
std::vector<G4double> energyConstant;
@@ -53,7 +53,7 @@ public:
private:
G4int nLevels;
G4int nLevels{5};
std::vector<G4double> energyConstant;
@@ -38,19 +38,19 @@
class G4DNAGenericIonsManager
{
public:
static G4DNAGenericIonsManager * Instance(void);
~G4DNAGenericIonsManager() = delete;
G4DNAGenericIonsManager(const G4DNAGenericIonsManager &) = delete;
const G4DNAGenericIonsManager &operator=(const G4DNAGenericIonsManager &) = delete;
static G4DNAGenericIonsManager * Instance();
G4ParticleDefinition * GetIon(const G4String & name);
private:
G4DNAGenericIonsManager();
~G4DNAGenericIonsManager();
G4DNAGenericIonsManager(const G4DNAGenericIonsManager &);
const G4DNAGenericIonsManager &operator=(const G4DNAGenericIonsManager &);
static G4DNAGenericIonsManager * theInstance;
typedef std::map<G4String, G4ParticleDefinition *> IonsMap;
using IonsMap = std::map<G4String, G4ParticleDefinition *>;
IonsMap map;
};
@@ -65,7 +65,7 @@ class G4DNAIons : public G4ParticleDefinition
);
public:
virtual ~G4DNAIons();
~G4DNAIons() override;
G4DNAIons* IonsDefinition();
G4DNAIons* Ions();
@@ -95,11 +95,14 @@ using ComponentMap = std::map<const G4Material*, G4double, CompareMaterial>;
class G4DNAMolecularMaterial: public G4VStateDependent
{
public:
G4DNAMolecularMaterial(const G4DNAMolecularMaterial& right) = delete;
G4DNAMolecularMaterial& operator=(const G4DNAMolecularMaterial&) = delete;
static G4DNAMolecularMaterial* Instance();
void Initialize();
void Clear();
virtual G4bool Notify(G4ApplicationState requestedState);
G4bool Notify(G4ApplicationState requestedState) override;
//----------------------------------------------------------------------------
@@ -221,9 +224,7 @@ public:
protected:
static G4DNAMolecularMaterial* fInstance;
G4DNAMolecularMaterial();
G4DNAMolecularMaterial(const G4DNAMolecularMaterial& right);
G4DNAMolecularMaterial& operator=(const G4DNAMolecularMaterial&);
virtual ~G4DNAMolecularMaterial();
~G4DNAMolecularMaterial() override;
void Create();
void InitializeNumMolPerVol();
void InitializeDensity();
@@ -127,7 +127,7 @@ public:
//----------------------------------------------------------------------------
// Temperature scaling
typedef std::function<double(double)> RateParam;
using RateParam = std::function<double (double)>;
static double PolynomialParam(double temp_K, std::vector<double> P);
static double ArrehniusParam(double temp_K, std::vector<double> P);
@@ -181,7 +181,7 @@ public:
static G4DNAMolecularReactionTable* GetReactionTable();
static G4DNAMolecularReactionTable* Instance();
static void DeleteInstance();
virtual ~G4DNAMolecularReactionTable();
~G4DNAMolecularReactionTable() override;
using Reactant = const G4MolecularConfiguration;
using Data = const G4DNAMolecularReactionData;
@@ -236,14 +236,14 @@ public:
void ScaleReactionRateForNewTemperature(double temp_K);
//_________________________________________________________________
void PrintTable(G4VDNAReactionModel* = 0);
void PrintTable(G4VDNAReactionModel* = nullptr);
void Reset();
protected:
G4bool fVerbose;
G4bool fVerbose{false};
G4VDNAMolecularGeometry* fGeometry;
G4VDNAMolecularGeometry* fGeometry{nullptr};
ReactionDataMap fReactionData;
ReactivesMV fReactantsMV;
ReactionDataMV fReactionDataMV;
@@ -32,6 +32,8 @@
#include <vector>
#include "G4MoleculeCounter.hh"
#include "G4VScavengerMaterial.hh"
#include "G4MoleculeTable.hh"
class G4Material;
class G4MolecularConfiguration;
class G4VChemistryWorld;
@@ -78,13 +80,14 @@ class G4DNAScavengerMaterial : public G4VScavengerMaterial
{
return it->second > 0;
}
else
{
return false;
}
return false;
}
void SetCounterAgainstTime() { fCounterAgainstTime = true; }
void SetpH(const G4int& ph);
G4double GetpH();
std::vector<MolType> GetScavengerList() const
{
@@ -108,6 +111,9 @@ class G4DNAScavengerMaterial : public G4VScavengerMaterial
CounterMapType fCounterMap;
G4bool fCounterAgainstTime;
G4int fVerbose;
MolType fH3Op = G4MoleculeTable::Instance()->GetConfiguration("H3Op(B)");
MolType fH2O = G4MoleculeTable::Instance()->GetConfiguration("H2O");
MolType fHOm = G4MoleculeTable::Instance()->GetConfiguration("OHm(B)");
struct Search
{
Search() { fLowerBoundSet = false; }
@@ -117,5 +123,7 @@ class G4DNAScavengerMaterial : public G4VScavengerMaterial
};
std::unique_ptr<Search> fpLastSearch;
void WaterEquilibrium();
};
#endif // G4DNASCAVENGERMATERIAL_HH
@@ -47,7 +47,7 @@ public:
private:
// Number of excitation levels of the water molecule
G4int nLevels;
G4int nLevels{5};
std::vector<G4double> energyConstant;
@@ -47,7 +47,7 @@ public:
private:
// Number of Ionisation levels of the water molecule
G4int nLevels;
G4int nLevels{5};
std::vector<G4double> energyConstant;
@@ -53,7 +53,6 @@
#define G4ERRORFUNCTION_HH_
#include "globals.hh"
#include <vector>
class G4ErrorFunction {
public:
@@ -101,9 +101,9 @@ template<typename TYPE>
class TG4MoleculeShoot : public G4MoleculeShoot
{
public:
TG4MoleculeShoot() : G4MoleculeShoot(){;}
virtual ~TG4MoleculeShoot(){;}
void Shoot(G4MoleculeGun*){}
TG4MoleculeShoot() : G4MoleculeShoot(){}
~TG4MoleculeShoot() override= default;
void Shoot(G4MoleculeGun*) override{}
protected:
void ShootAtRandomPosition(G4MoleculeGun*){}
@@ -129,9 +129,9 @@ class G4MoleculeGun : public G4ITGun
{
public:
G4MoleculeGun();
virtual ~G4MoleculeGun();
~G4MoleculeGun() override;
virtual void DefineTracks();
void DefineTracks() override;
/*
* Create a single molecule
@@ -192,7 +192,7 @@ public:
return fShoots;
}
typedef std::map<G4String, G4int> NameNumber;
using NameNumber = std::map<G4String, G4int>;
void GetNameAndNumber(NameNumber&);
@@ -67,9 +67,9 @@ public:
G4MoleculeShootMessenger(const G4String& name,
G4MoleculeGunMessenger*,
G4shared_ptr<G4MoleculeShoot>);
virtual ~G4MoleculeShootMessenger();
virtual void SetNewValue(G4UIcommand * command, G4String newValue);
virtual G4String GetCurrentValue(G4UIcommand * command);
~G4MoleculeShootMessenger() override;
void SetNewValue(G4UIcommand * command, G4String newValue) override;
G4String GetCurrentValue(G4UIcommand * command) override;
inline G4shared_ptr<G4MoleculeShoot>& GetShoot() {
return fpShoot;
@@ -92,10 +92,10 @@ class G4MoleculeGunMessenger : public G4UImessenger
public:
G4MoleculeGunMessenger(G4MoleculeGun*);
virtual ~G4MoleculeGunMessenger();
~G4MoleculeGunMessenger() override;
virtual void SetNewValue(G4UIcommand * command, G4String newValue);
virtual G4String GetCurrentValue(G4UIcommand * command);
void SetNewValue(G4UIcommand * command, G4String newValue) override;
G4String GetCurrentValue(G4UIcommand * command) override;
const std::vector<G4MoleculeShootMessenger*>&
GetShootMessengers() const
@@ -111,7 +111,7 @@ protected:
G4MoleculeShootMessenger* CreateNewType(const G4String& name)
{
G4shared_ptr<G4MoleculeShoot> moleculeShoot(new TG4MoleculeShoot<T>());
G4MoleculeShootMessenger* shoot =
auto shoot =
new G4MoleculeShootMessenger(name,
this,
moleculeShoot);
@@ -41,14 +41,14 @@ class FormattedText: public G4VPhysChemIO
{
public:
FormattedText();
virtual ~FormattedText();
~FormattedText() override;
virtual void InitializeMaster(){}
virtual void InitializeThread(){}
virtual void InitializeFile();
void InitializeMaster() override{}
void InitializeThread() override{}
void InitializeFile() override;
virtual void NewRun(){}
virtual void NewEvent(){}
void NewRun() override{}
void NewEvent() override{}
/**
* When DNA physics model create a water molecule, you'll get a notification
@@ -58,18 +58,18 @@ public:
* model and the IncomingTrack is the track responsible for the creation
* of this molecule (electron, proton...)
*/
virtual void CreateWaterMolecule(G4int electronicModif,
void CreateWaterMolecule(G4int electronicModif,
G4int /*electronicLevel*/,
G4double energy,
const G4Track* /*theIncomingTrack*/);
const G4Track* /*theIncomingTrack*/) override;
/**
* Same idea as the previous method but for solvated electron.
* This method should be used by the physics model of the ElectronSolvatation
* process.
*/
virtual void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
G4ThreeVector* finalPosition = 0);
void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
G4ThreeVector* finalPosition = nullptr) override;
//============================================================================
// FILE OPERATIONS
@@ -80,14 +80,14 @@ public:
* the position and electronic state of the water molecule
* and the position thermalized or not of the solvated electron
*/
virtual void WriteInto(const G4String&,
std::ios_base::openmode mode = std::ios_base::out);
virtual void AddEmptyLineInOutputFile();
void WriteInto(const G4String&,
std::ios_base::openmode mode = std::ios_base::out) override;
void AddEmptyLineInOutputFile() override;
/**
* Close the file specified with WriteInto
*/
virtual void CloseFile();
void CloseFile() override;
protected:
G4int fRunID; // unused
@@ -102,14 +102,14 @@ class G4Analysis: public G4VPhysChemIO
{
public:
G4Analysis(G4VAnalysisManager*);
virtual ~G4Analysis();
~G4Analysis() override;
virtual void InitializeMaster(){}
virtual void InitializeThread(){}
virtual void InitializeFile();
void InitializeMaster() override{}
void InitializeThread() override{}
void InitializeFile() override;
virtual void NewRun(){}
virtual void NewEvent(){}
void NewRun() override{}
void NewEvent() override{}
/**
* Method used by DNA physics model to create a water molecule.
@@ -118,18 +118,18 @@ public:
* model and the IncomingTrack is the track responsible for the creation
* of this molecule, for instance an electron.
*/
virtual void CreateWaterMolecule(G4int electronicModif,
void CreateWaterMolecule(G4int electronicModif,
G4int /*electronicLevel*/,
G4double energy,
const G4Track* /*theIncomingTrack*/);
const G4Track* /*theIncomingTrack*/) override;
/**
* Same idea as the previous method but for solvated electron.
* This method should be used by the physics model of the ElectronSolvatation
* process.
*/
virtual void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
G4ThreeVector* finalPosition = 0);
void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
G4ThreeVector* finalPosition = nullptr) override;
//============================================================================
// FILE OPERATIONS
@@ -140,14 +140,14 @@ public:
* the position and electronic state of the water molecule
* and the position thermalized or not of the solvated electron
*/
virtual void WriteInto(const G4String&, std::ios_base::openmode mode =
std::ios_base::out);
virtual void AddEmptyLineInOutputFile(){}
void WriteInto(const G4String&, std::ios_base::openmode mode =
std::ios_base::out) override;
void AddEmptyLineInOutputFile() override{}
/**
* Close the file specified with WriteInto
*/
virtual void CloseFile();
void CloseFile() override;
protected:
G4VAnalysisManager* fpAnalysisManager;
@@ -46,8 +46,8 @@ class G4ReactionTableMessenger : public G4UImessenger
{
public:
G4ReactionTableMessenger(G4DNAMolecularReactionTable*);
virtual ~G4ReactionTableMessenger();
virtual void SetNewValue(G4UIcommand * command,G4String newValue);
~G4ReactionTableMessenger() override;
void SetNewValue(G4UIcommand * command,G4String newValue) override;
protected:
G4DNAMolecularReactionTable* fpTable;
@@ -65,7 +65,7 @@ public :
G4VDNAReactionModel& operator=(const G4VDNAReactionModel&) = delete;
virtual ~G4VDNAReactionModel();
virtual void Initialise(const G4MolecularConfiguration*, const G4Track&) {;}
virtual void Initialise(const G4MolecularConfiguration*, const G4Track&) {}
virtual void InitialiseToPrint(const G4MolecularConfiguration*) = 0 ;
virtual G4double GetReactionRadius(const G4MolecularConfiguration*,
const G4MolecularConfiguration*) = 0;
@@ -79,5 +79,5 @@ public :
const G4DNAMolecularReactionTable* GetReactionTable();
protected :
const G4DNAMolecularReactionTable* fpReactionTable ;
const G4DNAMolecularReactionTable* fpReactionTable{nullptr} ;
};
@@ -72,7 +72,7 @@ public:
* process.
*/
virtual void CreateSolvatedElectron(const G4Track* /*theIncomingTrack*/,
G4ThreeVector* finalPosition = 0) = 0;
G4ThreeVector* finalPosition = nullptr) = 0;
//============================================================================
// FILE OPERATIONS