Geant4  10.02.p03
GB04BOptrBremSplitting Class Reference

#include <GB04BOptrBremSplitting.hh>

Inheritance diagram for GB04BOptrBremSplitting:
Collaboration diagram for GB04BOptrBremSplitting:

Public Member Functions

 GB04BOptrBremSplitting ()
 
virtual ~GB04BOptrBremSplitting ()
 
virtual void StartRun ()
 
virtual void StartTracking (const G4Track *track)
 
- Public Member Functions inherited from G4VBiasingOperator
 G4VBiasingOperator (G4String name)
 
virtual ~G4VBiasingOperator ()
 
virtual void Configure ()
 
virtual void ConfigureForWorker ()
 
virtual void EndTracking ()
 
const G4String GetName () const
 
void AttachTo (const G4LogicalVolume *)
 
G4BiasingAppliedCase GetPreviousBiasingAppliedCase () const
 
G4VBiasingOperationGetProposedOccurenceBiasingOperation (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 
G4VBiasingOperationGetProposedFinalStateBiasingOperation (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 
G4VBiasingOperationGetProposedNonPhysicsBiasingOperation (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 
void ExitingBiasing (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 
void ReportOperationApplied (const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *operationApplied, const G4VParticleChange *particleChangeProduced)
 
void ReportOperationApplied (const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *occurenceOperationApplied, G4double weightForOccurenceInteraction, G4VBiasingOperation *finalStateOperationApplied, const G4VParticleChange *particleChangeProduced)
 
const G4VBiasingOperationGetPreviousNonPhysicsAppliedOperation ()
 

Private Member Functions

virtual G4VBiasingOperationProposeNonPhysicsBiasingOperation (const G4Track *, const G4BiasingProcessInterface *)
 
virtual G4VBiasingOperationProposeOccurenceBiasingOperation (const G4Track *, const G4BiasingProcessInterface *)
 
virtual G4VBiasingOperationProposeFinalStateBiasingOperation (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 

Private Attributes

GB04BOptnBremSplittingfBremSplittingOperation
 
G4int fSplittingFactor
 
G4bool fBiasPrimaryOnly
 
G4bool fBiasOnlyOnce
 
G4int nInteractions
 
G4GenericMessengerfSplittingFactorMessenger
 
G4GenericMessengerfBiasPrimaryOnlyMessenger
 
G4GenericMessengerfBiasOnlyOnceMessenger
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VBiasingOperator
static const std::vector< G4VBiasingOperator *> & GetBiasingOperators ()
 
static G4VBiasingOperatorGetBiasingOperator (const G4LogicalVolume *)
 
- Protected Member Functions inherited from G4VBiasingOperator
virtual void OperationApplied (const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *operationApplied, const G4VParticleChange *particleChangeProduced)
 
virtual void OperationApplied (const G4BiasingProcessInterface *callingProcess, G4BiasingAppliedCase biasingCase, G4VBiasingOperation *occurenceOperationApplied, G4double weightForOccurenceInteraction, G4VBiasingOperation *finalStateOperationApplied, const G4VParticleChange *particleChangeProduced)
 
virtual void ExitBiasing (const G4Track *track, const G4BiasingProcessInterface *callingProcess)
 

Detailed Description

Definition at line 37 of file GB04BOptrBremSplitting.hh.

Constructor & Destructor Documentation

◆ GB04BOptrBremSplitting()

GB04BOptrBremSplitting::GB04BOptrBremSplitting ( )

Definition at line 39 of file GB04BOptrBremSplitting.cc.

40 : G4VBiasingOperator("BremSplittingOperator"),
42  fBiasPrimaryOnly(true),
43  fBiasOnlyOnce(true)
44 {
45  fBremSplittingOperation = new GB04BOptnBremSplitting("BremSplittingOperation");
46 
47  // -- Define messengers:
48  // -- Splitting factor:
50  new G4GenericMessenger(this, "/GB04/biasing/","Biasing control" );
51  G4GenericMessenger::Command& splittingFactorCmd =
53  "Define the brem. splitting factor." );
54  splittingFactorCmd.SetStates(G4State_Idle);
55  // -- Bias ony primary particle:
57  new G4GenericMessenger(this, "/GB04/biasing/","Biasing control" );
58  G4GenericMessenger::Command& biasPrimaryCmd =
60  "Chose if brem. splitting applies to primary particles only." );
61  biasPrimaryCmd.SetStates(G4State_Idle);
62  // -- Bias ony primary particle:
64  new G4GenericMessenger(this, "/GB04/biasing/","Biasing control" );
65  G4GenericMessenger::Command& biasOnlyOnceCmd =
67  "Chose if apply the brem. splitting only once for the track." );
68  biasOnlyOnceCmd.SetStates(G4State_Idle);
69 
70 }
This class is generic messenger.
Command & DeclareProperty(const G4String &name, const G4AnyType &variable, const G4String &doc="")
Declare Methods.
G4GenericMessenger * fBiasPrimaryOnlyMessenger
G4GenericMessenger * fSplittingFactorMessenger
Command & SetStates(G4ApplicationState s0)
G4VBiasingOperator(G4String name)
GB04BOptnBremSplitting * fBremSplittingOperation
G4GenericMessenger * fBiasOnlyOnceMessenger
Here is the call graph for this function:

◆ ~GB04BOptrBremSplitting()

virtual GB04BOptrBremSplitting::~GB04BOptrBremSplitting ( )
inlinevirtual

Definition at line 40 of file GB04BOptrBremSplitting.hh.

40 {}
Here is the call graph for this function:

Member Function Documentation

◆ ProposeFinalStateBiasingOperation()

G4VBiasingOperation * GB04BOptrBremSplitting::ProposeFinalStateBiasingOperation ( const G4Track *  track,
const G4BiasingProcessInterface callingProcess 
)
privatevirtual

Implements G4VBiasingOperator.

Definition at line 98 of file GB04BOptrBremSplitting.cc.

100 {
101  // -- Check if biasing of primary particle only is requested. If so, and
102  // -- if particle is not a primary one, don't ask for biasing:
103  if ( fBiasPrimaryOnly && ( track->GetParentID() !=0 ) ) return 0;
104  // -- Check if brem. splitting should be applied only once to the track,
105  // -- and if so, and if brem. splitting already occured, don't ask for biasing:
106  if ( fBiasOnlyOnce && ( nInteractions > 0 ) ) return 0;
107 
108  // -- Count the number of times the brem. splitting is applied:
109  nInteractions++;
110  // -- Return the brem. splitting operation:
112 }
GB04BOptnBremSplitting * fBremSplittingOperation
Here is the caller graph for this function:

◆ ProposeNonPhysicsBiasingOperation()

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

Implements G4VBiasingOperator.

Definition at line 57 of file GB04BOptrBremSplitting.hh.

59  { return 0; }

◆ ProposeOccurenceBiasingOperation()

virtual G4VBiasingOperation* GB04BOptrBremSplitting::ProposeOccurenceBiasingOperation ( const G4Track *  ,
const G4BiasingProcessInterface  
)
inlineprivatevirtual

Implements G4VBiasingOperator.

Definition at line 61 of file GB04BOptrBremSplitting.hh.

63  { return 0; }
Here is the call graph for this function:

◆ StartRun()

void GB04BOptrBremSplitting::StartRun ( )
virtual

Reimplemented from G4VBiasingOperator.

Definition at line 74 of file GB04BOptrBremSplitting.cc.

75 {
77  G4cout << GetName() << " : starting run with brem. splitting factor = "
79  if ( fBiasPrimaryOnly ) G4cout << ", biasing only primaries ";
80  else G4cout << ", biasing primary and secondary tracks ";
81  if ( fBiasOnlyOnce ) G4cout << ", biasing only once per track ";
82  else G4cout << ", biasing several times per track ";
83  G4cout << " . " << G4endl;
84 }
void SetSplittingFactor(G4int splittingFactor)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
GB04BOptnBremSplitting * fBremSplittingOperation
const G4String GetName() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ StartTracking()

void GB04BOptrBremSplitting::StartTracking ( const G4Track *  track)
virtual

Reimplemented from G4VBiasingOperator.

Definition at line 88 of file GB04BOptrBremSplitting.cc.

89 {
90  // -- reset the number of times the brem. splitting was applied:
91  nInteractions = 0;
92 }
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ fBiasOnlyOnce

G4bool GB04BOptrBremSplitting::fBiasOnlyOnce
private

Definition at line 78 of file GB04BOptrBremSplitting.hh.

◆ fBiasOnlyOnceMessenger

G4GenericMessenger* GB04BOptrBremSplitting::fBiasOnlyOnceMessenger
private

Definition at line 83 of file GB04BOptrBremSplitting.hh.

◆ fBiasPrimaryOnly

G4bool GB04BOptrBremSplitting::fBiasPrimaryOnly
private

Definition at line 77 of file GB04BOptrBremSplitting.hh.

◆ fBiasPrimaryOnlyMessenger

G4GenericMessenger* GB04BOptrBremSplitting::fBiasPrimaryOnlyMessenger
private

Definition at line 82 of file GB04BOptrBremSplitting.hh.

◆ fBremSplittingOperation

GB04BOptnBremSplitting* GB04BOptrBremSplitting::fBremSplittingOperation
private

Definition at line 75 of file GB04BOptrBremSplitting.hh.

◆ fSplittingFactor

G4int GB04BOptrBremSplitting::fSplittingFactor
private

Definition at line 76 of file GB04BOptrBremSplitting.hh.

◆ fSplittingFactorMessenger

G4GenericMessenger* GB04BOptrBremSplitting::fSplittingFactorMessenger
private

Definition at line 81 of file GB04BOptrBremSplitting.hh.

◆ nInteractions

G4int GB04BOptrBremSplitting::nInteractions
private

Definition at line 79 of file GB04BOptrBremSplitting.hh.


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