Geant4 11.4.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, opt, 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 G4int opt, 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: