Import Geant4 11.1.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2022-07-01 10:44:02 +02:00
parent b3bf75a2a1
commit c07cea1fe0
2172 changed files with 183300 additions and 123938 deletions
@@ -40,6 +40,7 @@
class G4hMultipleScattering;
class G4ParticleDefinition;
class G4NuclearStopping;
class G4VMscModel;
class G4EmBuilder
{
@@ -77,6 +78,8 @@ public:
// prepare EM physics for construction
static void PrepareEMPhysics();
static void ConstructElectronMscProcess(G4VMscModel* msc1, G4VMscModel* msc2,
G4ParticleDefinition* particle);
};
#endif
@@ -0,0 +1,124 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// Geant4 header G4EmDNABuilder
//
// Author V.Ivanchenko 18.02.2022
//
// Utilities to build DNA physics
//
#ifndef G4EmDNABuilder_h
#define G4EmDNABuilder_h 1
#include "globals.hh"
// DNA processes
#include "G4DNAElectronSolvation.hh"
#include "G4DNAElastic.hh"
#include "G4DNAIonisation.hh"
#include "G4DNAExcitation.hh"
#include "G4DNAVibExcitation.hh"
#include "G4DNAAttachment.hh"
#include "G4DNAChargeDecrease.hh"
#include "G4DNAChargeIncrease.hh"
#include "G4LowECapture.hh"
enum G4EmDNAMscModelType
{
dnaUrban = 0,
dnaWVI,
dnaGS
};
class G4ParticleDefinition;
class G4Region;
class G4EmDNABuilder
{
public:
static void ConstructDNAParticles();
static void ConstructStandardEmPhysics(const G4double emin_electron,
const G4double emin_proton,
const G4double emin_alpha,
const G4double emin_ion,
const G4EmDNAMscModelType mscType,
const G4bool fast);
static void ConstructDNAElectronPhysics(const G4double emaxDNA,
const G4int opt,
const G4bool fast,
const G4bool stationary,
const G4Region* reg = nullptr);
static void ConstructDNAProtonPhysics(const G4double e1DNA,
const G4double emaxDNA,
const G4int opt,
const G4bool fast,
const G4bool stationary,
const G4Region* reg = nullptr);
static void ConstructDNAIonPhysics(const G4double emax,
const G4bool stationary,
const G4Region* reg = nullptr);
static void ConstructDNALightIonPhysics(G4ParticleDefinition* part,
const G4int charge,
const G4int opt,
const G4double emax,
const G4bool fast,
const G4bool stationary,
const G4Region* reg = nullptr);
static G4DNAElectronSolvation* FindOrBuildElectronSolvation();
static G4DNAElastic*
FindOrBuildElastic(G4ParticleDefinition* part, const G4String& name);
static G4DNAExcitation*
FindOrBuildExcitation(G4ParticleDefinition* part, const G4String& name);
static G4DNAVibExcitation*
FindOrBuildVibExcitation(G4ParticleDefinition* part, const G4String& name);
static G4DNAIonisation*
FindOrBuildIonisation(G4ParticleDefinition* part, const G4String& name);
static G4DNAAttachment*
FindOrBuildAttachment(G4ParticleDefinition* part, const G4String& name);
static G4DNAChargeDecrease*
FindOrBuildChargeDecrease(G4ParticleDefinition* part, const G4String& name);
static G4DNAChargeIncrease*
FindOrBuildChargeIncrease(G4ParticleDefinition* part, const G4String& name);
static G4LowECapture*
FindOrBuildCapture(const G4double elim, G4ParticleDefinition* part);
};
#endif
@@ -59,7 +59,12 @@ public:
virtual void ConstructDissociationChannels();
virtual void ConstructReactionTable(G4DNAMolecularReactionTable* reactionTable);
virtual void ConstructTimeStepModel(G4DNAMolecularReactionTable* reactionTable);
inline void SetTimeStepModel(const TimeStepModel& model)
{
fTimeStepModel = model;
}
private:
TimeStepModel fTimeStepModel = fIRT;
};
#endif
@@ -23,6 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// S. Incerti (incerti@cenbg.in2p3.fr)
//
#ifndef G4EmDNAPhysics_h
@@ -39,14 +40,11 @@ public:
G4EmDNAPhysics(G4int ver=1, const G4String& name="G4EmDNAPhysics");
virtual ~G4EmDNAPhysics();
~G4EmDNAPhysics() override = default;
void ConstructParticle() override;
void ConstructProcess() override;
protected:
virtual void ConstructGammaPositronProcesses();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,7 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Geant4 header G4EmDNAPhysicsActivator
//
// Author V.Ivanchenko
//
// Build DNA physics on top of standard physics for given region
//
#ifndef G4EmDNAPhysicsActivator_h
#define G4EmDNAPhysicsActivator_h 1
@@ -34,7 +39,8 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmParameters;
class G4ProcessManager;
class G4ParticleDefinition;
class G4Region;
class G4EmDNAPhysicsActivator : public G4VPhysicsConstructor
{
@@ -42,36 +48,34 @@ public:
explicit G4EmDNAPhysicsActivator(G4int ver = 1);
~G4EmDNAPhysicsActivator() override;
~G4EmDNAPhysicsActivator() override = default;
void ConstructParticle() override;
void ConstructProcess() override;
private:
void AddElectronModels0(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels2(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels4(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels4a(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels6(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels6a(const G4String& region, G4bool emsc, G4double elimel);
void AddElectronModels7(const G4String& region, G4bool emsc, G4double elimel);
void DeactivateElectronProcesses(const G4double emaxDNA,
const G4double emax,
const G4Region*);
void AddProtonModels0(const G4String& region, G4bool pmsc,
G4double elimel, G4double pminbb, G4double pmax);
void DeactivateHadronProcesses(G4ParticleDefinition*,
const G4double emaxDNA,
const G4double emax,
const G4Region*);
void AddHeliumModels0(const G4String& region, G4bool a1msc, G4bool a2msc,
G4double elimel, G4double pminbb, G4double pmax);
void DeactivateIonProcesses(G4ParticleDefinition*,
const G4double emaxDNA,
const G4double emax,
const G4Region*);
void AddGenericIonModels0(const G4String& region, G4double pminbb);
void DeactivateNuclearStopping(G4ProcessManager*, G4double elimel);
void DeactivateNuclearStopping(const G4ParticleDefinition*,
const G4double emaxDNA,
const G4Region*);
G4bool HasMsc(G4ProcessManager*) const;
G4bool IsVerbose() const;
G4int verbose;
G4int verbose;
G4EmParameters* theParameters;
};
@@ -23,29 +23,22 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
#ifndef G4EmDNAPhysics_option1_h
#define G4EmDNAPhysics_option1_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option1 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option1 : public G4EmDNAPhysics
{
public:
explicit G4EmDNAPhysics_option1(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option1(G4int ver=1, const G4String& nam="G4EmDNAPhysics_option1");
virtual ~G4EmDNAPhysics_option1();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
~G4EmDNAPhysics_option1() override;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -28,24 +28,20 @@
#ifndef G4EmDNAPhysics_option2_h
#define G4EmDNAPhysics_option2_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option2 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option2 : public G4EmDNAPhysics
{
public:
explicit G4EmDNAPhysics_option2(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option2(G4int ver=1, const G4String& name="G4EmDNAPhysics_option2");
virtual ~G4EmDNAPhysics_option2();
~G4EmDNAPhysics_option2() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
void ConstructProcess() override;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,24 +26,19 @@
#ifndef G4EmDNAPhysics_option3_h
#define G4EmDNAPhysics_option3_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option2.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option3 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option3 : public G4EmDNAPhysics_option2
{
public:
explicit G4EmDNAPhysics_option3(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option3(G4int ver=1, const G4String& name="G4EmDNAPhysics_option3");
virtual ~G4EmDNAPhysics_option3();
~G4EmDNAPhysics_option3() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -29,24 +29,20 @@
#ifndef G4EmDNAPhysics_option4_h
#define G4EmDNAPhysics_option4_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option4 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option4 : public G4EmDNAPhysics
{
public:
explicit G4EmDNAPhysics_option4(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option4(G4int ver=1, const G4String& name="G4EmDNAPhysics_option4");
virtual ~G4EmDNAPhysics_option4();
~G4EmDNAPhysics_option4() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
void ConstructProcess() override;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -29,24 +29,19 @@
#ifndef G4EmDNAPhysics_option5_h
#define G4EmDNAPhysics_option5_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option4.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option5 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option5 : public G4EmDNAPhysics_option4
{
public:
explicit G4EmDNAPhysics_option5(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option5(G4int ver=1, const G4String& name="G4EmDNAPhysics_option5");
virtual ~G4EmDNAPhysics_option5();
~G4EmDNAPhysics_option5() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -39,24 +39,20 @@
#ifndef G4EmDNAPhysics_option6_h
#define G4EmDNAPhysics_option6_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option6 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option6 : public G4EmDNAPhysics
{
public:
G4EmDNAPhysics_option6(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option6(G4int ver=1, const G4String& name="G4EmDNAPhysics_option6");
virtual ~G4EmDNAPhysics_option6();
~G4EmDNAPhysics_option6() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
void ConstructProcess() override;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -29,24 +29,19 @@
#ifndef G4EmDNAPhysics_option7_h
#define G4EmDNAPhysics_option7_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option6.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option7 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option7 : public G4EmDNAPhysics_option6
{
public:
explicit G4EmDNAPhysics_option7(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option7(G4int ver=1, const G4String& name="G4EmDNAPhysics_option7");
virtual ~G4EmDNAPhysics_option7();
~G4EmDNAPhysics_option7() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -29,24 +29,20 @@
#ifndef G4EmDNAPhysics_option8_h
#define G4EmDNAPhysics_option8_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_option8 : public G4VPhysicsConstructor
class G4EmDNAPhysics_option8 : public G4EmDNAPhysics
{
public:
explicit G4EmDNAPhysics_option8(G4int ver=1, const G4String& name="");
explicit G4EmDNAPhysics_option8(G4int ver=1, const G4String& name="G4EmDNAPhysics_option8");
virtual ~G4EmDNAPhysics_option8();
~G4EmDNAPhysics_option8() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
void ConstructProcess() override;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -37,10 +37,7 @@ public:
G4EmDNAPhysics_stationary(G4int ver=1, const G4String& nam="G4EmDNAPhysics_stationary");
virtual ~G4EmDNAPhysics_stationary();
void ConstructProcess() override;
~G4EmDNAPhysics_stationary() override;
};
#endif
@@ -26,26 +26,19 @@
#ifndef G4EmDNAPhysics_stationary_option2_h
#define G4EmDNAPhysics_stationary_option2_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option2.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_stationary_option2 : public G4VPhysicsConstructor
class G4EmDNAPhysics_stationary_option2 : public G4EmDNAPhysics_option2
{
public:
G4EmDNAPhysics_stationary_option2(G4int ver = 1);
G4EmDNAPhysics_stationary_option2(G4int ver, const G4String& name);
explicit G4EmDNAPhysics_stationary_option2(G4int ver=1, const G4String& name="G4EmDNAPhysics_stationary_option2");
virtual ~G4EmDNAPhysics_stationary_option2();
~G4EmDNAPhysics_stationary_option2() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
#endif
@@ -26,26 +26,19 @@
#ifndef G4EmDNAPhysics_stationary_option4_h
#define G4EmDNAPhysics_stationary_option4_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option4.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_stationary_option4 : public G4VPhysicsConstructor
class G4EmDNAPhysics_stationary_option4 : public G4EmDNAPhysics_option4
{
public:
G4EmDNAPhysics_stationary_option4(G4int ver = 1);
G4EmDNAPhysics_stationary_option4(G4int ver, const G4String& name);
explicit G4EmDNAPhysics_stationary_option4(G4int ver=1, const G4String& name="G4EmDNAPhysics_stationary_option4");
virtual ~G4EmDNAPhysics_stationary_option4();
~G4EmDNAPhysics_stationary_option4() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
#endif
@@ -26,26 +26,19 @@
#ifndef G4EmDNAPhysics_stationary_option6_h
#define G4EmDNAPhysics_stationary_option6_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4EmDNAPhysics_option6.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmDNAPhysics_stationary_option6 : public G4VPhysicsConstructor
class G4EmDNAPhysics_stationary_option6 : public G4EmDNAPhysics_option6
{
public:
G4EmDNAPhysics_stationary_option6(G4int ver = 1);
G4EmDNAPhysics_stationary_option6(G4int ver, const G4String& name);
explicit G4EmDNAPhysics_stationary_option6(G4int ver=1, const G4String& name="G4EmDNAPhysics_stationary_option6");
virtual ~G4EmDNAPhysics_stationary_option6();
~G4EmDNAPhysics_stationary_option6() override = default;
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
#endif
@@ -128,6 +128,8 @@ public:
inline const G4VProcess* GetSelectedProcess() const;
const G4VProcess* GetCreatorProcess() const override;
// hide copy constructor and assignment operator
G4GammaGeneralProcess(G4GammaGeneralProcess &) = delete;
G4GammaGeneralProcess & operator=