Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
GB01BOptrMultiParticleChangeCrossSection Class Reference

#include <Doxymodules_biasing.h>

Inheritance diagram for GB01BOptrMultiParticleChangeCrossSection:
G4VBiasingOperator

Public Member Functions

 GB01BOptrMultiParticleChangeCrossSection ()
 
virtual ~GB01BOptrMultiParticleChangeCrossSection ()
 
void AddParticle (G4String particleName)
 
void StartTracking (const G4Track *track)
 

Private Member Functions

virtual G4VBiasingOperationProposeOccurenceBiasingOperation (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 
virtual G4VBiasingOperationProposeFinalStateBiasingOperation (const G4Track *, const G4BiasingProcessInterface *)
 
virtual G4VBiasingOperationProposeNonPhysicsBiasingOperation (const G4Track *, const G4BiasingProcessInterface *)
 
virtual void OperationApplied (const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *occurenceOperationApplied, G4double weightForOccurenceInteraction, G4VBiasingOperation *finalStateOperationApplied, const G4VParticleChange *particleChangeProduced)
 

Private Attributes

std::map< const G4ParticleDefinition *, GB01BOptrChangeCrossSection * > fBOptrForParticle
 
std::vector< const G4ParticleDefinition * > fParticlesToBias
 
GB01BOptrChangeCrossSectionfCurrentOperator
 
G4int fnInteractions
 

Detailed Description

Definition at line 68 of file Doxymodules_biasing.h.

Constructor & Destructor Documentation

◆ GB01BOptrMultiParticleChangeCrossSection()

GB01BOptrMultiParticleChangeCrossSection::GB01BOptrMultiParticleChangeCrossSection ( )

Definition at line 40 of file GB01BOptrMultiParticleChangeCrossSection.cc.

41 : G4VBiasingOperator("TestManyExponentialTransform")
42{}

◆ ~GB01BOptrMultiParticleChangeCrossSection()

virtual GB01BOptrMultiParticleChangeCrossSection::~GB01BOptrMultiParticleChangeCrossSection ( )
inlinevirtual

Definition at line 56 of file GB01BOptrMultiParticleChangeCrossSection.hh.

56{}

Member Function Documentation

◆ AddParticle()

void GB01BOptrMultiParticleChangeCrossSection::AddParticle ( G4String  particleName)

Definition at line 46 of file GB01BOptrMultiParticleChangeCrossSection.cc.

47{
48 const G4ParticleDefinition* particle =
49 G4ParticleTable::GetParticleTable()->FindParticle( particleName );
50
51 if ( particle == 0 )
52 {
53 G4ExceptionDescription ed;
54 ed << "Particle `" << particleName << "' not found !" << G4endl;
55 G4Exception("GB01BOptrMultiParticleChangeCrossSection::AddParticle(...)",
56 "exGB01.02",
57 JustWarning,
58 ed);
59 return;
60 }
61
63 fParticlesToBias.push_back( particle );
64 fBOptrForParticle[ particle ] = optr;
65}
std::vector< const G4ParticleDefinition * > fParticlesToBias
std::map< const G4ParticleDefinition *, GB01BOptrChangeCrossSection * > fBOptrForParticle

◆ ProposeOccurenceBiasingOperation()

G4VBiasingOperation * GB01BOptrMultiParticleChangeCrossSection::ProposeOccurenceBiasingOperation ( const G4Track track,
const G4BiasingProcessInterface callingProcess 
)
privatevirtual

Definition at line 70 of file GB01BOptrMultiParticleChangeCrossSection.cc.

73{
74 // -- examples of limitations imposed to apply the biasing:
75 // -- limit application of biasing to primary particles only:
76 if ( track->GetParentID() != 0 ) return 0;
77 // -- limit to at most 5 biased interactions:
78 if ( fnInteractions > 4 ) return 0;
79 // -- and limit to a weight of at least 0.05:
80 if ( track->GetWeight() < 0.05 ) return 0;
81
83 GetProposedOccurenceBiasingOperation(track, callingProcess);
84 else return 0;
85}

◆ ProposeFinalStateBiasingOperation()

virtual G4VBiasingOperation * GB01BOptrMultiParticleChangeCrossSection::ProposeFinalStateBiasingOperation ( const G4Track ,
const G4BiasingProcessInterface  
)
inlineprivatevirtual

Definition at line 77 of file GB01BOptrMultiParticleChangeCrossSection.hh.

78 {return 0;}

◆ ProposeNonPhysicsBiasingOperation()

virtual G4VBiasingOperation * GB01BOptrMultiParticleChangeCrossSection::ProposeNonPhysicsBiasingOperation ( const G4Track ,
const G4BiasingProcessInterface  
)
inlineprivatevirtual

Definition at line 80 of file GB01BOptrMultiParticleChangeCrossSection.hh.

81 {return 0;}

◆ OperationApplied()

void GB01BOptrMultiParticleChangeCrossSection::OperationApplied ( const G4BiasingProcessInterface callingProcess,
G4BiasingAppliedCase  biasingCase,
G4VBiasingOperation occurenceOperationApplied,
G4double  weightForOccurenceInteraction,
G4VBiasingOperation finalStateOperationApplied,
const G4VParticleChange particleChangeProduced 
)
privatevirtual

Definition at line 105 of file GB01BOptrMultiParticleChangeCrossSection.cc.

112{
113 // -- count number of biased interactions:
115
116 // -- inform the underneath biasing operator that a biased interaction occured:
117 if ( fCurrentOperator ) fCurrentOperator->ReportOperationApplied( callingProcess,
118 biasingCase,
119 occurenceOperationApplied,
120 weightForOccurenceInteraction,
121 finalStateOperationApplied,
122 particleChangeProduced );
123}

◆ StartTracking()

void GB01BOptrMultiParticleChangeCrossSection::StartTracking ( const G4Track track)

Definition at line 89 of file GB01BOptrMultiParticleChangeCrossSection.cc.

90{
91 // -- fetch the underneath biasing operator, if any, for the current particle type:
92 const G4ParticleDefinition* definition = track->GetParticleDefinition();
93 std::map < const G4ParticleDefinition*, GB01BOptrChangeCrossSection* > :: iterator
94 it = fBOptrForParticle.find( definition );
96 if ( it != fBOptrForParticle.end() ) fCurrentOperator = (*it).second;
97
98 // -- reset count for number of biased interactions:
100}

Member Data Documentation

◆ fBOptrForParticle

std::map< const G4ParticleDefinition*, GB01BOptrChangeCrossSection* > GB01BOptrMultiParticleChangeCrossSection::fBOptrForParticle
private

Definition at line 106 of file GB01BOptrMultiParticleChangeCrossSection.hh.

◆ fParticlesToBias

std::vector< const G4ParticleDefinition* > GB01BOptrMultiParticleChangeCrossSection::fParticlesToBias
private

Definition at line 107 of file GB01BOptrMultiParticleChangeCrossSection.hh.

◆ fCurrentOperator

GB01BOptrChangeCrossSection* GB01BOptrMultiParticleChangeCrossSection::fCurrentOperator
private

Definition at line 108 of file GB01BOptrMultiParticleChangeCrossSection.hh.

◆ fnInteractions

G4int GB01BOptrMultiParticleChangeCrossSection::fnInteractions
private

Definition at line 111 of file GB01BOptrMultiParticleChangeCrossSection.hh.


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

Applications | User Support | Publications | Collaboration