Import Geant4 11.2.0 source tree
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
// Created by ngoc hoang tran on 03/08/2023.
|
||||
//
|
||||
|
||||
#ifndef G4ChemEquilibrium_hh
|
||||
#define G4ChemEquilibrium_hh 1
|
||||
#include "globals.hh"
|
||||
#include "G4MoleculeTable.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
class G4DNAMolecularReactionData;
|
||||
class G4ChemEquilibrium //for each Equilibrium process
|
||||
{
|
||||
public:
|
||||
using MolType = const G4MolecularConfiguration*;
|
||||
using Reaction = const G4DNAMolecularReactionData*;
|
||||
explicit G4ChemEquilibrium(const G4int& type, const G4double& time);
|
||||
~G4ChemEquilibrium() = default;
|
||||
void Initialize();
|
||||
inline G4bool IsStatusChanged()
|
||||
{
|
||||
if(fStatus == fAddEquilibrium){
|
||||
return false;
|
||||
}else
|
||||
{
|
||||
fStatus = fAddEquilibrium;
|
||||
if(fVerbose > 0)
|
||||
{
|
||||
PrintInfo();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
inline void Reset()
|
||||
{
|
||||
fStatus = false;
|
||||
fAddEquilibrium = false;
|
||||
fEquilibriumTime = 0;
|
||||
fGlobalTime = 0;
|
||||
}
|
||||
|
||||
inline void SetVerbose(const G4int& verbose)
|
||||
{
|
||||
fVerbose = verbose;
|
||||
}
|
||||
|
||||
inline void SetGlobalTime(const G4double& time)
|
||||
{
|
||||
fGlobalTime = time;
|
||||
|
||||
if(fGlobalTime - fEquilibriumTime > fEquilibriumDuration && fAddEquilibrium)
|
||||
{
|
||||
fAddEquilibrium = false;
|
||||
if(fVerbose) {
|
||||
G4cout << "SetEquilibrium : off " << fRectionType
|
||||
<< " fGlobalTime : " << G4BestUnit(fGlobalTime, "Time")
|
||||
<< " fEquilibriumTime8 : " << G4BestUnit(fEquilibriumTime, "Time")
|
||||
<< " fAddEquilibrium : " << fAddEquilibrium << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
void SetEquilibrium(Reaction pReaction);
|
||||
|
||||
inline G4bool GetEquilibriumStatus() const
|
||||
{
|
||||
return fAddEquilibrium;
|
||||
}
|
||||
|
||||
void PrintInfo() const;
|
||||
private:
|
||||
G4bool fStatus = false;
|
||||
G4bool fAddEquilibrium = false;
|
||||
G4double fEquilibriumTime = 0;
|
||||
const G4double fEquilibriumDuration = 0;
|
||||
G4int fRectionType = 0;
|
||||
MolType fReactant1 = nullptr;
|
||||
MolType fReactant2 = nullptr;
|
||||
MolType fReactantB1 = nullptr;
|
||||
MolType fReactantB2 = nullptr;
|
||||
G4double fGlobalTime = 0;
|
||||
G4int fVerbose = 1;
|
||||
};
|
||||
|
||||
#endif //
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "G4DNABornExcitationModel2.hh"
|
||||
|
||||
#ifndef G4DNABornExcitationModel
|
||||
typedef G4DNABornExcitationModel1 G4DNABornExcitationModel;
|
||||
using G4DNABornExcitationModel = G4DNABornExcitationModel1;
|
||||
//typedef G4DNABornExcitationModel2 G4DNABornExcitationModel;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -42,30 +42,33 @@
|
||||
class G4DNABornExcitationModel1: public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNABornExcitationModel1(const G4ParticleDefinition* p = 0,
|
||||
G4DNABornExcitationModel1(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNABornExcitationModel");
|
||||
|
||||
virtual ~G4DNABornExcitationModel1();
|
||||
~G4DNABornExcitationModel1() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNABornExcitationModel1 & operator=(const G4DNABornExcitationModel1 &right) = delete;
|
||||
G4DNABornExcitationModel1(const G4DNABornExcitationModel1&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetPartialCrossSection(const G4Material*,
|
||||
G4double GetPartialCrossSection(const G4Material*,
|
||||
G4int level,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
G4double kineticEnergy) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -80,23 +83,20 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpMolWaterDensity;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
const G4ParticleDefinition* fParticleDefinition;
|
||||
|
||||
G4double fLowEnergy;
|
||||
G4double fHighEnergy;
|
||||
G4String fTableFile;
|
||||
G4DNACrossSectionDataSet* fTableData;
|
||||
G4DNACrossSectionDataSet* fTableData{nullptr};
|
||||
|
||||
// Partial cross section
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
G4DNAWaterExcitationStructure waterStructure;
|
||||
|
||||
//
|
||||
G4DNABornExcitationModel1 & operator=(const G4DNABornExcitationModel1 &right);
|
||||
G4DNABornExcitationModel1(const G4DNABornExcitationModel1&);
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -44,30 +44,33 @@ class G4PhysicsVector;
|
||||
class G4DNABornExcitationModel2: public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNABornExcitationModel2(const G4ParticleDefinition* p = 0,
|
||||
G4DNABornExcitationModel2(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNABornExcitationModel");
|
||||
|
||||
virtual ~G4DNABornExcitationModel2();
|
||||
~G4DNABornExcitationModel2() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNABornExcitationModel2 & operator=(const G4DNABornExcitationModel2 &right) = delete;
|
||||
G4DNABornExcitationModel2(const G4DNABornExcitationModel2&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetPartialCrossSection(const G4Material*,
|
||||
G4double GetPartialCrossSection(const G4Material*,
|
||||
G4int level,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
G4double kineticEnergy) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -82,14 +85,14 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpMolWaterDensity;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
const G4ParticleDefinition* fParticleDefinition;
|
||||
|
||||
G4double fLowEnergy;
|
||||
G4double fHighEnergy;
|
||||
|
||||
G4PhysicsTable* fTableData;
|
||||
G4PhysicsTable* fTableData{nullptr};
|
||||
G4PhysicsVector* fTotalXS;
|
||||
size_t fLastBinCallForFinalXS;
|
||||
|
||||
@@ -99,8 +102,6 @@ private:
|
||||
G4DNAWaterExcitationStructure waterStructure;
|
||||
|
||||
//
|
||||
G4DNABornExcitationModel2 & operator=(const G4DNABornExcitationModel2 &right);
|
||||
G4DNABornExcitationModel2(const G4DNABornExcitationModel2&);
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -49,29 +49,32 @@ class G4DNABornIonisationModel1 : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNABornIonisationModel1(const G4ParticleDefinition* p = 0,
|
||||
G4DNABornIonisationModel1(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNABornIonisationModel");
|
||||
|
||||
virtual ~G4DNABornIonisationModel1();
|
||||
~G4DNABornIonisationModel1() override;
|
||||
|
||||
G4DNABornIonisationModel1 & operator=(const G4DNABornIonisationModel1 &right) = delete;
|
||||
G4DNABornIonisationModel1(const G4DNABornIonisationModel1&) = delete;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector()));
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double GetPartialCrossSection(const G4Material*,
|
||||
G4double GetPartialCrossSection(const G4Material*,
|
||||
G4int /*level*/,
|
||||
const G4ParticleDefinition*,
|
||||
G4double /*kineticEnergy*/);
|
||||
G4double /*kineticEnergy*/) override;
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double energyTransfer, G4int shell);
|
||||
|
||||
@@ -107,15 +110,15 @@ private:
|
||||
// std::map<const G4ParticleDefinition*,std::pair<G4double,G4double> > fEnergyLimits;
|
||||
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
using MapFile = std::map<G4String, G4String, std::less<G4String>>;
|
||||
MapFile tableFile; // useful ?
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
using MapData = std::map<G4String, G4DNACrossSectionDataSet *, std::less<G4String>>;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
@@ -141,7 +144,7 @@ private:
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
|
||||
TriDimensionMap eDiffCrossSectionData[6];
|
||||
TriDimensionMap eNrjTransfData[6]; // for cumulated dcs
|
||||
@@ -152,7 +155,7 @@ private:
|
||||
std::vector<G4double> eTdummyVec;
|
||||
std::vector<G4double> pTdummyVec;
|
||||
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
|
||||
VecMap eVecm;
|
||||
VecMap pVecm;
|
||||
@@ -164,11 +167,6 @@ private:
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
//
|
||||
|
||||
G4DNABornIonisationModel1 & operator=(const G4DNABornIonisationModel1 &right);
|
||||
G4DNABornIonisationModel1(const G4DNABornIonisationModel1&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNABornIonisationModel1::SelectFasterComputation (G4bool input)
|
||||
|
||||
@@ -49,29 +49,32 @@ class G4DNABornIonisationModel2 : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNABornIonisationModel2(const G4ParticleDefinition* p = 0,
|
||||
G4DNABornIonisationModel2(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNABornIonisationModel");
|
||||
|
||||
virtual ~G4DNABornIonisationModel2();
|
||||
~G4DNABornIonisationModel2() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNABornIonisationModel2 & operator=(const G4DNABornIonisationModel2 &right) = delete;
|
||||
G4DNABornIonisationModel2(const G4DNABornIonisationModel2&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double GetPartialCrossSection(const G4Material*,
|
||||
G4double GetPartialCrossSection(const G4Material*,
|
||||
G4int /*level*/,
|
||||
const G4ParticleDefinition*,
|
||||
G4double /*kineticEnergy*/);
|
||||
G4double /*kineticEnergy*/) override;
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double energyTransfer, G4int shell);
|
||||
|
||||
@@ -104,7 +107,7 @@ private:
|
||||
|
||||
const G4ParticleDefinition* fParticleDef;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
@@ -134,14 +137,14 @@ private:
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
|
||||
TriDimensionMap fDiffCrossSectionData[6];
|
||||
TriDimensionMap fNrjTransfData[6]; // for cumulated dcs
|
||||
|
||||
std::vector<G4double> fTdummyVec;
|
||||
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
|
||||
VecMap fVecm;
|
||||
VecMap fProbaShellMap[6]; // for cumulated dcs
|
||||
@@ -150,11 +153,6 @@ private:
|
||||
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
//
|
||||
|
||||
G4DNABornIonisationModel2 & operator=(const G4DNABornIonisationModel2 &right);
|
||||
G4DNABornIonisationModel2(const G4DNABornIonisationModel2&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -42,25 +42,28 @@ class G4DNAChampionElasticModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAChampionElasticModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAChampionElasticModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAChampionElasticModel");
|
||||
|
||||
virtual ~G4DNAChampionElasticModel();
|
||||
~G4DNAChampionElasticModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
G4DNAChampionElasticModel & operator=(const G4DNAChampionElasticModel &right) = delete;
|
||||
G4DNAChampionElasticModel(const G4DNAChampionElasticModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
void SetKillBelowThreshold(G4double threshold);
|
||||
|
||||
@@ -79,9 +82,9 @@ public:
|
||||
|
||||
private:
|
||||
// Cross section
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
VecMap eVecm;
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
TriDimensionMap eDiffCrossSectionData;
|
||||
std::vector<G4double> eTdummyVec;
|
||||
|
||||
@@ -96,7 +99,7 @@ protected:
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
|
||||
// Final state
|
||||
|
||||
@@ -140,10 +143,6 @@ private:
|
||||
|
||||
G4double RandomizeCosTheta(G4double k);
|
||||
|
||||
//
|
||||
|
||||
G4DNAChampionElasticModel & operator=(const G4DNAChampionElasticModel &right);
|
||||
G4DNAChampionElasticModel(const G4DNAChampionElasticModel&);
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+5
-7
@@ -41,11 +41,14 @@ class G4DNADingfelderChargeDecreaseModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNADingfelderChargeDecreaseModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNADingfelderChargeDecreaseModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNADingfelderChargeDecreaseModel");
|
||||
|
||||
~G4DNADingfelderChargeDecreaseModel() override = default;
|
||||
|
||||
G4DNADingfelderChargeDecreaseModel & operator=(const G4DNADingfelderChargeDecreaseModel &right) = delete;
|
||||
G4DNADingfelderChargeDecreaseModel(const G4DNADingfelderChargeDecreaseModel&) = delete;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
@@ -76,7 +79,7 @@ private:
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Partial cross section
|
||||
@@ -109,11 +112,6 @@ private:
|
||||
|
||||
G4double OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
//
|
||||
|
||||
G4DNADingfelderChargeDecreaseModel & operator=(const G4DNADingfelderChargeDecreaseModel &right);
|
||||
G4DNADingfelderChargeDecreaseModel(const G4DNADingfelderChargeDecreaseModel&);
|
||||
|
||||
// Reusable particle definitions
|
||||
G4ParticleDefinition* protonDef = nullptr;
|
||||
G4ParticleDefinition* alphaPlusPlusDef = nullptr;
|
||||
|
||||
+4
-2
@@ -43,6 +43,10 @@ public:
|
||||
explicit G4DNADingfelderChargeIncreaseModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNADingfelderChargeIncreaseModel");
|
||||
~G4DNADingfelderChargeIncreaseModel() override = default;
|
||||
|
||||
G4DNADingfelderChargeIncreaseModel & operator=(const G4DNADingfelderChargeIncreaseModel &right)= delete;
|
||||
G4DNADingfelderChargeIncreaseModel(const G4DNADingfelderChargeIncreaseModel&) = delete;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
@@ -96,8 +100,6 @@ private:
|
||||
G4int NumberOfFinalStates(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4ParticleDefinition* OutgoingParticleDefinition(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4double IncomingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4DNADingfelderChargeIncreaseModel & operator=(const G4DNADingfelderChargeIncreaseModel &right)= delete;
|
||||
G4DNADingfelderChargeIncreaseModel(const G4DNADingfelderChargeIncreaseModel&) = delete;
|
||||
// Reusable particle definitions
|
||||
G4ParticleDefinition* hydrogenDef = nullptr;
|
||||
G4ParticleDefinition* alphaPlusPlusDef = nullptr;
|
||||
|
||||
+13
-17
@@ -52,19 +52,24 @@ class G4DNADiracRMatrixExcitationModel: public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNADiracRMatrixExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNADiracRMatrixExcitationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNADiracRMatrixExcitationModel");
|
||||
|
||||
virtual ~G4DNADiracRMatrixExcitationModel();
|
||||
~G4DNADiracRMatrixExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNADiracRMatrixExcitationModel & operator
|
||||
=(const G4DNADiracRMatrixExcitationModel &right) = delete;
|
||||
G4DNADiracRMatrixExcitationModel(const G4DNADiracRMatrixExcitationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetExtendedTotalCrossSection (const G4Material* material,
|
||||
const G4ParticleDefinition*,
|
||||
@@ -75,11 +80,11 @@ public:
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -93,10 +98,6 @@ private:
|
||||
const G4double paramFuncTCS_5dto6s2[3]={-3e-50 , 4.24498e-15, -0.674543}; // y = [0]+[1]/pow(x-[2],2)
|
||||
const G4double paramFuncTCS_6sto6p1[3]={ 1.50018e-26, 2.459e-15 ,-40.8088 }; // y = [0]+[1]*log(x-[2])/(x-[2])
|
||||
const G4double paramFuncTCS_6sto6p2[3]={ 1.26684e-25, 3.97221e-15,-55.6954 }; // y = [0]+[1]*log(x-[2])/(x-[2])
|
||||
const G4int ShellEnumAu [4]={19 , 20 ,21 , 21 };
|
||||
// 5d3/2 ,6s1/2 ,6s1/2 //from EADL
|
||||
const G4double BindingEnergyAu [4]={12.16 ,10.46 , 8.3 , 8.3 };
|
||||
// [eV] 5d3/2 ,6s1/2 ,6s1/2 //from EADL
|
||||
const G4double ExcitationEnergyAu[4]={ 2.66 , 1.14 , 4.63 , 5.11};
|
||||
// [eV] 5dto6s1,6sto6p1,6sto6p2
|
||||
|
||||
@@ -112,17 +113,12 @@ private:
|
||||
G4DNACrossSectionDataSet* fTableData=nullptr;
|
||||
const std::vector<G4double>* fpMaterialDensity=nullptr;
|
||||
const G4ParticleDefinition* fParticleDefinition=nullptr;
|
||||
G4VAtomDeexcitation* fAtomDeexcitation=nullptr;
|
||||
|
||||
G4int RandomSelect(const G4Material* material,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
|
||||
|
||||
G4DNADiracRMatrixExcitationModel & operator
|
||||
=(const G4DNADiracRMatrixExcitationModel &right);
|
||||
G4DNADiracRMatrixExcitationModel(const G4DNADiracRMatrixExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNADiracRMatrixExcitationModel::SelectStationary(G4bool input)
|
||||
|
||||
@@ -51,25 +51,28 @@ class G4DNAELSEPAElasticModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAELSEPAElasticModel(const G4ParticleDefinition* particle = 0,
|
||||
G4DNAELSEPAElasticModel(const G4ParticleDefinition* particle = nullptr,
|
||||
const G4String& nam = "DNAELSEPAElasticModel");
|
||||
|
||||
virtual ~G4DNAELSEPAElasticModel();
|
||||
~G4DNAELSEPAElasticModel() override;
|
||||
|
||||
virtual void Initialise(
|
||||
const G4ParticleDefinition* particle, const G4DataVector&);
|
||||
G4DNAELSEPAElasticModel & operator=(const G4DNAELSEPAElasticModel &right) = delete;
|
||||
G4DNAELSEPAElasticModel(const G4DNAELSEPAElasticModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(
|
||||
const G4ParticleDefinition* particle, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* particle,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
void SetMaximumEnergy (G4double input)
|
||||
{fhighEnergyLimit = input; SetHighEnergyLimit(input);};
|
||||
@@ -140,26 +143,22 @@ private:
|
||||
|
||||
G4double RandomizeCosTheta(G4int Z, G4double k);
|
||||
|
||||
typedef std::map<G4int,std::map<G4double,std::map<G4double,G4double>>>
|
||||
TriDimensionMapZ;
|
||||
using TriDimensionMapZ = std::map<G4int, std::map<G4double, std::map<G4double, G4double>>>;
|
||||
TriDimensionMapZ fAngleDataZ;
|
||||
|
||||
std::map <G4int, std::vector<G4double> > eEdummyVecZ;
|
||||
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
VecMap eCum_Au;
|
||||
VecMap eCum_H2O;
|
||||
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
TriDimensionMap fAngleData_Au;
|
||||
TriDimensionMap fAngleData_H2O;
|
||||
|
||||
std::vector<G4double> eEdummyVec_Au;
|
||||
std::vector<G4double> eEdummyVec_H2O;
|
||||
|
||||
G4DNAELSEPAElasticModel & operator=(const G4DNAELSEPAElasticModel &right);
|
||||
G4DNAELSEPAElasticModel(const G4DNAELSEPAElasticModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+14
-16
@@ -52,26 +52,29 @@ class G4DNAEmfietzoglouExcitationModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAEmfietzoglouExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAEmfietzoglouExcitationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam =
|
||||
"DNAEmfietzoglouExcitationModel");
|
||||
|
||||
virtual ~G4DNAEmfietzoglouExcitationModel();
|
||||
~G4DNAEmfietzoglouExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNAEmfietzoglouExcitationModel & operator=(const G4DNAEmfietzoglouExcitationModel &right) = delete;
|
||||
G4DNAEmfietzoglouExcitationModel(const G4DNAEmfietzoglouExcitationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -89,15 +92,15 @@ private:
|
||||
std::map<G4String, G4double, std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String, G4double, std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String, G4String, std::less<G4String> > MapFile;
|
||||
using MapFile = std::map<G4String, G4String, std::less<G4String>>;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> > MapData;
|
||||
using MapData = std::map<G4String, G4DNACrossSectionDataSet *, std::less<G4String>>;
|
||||
MapData tableData;
|
||||
|
||||
// Partial cross section
|
||||
@@ -108,11 +111,6 @@ private:
|
||||
|
||||
G4DNAEmfietzoglouWaterExcitationStructure waterStructure;
|
||||
|
||||
//
|
||||
|
||||
G4DNAEmfietzoglouExcitationModel & operator=(const G4DNAEmfietzoglouExcitationModel &right);
|
||||
G4DNAEmfietzoglouExcitationModel(const G4DNAEmfietzoglouExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+16
-18
@@ -54,26 +54,29 @@ class G4DNAEmfietzoglouIonisationModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAEmfietzoglouIonisationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAEmfietzoglouIonisationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam =
|
||||
"DNAEmfietzoglouIonisationModel");
|
||||
|
||||
virtual ~G4DNAEmfietzoglouIonisationModel();
|
||||
~G4DNAEmfietzoglouIonisationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNAEmfietzoglouIonisationModel & operator=(const G4DNAEmfietzoglouIonisationModel &right) = delete;
|
||||
G4DNAEmfietzoglouIonisationModel(const G4DNAEmfietzoglouIonisationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition,
|
||||
G4double k,
|
||||
@@ -103,15 +106,15 @@ private:
|
||||
std::map<G4String, G4double, std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String, G4double, std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String, G4String, std::less<G4String> > MapFile;
|
||||
using MapFile = std::map<G4String, G4String, std::less<G4String>>;
|
||||
MapFile tableFile; // useful ?
|
||||
|
||||
typedef std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> > MapData;
|
||||
using MapData = std::map<G4String, G4DNACrossSectionDataSet *, std::less<G4String>>;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
@@ -149,7 +152,7 @@ private:
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
|
||||
TriDimensionMap eDiffCrossSectionData[6];
|
||||
TriDimensionMap eNrjTransfData[6]; // for cumulated dcs
|
||||
@@ -158,7 +161,7 @@ private:
|
||||
|
||||
std::vector<G4double> eTdummyVec;
|
||||
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
|
||||
VecMap eVecm;
|
||||
|
||||
@@ -168,11 +171,6 @@ private:
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4String& particle);
|
||||
|
||||
//
|
||||
|
||||
G4DNAEmfietzoglouIonisationModel & operator=(const G4DNAEmfietzoglouIonisationModel &right);
|
||||
G4DNAEmfietzoglouIonisationModel(const G4DNAEmfietzoglouIonisationModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNAEmfietzoglouIonisationModel::SelectFasterComputation(G4bool input)
|
||||
|
||||
@@ -123,5 +123,7 @@ class G4DNAEventScheduler : public IEventScheduler
|
||||
std::map<G4double /*time*/, MapCounter> fCounterMap;
|
||||
std::set<G4double> fTimeToRecord;
|
||||
std::set<G4double>::iterator fLastRecoredTime;
|
||||
void ResetEventSet();
|
||||
void LastRegisterForCounter();
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
class G4DNAMolecularReactionData;
|
||||
class G4DNAScavengerMaterial;
|
||||
class G4MolecularConfiguration;
|
||||
class G4ChemEquilibrium;
|
||||
class G4DNAGillespieDirectMethod
|
||||
{
|
||||
public:
|
||||
@@ -55,7 +56,15 @@ class G4DNAGillespieDirectMethod
|
||||
void SetTimeStep(const G4double& stepTime);
|
||||
void Initialize();
|
||||
void CreateEvent(const Index& index);
|
||||
void CreateEvents();
|
||||
void SetEventSet(G4DNAEventSet*);
|
||||
inline void SetVerbose(const G4int& verbose)
|
||||
{
|
||||
fVerbose = verbose;
|
||||
}
|
||||
G4bool SetEquilibrium(const G4DNAMolecularReactionData* pReaction);
|
||||
void ResetEquilibrium();
|
||||
|
||||
|
||||
private:
|
||||
G4double Reaction(const Voxel& voxel);
|
||||
@@ -71,5 +80,8 @@ class G4DNAGillespieDirectMethod
|
||||
std::map<G4double /*Propensity*/, JumpingData> fJumpingDataMap;
|
||||
G4bool FindScavenging(const Voxel& voxel, MolType, G4double&);
|
||||
G4DNAScavengerMaterial* fpScavengerMaterial = nullptr;
|
||||
std::map<G4int,std::unique_ptr<G4ChemEquilibrium>> fEquilibriumProcesses;
|
||||
G4bool IsEquilibrium(const G4int& reactionType) const;
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -35,27 +35,23 @@
|
||||
#define G4DNAIRT_HH_
|
||||
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
#include "G4DNAMolecularReaction.hh"
|
||||
#include "G4DNAMolecularReactionTable.hh"
|
||||
#include "G4MoleculeTable.hh"
|
||||
|
||||
#include "G4VDNAReactionModel.hh"
|
||||
#include "G4VITReactionProcess.hh"
|
||||
|
||||
#include "G4ITReaction.hh"
|
||||
#include "G4ITReactionTable.hh"
|
||||
#include "G4ITTrackHolder.hh"
|
||||
#include "G4ITReaction.hh"
|
||||
|
||||
#include "G4Molecule.hh"
|
||||
#include "G4VITReactionProcess.hh"
|
||||
#include "G4MoleculeTable.hh"
|
||||
#include "G4ParticleChange.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4VDNAReactionModel.hh"
|
||||
#include "G4VITReactionProcess.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "AddClone_def.hh"
|
||||
#include <vector>
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
class G4DNAMolecularReactionTable;
|
||||
class G4VDNAReactionModel;
|
||||
|
||||
+7
-7
@@ -60,13 +60,13 @@ class G4DNAIRTMoleculeEncounterStepper : public G4VITTimeStepComputer
|
||||
{
|
||||
public:
|
||||
G4DNAIRTMoleculeEncounterStepper();
|
||||
virtual ~G4DNAIRTMoleculeEncounterStepper();
|
||||
~G4DNAIRTMoleculeEncounterStepper() override;
|
||||
G4DNAIRTMoleculeEncounterStepper(const G4DNAIRTMoleculeEncounterStepper&) = delete;
|
||||
G4DNAIRTMoleculeEncounterStepper& operator=(const G4DNAIRTMoleculeEncounterStepper&) = delete;
|
||||
|
||||
virtual void Prepare();
|
||||
virtual G4double CalculateStep(const G4Track&, const G4double&);
|
||||
virtual G4double CalculateMinTimeStep(G4double, G4double);
|
||||
void Prepare() override;
|
||||
G4double CalculateStep(const G4Track&, const G4double&) override;
|
||||
G4double CalculateMinTimeStep(G4double, G4double) override;
|
||||
|
||||
void SetReactionModel(G4VDNAReactionModel*);
|
||||
G4VDNAReactionModel* GetReactionModel();
|
||||
@@ -85,13 +85,13 @@ private:
|
||||
#endif
|
||||
G4KDTreeResultHandle&);
|
||||
|
||||
G4bool fHasAlreadyReachedNullTime;
|
||||
G4bool fHasAlreadyReachedNullTime{false};
|
||||
|
||||
const G4DNAMolecularReactionTable*& fMolecularReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
G4VDNAReactionModel* fReactionModel{nullptr};
|
||||
G4ITReactionSet* fReactionSet;
|
||||
G4ITTrackHolder* fpTrackContainer;
|
||||
G4int fVerbose;
|
||||
G4int fVerbose{0};
|
||||
|
||||
class Utils
|
||||
{
|
||||
|
||||
@@ -48,25 +48,29 @@ class G4DNAIonElasticModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAIonElasticModel (const G4ParticleDefinition* p = 0,
|
||||
G4DNAIonElasticModel (const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam ="DNAIonElasticModel");
|
||||
|
||||
virtual
|
||||
~G4DNAIonElasticModel ();
|
||||
|
||||
~G4DNAIonElasticModel () override;
|
||||
|
||||
virtual void
|
||||
G4DNAIonElasticModel &
|
||||
operator= (const G4DNAIonElasticModel &right) = delete;
|
||||
G4DNAIonElasticModel (const G4DNAIonElasticModel&) = delete;
|
||||
|
||||
void
|
||||
Initialise (const G4ParticleDefinition* particuleDefinition,
|
||||
const G4DataVector&);
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual G4double
|
||||
G4double
|
||||
CrossSectionPerVolume (const G4Material* material,
|
||||
const G4ParticleDefinition* p, G4double ekin,
|
||||
G4double emin, G4double emax);
|
||||
G4double emin, G4double emax) override;
|
||||
|
||||
virtual void
|
||||
void
|
||||
SampleSecondaries (std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*, const G4DynamicParticle*,
|
||||
G4double tmin, G4double maxEnergy);
|
||||
G4double tmin, G4double maxEnergy) override;
|
||||
|
||||
void
|
||||
SetKillBelowThreshold (G4double threshold);
|
||||
@@ -93,7 +97,7 @@ private:
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
G4double fParticle_Mass;
|
||||
@@ -124,23 +128,17 @@ private:
|
||||
LinLinInterpolate (G4double e1, G4double e2, G4double e, G4double xs1,
|
||||
G4double xs2);
|
||||
|
||||
typedef std::map<G4double, std::map<G4double, G4double> > TriDimensionMap;
|
||||
using TriDimensionMap = std::map<G4double, std::map<G4double, G4double>>;
|
||||
TriDimensionMap fDiffCrossSectionData;
|
||||
|
||||
std::vector<G4double> eTdummyVec;
|
||||
|
||||
typedef std::map<G4double, std::vector<G4double> > VecMap;
|
||||
using VecMap = std::map<G4double, std::vector<G4double>>;
|
||||
VecMap eVecm;
|
||||
|
||||
G4double
|
||||
RandomizeThetaCM (G4double k, G4ParticleDefinition * aParticleDefinition);
|
||||
|
||||
//
|
||||
|
||||
G4DNAIonElasticModel &
|
||||
operator= (const G4DNAIonElasticModel &right);
|
||||
G4DNAIonElasticModel (const G4DNAIonElasticModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -43,24 +43,27 @@
|
||||
class G4DNAMeltonAttachmentModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNAMeltonAttachmentModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAMeltonAttachmentModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAMeltonAttachmentModel");
|
||||
|
||||
virtual ~G4DNAMeltonAttachmentModel();
|
||||
~G4DNAMeltonAttachmentModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
G4DNAMeltonAttachmentModel & operator=(const G4DNAMeltonAttachmentModel &right) = delete;
|
||||
G4DNAMeltonAttachmentModel(const G4DNAMeltonAttachmentModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SetDissociationFlag(G4bool);
|
||||
inline G4bool GetDissociationFlag();
|
||||
@@ -76,16 +79,13 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
G4bool fDissociationFlag;
|
||||
|
||||
// Cross section
|
||||
G4DNACrossSectionDataSet* fData;
|
||||
|
||||
//
|
||||
G4DNAMeltonAttachmentModel & operator=(const G4DNAMeltonAttachmentModel &right);
|
||||
G4DNAMeltonAttachmentModel(const G4DNAMeltonAttachmentModel&);
|
||||
};
|
||||
|
||||
inline void G4DNAMeltonAttachmentModel::SetDissociationFlag(G4bool flag)
|
||||
|
||||
+14
-14
@@ -45,29 +45,33 @@ class G4DNAMillerGreenExcitationModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAMillerGreenExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAMillerGreenExcitationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAMillerGreenExcitationModel");
|
||||
|
||||
virtual ~G4DNAMillerGreenExcitationModel();
|
||||
~G4DNAMillerGreenExcitationModel() override;
|
||||
|
||||
G4DNAMillerGreenExcitationModel & operator=(const G4DNAMillerGreenExcitationModel &right) = delete;
|
||||
G4DNAMillerGreenExcitationModel(const G4DNAMillerGreenExcitationModel&) = delete;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetPartialCrossSection(const G4Material*,
|
||||
G4double GetPartialCrossSection(const G4Material*,
|
||||
G4int /*level*/,
|
||||
const G4ParticleDefinition*,
|
||||
G4double /*kineticEnergy*/);
|
||||
G4double /*kineticEnergy*/) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -85,7 +89,7 @@ private:
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
@@ -127,10 +131,6 @@ private:
|
||||
G4double sCoefficient[3][4];
|
||||
|
||||
//
|
||||
|
||||
G4DNAMillerGreenExcitationModel & operator=(const G4DNAMillerGreenExcitationModel &right);
|
||||
G4DNAMillerGreenExcitationModel(const G4DNAMillerGreenExcitationModel&);
|
||||
|
||||
// Reusable particle definitions
|
||||
G4ParticleDefinition* protonDef = nullptr;
|
||||
G4ParticleDefinition* hydrogenDef = nullptr;
|
||||
|
||||
@@ -56,6 +56,9 @@ using MaterialParticleModelTable =
|
||||
*/
|
||||
~G4DNAModelInterface() override = default;
|
||||
|
||||
G4DNAModelInterface(const G4DNAModelInterface&) = delete; // prevent copy-construction
|
||||
G4DNAModelInterface& operator=(const G4DNAModelInterface& right) = delete; // prevent assignement
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
* Initialise method to call all the initialise methods of the registered models
|
||||
@@ -140,9 +143,6 @@ using MaterialParticleModelTable =
|
||||
G4double GetNumMolPerVolUnitForComponentInComposite(
|
||||
const G4Material* component, const G4Material* composite);
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAModelInterface(const G4DNAModelInterface&) = delete; // prevent copy-construction
|
||||
G4DNAModelInterface& operator=(const G4DNAModelInterface& right) = delete; // prevent assignement
|
||||
const G4String fName; ///< name of the interaction
|
||||
G4ParticleChangeForGamma* fpParticleChangeForGamma = nullptr;
|
||||
std::vector<G4VEmModel*> fRegisteredModels; ///< vector containing all the registered models
|
||||
|
||||
+7
-7
@@ -71,13 +71,13 @@ class G4DNAMoleculeEncounterStepper : public G4VITTimeStepComputer
|
||||
{
|
||||
public:
|
||||
G4DNAMoleculeEncounterStepper();
|
||||
virtual ~G4DNAMoleculeEncounterStepper();
|
||||
~G4DNAMoleculeEncounterStepper() override;
|
||||
G4DNAMoleculeEncounterStepper(const G4DNAMoleculeEncounterStepper&) = delete;
|
||||
G4DNAMoleculeEncounterStepper& operator=(const G4DNAMoleculeEncounterStepper&) = delete;
|
||||
|
||||
virtual void Prepare();
|
||||
virtual G4double CalculateStep(const G4Track&, const G4double&);
|
||||
virtual G4double CalculateMinTimeStep(G4double, G4double);
|
||||
void Prepare() override;
|
||||
G4double CalculateStep(const G4Track&, const G4double&) override;
|
||||
G4double CalculateMinTimeStep(G4double, G4double) override;
|
||||
|
||||
void SetReactionModel(G4VDNAReactionModel*);
|
||||
G4VDNAReactionModel* GetReactionModel();
|
||||
@@ -96,12 +96,12 @@ private:
|
||||
#endif
|
||||
G4KDTreeResultHandle&);
|
||||
|
||||
G4bool fHasAlreadyReachedNullTime;
|
||||
G4bool fHasAlreadyReachedNullTime{false};
|
||||
const G4DNAMolecularReactionTable*& fMolecularReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
G4VDNAReactionModel* fReactionModel{nullptr};
|
||||
G4ITTrackHolder* fpTrackContainer;
|
||||
G4ITReactionSet* fReactionSet;
|
||||
G4int fVerbose;
|
||||
G4int fVerbose{0};
|
||||
|
||||
class Utils
|
||||
{
|
||||
|
||||
+10
-10
@@ -137,25 +137,25 @@ template<typename MODEL=DNA::Penetration::Meesungnoen2002>
|
||||
class G4TDNAOneStepThermalizationModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
typedef MODEL Model;
|
||||
G4TDNAOneStepThermalizationModel(const G4ParticleDefinition* p = 0,
|
||||
using Model = MODEL;
|
||||
G4TDNAOneStepThermalizationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam =
|
||||
"DNAOneStepThermalizationModel");
|
||||
virtual ~G4TDNAOneStepThermalizationModel();
|
||||
~G4TDNAOneStepThermalizationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SetVerbose(int flag){
|
||||
fVerboseLevel = flag;
|
||||
@@ -170,7 +170,7 @@ protected:
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4ParticleChangeForGamma* fpParticleChangeForGamma;
|
||||
G4bool fIsInitialised;
|
||||
G4bool fIsInitialised{false};
|
||||
G4int fVerboseLevel;
|
||||
std::unique_ptr<G4Navigator> fpNavigator;
|
||||
|
||||
@@ -182,7 +182,7 @@ private:
|
||||
|
||||
#include "G4DNAOneStepThermalizationModel.hpp"
|
||||
|
||||
typedef G4TDNAOneStepThermalizationModel<DNA::Penetration::Meesungnoen2002> G4DNAOneStepThermalizationModel;
|
||||
using G4DNAOneStepThermalizationModel = G4TDNAOneStepThermalizationModel<DNA::Penetration::Meesungnoen2002>;
|
||||
|
||||
// typedef G4TDNAOneStepThermalizationModel<DNA::Penetration::Terrisol1990> G4DNAOneStepThermalizationModel;
|
||||
// Note: if you use the above distribution, it would be
|
||||
|
||||
+15
-16
@@ -35,16 +35,18 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4DNAWaterExcitationStructure.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4DNAChemistryManager.hh"
|
||||
#include "G4DNAMolecularMaterial.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4DNAWaterExcitationStructure.hh"
|
||||
#include "G4ITNavigator.hh"
|
||||
#include "G4Navigator.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
|
||||
#include <memory>
|
||||
|
||||
//#define MODEL_VERBOSE
|
||||
|
||||
@@ -54,24 +56,21 @@ template<typename MODEL>
|
||||
G4TDNAOneStepThermalizationModel<MODEL>::
|
||||
G4TDNAOneStepThermalizationModel(const G4ParticleDefinition*,
|
||||
const G4String& nam) :
|
||||
G4VEmModel(nam), fIsInitialised(false)
|
||||
G4VEmModel(nam)
|
||||
{
|
||||
fVerboseLevel = 0;
|
||||
SetLowEnergyLimit(0.);
|
||||
G4DNAWaterExcitationStructure exStructure;
|
||||
SetHighEnergyLimit(exStructure.ExcitationEnergy(0));
|
||||
fpParticleChangeForGamma = 0;
|
||||
fpWaterDensity = 0;
|
||||
fpParticleChangeForGamma = nullptr;
|
||||
fpWaterDensity = nullptr;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
template<typename MODEL>
|
||||
G4TDNAOneStepThermalizationModel<MODEL>::~G4TDNAOneStepThermalizationModel()
|
||||
{
|
||||
// if(fpNavigator && fpNavigator->GetNavigatorState())
|
||||
// delete fpNavigator->GetNavigatorState();
|
||||
}
|
||||
= default;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
template<typename MODEL>
|
||||
@@ -105,11 +104,11 @@ Initialise(const G4ParticleDefinition* particleDefinition,
|
||||
G4TransportationManager::GetTransportationManager()->
|
||||
GetNavigatorForTracking();
|
||||
|
||||
fpNavigator.reset(new G4Navigator());
|
||||
fpNavigator = std::make_unique<G4Navigator>();
|
||||
|
||||
if(navigator){ // add these checks for testing mode
|
||||
if(navigator != nullptr){ // add these checks for testing mode
|
||||
auto world=navigator->GetWorldVolume();
|
||||
if(world){
|
||||
if(world != nullptr){
|
||||
fpNavigator->SetWorldVolume(world);
|
||||
//fNavigator->NewNavigatorState();
|
||||
}
|
||||
|
||||
@@ -74,7 +74,9 @@ public:
|
||||
*/
|
||||
virtual ~G4DNAPTBAugerModel();
|
||||
|
||||
|
||||
G4DNAPTBAugerModel(G4DNAPTBAugerModel &) = delete; // prevent copy-construction
|
||||
G4DNAPTBAugerModel & operator=(const G4DNAPTBAugerModel &right) = delete; // prevent assignement
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
* Set the verbose value
|
||||
@@ -128,10 +130,7 @@ private:
|
||||
*/
|
||||
G4int DetermineIonisedAtom(G4int atomId, const G4String &materialName, G4double bindingEnergy);
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBAugerModel(G4DNAPTBAugerModel &); // prevent copy-construction
|
||||
G4DNAPTBAugerModel & operator=(const G4DNAPTBAugerModel &right); // prevent assignement
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -68,6 +68,11 @@ class G4DNAPTBElasticModel : public G4VDNAModel
|
||||
*/
|
||||
~G4DNAPTBElasticModel() override = default;
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBElasticModel(G4DNAPTBElasticModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBElasticModel& operator=(
|
||||
const G4DNAPTBElasticModel& right) = delete; // prevent assignement
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
* Mandatory method for every model class. The material/particle for which the model
|
||||
@@ -216,10 +221,6 @@ class G4DNAPTBElasticModel : public G4VDNAModel
|
||||
*/
|
||||
G4double RandomizeCosTheta(const G4double& k, const std::size_t& materialName);
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBElasticModel(G4DNAPTBElasticModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBElasticModel& operator=(
|
||||
const G4DNAPTBElasticModel& right) = delete; // prevent assignement
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -67,6 +67,11 @@ class G4DNAPTBExcitationModel : public G4VDNAModel
|
||||
*/
|
||||
~G4DNAPTBExcitationModel() override = default;
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBExcitationModel(const G4DNAPTBExcitationModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBExcitationModel& operator=(
|
||||
const G4DNAPTBExcitationModel& right) = delete; // prevent assignement
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
* Set the materials for which the model can be used and defined the energy limits
|
||||
@@ -113,11 +118,6 @@ class G4DNAPTBExcitationModel : public G4VDNAModel
|
||||
|
||||
MapMeanEnergy fTableMeanEnergyPTB; ///< map: [materialName]=energyValue
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBExcitationModel(const G4DNAPTBExcitationModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBExcitationModel& operator=(
|
||||
const G4DNAPTBExcitationModel& right) = delete; // prevent assignement
|
||||
|
||||
G4Material* fpGuanine_PU = nullptr;
|
||||
G4Material* fpTHF = nullptr;
|
||||
G4Material* fpPY = nullptr;
|
||||
|
||||
@@ -76,6 +76,12 @@ class G4DNAPTBIonisationModel : public G4VDNAModel
|
||||
*/
|
||||
~G4DNAPTBIonisationModel() override = default;
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBIonisationModel(const G4DNAPTBIonisationModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBIonisationModel& operator=(
|
||||
const G4DNAPTBIonisationModel& right) = delete; // prevent assignement
|
||||
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
* Method called once at the beginning of the simulation. It is used to setup the list of the
|
||||
@@ -193,11 +199,6 @@ class G4DNAPTBIonisationModel : public G4VDNAModel
|
||||
*/
|
||||
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAPTBIonisationModel(const G4DNAPTBIonisationModel&) = delete; // prevent copy-construction
|
||||
G4DNAPTBIonisationModel& operator=(
|
||||
const G4DNAPTBIonisationModel& right) = delete; // prevent assignement
|
||||
|
||||
G4Material* fpGuanine_PU = nullptr;
|
||||
G4Material* fpTHF = nullptr;
|
||||
G4Material* fpPY = nullptr;
|
||||
|
||||
+11
-11
@@ -43,29 +43,32 @@ class G4DNAQuinnPlasmonExcitationModel: public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNAQuinnPlasmonExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAQuinnPlasmonExcitationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAQuinnPlasmonExcitationModel");
|
||||
|
||||
virtual ~G4DNAQuinnPlasmonExcitationModel();
|
||||
~G4DNAQuinnPlasmonExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNAQuinnPlasmonExcitationModel & operator=(const G4DNAQuinnPlasmonExcitationModel &right) = delete;
|
||||
G4DNAQuinnPlasmonExcitationModel(const G4DNAQuinnPlasmonExcitationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetCrossSection(const G4Material* material,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -87,9 +90,6 @@ private:
|
||||
|
||||
G4int GetNValenceElectron(G4int z);
|
||||
|
||||
G4DNAQuinnPlasmonExcitationModel & operator=(const G4DNAQuinnPlasmonExcitationModel &right);
|
||||
G4DNAQuinnPlasmonExcitationModel(const G4DNAQuinnPlasmonExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+17
-20
@@ -46,38 +46,42 @@
|
||||
class G4DNARelativisticIonisationModel: public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNARelativisticIonisationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNARelativisticIonisationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNARelativisticIonisationModel");
|
||||
|
||||
virtual ~G4DNARelativisticIonisationModel();
|
||||
~G4DNARelativisticIonisationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector()));
|
||||
G4DNARelativisticIonisationModel & operator
|
||||
=(const G4DNARelativisticIonisationModel &right) = delete;
|
||||
G4DNARelativisticIonisationModel(const G4DNARelativisticIonisationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector& = *(new G4DataVector())) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual G4double GetTotalCrossSection (const G4Material* material,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
virtual G4double GetPartialCrossSection(const G4Material* material,
|
||||
G4double GetPartialCrossSection(const G4Material* material,
|
||||
G4int level,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy);
|
||||
G4double kineticEnergy) override;
|
||||
virtual G4double GetDifferentialCrossSection(const G4Material* material,
|
||||
const G4ParticleDefinition* particle,
|
||||
G4double kineticEnergy,
|
||||
G4double secondaryEnergy,
|
||||
G4int level);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
virtual void LoadAtomicStates(G4int z, const char *path);
|
||||
inline void SelectStationary (G4bool input){statCode = input;};
|
||||
inline void SelectFasterComputation(G4bool input){fasterCode = input;};
|
||||
@@ -98,24 +102,17 @@ private:
|
||||
|
||||
std::map <G4int, std::vector<G4double> > eVecEZ;
|
||||
|
||||
typedef std::map <G4int, std::map<G4double, std::vector<G4double> > >
|
||||
DeauxDimensionVecMapZ;
|
||||
using DeauxDimensionVecMapZ = std::map<G4int, std::map<G4double, std::vector<G4double>>>;
|
||||
DeauxDimensionVecMapZ eVecEjeEZ;
|
||||
|
||||
typedef std::map <G4int, std::map<G4int,std::map<G4double,
|
||||
std::vector<G4double> > > > TriDimensionVecMapZ;
|
||||
using TriDimensionVecMapZ = std::map<G4int, std::map<G4int, std::map<G4double, std::vector<G4double>>>>;
|
||||
TriDimensionVecMapZ eProbaShellMapZ;
|
||||
|
||||
typedef std::map <G4int, std::map<G4int, std::map<G4double,
|
||||
std::map<G4double, G4double> > > > QuadDimensionMapZ;
|
||||
using QuadDimensionMapZ = std::map<G4int, std::map<G4int, std::map<G4double, std::map<G4double, G4double>>>>;
|
||||
QuadDimensionMapZ eDiffCrossSectionDataZ;
|
||||
QuadDimensionMapZ eEjectedEnergyDataZ;
|
||||
|
||||
|
||||
G4DNARelativisticIonisationModel & operator
|
||||
=(const G4DNARelativisticIonisationModel &right);
|
||||
G4DNARelativisticIonisationModel(const G4DNARelativisticIonisationModel&);
|
||||
|
||||
G4double fLowEnergyLimit=0.;
|
||||
G4double fHighEnergyLimit=0.;
|
||||
|
||||
|
||||
@@ -47,24 +47,27 @@ class G4DNARuddIonisationModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4DNARuddIonisationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNARuddIonisationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNARuddIonisationModel");
|
||||
|
||||
virtual ~G4DNARuddIonisationModel();
|
||||
~G4DNARuddIonisationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
G4DNARuddIonisationModel & operator=(const G4DNARuddIonisationModel &right) = delete;
|
||||
G4DNARuddIonisationModel(const G4DNARuddIonisationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SelectStationary(G4bool input);
|
||||
|
||||
@@ -92,15 +95,15 @@ private:
|
||||
G4double killBelowEnergyForZ1;
|
||||
G4double killBelowEnergyForZ2;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
using MapFile = std::map<G4String, G4String, std::less<G4String>>;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
using MapData = std::map<G4String, G4DNACrossSectionDataSet *, std::less<G4String>>;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
@@ -150,11 +153,6 @@ private:
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
//
|
||||
|
||||
G4DNARuddIonisationModel & operator=(const G4DNARuddIonisationModel &right);
|
||||
G4DNARuddIonisationModel(const G4DNARuddIonisationModel&);
|
||||
|
||||
// Reusable particle definitions
|
||||
G4ParticleDefinition* protonDef = nullptr;
|
||||
G4ParticleDefinition* hydrogenDef = nullptr;
|
||||
|
||||
@@ -43,25 +43,28 @@
|
||||
class G4DNASancheExcitationModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNASancheExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNASancheExcitationModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNASancheExcitationModel");
|
||||
|
||||
virtual ~G4DNASancheExcitationModel();
|
||||
~G4DNASancheExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
G4DNASancheExcitationModel & operator=(const G4DNASancheExcitationModel &right) = delete;
|
||||
G4DNASancheExcitationModel(const G4DNASancheExcitationModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
// Cross section
|
||||
|
||||
@@ -88,7 +91,7 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
@@ -110,10 +113,6 @@ private:
|
||||
std::vector<std::vector<G4double>> fEnergyLevelXS;
|
||||
std::vector<G4double> fEnergyTotalXS;
|
||||
|
||||
//
|
||||
G4DNASancheExcitationModel & operator=(const G4DNASancheExcitationModel &right);
|
||||
G4DNASancheExcitationModel(const G4DNASancheExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+12
-12
@@ -38,24 +38,28 @@
|
||||
class G4DNAScreenedRutherfordElasticModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAScreenedRutherfordElasticModel");
|
||||
|
||||
virtual ~G4DNAScreenedRutherfordElasticModel();
|
||||
~G4DNAScreenedRutherfordElasticModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
G4DNAScreenedRutherfordElasticModel& operator=
|
||||
(const G4DNAScreenedRutherfordElasticModel &right) = delete;
|
||||
G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
|
||||
@@ -81,7 +85,7 @@ private:
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
G4bool fasterCode;
|
||||
|
||||
// -- Cross section
|
||||
@@ -96,10 +100,6 @@ private:
|
||||
// -- Final state according to Screened Rutherford
|
||||
G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z);
|
||||
|
||||
//
|
||||
G4DNAScreenedRutherfordElasticModel& operator=
|
||||
(const G4DNAScreenedRutherfordElasticModel &right);
|
||||
G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&);
|
||||
};
|
||||
|
||||
inline void
|
||||
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
double fXmaxDef;
|
||||
double fXminDef;
|
||||
double fToleranceY;
|
||||
double fSum;
|
||||
double fSum{0};
|
||||
double fIncreasingCumulativeFunction;
|
||||
|
||||
enum PreviousAction
|
||||
@@ -158,8 +158,7 @@ public:
|
||||
double xmax,
|
||||
double toleranceY) :
|
||||
fXmax(xmax), fXmin(xmin),
|
||||
fToleranceY(toleranceY),
|
||||
fSum(0)
|
||||
fToleranceY(toleranceY)
|
||||
{
|
||||
if(fXmax < fXmin)
|
||||
{
|
||||
@@ -309,7 +308,7 @@ public:
|
||||
|
||||
double GetInverseProbability(double proba) // returns sTransform
|
||||
{
|
||||
size_t index_low = (size_t) trunc(proba/fEpsilon);
|
||||
auto index_low = (size_t) trunc(proba/fEpsilon);
|
||||
|
||||
if(index_low == 0) // assymptote en 0
|
||||
{
|
||||
|
||||
+9
-9
@@ -64,23 +64,23 @@ class G4DNASmoluchowskiReactionModel : public G4VDNAReactionModel
|
||||
{
|
||||
public :
|
||||
G4DNASmoluchowskiReactionModel();
|
||||
virtual ~G4DNASmoluchowskiReactionModel();
|
||||
~G4DNASmoluchowskiReactionModel() override;
|
||||
|
||||
G4DNASmoluchowskiReactionModel(const G4DNASmoluchowskiReactionModel&) = delete;
|
||||
G4DNASmoluchowskiReactionModel& operator=(const G4DNASmoluchowskiReactionModel&) = delete;
|
||||
|
||||
virtual void Initialise(const G4MolecularConfiguration*, const G4Track&) ;
|
||||
virtual void InitialiseToPrint(const G4MolecularConfiguration*) ;
|
||||
virtual G4double GetReactionRadius(const G4MolecularConfiguration*,
|
||||
const G4MolecularConfiguration*);
|
||||
virtual G4double GetReactionRadius(const G4int&);
|
||||
void Initialise(const G4MolecularConfiguration*, const G4Track&) override ;
|
||||
void InitialiseToPrint(const G4MolecularConfiguration*) override ;
|
||||
G4double GetReactionRadius(const G4MolecularConfiguration*,
|
||||
const G4MolecularConfiguration*) override;
|
||||
G4double GetReactionRadius(const G4int&) override;
|
||||
|
||||
virtual G4bool FindReaction(const G4Track&,
|
||||
G4bool FindReaction(const G4Track&,
|
||||
const G4Track&,
|
||||
G4double /*reactionRadius*/,
|
||||
G4double& /*separationDistance*/,
|
||||
G4bool /*alongStepInteraction*/) ;
|
||||
G4bool /*alongStepInteraction*/) override ;
|
||||
|
||||
private :
|
||||
const std::vector<const G4DNAMolecularReactionData*>* fpReactionData ;
|
||||
const std::vector<const G4DNAMolecularReactionData*>* fpReactionData{nullptr} ;
|
||||
};
|
||||
|
||||
+11
-11
@@ -59,23 +59,26 @@
|
||||
class G4DNATransformElectronModel: public G4VEmModel
|
||||
{
|
||||
public :
|
||||
G4DNATransformElectronModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNATransformElectronModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNATransformElectronModel");
|
||||
virtual ~G4DNATransformElectronModel();
|
||||
~G4DNATransformElectronModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
G4DNATransformElectronModel & operator=(const G4DNATransformElectronModel &right) = delete;
|
||||
G4DNATransformElectronModel(const G4DNATransformElectronModel&) = delete;
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
G4double emax) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
G4double maxEnergy) override;
|
||||
|
||||
inline void SetVerbose(int);
|
||||
|
||||
@@ -90,13 +93,10 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4bool fIsInitialised;
|
||||
G4bool fIsInitialised{false};
|
||||
G4int fVerboseLevel;
|
||||
G4double fEpsilon;
|
||||
|
||||
G4DNATransformElectronModel & operator=(const G4DNATransformElectronModel &right);
|
||||
G4DNATransformElectronModel(const G4DNATransformElectronModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNATransformElectronModel::SetVerbose(int flag)
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@
|
||||
class G4DNAUeharaScreenedRutherfordElasticModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0,
|
||||
G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel");
|
||||
|
||||
~G4DNAUeharaScreenedRutherfordElasticModel() override = default;
|
||||
|
||||
@@ -59,7 +59,10 @@ class G4DNAVacuumModel : public G4VDNAModel
|
||||
* \brief ~G4DNAVacuumModel
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~G4DNAVacuumModel();
|
||||
~G4DNAVacuumModel() override;
|
||||
|
||||
G4DNAVacuumModel(const G4DNAVacuumModel&) = delete; // prevent copy-construction
|
||||
G4DNAVacuumModel& operator=(const G4DNAVacuumModel& right) = delete; // prevent assignement
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
@@ -77,7 +80,7 @@ class G4DNAVacuumModel : public G4VDNAModel
|
||||
* \param emax
|
||||
* \return cross section value
|
||||
*/
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p, G4double ekin, G4double emin, G4double emax) override;
|
||||
|
||||
/*!
|
||||
@@ -92,9 +95,6 @@ class G4DNAVacuumModel : public G4VDNAModel
|
||||
private:
|
||||
G4int verboseLevel = 0; ///< verbose level
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4DNAVacuumModel(const G4DNAVacuumModel&) = delete; // prevent copy-construction
|
||||
G4DNAVacuumModel& operator=(const G4DNAVacuumModel& right) = delete; // prevent assignement
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -34,23 +34,23 @@ class G4LEPTSAttachmentModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSAttachmentModel(const G4String& processName ="G4LEPTSAttachmentModel");
|
||||
~G4LEPTSAttachmentModel();
|
||||
~G4LEPTSAttachmentModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -32,23 +32,23 @@ class G4LEPTSDissociationModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSDissociationModel(const G4String& modelName ="G4LEPTSDissociationModel");
|
||||
~G4LEPTSDissociationModel();
|
||||
~G4LEPTSDissociationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -32,23 +32,23 @@
|
||||
class G4LEPTSElasticModel : public G4VLEPTSModel {
|
||||
public:
|
||||
G4LEPTSElasticModel(const G4String& modelName ="G4LEPTSElasticModel");
|
||||
~G4LEPTSElasticModel();
|
||||
~G4LEPTSElasticModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#include <map>
|
||||
|
||||
class G4LEPTSDistribution;
|
||||
typedef std::map<G4double, G4LEPTSDistribution*> mddist;
|
||||
typedef std::map<G4double, mddist > mdmddist;
|
||||
using mddist = std::map<G4double, G4LEPTSDistribution *>;
|
||||
using mdmddist = std::map<G4double, mddist>;
|
||||
|
||||
|
||||
class G4LEPTSElossDistr {
|
||||
|
||||
@@ -32,25 +32,25 @@ class G4LEPTSExcitationModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSExcitationModel(const G4String& modelName ="G4LEPTSExcitationModel");
|
||||
~G4LEPTSExcitationModel();
|
||||
~G4LEPTSExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual std::map<G4int,std::vector<G4double> > ReadIXS(G4String, const G4Material* aMaterial);
|
||||
std::map<G4int,std::vector<G4double> > ReadIXS(G4String, const G4Material* aMaterial) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -32,23 +32,23 @@ class G4LEPTSIonisationModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSIonisationModel(const G4String& modelName ="G4LEPTSIonisationModel");
|
||||
~G4LEPTSIonisationModel();
|
||||
~G4LEPTSIonisationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -32,23 +32,23 @@ class G4LEPTSPositroniumModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSPositroniumModel(const G4String& modelName ="G4LEPTSPositroniumModel");
|
||||
~G4LEPTSPositroniumModel();
|
||||
~G4LEPTSPositroniumModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
};
|
||||
|
||||
@@ -32,23 +32,23 @@ class G4LEPTSRotExcitationModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSRotExcitationModel(const G4String& modelName ="G4LEPTSRotExcitationModel");
|
||||
~G4LEPTSRotExcitationModel();
|
||||
~G4LEPTSRotExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -32,23 +32,23 @@ class G4LEPTSVibExcitationModel : public G4VLEPTSModel
|
||||
{
|
||||
public:
|
||||
G4LEPTSVibExcitationModel(const G4String& modelName ="G4LEPTSVibExcitationModel");
|
||||
~G4LEPTSVibExcitationModel();
|
||||
~G4LEPTSVibExcitationModel() override;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double tmax = DBL_MAX);
|
||||
G4double tmax = DBL_MAX) override;
|
||||
|
||||
// main method to compute cross section per Volume
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
private:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
@@ -61,7 +61,7 @@ class G4VDNAModel : public G4VEmModel
|
||||
/*!
|
||||
* \brief ~G4VDNAModel
|
||||
*/
|
||||
virtual ~G4VDNAModel();
|
||||
~G4VDNAModel() override;
|
||||
|
||||
/*!
|
||||
* \brief Initialise
|
||||
@@ -69,7 +69,7 @@ class G4VDNAModel : public G4VEmModel
|
||||
* \param particle
|
||||
* \param cuts
|
||||
*/
|
||||
virtual void Initialise(const G4ParticleDefinition* particle, const G4DataVector& cuts) = 0;
|
||||
void Initialise(const G4ParticleDefinition* particle, const G4DataVector& cuts) override = 0;
|
||||
|
||||
/*!
|
||||
* \brief CrossSectionPerVolume
|
||||
@@ -80,8 +80,8 @@ class G4VDNAModel : public G4VEmModel
|
||||
* \param emax
|
||||
* \return crossSection*numberOfMoleculesPerVolumeUnit
|
||||
*/
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material, const G4ParticleDefinition* p,
|
||||
G4double ekin, G4double emin, G4double emax) = 0;
|
||||
G4double CrossSectionPerVolume(const G4Material* material, const G4ParticleDefinition* p,
|
||||
G4double ekin, G4double emin, G4double emax) override = 0;
|
||||
|
||||
/*!
|
||||
* \brief SampleSecondaries
|
||||
@@ -89,8 +89,8 @@ class G4VDNAModel : public G4VEmModel
|
||||
* ModelInterface or if any charateristic of the incident particle will change. \param
|
||||
* materialName \param particleChangeForGamma \param tmin \param tmax
|
||||
*/
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*, G4double tmin = 0, G4double tmax = DBL_MAX) = 0;
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*, const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*, G4double tmin = 0, G4double tmax = DBL_MAX) override = 0;
|
||||
|
||||
/*!
|
||||
* \brief IsMaterialDefine
|
||||
|
||||
@@ -62,7 +62,7 @@ class G4VLEPTSModel : public G4VEmModel
|
||||
public:
|
||||
|
||||
G4VLEPTSModel(const G4String& processName);
|
||||
~G4VLEPTSModel();
|
||||
~G4VLEPTSModel() override;
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); //G4ParticleWithCuts::SetCut()
|
||||
G4double GetMeanFreePath(const G4Material* mate,
|
||||
@@ -103,7 +103,7 @@ protected:
|
||||
std::map<const G4Material*, G4int> theNXSdat;
|
||||
std::map<const G4Material*, G4int> theNXSsub;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised{false};
|
||||
XSType theXSType;
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
Reference in New Issue
Block a user