Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
B4RunAction Class Reference

#include <B4RunAction.hh>

Inheritance diagram for B4RunAction:
Collaboration diagram for B4RunAction:

Public Member Functions

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

Additional Inherited Members

- Protected Attributes inherited from G4UserRunAction
G4bool isMaster
 

Detailed Description

Run action class

It accumulates statistic and computes dispersion of the energy deposit and track lengths of charged particles with use of analysis tools: H1D histograms are created in BeginOfRunAction() for the following physics quantities:

  • Edep in absorber
  • Edep in gap
  • Track length in absorber
  • Track length in gap The same values are also saved in the ntuple. The histograms and ntuple are saved in the output file in a format accoring to a selected technology in B4Analysis.hh.

In EndOfRunAction(), the accumulated statistic and computed dispersion is printed.

Definition at line 57 of file B4RunAction.hh.

Constructor & Destructor Documentation

B4RunAction::B4RunAction ( )

Definition at line 41 of file B4RunAction.cc.

42  : G4UserRunAction()
43 {
44  // set printing event number per each event
46 
47  // Create analysis manager
48  // The choice of analysis technology is done via selectin of a namespace
49  // in B4Analysis.hh
50  auto analysisManager = G4AnalysisManager::Instance();
51  G4cout << "Using " << analysisManager->GetType() << G4endl;
52 
53  // Create directories
54  //analysisManager->SetHistoDirectoryName("histograms");
55  //analysisManager->SetNtupleDirectoryName("ntuple");
56  analysisManager->SetVerboseLevel(1);
57  analysisManager->SetNtupleMerging(true);
58  // Note: merging ntuples is available only with Root output
59 
60  // Book histograms, ntuple
61  //
62 
63  // Creating histograms
64  analysisManager->CreateH1("Eabs","Edep in absorber", 100, 0., 800*MeV);
65  analysisManager->CreateH1("Egap","Edep in gap", 100, 0., 100*MeV);
66  analysisManager->CreateH1("Labs","trackL in absorber", 100, 0., 1*m);
67  analysisManager->CreateH1("Lgap","trackL in gap", 100, 0., 50*cm);
68 
69  // Creating ntuple
70  //
71  analysisManager->CreateNtuple("B4", "Edep and TrackL");
72  analysisManager->CreateNtupleDColumn("Eabs");
73  analysisManager->CreateNtupleDColumn("Egap");
74  analysisManager->CreateNtupleDColumn("Labs");
75  analysisManager->CreateNtupleDColumn("Lgap");
76  analysisManager->FinishNtuple();
77 }
void SetPrintProgress(G4int i)
G4GLOB_DLL std::ostream G4cout
static constexpr double m
Definition: G4SIunits.hh:129
static constexpr double cm
Definition: G4SIunits.hh:119
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static constexpr double MeV
Definition: G4SIunits.hh:214

Here is the call graph for this function:

B4RunAction::~B4RunAction ( )
virtual

Definition at line 81 of file B4RunAction.cc.

82 {
83  delete G4AnalysisManager::Instance();
84 }
B4RunAction::B4RunAction ( )
virtual B4RunAction::~B4RunAction ( )
virtual
B4RunAction::B4RunAction ( )
virtual B4RunAction::~B4RunAction ( )
virtual

Member Function Documentation

void B4RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

Definition at line 88 of file B4RunAction.cc.

89 {
90  //inform the runManager to save random number seed
91  //G4RunManager::GetRunManager()->SetRandomNumberStore(true);
92 
93  // Get analysis manager
94  auto analysisManager = G4AnalysisManager::Instance();
95 
96  // Open an output file
97  //
98  G4String fileName = "B4";
99  analysisManager->OpenFile(fileName);
100 }
virtual void B4RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void B4RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void B4RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void B4RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

Definition at line 104 of file B4RunAction.cc.

105 {
106  // print histogram statistics
107  //
108  auto analysisManager = G4AnalysisManager::Instance();
109  if ( analysisManager->GetH1(1) ) {
110  G4cout << G4endl << " ----> print histograms statistic ";
111  if(isMaster) {
112  G4cout << "for the entire run " << G4endl << G4endl;
113  }
114  else {
115  G4cout << "for the local thread " << G4endl << G4endl;
116  }
117 
118  G4cout << " EAbs : mean = "
119  << G4BestUnit(analysisManager->GetH1(0)->mean(), "Energy")
120  << " rms = "
121  << G4BestUnit(analysisManager->GetH1(0)->rms(), "Energy") << G4endl;
122 
123  G4cout << " EGap : mean = "
124  << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
125  << " rms = "
126  << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
127 
128  G4cout << " LAbs : mean = "
129  << G4BestUnit(analysisManager->GetH1(2)->mean(), "Length")
130  << " rms = "
131  << G4BestUnit(analysisManager->GetH1(2)->rms(), "Length") << G4endl;
132 
133  G4cout << " LGap : mean = "
134  << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
135  << " rms = "
136  << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
137  }
138 
139  // save histograms & ntuple
140  //
141  analysisManager->Write();
142  analysisManager->CloseFile();
143 }
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
virtual void B4RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.


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