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

#include <B4bRunAction.hh>

Inheritance diagram for B4bRunAction:
Collaboration diagram for B4bRunAction:

Public Member Functions

 B4bRunAction ()
 
virtual ~B4bRunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
- Public Member Functions inherited from G4UserRunAction
 G4UserRunAction ()
 
virtual ~G4UserRunAction ()
 
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 B4bRunAction.hh.

Constructor & Destructor Documentation

B4bRunAction::B4bRunAction ( )

Definition at line 42 of file B4bRunAction.cc.

43  : G4UserRunAction()
44 {
45  // set printing event number per each event
47 
48  // Create analysis manager
49  // The choice of analysis technology is done via selectin of a namespace
50  // in B4Analysis.hh
51  auto analysisManager = G4AnalysisManager::Instance();
52  G4cout << "Using " << analysisManager->GetType() << G4endl;
53 
54  // Create directories
55  //analysisManager->SetHistoDirectoryName("histograms");
56  //analysisManager->SetNtupleDirectoryName("ntuple");
57  analysisManager->SetVerboseLevel(1);
58  analysisManager->SetNtupleMerging(true);
59  // Note: merging ntuples is available only with Root output
60 
61  // Book histograms, ntuple
62  //
63 
64  // Creating histograms
65  analysisManager->CreateH1("Eabs","Edep in absorber", 100, 0., 800*MeV);
66  analysisManager->CreateH1("Egap","Edep in gap", 100, 0., 100*MeV);
67  analysisManager->CreateH1("Labs","trackL in absorber", 100, 0., 1*m);
68  analysisManager->CreateH1("Lgap","trackL in gap", 100, 0., 50*cm);
69 
70  // Creating ntuple
71  //
72  analysisManager->CreateNtuple("B4", "Edep and TrackL");
73  analysisManager->CreateNtupleDColumn("Eabs");
74  analysisManager->CreateNtupleDColumn("Egap");
75  analysisManager->CreateNtupleDColumn("Labs");
76  analysisManager->CreateNtupleDColumn("Lgap");
77  analysisManager->FinishNtuple();
78 }
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:

B4bRunAction::~B4bRunAction ( )
virtual

Definition at line 82 of file B4bRunAction.cc.

83 {
84  delete G4AnalysisManager::Instance();
85 }

Member Function Documentation

void B4bRunAction::BeginOfRunAction ( const G4Run run)
virtual

Reimplemented from G4UserRunAction.

Definition at line 96 of file B4bRunAction.cc.

97 {
98  G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
99 
100  //inform the runManager to save random number seed
101  //G4RunManager::GetRunManager()->SetRandomNumberStore(true);
102 
103  // Get analysis manager
104  auto analysisManager = G4AnalysisManager::Instance();
105 
106  // Open an output file
107  //
108  G4String fileName = "B4";
109  analysisManager->OpenFile(fileName);
110 }
G4GLOB_DLL std::ostream G4cout
G4int GetRunID() const
Definition: G4Run.hh:76
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void B4bRunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

Definition at line 114 of file B4bRunAction.cc.

115 {
116  // print histogram statistics
117  //
118  auto analysisManager = G4AnalysisManager::Instance();
119  if ( analysisManager->GetH1(1) ) {
120  G4cout << G4endl << " ----> print histograms statistic ";
121  if(isMaster) {
122  G4cout << "for the entire run " << G4endl << G4endl;
123  }
124  else {
125  G4cout << "for the local thread " << G4endl << G4endl;
126  }
127 
128  G4cout << " EAbs : mean = "
129  << G4BestUnit(analysisManager->GetH1(0)->mean(), "Energy")
130  << " rms = "
131  << G4BestUnit(analysisManager->GetH1(0)->rms(), "Energy") << G4endl;
132 
133  G4cout << " EGap : mean = "
134  << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
135  << " rms = "
136  << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
137 
138  G4cout << " LAbs : mean = "
139  << G4BestUnit(analysisManager->GetH1(2)->mean(), "Length")
140  << " rms = "
141  << G4BestUnit(analysisManager->GetH1(2)->rms(), "Length") << G4endl;
142 
143  G4cout << " LGap : mean = "
144  << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
145  << " rms = "
146  << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
147  }
148 
149  // save histograms & ntuple
150  //
151  analysisManager->Write();
152  analysisManager->CloseFile();
153 
154 }
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
G4Run * B4bRunAction::GenerateRun ( void  )
virtual

Reimplemented from G4UserRunAction.

Definition at line 89 of file B4bRunAction.cc.

90 {
91  return (new B4bRunData);
92 }

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