Geant4-11
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes
G4GenericBiasingPhysics Class Reference

#include <G4GenericBiasingPhysics.hh>

Inheritance diagram for G4GenericBiasingPhysics:
G4VPhysicsConstructor

Public Member Functions

void AddParallelGeometry (const G4String &particleName, const G4String &parallelGeometryName)
 
void AddParallelGeometry (const G4String &particleName, const std::vector< G4String > &parallelGeometryNames)
 
void AddParallelGeometry (G4int PDGlow, G4int PDGhigh, const G4String &parallelGeometryName, G4bool includeAntiParticle=true)
 
void AddParallelGeometry (G4int PDGlow, G4int PDGhigh, const std::vector< G4String > &parallelGeometryNames, G4bool includeAntiParticle=true)
 
void AddParallelGeometryAllCharged (const G4String &parallelGeometryName, G4bool includeShortLived=false)
 
void AddParallelGeometryAllCharged (const std::vector< G4String > &parallelGeometryNames, G4bool includeShortLived=false)
 
void AddParallelGeometryAllNeutral (const G4String &parallelGeometryName, G4bool includeShortLived=false)
 
void AddParallelGeometryAllNeutral (const std::vector< G4String > &parallelGeometryNames, G4bool includeShortLived=false)
 
void BeVerbose ()
 
void Bias (const G4String &particleName)
 
void Bias (const G4String &particleName, const std::vector< G4String > &processToBiasNames)
 
void BiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void BiasAllCharged (G4bool includeShortLived=false)
 
void BiasAllNeutral (G4bool includeShortLived=false)
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
 G4GenericBiasingPhysics (const G4String &name="BiasingP")
 
G4int GetInstanceID () const
 
const G4StringGetPhysicsName () const
 
G4int GetPhysicsType () const
 
G4int GetVerboseLevel () const
 
void NonPhysicsBias (const G4String &particleName)
 
void NonPhysicsBiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void NonPhysicsBiasAllCharged (G4bool includeShortLived=false)
 
void NonPhysicsBiasAllNeutral (G4bool includeShortLived=false)
 
void PhysicsBias (const G4String &particleName)
 
void PhysicsBias (const G4String &particleName, const std::vector< G4String > &processToBiasNames)
 
void PhysicsBiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void PhysicsBiasAllCharged (G4bool includeShortLived=false)
 
void PhysicsBiasAllNeutral (G4bool includeShortLived=false)
 
void SetPhysicsName (const G4String &="")
 
void SetPhysicsType (G4int)
 
void SetVerboseLevel (G4int value)
 
virtual void TerminateWorker ()
 
virtual ~G4GenericBiasingPhysics ()
 

Static Public Member Functions

static const G4VPCManagerGetSubInstanceManager ()
 

Protected Types

using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
 

Protected Member Functions

void AddBuilder (G4PhysicsBuilderInterface *bld)
 
PhysicsBuilder_V GetBuilders () const
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 

Protected Attributes

G4int g4vpcInstanceID = 0
 
G4String namePhysics = ""
 
G4ParticleTabletheParticleTable = nullptr
 
G4int typePhysics = 0
 
G4int verboseLevel = 0
 

Static Protected Attributes

static G4RUN_DLL G4VPCManager subInstanceManager
 

Private Member Functions

void AssociateParallelGeometries ()
 
 G4GenericBiasingPhysics (const G4GenericBiasingPhysics &)
 
G4GenericBiasingPhysicsoperator= (const G4GenericBiasingPhysics &right)
 

Private Attributes

std::vector< G4boolfAllChargedParallelGeometriesISL
 
std::vector< G4boolfAllNeutralParallelGeometriesISL
 
std::vector< G4boolfBiasAllProcesses
 
std::vector< G4StringfBiasedParticles
 
std::vector< std::vector< G4String > > fBiasedProcesses
 
G4bool fNonPhysBiasAllCharged
 
G4bool fNonPhysBiasAllChargedISL
 
G4bool fNonPhysBiasAllNeutral
 
G4bool fNonPhysBiasAllNeutralISL
 
std::vector< G4intfNonPhysBiasByPDGRangeHigh
 
std::vector< G4intfNonPhysBiasByPDGRangeLow
 
std::vector< G4StringfNonPhysBiasedParticles
 
std::vector< G4StringfParallelGeometriesForCharged
 
std::vector< G4StringfParallelGeometriesForNeutral
 
std::map< G4String, std::vector< G4String > > fParallelGeometriesForParticle
 
std::vector< G4StringfParticlesWithParallelGeometries
 
std::vector< G4intfPDGhighParallelGeometries
 
std::vector< G4intfPDGlowParallelGeometries
 
std::map< G4int, std::vector< G4String > > fPDGrangeParallelGeometries
 
G4bool fPhysBiasAllCharged
 
G4bool fPhysBiasAllChargedISL
 
G4bool fPhysBiasAllNeutral
 
G4bool fPhysBiasAllNeutralISL
 
std::vector< G4intfPhysBiasByPDGRangeHigh
 
std::vector< G4intfPhysBiasByPDGRangeLow
 
G4bool fVerbose
 

Detailed Description

Definition at line 41 of file G4GenericBiasingPhysics.hh.

Member Typedef Documentation

◆ PhysicsBuilder_V

Definition at line 149 of file G4VPhysicsConstructor.hh.

Constructor & Destructor Documentation

◆ G4GenericBiasingPhysics() [1/2]

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

Definition at line 59 of file G4GenericBiasingPhysics.cc.

65 fVerbose(false)
66{;}
G4VPhysicsConstructor(const G4String &="")
const char * name(G4int ptype)

◆ ~G4GenericBiasingPhysics()

G4GenericBiasingPhysics::~G4GenericBiasingPhysics ( )
virtual

Definition at line 70 of file G4GenericBiasingPhysics.cc.

71{;}

◆ G4GenericBiasingPhysics() [2/2]

G4GenericBiasingPhysics::G4GenericBiasingPhysics ( const G4GenericBiasingPhysics )
private

Member Function Documentation

◆ AddBuilder()

void G4VPhysicsConstructor::AddBuilder ( G4PhysicsBuilderInterface bld)
protectedinherited

Definition at line 99 of file G4VPhysicsConstructor.cc.

100{
101 (subInstanceManager.offset[g4vpcInstanceID])._builders->push_back(bld);
102}
static G4RUN_DLL G4VPCManager subInstanceManager
G4RUN_DLL G4ThreadLocalStatic T * offset

References G4VPhysicsConstructor::g4vpcInstanceID, G4VUPLSplitter< T >::offset, and G4VPhysicsConstructor::subInstanceManager.

Referenced by G4HadronPhysicsFTFP_BERT::Kaon(), G4HadronPhysicsFTF_BIC::Kaon(), G4HadronPhysicsINCLXX::Kaon(), G4HadronPhysicsFTFP_BERT::Neutron(), G4HadronPhysicsQGSP_BERT::Neutron(), G4HadronPhysicsQGSP_BIC::Neutron(), G4HadronPhysicsFTF_BIC::Neutron(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGS_BIC::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), G4HadronPhysicsShielding::Neutron(), G4HadronPhysicsFTFP_BERT::Pion(), G4HadronPhysicsQGSP_BERT::Pion(), G4HadronPhysicsQGSP_BIC::Pion(), G4HadronPhysicsFTF_BIC::Pion(), G4HadronPhysicsINCLXX::Pion(), G4HadronPhysicsQGS_BIC::Pion(), G4HadronPhysicsFTFP_BERT::Proton(), G4HadronPhysicsQGSP_BERT::Proton(), G4HadronPhysicsQGSP_BIC::Proton(), G4HadronPhysicsFTF_BIC::Proton(), G4HadronPhysicsINCLXX::Proton(), G4HadronPhysicsNuBeam::Proton(), G4HadronPhysicsQGS_BIC::Proton(), and G4HadronPhysicsQGSP_BIC_AllHP::Proton().

◆ AddParallelGeometry() [1/4]

void G4GenericBiasingPhysics::AddParallelGeometry ( const G4String particleName,
const G4String parallelGeometryName 
)

Definition at line 187 of file G4GenericBiasingPhysics.cc.

188{
189 // -- add particle, caring of possible duplication:
190 G4bool isKnown = false;
191 for ( G4String knownParticle : fParticlesWithParallelGeometries )
192 {
193 if ( knownParticle == particleName )
194 {
195 isKnown = true;
196 break;
197 }
198 }
199
200 // -- add the geometry, caring for possible duplication of this geometry, for this particle:
201 if ( !isKnown ) fParticlesWithParallelGeometries.push_back( particleName );
202 std::vector< G4String >& geometries = fParallelGeometriesForParticle[particleName];
203
204 isKnown = false;
205 for ( G4String knownGeometry : geometries )
206 {
207 if ( knownGeometry == parallelGeometryName )
208 {
209 isKnown = true;
210 break;
211 }
212 }
213 if ( !isKnown ) geometries.push_back( parallelGeometryName );
214
215}
bool G4bool
Definition: G4Types.hh:86
std::vector< G4String > fParticlesWithParallelGeometries
std::map< G4String, std::vector< G4String > > fParallelGeometriesForParticle

References fParallelGeometriesForParticle, and fParticlesWithParallelGeometries.

Referenced by AddParallelGeometry().

◆ AddParallelGeometry() [2/4]

void G4GenericBiasingPhysics::AddParallelGeometry ( const G4String particleName,
const std::vector< G4String > &  parallelGeometryNames 
)

Definition at line 217 of file G4GenericBiasingPhysics.cc.

218{
219 for ( G4String geometry : parallelGeometryNames ) AddParallelGeometry( particleName, geometry );
220}
void AddParallelGeometry(const G4String &particleName, const G4String &parallelGeometryName)

References AddParallelGeometry().

◆ AddParallelGeometry() [3/4]

void G4GenericBiasingPhysics::AddParallelGeometry ( G4int  PDGlow,
G4int  PDGhigh,
const G4String parallelGeometryName,
G4bool  includeAntiParticle = true 
)

Definition at line 222 of file G4GenericBiasingPhysics.cc.

223{
224 if ( PDGlow > PDGhigh )
225 {
226 G4cout << "G4GenericBiasingPhysics::AddParallelGeometry( G4int PDGlow, G4int PDGhigh, const G4String& parallelGeometryName , G4bool includeAntiParticle = true ), PDGlow > PDGhigh : call ignored" << G4endl;
227 return;
228 }
229
230 fPDGlowParallelGeometries .push_back( PDGlow );
231 fPDGhighParallelGeometries.push_back( PDGhigh );
232 G4int rangeIndex = fPDGlowParallelGeometries.size() - 1;
233 fPDGrangeParallelGeometries[rangeIndex].push_back( parallelGeometryName );
234
235 if ( includeAntiParticle )
236 {
237 fPDGlowParallelGeometries .push_back( -PDGhigh );
238 fPDGhighParallelGeometries.push_back( -PDGlow );
239 rangeIndex = fPDGlowParallelGeometries.size() - 1;
240 fPDGrangeParallelGeometries[rangeIndex].push_back( parallelGeometryName );
241 }
242
243}
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
std::vector< G4int > fPDGlowParallelGeometries
std::map< G4int, std::vector< G4String > > fPDGrangeParallelGeometries
std::vector< G4int > fPDGhighParallelGeometries

References fPDGhighParallelGeometries, fPDGlowParallelGeometries, fPDGrangeParallelGeometries, G4cout, and G4endl.

◆ AddParallelGeometry() [4/4]

void G4GenericBiasingPhysics::AddParallelGeometry ( G4int  PDGlow,
G4int  PDGhigh,
const std::vector< G4String > &  parallelGeometryNames,
G4bool  includeAntiParticle = true 
)

Definition at line 245 of file G4GenericBiasingPhysics.cc.

246{
247 if ( PDGlow > PDGhigh )
248 {
249 G4cout << "G4GenericBiasingPhysics::AddParallelGeometry( G4int PDGlow, G4int PDGhigh, const std::vector< G4String >& parallelGeometryNames, G4bool includeAntiParticle = true ), PDGlow > PDGhigh : call ignored" << G4endl;
250 return;
251 }
252
253 for ( G4String geometry : parallelGeometryNames ) AddParallelGeometry( PDGlow, PDGhigh, geometry, includeAntiParticle );
254}

References AddParallelGeometry(), G4cout, and G4endl.

◆ AddParallelGeometryAllCharged() [1/2]

void G4GenericBiasingPhysics::AddParallelGeometryAllCharged ( const G4String parallelGeometryName,
G4bool  includeShortLived = false 
)

Definition at line 256 of file G4GenericBiasingPhysics.cc.

257{
258 G4bool isKnown = false;
259 for ( G4String geometry : fParallelGeometriesForCharged )
260 {
261 if ( geometry == parallelGeometryName )
262 {
263 isKnown = true;
264 break;
265 }
266 }
267 if ( !isKnown )
268 {
269 fParallelGeometriesForCharged .push_back( parallelGeometryName );
270 fAllChargedParallelGeometriesISL.push_back( includeShortLived );
271 }
272}
std::vector< G4bool > fAllChargedParallelGeometriesISL
std::vector< G4String > fParallelGeometriesForCharged

References fAllChargedParallelGeometriesISL, and fParallelGeometriesForCharged.

Referenced by AddParallelGeometryAllCharged().

◆ AddParallelGeometryAllCharged() [2/2]

void G4GenericBiasingPhysics::AddParallelGeometryAllCharged ( const std::vector< G4String > &  parallelGeometryNames,
G4bool  includeShortLived = false 
)

Definition at line 274 of file G4GenericBiasingPhysics.cc.

275{
276 for ( G4String geometry : parallelGeometryNames ) AddParallelGeometryAllCharged( geometry, includeShortLived );
277}
void AddParallelGeometryAllCharged(const G4String &parallelGeometryName, G4bool includeShortLived=false)

References AddParallelGeometryAllCharged().

◆ AddParallelGeometryAllNeutral() [1/2]

void G4GenericBiasingPhysics::AddParallelGeometryAllNeutral ( const G4String parallelGeometryName,
G4bool  includeShortLived = false 
)

Definition at line 279 of file G4GenericBiasingPhysics.cc.

280{
281 G4bool isKnown = false;
282 for ( G4String geometry : fParallelGeometriesForNeutral )
283 {
284 if ( geometry == parallelGeometryName )
285 {
286 isKnown = true;
287 break;
288 }
289 }
290 if ( !isKnown )
291 {
292 fParallelGeometriesForNeutral .push_back( parallelGeometryName );
293 fAllNeutralParallelGeometriesISL.push_back( includeShortLived );
294 }
295}
std::vector< G4String > fParallelGeometriesForNeutral
std::vector< G4bool > fAllNeutralParallelGeometriesISL

References fAllNeutralParallelGeometriesISL, and fParallelGeometriesForNeutral.

Referenced by AddParallelGeometryAllNeutral().

◆ AddParallelGeometryAllNeutral() [2/2]

void G4GenericBiasingPhysics::AddParallelGeometryAllNeutral ( const std::vector< G4String > &  parallelGeometryNames,
G4bool  includeShortLived = false 
)

Definition at line 297 of file G4GenericBiasingPhysics.cc.

298{
299 for ( G4String geometry : parallelGeometryNames ) AddParallelGeometryAllNeutral( geometry, includeShortLived );
300}
void AddParallelGeometryAllNeutral(const G4String &parallelGeometryName, G4bool includeShortLived=false)

References AddParallelGeometryAllNeutral().

◆ AssociateParallelGeometries()

void G4GenericBiasingPhysics::AssociateParallelGeometries ( )
private

Definition at line 503 of file G4GenericBiasingPhysics.cc.

504{
505
506 // -- parallel geometries for individual particles:
508 particleIterator->reset();
509
510 while( (*particleIterator)() )
511 {
512 G4ParticleDefinition* particle = particleIterator->value();
513 G4String particleName = particle->GetParticleName();
514 G4ProcessManager* pmanager = particle->GetProcessManager();
515
516 G4bool requested = false;
517 for ( G4String requestedParticles : fParticlesWithParallelGeometries )
518 {
519 if ( requestedParticles == particleName )
520 {
521 requested = true;
522 break;
523 }
524 }
525 if ( requested )
526 {
527 // -- insert biasing process for handling parallel geometries:
529
530 // -- attach the requested worlds to this process:
531 std::vector< G4String >& parallelWorlds = fParallelGeometriesForParticle[ particleName ];
532 for ( G4String world : parallelWorlds ) limiter->AddParallelWorld( world );
533 }
534
535 }
536
537
538 // -- parallel geometries for particles in PDG ranges:
539 G4int i = 0; // -- index for PDG range
540 for ( G4int PDGlow : fPDGlowParallelGeometries )
541 {
543 auto & geometries = fPDGrangeParallelGeometries[i];
544
545 particleIterator->reset();
546
547 while( (*particleIterator)() )
548 {
549 G4ParticleDefinition* particle = particleIterator->value();
550 G4int particlePDG = particle->GetPDGEncoding();
551 G4ProcessManager* pmanager = particle->GetProcessManager();
552
553 if ( ( particlePDG >= PDGlow ) && ( particlePDG <= PDGhigh ) )
554 {
555 // -- §§ exclude particles from individual list ?
556 // -- insert biasing process for handling parallel geometries:
558
559 // -- attached the requested worlds to this process:
560 for ( auto geometry : geometries ) limiter->AddParallelWorld( geometry );
561 }
562 }
563 // -- increment index for next PDG range:
564 i++;
565 }
566
567
568 // -- parallel geometries for all neutral / charged particles:
569 particleIterator->reset();
570 G4bool islAllNeutral = false;
571 for(auto isln : fAllNeutralParallelGeometriesISL)
572 { islAllNeutral |= isln; }
573 G4bool islAllCharged = false;
574 for(auto islc : fAllChargedParallelGeometriesISL)
575 { islAllCharged |= islc; }
576
577 while((*particleIterator)())
578 {
579 G4ParticleDefinition* particle = particleIterator->value();
580 G4ProcessManager* pmanager = particle->GetProcessManager();
581 if(particle->GetPDGCharge() == 0.)
582 {
583 // Neutral particle
584 if(particle->IsShortLived() && !islAllNeutral) continue;
586 G4int j = 0;
588 {
589 if(!(particle->IsShortLived()) || fAllNeutralParallelGeometriesISL[j])
590 { limiter->AddParallelWorld(wNameN); }
591 j++;
592 }
593 }
594 else
595 {
596 // charged
597 if(particle->IsShortLived() && !islAllCharged) continue;
599 G4int j = 0;
601 {
602 if(!(particle->IsShortLived()) || fAllChargedParallelGeometriesISL[j])
603 { limiter->AddParallelWorld(wNameC); }
604 j++;
605 }
606 }
607 }
608
609}
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition: G4BigBanger.cc:64
static G4ParallelGeometriesLimiterProcess * AddLimiterProcess(G4ProcessManager *pmanager, const G4String &processName="biasLimiter")
void AddParallelWorld(const G4String &parallelWorldName)
G4ProcessManager * GetProcessManager() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const

References G4BiasingHelper::AddLimiterProcess(), G4ParallelGeometriesLimiterProcess::AddParallelWorld(), fAllChargedParallelGeometriesISL, fAllNeutralParallelGeometriesISL, fParallelGeometriesForCharged, fParallelGeometriesForParticle, fParticlesWithParallelGeometries, fPDGhighParallelGeometries, fPDGlowParallelGeometries, fPDGrangeParallelGeometries, G4VPhysicsConstructor::GetParticleIterator(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleDefinition::GetProcessManager(), and G4ParticleDefinition::IsShortLived().

Referenced by ConstructProcess().

◆ BeVerbose()

void G4GenericBiasingPhysics::BeVerbose ( )
inline

Definition at line 106 of file G4GenericBiasingPhysics.hh.

106{ fVerbose = true; }

References fVerbose.

◆ Bias() [1/2]

void G4GenericBiasingPhysics::Bias ( const G4String particleName)

Definition at line 102 of file G4GenericBiasingPhysics.cc.

103{
104 PhysicsBias(particleName);
105 NonPhysicsBias(particleName);
106}
void PhysicsBias(const G4String &particleName)
void NonPhysicsBias(const G4String &particleName)

References NonPhysicsBias(), and PhysicsBias().

◆ Bias() [2/2]

void G4GenericBiasingPhysics::Bias ( const G4String particleName,
const std::vector< G4String > &  processToBiasNames 
)

Definition at line 110 of file G4GenericBiasingPhysics.cc.

111{
112 PhysicsBias(particleName, processNames);
113 NonPhysicsBias(particleName);
114}

References NonPhysicsBias(), and PhysicsBias().

◆ BiasAddPDGRange()

void G4GenericBiasingPhysics::BiasAddPDGRange ( G4int  PDGlow,
G4int  PDGhigh,
G4bool  includeAntiParticle = true 
)

Definition at line 144 of file G4GenericBiasingPhysics.cc.

145{
146 if ( PDGlow > PDGhigh ) G4cout << " G4GenericBiasingPhysics::BiasAddPDGRange(...) : PDGlow > PDGhigh, call ignored." << G4endl;
147 PhysicsBiasAddPDGRange ( PDGlow, PDGhigh, includeAntiParticle );
148 NonPhysicsBiasAddPDGRange( PDGlow, PDGhigh, includeAntiParticle );
149}
void NonPhysicsBiasAddPDGRange(G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
void PhysicsBiasAddPDGRange(G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)

References G4cout, G4endl, NonPhysicsBiasAddPDGRange(), and PhysicsBiasAddPDGRange().

◆ BiasAllCharged()

void G4GenericBiasingPhysics::BiasAllCharged ( G4bool  includeShortLived = false)

Definition at line 161 of file G4GenericBiasingPhysics.cc.

162{
163 fPhysBiasAllCharged = true;
165 fPhysBiasAllChargedISL = includeShortLived;
166 fNonPhysBiasAllChargedISL = includeShortLived;
167}

References fNonPhysBiasAllCharged, fNonPhysBiasAllChargedISL, fPhysBiasAllCharged, and fPhysBiasAllChargedISL.

◆ BiasAllNeutral()

void G4GenericBiasingPhysics::BiasAllNeutral ( G4bool  includeShortLived = false)

Definition at line 178 of file G4GenericBiasingPhysics.cc.

179{
180 fPhysBiasAllNeutral = true;
182 fPhysBiasAllNeutralISL = includeShortLived;
183 fNonPhysBiasAllNeutralISL = includeShortLived;
184}

References fNonPhysBiasAllNeutral, fNonPhysBiasAllNeutralISL, fPhysBiasAllNeutral, and fPhysBiasAllNeutralISL.

◆ ConstructParticle()

void G4GenericBiasingPhysics::ConstructParticle ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 306 of file G4GenericBiasingPhysics.cc.

307{;}

◆ ConstructProcess()

void G4GenericBiasingPhysics::ConstructProcess ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 311 of file G4GenericBiasingPhysics.cc.

312{
313
314 // -- bias setup per individual particle name:
316 particleIterator->reset();
317
318 while( (*particleIterator)() )
319 {
320 G4ParticleDefinition* particle = particleIterator->value();
321 G4String particleName = particle->GetParticleName();
322 G4ProcessManager* pmanager = particle->GetProcessManager();
323
324 // -- include non physics process interface for biasing:
325 if ( std::find(fNonPhysBiasedParticles.begin(),
327 particleName ) != fNonPhysBiasedParticles.end() )
328 {
330 }
331
332 // -- wrap biased physics processes, all processes or only user selected:
333 std::vector< G4String >::const_iterator particleIt =
334 std::find(fBiasedParticles.begin(),
335 fBiasedParticles.end(),
336 particleName );
337 if ( particleIt == fBiasedParticles.end() ) continue;
338
339 std::vector < G4String >& biasedProcesses = fBiasedProcesses [ particleIt - fBiasedParticles.begin() ];
340 G4bool biasAll = fBiasAllProcesses[ particleIt - fBiasedParticles.begin() ];
341
342 if ( biasAll )
343 {
344 G4ProcessVector* vprocess = pmanager->GetProcessList();
345 for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip)
346 {
347 G4VProcess* process = (*vprocess)[ip];
348 biasedProcesses.push_back( process->GetProcessName() );
349 }
350 }
351
352 G4bool restartLoop(true);
353 while ( restartLoop )
354 {
355 for (std::size_t ip = 0 ; ip < biasedProcesses.size() ; ++ip)
356 {
357 G4bool activ = G4BiasingHelper::ActivatePhysicsBiasing(pmanager, biasedProcesses[ip] );
358 restartLoop = activ;
359 if ( restartLoop ) break;
360 }
361 }
362
363 }
364
365
366 // -- bias setup per group:
367 particleIterator->reset();
368
369 while( (*particleIterator)() )
370 {
371 G4ParticleDefinition* particle = particleIterator->value();
372 G4String particleName = particle->GetParticleName();
373 G4ProcessManager* pmanager = particle->GetProcessManager();
374
375 // -- exclude particles invidually specified by name:
376 if ( std::find( fNonPhysBiasedParticles.begin(),
378 particleName ) != fNonPhysBiasedParticles.end() ) continue;
379
380 if ( std::find( fBiasedParticles.begin(),
381 fBiasedParticles.end(),
382 particleName ) != fBiasedParticles.end() ) continue;
383
384
385 G4bool physBias(false), nonPhysBias(false);
386
387 auto PDG = particle->GetPDGEncoding();
388
389 // -- include particle if in right PDG range:
390 for ( size_t i = 0 ; i < fPhysBiasByPDGRangeLow.size() ; i++ )
391 if ( ( PDG >= fPhysBiasByPDGRangeLow[i] ) && ( PDG <= fPhysBiasByPDGRangeHigh[i] ) )
392 {
393 physBias = true;
394 break;
395 }
396 for ( size_t i = 0 ; i < fNonPhysBiasByPDGRangeLow.size() ; i++ )
397 if ( ( PDG >= fNonPhysBiasByPDGRangeLow[i] ) && ( PDG <= fNonPhysBiasByPDGRangeHigh[i] ) )
398 {
399 nonPhysBias = true;
400 break;
401 }
402
403 // -- if particle has not yet any biasing, include it on charge criteria:
404 if ( ( physBias == false ) && ( nonPhysBias == false ) )
405 {
406 if ( std::abs( particle->GetPDGCharge() ) > DBL_MIN )
407 {
408 if ( fPhysBiasAllCharged ) if ( fPhysBiasAllChargedISL || !particle->IsShortLived() ) physBias = true;
409 if ( fNonPhysBiasAllCharged ) if ( fNonPhysBiasAllChargedISL || !particle->IsShortLived() ) nonPhysBias = true;
410 }
411 else
412 {
413 if ( fPhysBiasAllNeutral ) if ( fPhysBiasAllNeutralISL || !particle->IsShortLived() ) physBias = true;
414 if ( fNonPhysBiasAllNeutral ) if ( fNonPhysBiasAllNeutralISL || !particle->IsShortLived() ) nonPhysBias = true;
415 }
416 }
417
418
419 if ( nonPhysBias ) G4BiasingHelper::ActivateNonPhysicsBiasing(pmanager);
420
421 if ( physBias )
422 {
423 std::vector < G4String > biasedProcesses;
424 G4ProcessVector* vprocess = pmanager->GetProcessList();
425 for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip)
426 {
427 G4VProcess* process = (*vprocess)[ip];
428 biasedProcesses.push_back( process->GetProcessName() );
429 }
430
431 G4bool restartLoop(true);
432 while ( restartLoop )
433 {
434 for (std::size_t ip = 0 ; ip < biasedProcesses.size() ; ++ip)
435 {
436 G4bool activ = G4BiasingHelper::ActivatePhysicsBiasing(pmanager, biasedProcesses[ip] );
437 restartLoop = activ;
438 if ( restartLoop ) break;
439 }
440 }
441 }
442
443 }
444
445
446
447 // -- Associate parallel geometries:
449
450
451 // -- tells what is done:
452 if ( fVerbose )
453 {
454 // -- print:
455 particleIterator->reset();
456
457 while( (*particleIterator)() )
458 {
459 G4ParticleDefinition* particle = particleIterator->value();
460 G4String particleName = particle->GetParticleName();
461 G4ProcessManager* pmanager = particle->GetProcessManager();
462
463 G4bool isBiased(false);
464 G4String processNames;
465 G4int icount(0);
466
467 G4ProcessVector* vprocess = pmanager->GetProcessList();
468 for (std::size_t ip = 0 ; ip < vprocess->size() ; ++ip)
469 {
470 G4VProcess* process = (*vprocess)[ip];
471 G4BiasingProcessInterface* pb = dynamic_cast< G4BiasingProcessInterface* >(process);
472 if ( pb != nullptr )
473 {
474 isBiased = true;
475 if ( icount < 3 )
476 {
477 processNames += pb->GetProcessName();
478 processNames += " ";
479 }
480 else
481 {
482 processNames += "\n ";
483 processNames += pb->GetProcessName();
484 processNames += " ";
485 icount = 0;
486 }
487 icount++;
488 }
489 }
490 if ( isBiased )
491 {
492 if ( particle->IsShortLived() )
493 G4cout << std::setw(14) << particleName << " **** : " << processNames << G4endl;
494 else
495 G4cout << std::setw(18) << particleName << " : " << processNames << G4endl;
496 }
497 }
498 }
499}
static void ActivateNonPhysicsBiasing(G4ProcessManager *pmanager, G4String nonPhysicsProcessName="")
static G4bool ActivatePhysicsBiasing(G4ProcessManager *pmanager, G4String physicsProcessToBias, G4String wrappedName="")
std::vector< G4int > fPhysBiasByPDGRangeLow
std::vector< G4bool > fBiasAllProcesses
std::vector< G4int > fNonPhysBiasByPDGRangeLow
std::vector< G4String > fBiasedParticles
std::vector< G4int > fNonPhysBiasByPDGRangeHigh
std::vector< G4String > fNonPhysBiasedParticles
std::vector< std::vector< G4String > > fBiasedProcesses
std::vector< G4int > fPhysBiasByPDGRangeHigh
G4ProcessVector * GetProcessList() const
std::size_t size() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382
#define DBL_MIN
Definition: templates.hh:54

References G4BiasingHelper::ActivateNonPhysicsBiasing(), G4BiasingHelper::ActivatePhysicsBiasing(), AssociateParallelGeometries(), DBL_MIN, fBiasAllProcesses, fBiasedParticles, fBiasedProcesses, fNonPhysBiasAllCharged, fNonPhysBiasAllChargedISL, fNonPhysBiasAllNeutral, fNonPhysBiasAllNeutralISL, fNonPhysBiasByPDGRangeHigh, fNonPhysBiasByPDGRangeLow, fNonPhysBiasedParticles, fPhysBiasAllCharged, fPhysBiasAllChargedISL, fPhysBiasAllNeutral, fPhysBiasAllNeutralISL, fPhysBiasByPDGRangeHigh, fPhysBiasByPDGRangeLow, fVerbose, G4cout, G4endl, G4VPhysicsConstructor::GetParticleIterator(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGEncoding(), G4ProcessManager::GetProcessList(), G4ParticleDefinition::GetProcessManager(), G4VProcess::GetProcessName(), G4ParticleDefinition::IsShortLived(), and G4ProcessVector::size().

◆ GetBuilders()

G4VPhysicsConstructor::PhysicsBuilder_V G4VPhysicsConstructor::GetBuilders ( ) const
protectedinherited

Definition at line 86 of file G4VPhysicsConstructor.cc.

87{
88 const auto& tls = *((subInstanceManager.offset[g4vpcInstanceID])._builders);
89 PhysicsBuilder_V copy(tls.size());
90 G4int i = 0;
91 for(const auto& el : tls)
92 {
93 copy[i++] = el;
94 }
95 return copy;
96}
G4VPCData::PhysicsBuilders_V PhysicsBuilder_V
void copy(G4double dst[], const G4double src[], size_t size=G4FieldTrack::ncompSVEC)
Definition: G4FieldUtils.cc:98

References field_utils::copy(), G4VPhysicsConstructor::g4vpcInstanceID, G4VUPLSplitter< T >::offset, and G4VPhysicsConstructor::subInstanceManager.

◆ GetInstanceID()

G4int G4VPhysicsConstructor::GetInstanceID ( ) const
inlineinherited

◆ GetParticleIterator()

G4ParticleTable::G4PTblDicIterator * G4VPhysicsConstructor::GetParticleIterator ( ) const
protectedinherited

◆ GetPhysicsName()

const G4String & G4VPhysicsConstructor::GetPhysicsName ( ) const
inlineinherited

Definition at line 191 of file G4VPhysicsConstructor.hh.

192{
193 return namePhysics;
194}

References G4VPhysicsConstructor::namePhysics.

Referenced by G4EmDNAPhysics_option1::ConstructProcess(), G4EmDNAPhysics_option2::ConstructProcess(), G4EmDNAPhysics_option3::ConstructProcess(), G4EmDNAPhysics_option4::ConstructProcess(), G4EmDNAPhysics_option5::ConstructProcess(), G4EmDNAPhysics_option6::ConstructProcess(), G4EmDNAPhysics_option7::ConstructProcess(), G4EmDNAPhysics_option8::ConstructProcess(), G4EmDNAPhysics_stationary_option2::ConstructProcess(), G4EmDNAPhysics_stationary_option4::ConstructProcess(), G4EmDNAPhysics_stationary_option6::ConstructProcess(), G4EmDNAPhysics::ConstructProcess(), G4EmDNAPhysics_stationary::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4EmStandardPhysics_option3::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysicsGS::ConstructProcess(), G4EmStandardPhysicsSS::ConstructProcess(), G4EmStandardPhysicsWVI::ConstructProcess(), G4ThermalNeutrons::ConstructProcess(), G4HadronPhysicsFTFP_BERT::DumpBanner(), G4HadronPhysicsQGSP_BERT::DumpBanner(), export_G4VPhysicsConstructor(), G4HadronDElasticPhysics::G4HadronDElasticPhysics(), G4HadronElasticPhysics::G4HadronElasticPhysics(), G4HadronElasticPhysicsHP::G4HadronElasticPhysicsHP(), G4HadronElasticPhysicsLEND::G4HadronElasticPhysicsLEND(), G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(), G4HadronElasticPhysicsXS::G4HadronElasticPhysicsXS(), G4HadronHElasticPhysics::G4HadronHElasticPhysics(), G4IonElasticPhysics::G4IonElasticPhysics(), G4VModularPhysicsList::RegisterPhysics(), and G4VModularPhysicsList::ReplacePhysics().

◆ GetPhysicsType()

G4int G4VPhysicsConstructor::GetPhysicsType ( ) const
inlineinherited

◆ GetSubInstanceManager()

const G4VPCManager & G4VPhysicsConstructor::GetSubInstanceManager ( )
inlinestaticinherited

◆ GetVerboseLevel()

G4int G4VPhysicsConstructor::GetVerboseLevel ( ) const
inlineinherited

◆ NonPhysicsBias()

void G4GenericBiasingPhysics::NonPhysicsBias ( const G4String particleName)

Definition at line 95 of file G4GenericBiasingPhysics.cc.

96{
97 fNonPhysBiasedParticles.push_back(particleName);
98}

References fNonPhysBiasedParticles.

Referenced by Bias().

◆ NonPhysicsBiasAddPDGRange()

void G4GenericBiasingPhysics::NonPhysicsBiasAddPDGRange ( G4int  PDGlow,
G4int  PDGhigh,
G4bool  includeAntiParticle = true 
)

Definition at line 130 of file G4GenericBiasingPhysics.cc.

131{
132 if ( PDGlow > PDGhigh ) G4cout << " G4GenericBiasingPhysics::NonPhysicsBiasAddPDGRange(...) : PDGlow > PDGhigh, call ignored." << G4endl;
133 fNonPhysBiasByPDGRangeLow .push_back( PDGlow );
134 fNonPhysBiasByPDGRangeHigh.push_back( PDGhigh );
135 if ( includeAntiParticle )
136 {
137 fNonPhysBiasByPDGRangeLow .push_back( -PDGhigh );
138 fNonPhysBiasByPDGRangeHigh.push_back( -PDGlow );
139 }
140}

References fNonPhysBiasByPDGRangeHigh, fNonPhysBiasByPDGRangeLow, G4cout, and G4endl.

Referenced by BiasAddPDGRange().

◆ NonPhysicsBiasAllCharged()

void G4GenericBiasingPhysics::NonPhysicsBiasAllCharged ( G4bool  includeShortLived = false)

Definition at line 156 of file G4GenericBiasingPhysics.cc.

157{
159 fNonPhysBiasAllChargedISL = includeShortLived;
160}

References fNonPhysBiasAllCharged, and fNonPhysBiasAllChargedISL.

◆ NonPhysicsBiasAllNeutral()

void G4GenericBiasingPhysics::NonPhysicsBiasAllNeutral ( G4bool  includeShortLived = false)

Definition at line 173 of file G4GenericBiasingPhysics.cc.

174{
176 fNonPhysBiasAllNeutralISL = includeShortLived;
177}

References fNonPhysBiasAllNeutral, and fNonPhysBiasAllNeutralISL.

◆ operator=()

G4GenericBiasingPhysics & G4GenericBiasingPhysics::operator= ( const G4GenericBiasingPhysics right)
private

◆ PhysicsBias() [1/2]

void G4GenericBiasingPhysics::PhysicsBias ( const G4String particleName)

Definition at line 76 of file G4GenericBiasingPhysics.cc.

77{
78 fBiasedParticles.push_back(particleName);
79 std::vector< G4String > dummy;
80 fBiasedProcesses.push_back(dummy);
81 fBiasAllProcesses.push_back(true);
82}

References fBiasAllProcesses, fBiasedParticles, and fBiasedProcesses.

Referenced by Bias().

◆ PhysicsBias() [2/2]

void G4GenericBiasingPhysics::PhysicsBias ( const G4String particleName,
const std::vector< G4String > &  processToBiasNames 
)

Definition at line 86 of file G4GenericBiasingPhysics.cc.

87{
88 fBiasedParticles.push_back(particleName);
89 fBiasedProcesses.push_back(processNames);
90 fBiasAllProcesses.push_back(false);
91}

References fBiasAllProcesses, fBiasedParticles, and fBiasedProcesses.

◆ PhysicsBiasAddPDGRange()

void G4GenericBiasingPhysics::PhysicsBiasAddPDGRange ( G4int  PDGlow,
G4int  PDGhigh,
G4bool  includeAntiParticle = true 
)

Definition at line 117 of file G4GenericBiasingPhysics.cc.

118{
119 if ( PDGlow > PDGhigh ) G4cout << " G4GenericBiasingPhysics::PhysicsBiasAddPDGRange(...) : PDGlow > PDGhigh, call ignored." << G4endl;
120 fPhysBiasByPDGRangeLow .push_back( PDGlow );
121 fPhysBiasByPDGRangeHigh.push_back( PDGhigh );
122 if ( includeAntiParticle )
123 {
124 fPhysBiasByPDGRangeLow .push_back( -PDGhigh );
125 fPhysBiasByPDGRangeHigh.push_back( -PDGlow );
126 }
127}

References fPhysBiasByPDGRangeHigh, fPhysBiasByPDGRangeLow, G4cout, and G4endl.

Referenced by BiasAddPDGRange().

◆ PhysicsBiasAllCharged()

void G4GenericBiasingPhysics::PhysicsBiasAllCharged ( G4bool  includeShortLived = false)

Definition at line 151 of file G4GenericBiasingPhysics.cc.

152{
153 fPhysBiasAllCharged = true;
154 fPhysBiasAllChargedISL = includeShortLived;
155}

References fPhysBiasAllCharged, and fPhysBiasAllChargedISL.

◆ PhysicsBiasAllNeutral()

void G4GenericBiasingPhysics::PhysicsBiasAllNeutral ( G4bool  includeShortLived = false)

Definition at line 168 of file G4GenericBiasingPhysics.cc.

169{
170 fPhysBiasAllNeutral = true;
171 fPhysBiasAllNeutralISL = includeShortLived;
172}

References fPhysBiasAllNeutral, and fPhysBiasAllNeutralISL.

◆ RegisterProcess()

G4bool G4VPhysicsConstructor::RegisterProcess ( G4VProcess process,
G4ParticleDefinition particle 
)
inlineprotectedinherited

◆ SetPhysicsName()

void G4VPhysicsConstructor::SetPhysicsName ( const G4String name = "")
inlineinherited

◆ SetPhysicsType()

void G4VPhysicsConstructor::SetPhysicsType ( G4int  val)
inlineinherited

Definition at line 196 of file G4VPhysicsConstructor.hh.

197{
198 if(val > 0) { typePhysics = val; }
199}

References G4VPhysicsConstructor::typePhysics.

Referenced by G4DecayPhysics::G4DecayPhysics(), G4EmDNAPhysics::G4EmDNAPhysics(), G4EmDNAPhysics_option1::G4EmDNAPhysics_option1(), G4EmDNAPhysics_option2::G4EmDNAPhysics_option2(), G4EmDNAPhysics_option3::G4EmDNAPhysics_option3(), G4EmDNAPhysics_option4::G4EmDNAPhysics_option4(), G4EmDNAPhysics_option5::G4EmDNAPhysics_option5(), G4EmDNAPhysics_option6::G4EmDNAPhysics_option6(), G4EmDNAPhysics_option7::G4EmDNAPhysics_option7(), G4EmDNAPhysics_option8::G4EmDNAPhysics_option8(), G4EmDNAPhysics_stationary_option2::G4EmDNAPhysics_stationary_option2(), G4EmDNAPhysics_stationary_option4::G4EmDNAPhysics_stationary_option4(), G4EmDNAPhysics_stationary_option6::G4EmDNAPhysics_stationary_option6(), G4EmExtraPhysics::G4EmExtraPhysics(), G4EmLivermorePhysics::G4EmLivermorePhysics(), G4EmLowEPPhysics::G4EmLowEPPhysics(), G4EmPenelopePhysics::G4EmPenelopePhysics(), G4EmStandardPhysics::G4EmStandardPhysics(), G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(), G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(), G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(), G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(), G4EmStandardPhysicsGS::G4EmStandardPhysicsGS(), G4EmStandardPhysicsSS::G4EmStandardPhysicsSS(), G4EmStandardPhysicsWVI::G4EmStandardPhysicsWVI(), G4HadronElasticPhysics::G4HadronElasticPhysics(), G4HadronInelasticQBBC::G4HadronInelasticQBBC(), G4HadronPhysicsFTFP_BERT::G4HadronPhysicsFTFP_BERT(), G4HadronPhysicsQGSP_BERT::G4HadronPhysicsQGSP_BERT(), G4HadronPhysicsQGSP_BIC::G4HadronPhysicsQGSP_BIC(), G4IonINCLXXPhysics::G4IonINCLXXPhysics(), G4IonPhysics::G4IonPhysics(), G4IonPhysicsPHP::G4IonPhysicsPHP(), G4IonQMDPhysics::G4IonQMDPhysics(), G4NeutronTrackingCut::G4NeutronTrackingCut(), G4StepLimiterPhysics::G4StepLimiterPhysics(), G4StoppingPhysics::G4StoppingPhysics(), and G4StoppingPhysicsFritiofWithBinaryCascade::G4StoppingPhysicsFritiofWithBinaryCascade().

◆ SetVerboseLevel()

void G4VPhysicsConstructor::SetVerboseLevel ( G4int  value)
inlineinherited

◆ TerminateWorker()

void G4VPhysicsConstructor::TerminateWorker ( )
virtualinherited

Definition at line 105 of file G4VPhysicsConstructor.cc.

106{
107 if(subInstanceManager.offset[g4vpcInstanceID]._builders != nullptr)
108 {
109 std::for_each(subInstanceManager.offset[g4vpcInstanceID]._builders->begin(),
110 subInstanceManager.offset[g4vpcInstanceID]._builders->end(),
111 [](PhysicsBuilder_V::value_type bld) { delete bld; });
112 subInstanceManager.offset[g4vpcInstanceID]._builders->clear();
113 }
114}

References G4VPhysicsConstructor::g4vpcInstanceID, G4VUPLSplitter< T >::offset, and G4VPhysicsConstructor::subInstanceManager.

Referenced by G4VPhysicsConstructor::~G4VPhysicsConstructor().

Field Documentation

◆ fAllChargedParallelGeometriesISL

std::vector< G4bool > G4GenericBiasingPhysics::fAllChargedParallelGeometriesISL
private

◆ fAllNeutralParallelGeometriesISL

std::vector< G4bool > G4GenericBiasingPhysics::fAllNeutralParallelGeometriesISL
private

◆ fBiasAllProcesses

std::vector< G4bool > G4GenericBiasingPhysics::fBiasAllProcesses
private

Definition at line 126 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and PhysicsBias().

◆ fBiasedParticles

std::vector< G4String > G4GenericBiasingPhysics::fBiasedParticles
private

Definition at line 125 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and PhysicsBias().

◆ fBiasedProcesses

std::vector< std::vector< G4String > > G4GenericBiasingPhysics::fBiasedProcesses
private

Definition at line 128 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and PhysicsBias().

◆ fNonPhysBiasAllCharged

G4bool G4GenericBiasingPhysics::fNonPhysBiasAllCharged
private

◆ fNonPhysBiasAllChargedISL

G4bool G4GenericBiasingPhysics::fNonPhysBiasAllChargedISL
private

◆ fNonPhysBiasAllNeutral

G4bool G4GenericBiasingPhysics::fNonPhysBiasAllNeutral
private

◆ fNonPhysBiasAllNeutralISL

G4bool G4GenericBiasingPhysics::fNonPhysBiasAllNeutralISL
private

◆ fNonPhysBiasByPDGRangeHigh

std::vector< G4int > G4GenericBiasingPhysics::fNonPhysBiasByPDGRangeHigh
private

Definition at line 134 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and NonPhysicsBiasAddPDGRange().

◆ fNonPhysBiasByPDGRangeLow

std::vector< G4int > G4GenericBiasingPhysics::fNonPhysBiasByPDGRangeLow
private

Definition at line 134 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and NonPhysicsBiasAddPDGRange().

◆ fNonPhysBiasedParticles

std::vector< G4String > G4GenericBiasingPhysics::fNonPhysBiasedParticles
private

Definition at line 130 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and NonPhysicsBias().

◆ fParallelGeometriesForCharged

std::vector< G4String > G4GenericBiasingPhysics::fParallelGeometriesForCharged
private

◆ fParallelGeometriesForNeutral

std::vector< G4String > G4GenericBiasingPhysics::fParallelGeometriesForNeutral
private

Definition at line 146 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometryAllNeutral().

◆ fParallelGeometriesForParticle

std::map< G4String, std::vector< G4String > > G4GenericBiasingPhysics::fParallelGeometriesForParticle
private

Definition at line 143 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometry(), and AssociateParallelGeometries().

◆ fParticlesWithParallelGeometries

std::vector< G4String > G4GenericBiasingPhysics::fParticlesWithParallelGeometries
private

Definition at line 142 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometry(), and AssociateParallelGeometries().

◆ fPDGhighParallelGeometries

std::vector< G4int > G4GenericBiasingPhysics::fPDGhighParallelGeometries
private

Definition at line 144 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometry(), and AssociateParallelGeometries().

◆ fPDGlowParallelGeometries

std::vector< G4int > G4GenericBiasingPhysics::fPDGlowParallelGeometries
private

Definition at line 144 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometry(), and AssociateParallelGeometries().

◆ fPDGrangeParallelGeometries

std::map< G4int, std::vector< G4String > > G4GenericBiasingPhysics::fPDGrangeParallelGeometries
private

Definition at line 145 of file G4GenericBiasingPhysics.hh.

Referenced by AddParallelGeometry(), and AssociateParallelGeometries().

◆ fPhysBiasAllCharged

G4bool G4GenericBiasingPhysics::fPhysBiasAllCharged
private

◆ fPhysBiasAllChargedISL

G4bool G4GenericBiasingPhysics::fPhysBiasAllChargedISL
private

◆ fPhysBiasAllNeutral

G4bool G4GenericBiasingPhysics::fPhysBiasAllNeutral
private

◆ fPhysBiasAllNeutralISL

G4bool G4GenericBiasingPhysics::fPhysBiasAllNeutralISL
private

◆ fPhysBiasByPDGRangeHigh

std::vector< G4int > G4GenericBiasingPhysics::fPhysBiasByPDGRangeHigh
private

Definition at line 133 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and PhysicsBiasAddPDGRange().

◆ fPhysBiasByPDGRangeLow

std::vector< G4int > G4GenericBiasingPhysics::fPhysBiasByPDGRangeLow
private

Definition at line 133 of file G4GenericBiasingPhysics.hh.

Referenced by ConstructProcess(), and PhysicsBiasAddPDGRange().

◆ fVerbose

G4bool G4GenericBiasingPhysics::fVerbose
private

Definition at line 154 of file G4GenericBiasingPhysics.hh.

Referenced by BeVerbose(), and ConstructProcess().

◆ g4vpcInstanceID

G4int G4VPhysicsConstructor::g4vpcInstanceID = 0
protectedinherited

◆ namePhysics

G4String G4VPhysicsConstructor::namePhysics = ""
protectedinherited

◆ subInstanceManager

G4VPCManager G4VPhysicsConstructor::subInstanceManager
staticprotectedinherited

◆ theParticleTable

G4ParticleTable* G4VPhysicsConstructor::theParticleTable = nullptr
protectedinherited

◆ typePhysics

G4int G4VPhysicsConstructor::typePhysics = 0
protectedinherited

◆ verboseLevel

G4int G4VPhysicsConstructor::verboseLevel = 0
protectedinherited

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