Loading...
Searching...
No Matches
Public Member Functions | List of all members
B1RunAction Class Reference

Run action class. More...

#include <B1RunAction.hh>

Inheritance diagram for B1RunAction:
G4UserRunAction

Public Member Functions

 B1RunAction ()
 
virtual ~B1RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 

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 45 of file B1RunAction.hh.

Constructor & Destructor Documentation

◆ B1RunAction()

B1RunAction::B1RunAction ( )

Definition at line 43 of file B1RunAction.cc.

45{
46 // add new units for dose
47 //
48 const G4double milligray = 1.e-3*gray;
49 const G4double microgray = 1.e-6*gray;
50 const G4double nanogray = 1.e-9*gray;
51 const G4double picogray = 1.e-12*gray;
52
53 new G4UnitDefinition("milligray", "milliGy" , "Dose", milligray);
54 new G4UnitDefinition("microgray", "microGy" , "Dose", microgray);
55 new G4UnitDefinition("nanogray" , "nanoGy" , "Dose", nanogray);
56 new G4UnitDefinition("picogray" , "picoGy" , "Dose", picogray);
57}

◆ ~B1RunAction()

B1RunAction::~B1RunAction ( )
virtual

Definition at line 61 of file B1RunAction.cc.

62{}

Member Function Documentation

◆ GenerateRun()

G4Run * B1RunAction::GenerateRun ( )
virtual

Definition at line 66 of file B1RunAction.cc.

67{
68 return new B1Run;
69}
Run class.

◆ BeginOfRunAction()

void B1RunAction::BeginOfRunAction ( const G4Run )
virtual

Definition at line 73 of file B1RunAction.cc.

74{
75 //inform the runManager to save random number seed
76 G4RunManager::GetRunManager()->SetRandomNumberStore(false);
77}

◆ EndOfRunAction()

void B1RunAction::EndOfRunAction ( const G4Run run)
virtual

Definition at line 81 of file B1RunAction.cc.

82{
83 G4int nofEvents = run->GetNumberOfEvent();
84 if (nofEvents == 0) return;
85
86 const B1Run* b1Run = static_cast<const B1Run*>(run);
87
88 // Compute dose
89 //
90 G4double edep = b1Run->GetEdep();
91 G4double edep2 = b1Run->GetEdep2();
92 G4double rms = edep2 - edep*edep/nofEvents;
93 if (rms > 0.) rms = std::sqrt(rms); else rms = 0.;
94
95 const B1DetectorConstruction* detectorConstruction
96 = static_cast<const B1DetectorConstruction*>
97 (G4RunManager::GetRunManager()->GetUserDetectorConstruction());
98 G4double mass = detectorConstruction->GetScoringVolume()->GetMass();
99 G4double dose = edep/mass;
100 G4double rmsDose = rms/mass;
101
102 // Run conditions
103 // note: There is no primary generator action object for "master"
104 // run manager for multi-threaded mode.
105 const B1PrimaryGeneratorAction* generatorAction
106 = static_cast<const B1PrimaryGeneratorAction*>
107 (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction());
108 G4String runCondition;
109 if (generatorAction)
110 {
111 const G4ParticleGun* particleGun = generatorAction->GetParticleGun();
112 runCondition += particleGun->GetParticleDefinition()->GetParticleName();
113 runCondition += " of ";
114 G4double particleEnergy = particleGun->GetParticleEnergy();
115 runCondition += G4BestUnit(particleEnergy,"Energy");
116 }
117
118 // Print
119 //
120 if (IsMaster()) {
121 G4cout
122 << "\n--------------------End of Global Run-----------------------";
123 }
124 else {
125 G4cout
126 << "\n--------------------End of Local Run------------------------";
127 }
128
129 G4cout
130 << "\n The run consists of " << nofEvents << " "<< runCondition
131 << "\n Dose in scoring volume : "
132 << G4BestUnit(dose,"Dose") << " +- " << G4BestUnit(rmsDose,"Dose")
133 << "\n------------------------------------------------------------\n"
134 << G4endl;
135}
Detector construction class to define materials and geometry.
G4LogicalVolume * GetScoringVolume() const
The primary generator action class with particle gun.
const G4ParticleGun * GetParticleGun() const
G4double GetEdep() const
Definition B1Run.hh:53
G4double GetEdep2() const
Definition B1Run.hh:54

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

Applications | User Support | Publications | Collaboration