Geant4 11.3.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4EmDNAPhysicsActivator Class Reference

#include <G4EmDNAPhysicsActivator.hh>

+ Inheritance diagram for G4EmDNAPhysicsActivator:

Public Member Functions

 G4EmDNAPhysicsActivator (G4int ver=1)
 
 ~G4EmDNAPhysicsActivator () override=default
 
void ConstructParticle () override
 
void ConstructProcess () override
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
PhysicsBuilder_V GetBuilders () const
 
void AddBuilder (G4PhysicsBuilderInterface *bld)
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
 
G4String namePhysics = ""
 
G4int typePhysics = 0
 
G4ParticleTabletheParticleTable = nullptr
 
G4int g4vpcInstanceID = 0
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 45 of file G4EmDNAPhysicsActivator.hh.

Constructor & Destructor Documentation

◆ G4EmDNAPhysicsActivator()

G4EmDNAPhysicsActivator::G4EmDNAPhysicsActivator ( G4int ver = 1)
explicit

Definition at line 81 of file G4EmDNAPhysicsActivator.cc.

82 : G4VPhysicsConstructor("G4EmDNAPhysicsActivator"), verbose(ver)
83{
84 theParameters = G4EmParameters::Instance();
85 theParameters->ActivateDNA();
86 theParameters->SetFluo(true);
87}
static G4EmParameters * Instance()
G4VPhysicsConstructor(const G4String &="")

◆ ~G4EmDNAPhysicsActivator()

G4EmDNAPhysicsActivator::~G4EmDNAPhysicsActivator ( )
overridedefault

Member Function Documentation

◆ ConstructParticle()

void G4EmDNAPhysicsActivator::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 98 of file G4EmDNAPhysicsActivator.cc.

99{
101}
static void ConstructDNAParticles()

◆ ConstructProcess()

void G4EmDNAPhysicsActivator::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 105 of file G4EmDNAPhysicsActivator.cc.

106{
107 const std::vector<G4String>& regnamesDNA = theParameters->RegionsDNA();
108 std::size_t nreg = regnamesDNA.size();
109 if(0 == nreg)
110 {
111 return;
112 }
113
114 const std::vector<G4String>& typesDNA = theParameters->TypesDNA();
115 G4bool fast = theParameters->DNAFast();
116 G4bool st = theParameters->DNAStationary();
117
118 const G4double emaxDNA = 1.*CLHEP::MeV;
119 const G4double emaxIonDNA = 300.*CLHEP::MeV;
120 const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
121 const G4double eminBorn = 500.*CLHEP::keV;
122 const G4double emax = theParameters->MaxKinEnergy();
123
124 if(IsVerbose()) {
125 G4cout << "### G4EmDNAPhysicsActivator::ConstructProcess for " << nreg
126 << " regions; DNA physics type " << G4endl;
127 }
128
129 // list of particles
130 G4ParticleDefinition* prot = G4Proton::Proton();
131 G4ParticleDefinition* gion = G4GenericIon::GenericIon();
132
133 G4DNAGenericIonsManager * genericIonsManager =
135 G4ParticleDefinition* alpha2 = G4Alpha::Alpha();
136 G4ParticleDefinition* alpha1 = genericIonsManager->GetIon("alpha+");
137 G4ParticleDefinition* alpha0 = genericIonsManager->GetIon("helium");
138 G4ParticleDefinition* h0 = genericIonsManager->GetIon("hydrogen");
139
140 // loop over regions
141 for(std::size_t i = 0; i < nreg; ++i)
142 {
143 if(IsVerbose())
144 {
145 G4cout << "### DNA models type " << typesDNA[i]
146 << " are activated for G4Region " << regnamesDNA[i] << G4endl;
147 }
148 const G4Region* reg = G4EmUtility::FindRegion(regnamesDNA[i], verbose);
149 if(nullptr == reg) { continue; }
150 G4int opt = 0;
151 if(typesDNA[i] == "DNA_Opt1") {
152 opt = 1;
153 } else if(typesDNA[i] == "DNA_Opt2") {
154 opt = 2;
155 } else if(typesDNA[i] == "DNA_Opt3") {
156 opt = 3;
157 } else if(typesDNA[i] == "DNA_Opt4") {
158 opt = 4;
159 } else if(typesDNA[i] == "DNA_Opt5") {
160 opt = 4;
161 } else if(typesDNA[i] == "DNA_Opt6") {
162 opt = 6;
163 } else if(typesDNA[i] == "DNA_Opt7") {
164 opt = 6;
165 } else if(typesDNA[i] == "DNA_Opt8") {
166 opt = 8;
167 }
168 DeactivateElectronProcesses(emaxDNA, emax, reg);
169 G4EmDNABuilder::ConstructDNAElectronPhysics(emaxDNA, opt, fast, st, reg);
170 DeactivateHadronProcesses(prot, emaxIonDNA, emax, reg);
171 G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxIonDNA, opt, fast, st, reg);
172 DeactivateIonProcesses(gion, emaxIonDNA, emax, reg);
173 G4EmDNABuilder::ConstructDNAIonPhysics(emaxIonDNA, st, reg);
174 DeactivateIonProcesses(alpha2, emaxLightIonDNA, emax, reg);
175 G4EmDNABuilder::ConstructDNALightIonPhysics(alpha2, 2, opt, emaxLightIonDNA, fast, st, reg);
176 DeactivateHadronProcesses(alpha1, emaxLightIonDNA, emax, reg);
177 G4EmDNABuilder::ConstructDNALightIonPhysics(alpha1, 1, opt, emaxLightIonDNA, fast, st, reg);
178 G4EmDNABuilder::ConstructDNALightIonPhysics(alpha0, 0, opt, emaxLightIonDNA, fast, st, reg);
179 G4EmDNABuilder::ConstructDNALightIonPhysics(h0, 0, opt, emaxIonDNA, fast, st, reg);
180 }
181}
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
const G4double alpha2
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static G4Alpha * Alpha()
Definition G4Alpha.cc:83
static G4DNAGenericIonsManager * Instance()
G4ParticleDefinition * GetIon(const G4String &name)
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 void ConstructDNAIonPhysics(const G4double emax, 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 ConstructDNAElectronPhysics(const G4double emaxDNA, const G4int opt, const G4bool fast, const G4bool stationary, const G4Region *reg=nullptr)
static const G4Region * FindRegion(const G4String &regionName, const G4int verbose=0)
static G4GenericIon * GenericIon()
static G4Proton * Proton()
Definition G4Proton.cc:90

The documentation for this class was generated from the following files: