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

#include <G4GenericBiasingPhysics.hh>

+ Inheritance diagram for G4GenericBiasingPhysics:

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)
 
void PhysicsBiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void NonPhysicsBiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void BiasAddPDGRange (G4int PDGlow, G4int PDGhigh, G4bool includeAntiParticle=true)
 
void PhysicsBiasAllCharged (G4bool includeShortLived=false)
 
void NonPhysicsBiasAllCharged (G4bool includeShortLived=false)
 
void BiasAllCharged (G4bool includeShortLived=false)
 
void PhysicsBiasAllNeutral (G4bool includeShortLived=false)
 
void NonPhysicsBiasAllNeutral (G4bool includeShortLived=false)
 
void BiasAllNeutral (G4bool includeShortLived=false)
 
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 ()
 
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
 
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 41 of file G4GenericBiasingPhysics.hh.

Constructor & Destructor Documentation

◆ G4GenericBiasingPhysics()

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

Definition at line 59 of file G4GenericBiasingPhysics.cc.

61 fPhysBiasAllCharged(false), fNonPhysBiasAllCharged(false),
62 fPhysBiasAllChargedISL(false), fNonPhysBiasAllChargedISL(false),
63 fPhysBiasAllNeutral(false), fNonPhysBiasAllNeutral(false),
64 fPhysBiasAllNeutralISL(false), fNonPhysBiasAllNeutralISL(false),
65 fVerbose(false)
66{;}
G4VPhysicsConstructor(const G4String &="")

◆ ~G4GenericBiasingPhysics()

G4GenericBiasingPhysics::~G4GenericBiasingPhysics ( )
virtual

Definition at line 70 of file G4GenericBiasingPhysics.cc.

71{;}

Member Function Documentation

◆ 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

Referenced by AddParallelGeometry(), and 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)

◆ 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 = G4int(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 = G4int(fPDGlowParallelGeometries.size() - 1);
240 fPDGrangeParallelGeometries[rangeIndex].push_back( parallelGeometryName );
241 }
242
243}
int G4int
Definition G4Types.hh:85
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

◆ 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}

◆ 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}

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)

◆ 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}

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)

◆ BeVerbose()

void G4GenericBiasingPhysics::BeVerbose ( )
inline

Definition at line 106 of file G4GenericBiasingPhysics.hh.

106{ fVerbose = true; }

◆ 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)

◆ 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}

◆ 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)

◆ BiasAllCharged()

void G4GenericBiasingPhysics::BiasAllCharged ( G4bool includeShortLived = false)

Definition at line 161 of file G4GenericBiasingPhysics.cc.

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

◆ BiasAllNeutral()

void G4GenericBiasingPhysics::BiasAllNeutral ( G4bool includeShortLived = false)

Definition at line 178 of file G4GenericBiasingPhysics.cc.

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

◆ 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(),
326 fNonPhysBiasedParticles.end(),
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 (G4int ip = 0 ; ip < (G4int)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(),
377 fNonPhysBiasedParticles.end(),
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 ( std::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 ( std::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 (G4int ip = 0 ; ip < (G4int)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:
448 AssociateParallelGeometries();
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 (G4int ip = 0 ; ip < (G4int)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}
std::vector< G4InuclElementaryParticle >::iterator particleIterator
static void ActivateNonPhysicsBiasing(G4ProcessManager *pmanager, G4String nonPhysicsProcessName="")
static G4bool ActivatePhysicsBiasing(G4ProcessManager *pmanager, G4String physicsProcessToBias, G4String wrappedName="")
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4ProcessVector * GetProcessList() const
std::size_t size() const
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
const G4String & GetProcessName() const
#define DBL_MIN
Definition templates.hh:54

◆ NonPhysicsBias()

void G4GenericBiasingPhysics::NonPhysicsBias ( const G4String & particleName)

Definition at line 95 of file G4GenericBiasingPhysics.cc.

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

Referenced by Bias(), and 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}

Referenced by BiasAddPDGRange().

◆ NonPhysicsBiasAllCharged()

void G4GenericBiasingPhysics::NonPhysicsBiasAllCharged ( G4bool includeShortLived = false)

Definition at line 156 of file G4GenericBiasingPhysics.cc.

157{
158 fNonPhysBiasAllCharged = true;
159 fNonPhysBiasAllChargedISL = includeShortLived;
160}

◆ NonPhysicsBiasAllNeutral()

void G4GenericBiasingPhysics::NonPhysicsBiasAllNeutral ( G4bool includeShortLived = false)

Definition at line 173 of file G4GenericBiasingPhysics.cc.

174{
175 fNonPhysBiasAllNeutral = true;
176 fNonPhysBiasAllNeutralISL = includeShortLived;
177}

◆ 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}

Referenced by Bias(), and 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}

◆ 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}

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}

◆ PhysicsBiasAllNeutral()

void G4GenericBiasingPhysics::PhysicsBiasAllNeutral ( G4bool includeShortLived = false)

Definition at line 168 of file G4GenericBiasingPhysics.cc.

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

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