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

#include <G4FastSimulationPhysics.hh>

+ Inheritance diagram for G4FastSimulationPhysics:

Public Member Functions

 G4FastSimulationPhysics (const G4String &name="FastSimP")
 
virtual ~G4FastSimulationPhysics ()
 
void ActivateFastSimulation (const G4String particleName, const G4String parallelGeometryName="")
 
void BeVerbose ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
virtual void ConstructParticle ()=0
 
virtual void ConstructProcess ()=0
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 

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
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 41 of file G4FastSimulationPhysics.hh.

Constructor & Destructor Documentation

◆ G4FastSimulationPhysics()

G4FastSimulationPhysics::G4FastSimulationPhysics ( const G4String name = "FastSimP")

Definition at line 54 of file G4FastSimulationPhysics.cc.

56 fVerbose(false)
57{;}

◆ ~G4FastSimulationPhysics()

G4FastSimulationPhysics::~G4FastSimulationPhysics ( )
virtual

Definition at line 61 of file G4FastSimulationPhysics.cc.

62{;}

Member Function Documentation

◆ ActivateFastSimulation()

void G4FastSimulationPhysics::ActivateFastSimulation ( const G4String  particleName,
const G4String  parallelGeometryName = "" 
)

Definition at line 66 of file G4FastSimulationPhysics.cc.

67{
68 fParticlesUnderFastSimulation.push_back(particleName);
69 fGeometries .push_back(parallelGeometryName);
70}

◆ BeVerbose()

void G4FastSimulationPhysics::BeVerbose ( )
inline

Definition at line 58 of file G4FastSimulationPhysics.hh.

58{ fVerbose = true; }

◆ ConstructParticle()

void G4FastSimulationPhysics::ConstructParticle ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 74 of file G4FastSimulationPhysics.cc.

75{;}

◆ ConstructProcess()

void G4FastSimulationPhysics::ConstructProcess ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 79 of file G4FastSimulationPhysics.cc.

80{
81
82 auto myParticleIterator = GetParticleIterator();
83 myParticleIterator->reset();
84
85 while ( (*myParticleIterator)() )
86 {
87 G4ParticleDefinition* particle = myParticleIterator->value();
88 G4String particleName = particle->GetParticleName();
89 G4ProcessManager* pmanager = particle->GetProcessManager();
90
91 // -- include fast simulation manager process interface:
92 auto itr = std::find( fParticlesUnderFastSimulation.begin(),
93 fParticlesUnderFastSimulation.end(),
94 particleName );
95
96 if ( itr != fParticlesUnderFastSimulation.end() )
97 {
98 size_t ipos = itr - fParticlesUnderFastSimulation.begin();
99 G4String geometry = fGeometries[ipos];
100 if ( geometry == "" ) G4FastSimulationHelper::ActivateFastSimulation(pmanager);
101 else G4FastSimulationHelper::ActivateFastSimulation(pmanager, geometry);
102 }
103 }
104
105 // -- tells what is done:
106 if ( fVerbose )
107 {
108 // -- print:
109 myParticleIterator->reset();
110
111 while ( (*myParticleIterator)() )
112 {
113 G4ParticleDefinition* particle = myParticleIterator->value();
114 G4String particleName = particle->GetParticleName();
115 G4ProcessManager* pmanager = particle->GetProcessManager();
116
117 G4bool isUnderFastSimulation(false);
118 G4String processAndGeometryNames;
119 G4int icount(0);
120
121 G4ProcessVector* vprocess = pmanager->GetProcessList();
122 for (size_t ip = 0 ; ip < vprocess->size() ; ++ip)
123 {
124 G4VProcess* process = (*vprocess)[ip];
126 if ( pb != nullptr )
127 {
128 isUnderFastSimulation = true;
129 if ( icount < 3 )
130 {
131 processAndGeometryNames += pb->GetProcessName();
132 processAndGeometryNames += "[geom:";
133 processAndGeometryNames += pb->GetWorldVolume()->GetName();
134 processAndGeometryNames += "] ";
135 }
136 else
137 {
138 processAndGeometryNames += "\n ";
139 processAndGeometryNames += pb->GetProcessName();
140 processAndGeometryNames += "[geom:";
141 processAndGeometryNames += pb->GetWorldVolume()->GetName();
142 processAndGeometryNames += "] ";
143 icount = 0;
144 }
145 }
146 }
147 if ( isUnderFastSimulation ) G4cout << std::setw(14) << particleName << " : " << processAndGeometryNames << G4endl;
148 }
149 }
150}
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static void ActivateFastSimulation(G4ProcessManager *pmanager, G4String parallelGeometryName="")
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4ProcessVector * GetProcessList() const
std::size_t size() const
const G4String & GetName() const
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

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