Geant4  10.02.p03
B3aRunAction Class Reference

Run action class. More...

#include <B3aRunAction.hh>

Inheritance diagram for B3aRunAction:
Collaboration diagram for B3aRunAction:

Public Member Functions

 B3aRunAction ()
 
virtual ~B3aRunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountEvent ()
 
void SumDose (G4double dose)
 
- Public Member Functions inherited from G4UserRunAction
 G4UserRunAction ()
 
virtual ~G4UserRunAction ()
 
virtual G4RunGenerateRun ()
 
void SetMaster (G4bool val=true)
 
G4bool IsMaster () const
 

Private Attributes

G4Parameter< G4intfGoodEvents
 
G4Parameter< G4doublefSumDose
 

Additional Inherited Members

- Protected Attributes inherited from G4UserRunAction
G4bool isMaster
 

Detailed Description

Run action class.

Definition at line 40 of file B3aRunAction.hh.

Constructor & Destructor Documentation

◆ B3aRunAction()

B3aRunAction::B3aRunAction ( )

Definition at line 42 of file B3aRunAction.cc.

43  : G4UserRunAction(),
44  fGoodEvents("GoodEvents", 0),
45  fSumDose("SumDose", 0.)
46 {
47  //add new units for dose
48  //
49  const G4double milligray = 1.e-3*gray;
50  const G4double microgray = 1.e-6*gray;
51  const G4double nanogray = 1.e-9*gray;
52  const G4double picogray = 1.e-12*gray;
53 
54  new G4UnitDefinition("milligray", "milliGy" , "Dose", milligray);
55  new G4UnitDefinition("microgray", "microGy" , "Dose", microgray);
56  new G4UnitDefinition("nanogray" , "nanoGy" , "Dose", nanogray);
57  new G4UnitDefinition("picogray" , "picoGy" , "Dose", picogray);
58 
59  // Register parameter to the parameter manager
61  parameterManager->RegisterParameter(fGoodEvents);
62  parameterManager->RegisterParameter(fSumDose);
63 }
G4Parameter< G4int > fGoodEvents
Definition: B3aRunAction.hh:50
G4Parameter< G4double > fSumDose
Definition: B3aRunAction.hh:54
static G4ParameterManager * Instance()
static const double milligray
Definition: G4SIunits.hh:308
static const double microgray
Definition: G4SIunits.hh:309
static const double gray
Definition: G4SIunits.hh:306
double G4double
Definition: G4Types.hh:76
void RegisterParameter(G4Parameter< T > &parameter)
Here is the call graph for this function:

◆ ~B3aRunAction()

B3aRunAction::~B3aRunAction ( )
virtual

Definition at line 67 of file B3aRunAction.cc.

68 { }

Member Function Documentation

◆ BeginOfRunAction()

void B3aRunAction::BeginOfRunAction ( const G4Run run)
virtual

Reimplemented from G4UserRunAction.

Definition at line 72 of file B3aRunAction.cc.

73 {
74  G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
75 
76  // reset parameters to their initial values
78  parameterManager->Reset();
79 
80  //inform the runManager to save random number seed
82 }
static G4ParameterManager * Instance()
void SetRandomNumberStore(G4bool flag)
G4GLOB_DLL std::ostream G4cout
G4int GetRunID() const
Definition: G4Run.hh:76
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:

◆ CountEvent()

void B3aRunAction::CountEvent ( )
inline

Definition at line 49 of file B3aRunAction.hh.

49 { fGoodEvents += 1; };
G4Parameter< G4int > fGoodEvents
Definition: B3aRunAction.hh:50
Here is the caller graph for this function:

◆ EndOfRunAction()

void B3aRunAction::EndOfRunAction ( const G4Run run)
virtual

Reimplemented from G4UserRunAction.

Definition at line 86 of file B3aRunAction.cc.

87 {
88  G4int nofEvents = run->GetNumberOfEvent();
89  if (nofEvents == 0) return;
90 
91  // Merge parameters
93  parameterManager->Merge();
94 
95  // Run conditions
96  // note: There is no primary generator action object for "master"
97  // run manager for multi-threaded mode.
98  const B3PrimaryGeneratorAction* generatorAction
99  = static_cast<const B3PrimaryGeneratorAction*>(
101  G4String partName;
102  if (generatorAction)
103  {
104  G4ParticleDefinition* particle
105  = generatorAction->GetParticleGun()->GetParticleDefinition();
106  partName = particle->GetParticleName();
107  }
108 
109  // Print results
110  //
111  if (IsMaster())
112  {
113  G4cout
114  << G4endl
115  << "--------------------End of Global Run-----------------------"
116  << G4endl
117  << " The run was " << nofEvents << " events ";
118  }
119  else
120  {
121  G4cout
122  << G4endl
123  << "--------------------End of Local Run------------------------"
124  << G4endl
125  << " The run was " << nofEvents << " "<< partName;
126  }
127  G4cout
128  << "; Nb of 'good' e+ annihilations: " << fGoodEvents.GetValue() << G4endl
129  << " Total dose in patient : " << G4BestUnit(fSumDose.GetValue(),"Dose")
130  << G4endl
131  << "------------------------------------------------------------" << G4endl
132  << G4endl;
133 }
G4Parameter< G4int > fGoodEvents
Definition: B3aRunAction.hh:50
G4Parameter< G4double > fSumDose
Definition: B3aRunAction.hh:54
T GetValue() const
static G4ParameterManager * Instance()
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
G4bool IsMaster() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
const G4VUserPrimaryGeneratorAction * GetUserPrimaryGeneratorAction() const
#define G4endl
Definition: G4ios.hh:61
G4int GetNumberOfEvent() const
Definition: G4Run.hh:79
const G4ParticleGun * GetParticleGun() const
G4ParticleDefinition * GetParticleDefinition() const
Here is the call graph for this function:

◆ SumDose()

void B3aRunAction::SumDose ( G4double  dose)
inline

Definition at line 50 of file B3aRunAction.hh.

50 { fSumDose += dose; };
Float_t dose
G4Parameter< G4double > fSumDose
Definition: B3aRunAction.hh:54
Here is the caller graph for this function:

Member Data Documentation

◆ fGoodEvents

G4Parameter<G4int> B3aRunAction::fGoodEvents
private

Definition at line 50 of file B3aRunAction.hh.

◆ fSumDose

G4Parameter<G4double> B3aRunAction::fSumDose
private

Definition at line 54 of file B3aRunAction.hh.


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