Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
B1RunAction Class Reference

#include <B1RunAction.hh>

Inheritance diagram for B1RunAction:
G4UserRunAction G4UserRunAction

Public Member Functions

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

Additional Inherited Members

- Protected Attributes inherited from G4UserRunAction
G4bool isMaster
 

Detailed Description

Run action class

In EndOfRunAction(), it calculates the dose in the selected volume from the energy deposit accumulated via stepping and event actions. The computed dose is then printed on the screen.

Definition at line 46 of file basic/B1/include/B1RunAction.hh.

Constructor & Destructor Documentation

B1RunAction::B1RunAction ( )

Definition at line 44 of file basic/B1/src/B1RunAction.cc.

References python.hepunit::gray.

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 }
double G4double
Definition: G4Types.hh:76
B1RunAction::~B1RunAction ( )
virtual

Definition at line 62 of file basic/B1/src/B1RunAction.cc.

63 {}
B1RunAction::B1RunAction ( )
virtual B1RunAction::~B1RunAction ( )
virtual

Member Function Documentation

virtual void B1RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void B1RunAction::BeginOfRunAction ( const G4Run aRun)
virtual

Reimplemented from G4UserRunAction.

Definition at line 74 of file basic/B1/src/B1RunAction.cc.

References G4RunManager::GetRunManager(), and G4RunManager::SetRandomNumberStore().

75 {
76  //inform the runManager to save random number seed
78 }
void SetRandomNumberStore(G4bool flag)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
virtual void B1RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void B1RunAction::EndOfRunAction ( const G4Run run)
virtual

Reimplemented from G4UserRunAction.

Definition at line 82 of file basic/B1/src/B1RunAction.cc.

References G4BestUnit, G4cout, G4endl, B1Run::GetEdep(), B1Run::GetEdep2(), G4LogicalVolume::GetMass(), G4Run::GetNumberOfEvent(), G4ParticleGun::GetParticleDefinition(), G4ParticleGun::GetParticleEnergy(), B1PrimaryGeneratorAction::GetParticleGun(), G4ParticleDefinition::GetParticleName(), G4RunManager::GetRunManager(), B1DetectorConstruction::GetScoringVolume(), G4RunManager::GetUserDetectorConstruction(), G4RunManager::GetUserPrimaryGeneratorAction(), and G4UserRunAction::IsMaster().

83 {
84  G4int nofEvents = run->GetNumberOfEvent();
85  if (nofEvents == 0) return;
86 
87  const B1Run* b1Run = static_cast<const B1Run*>(run);
88 
89  // Compute dose
90  //
91  G4double edep = b1Run->GetEdep();
92  G4double edep2 = b1Run->GetEdep2();
93  G4double rms = edep2 - edep*edep/nofEvents;
94  if (rms > 0.) rms = std::sqrt(rms); else rms = 0.;
95 
96  const B1DetectorConstruction* detectorConstruction
97  = static_cast<const B1DetectorConstruction*>
99  G4double mass = detectorConstruction->GetScoringVolume()->GetMass();
100  G4double dose = edep/mass;
101  G4double rmsDose = rms/mass;
102 
103  // Run conditions
104  // note: There is no primary generator action object for "master"
105  // run manager for multi-threaded mode.
106  const B1PrimaryGeneratorAction* generatorAction
107  = static_cast<const B1PrimaryGeneratorAction*>
109  G4String runCondition;
110  if (generatorAction)
111  {
112  const G4ParticleGun* particleGun = generatorAction->GetParticleGun();
113  runCondition += particleGun->GetParticleDefinition()->GetParticleName();
114  runCondition += " of ";
115  G4double particleEnergy = particleGun->GetParticleEnergy();
116  runCondition += G4BestUnit(particleEnergy,"Energy");
117  }
118 
119  // Print
120  //
121  if (IsMaster()) {
122  G4cout
123  << "\n--------------------End of Global Run-----------------------";
124  }
125  else {
126  G4cout
127  << "\n--------------------End of Local Run------------------------";
128  }
129 
130  G4cout
131  << "\n The run consists of " << nofEvents << " "<< runCondition
132  << "\n Dose in scoring volume : "
133  << G4BestUnit(dose,"Dose") << " +- " << G4BestUnit(rmsDose,"Dose")
134  << "\n------------------------------------------------------------\n"
135  << G4endl;
136 }
const G4VUserPrimaryGeneratorAction * GetUserPrimaryGeneratorAction() const
const G4VUserDetectorConstruction * GetUserDetectorConstruction() const
Detector construction class to define materials and geometry.
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4double GetEdep() const
G4GLOB_DLL std::ostream G4cout
G4int GetNumberOfEvent() const
Definition: G4Run.hh:79
G4bool IsMaster() const
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
G4ParticleDefinition * GetParticleDefinition() const
#define G4endl
Definition: G4ios.hh:61
G4double GetMass(G4bool forced=false, G4bool propagate=true, G4Material *parMaterial=0)
double G4double
Definition: G4Types.hh:76
G4double GetParticleEnergy() const
G4double GetEdep2() const
G4Run * B1RunAction::GenerateRun ( void  )
virtual

Reimplemented from G4UserRunAction.

Definition at line 67 of file basic/B1/src/B1RunAction.cc.

68 {
69  return new B1Run;
70 }

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