Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4GenericBiasingPhysics Class Reference

#include <G4GenericBiasingPhysics.hh>

Inheritance diagram for G4GenericBiasingPhysics:
G4VPhysicsConstructor

Public Member Functions

 G4GenericBiasingPhysics (const G4String &name="BiasingP")
 
virtual ~G4GenericBiasingPhysics ()
 
void PhysicsBias (const G4String &particleName)
 
void PhysicsBias (const G4String &particleName, const std::vector< G4String > &processToBiasNames)
 
void NonPhysicsBias (const G4String &particleName)
 
void Bias (const G4String &particleName)
 
void Bias (const G4String &particleName, const std::vector< G4String > &processToBiasNames)
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
- 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
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
- 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 42 of file G4GenericBiasingPhysics.hh.

Constructor & Destructor Documentation

G4GenericBiasingPhysics::G4GenericBiasingPhysics ( const G4String name = "BiasingP")

Definition at line 56 of file G4GenericBiasingPhysics.cc.

57  : G4VPhysicsConstructor(name)
58 {;}
G4VPhysicsConstructor(const G4String &="")
G4GenericBiasingPhysics::~G4GenericBiasingPhysics ( )
virtual

Definition at line 62 of file G4GenericBiasingPhysics.cc.

63 {;}

Member Function Documentation

void G4GenericBiasingPhysics::Bias ( const G4String particleName)

Definition at line 94 of file G4GenericBiasingPhysics.cc.

References NonPhysicsBias(), and PhysicsBias().

Referenced by main().

95 {
96  PhysicsBias(particleName);
97  NonPhysicsBias(particleName);
98 }
void PhysicsBias(const G4String &particleName)
void NonPhysicsBias(const G4String &particleName)
void G4GenericBiasingPhysics::Bias ( const G4String particleName,
const std::vector< G4String > &  processToBiasNames 
)

Definition at line 102 of file G4GenericBiasingPhysics.cc.

References NonPhysicsBias(), and PhysicsBias().

103 {
104  PhysicsBias(particleName, processNames);
105  NonPhysicsBias(particleName);
106 }
void PhysicsBias(const G4String &particleName)
void NonPhysicsBias(const G4String &particleName)
void G4GenericBiasingPhysics::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 111 of file G4GenericBiasingPhysics.cc.

112 {;}
void G4GenericBiasingPhysics::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 116 of file G4GenericBiasingPhysics.cc.

References G4BiasingHelper::ActivateNonPhysicsBiasing(), G4BiasingHelper::ActivatePhysicsBiasing(), aParticleIterator, G4ParticleDefinition::GetParticleName(), G4ProcessManager::GetProcessList(), G4ParticleDefinition::GetProcessManager(), G4VProcess::GetProcessName(), and G4ProcessVector::size().

117 {
118  aParticleIterator->reset();
119 
120  while( (*aParticleIterator)() )
121  {
122  G4ParticleDefinition* particle = aParticleIterator->value();
123  G4String particleName = particle->GetParticleName();
124 
125  // -- include non physics process interface for biasing:
126  if ( std::find(fNonPhysBiasedParticles.begin(),
127  fNonPhysBiasedParticles.end(),
128  particleName ) != fNonPhysBiasedParticles.end() )
129  {
130  G4ProcessManager* pmanager = particle->GetProcessManager();
132  }
133 
134 
135  if ( std::find(fBiasedParticles.begin(),
136  fBiasedParticles.end(),
137  particleName ) == fBiasedParticles.end() ) continue;
138 
139  G4ProcessManager* pmanager = particle->GetProcessManager();
140  G4ProcessVector* vprocess = pmanager->GetProcessList();
141 
142  G4bool restartLoop(true);
143  while ( restartLoop )
144  {
145  for (G4int ip = 0 ; ip < vprocess->size() ; ip++)
146  {
147  G4VProcess* process = (*vprocess)[ip];
148  G4bool activ = G4BiasingHelper::ActivatePhysicsBiasing(pmanager, process->GetProcessName());
149  restartLoop = activ;
150  if ( restartLoop ) break;
151  }
152  }
153 
154  }
155 }
static void ActivateNonPhysicsBiasing(G4ProcessManager *pmanager, G4String nonPhysicsProcessName="")
G4ProcessManager * GetProcessManager() const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
bool G4bool
Definition: G4Types.hh:79
#define aParticleIterator
static G4bool ActivatePhysicsBiasing(G4ProcessManager *pmanager, G4String physicsProcessToBias, G4String wrappedName="")
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
G4int size() const
G4ProcessVector * GetProcessList() const
void G4GenericBiasingPhysics::NonPhysicsBias ( const G4String particleName)

Definition at line 87 of file G4GenericBiasingPhysics.cc.

Referenced by Bias().

88 {
89  fNonPhysBiasedParticles.push_back(particleName);
90 }
void G4GenericBiasingPhysics::PhysicsBias ( const G4String particleName)

Definition at line 68 of file G4GenericBiasingPhysics.cc.

Referenced by Bias().

69 {
70  fBiasedParticles.push_back(particleName);
71  std::vector< G4String > dummy;
72  fBiasedProcesses.push_back(dummy);
73  fBiasAllProcesses.push_back(true);
74 }
void G4GenericBiasingPhysics::PhysicsBias ( const G4String particleName,
const std::vector< G4String > &  processToBiasNames 
)

Definition at line 78 of file G4GenericBiasingPhysics.cc.

79 {
80  fBiasedParticles.push_back(particleName);
81  fBiasedProcesses.push_back(processNames);
82  fBiasAllProcesses.push_back(false);
83 }

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