Loading...
Searching...
No Matches
Public Member Functions | List of all members
B4::RunAction Class Reference
basic » B4 » B4a | basic » B4 » B4c | basic » B4 » B4d

Run action class. More...

#include <Doxymodules_basic.h>

Inheritance diagram for B4::RunAction:
G4UserRunAction

Public Member Functions

 RunAction ()
 
 ~RunAction () override=default
 
void BeginOfRunAction (const G4Run *) override
 
void EndOfRunAction (const G4Run *) override
 

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:

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

Definition at line 125 of file Doxymodules_basic.h.

Constructor & Destructor Documentation

◆ RunAction()

B4::RunAction::RunAction ( )

Definition at line 43 of file RunAction.cc.

44{
45 // set printing event number per each event
46 G4RunManager::GetRunManager()->SetPrintProgress(1);
47
48 // Create analysis manager
49 // The choice of the output format is done via the specified
50 // file extension.
51 auto analysisManager = G4AnalysisManager::Instance();
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", 110, 0., 330*MeV);
65 analysisManager->CreateH1("Egap" ,"Edep in gap", 100, 0., 30*MeV);
66 analysisManager->CreateH1("Labs" ,"trackL in absorber", 100, 0., 50*cm);
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}

◆ ~RunAction()

B4::RunAction::~RunAction ( )
overridedefault

Member Function Documentation

◆ BeginOfRunAction()

void B4::RunAction::BeginOfRunAction ( const G4Run )
override

Definition at line 81 of file RunAction.cc.

82{
83 //inform the runManager to save random number seed
84 //G4RunManager::GetRunManager()->SetRandomNumberStore(true);
85
86 // Get analysis manager
87 auto analysisManager = G4AnalysisManager::Instance();
88
89 // Open an output file
90 //
91 G4String fileName = "B4.root";
92 // Other supported output types:
93 // G4String fileName = "B4.csv";
94 // G4String fileName = "B4.hdf5";
95 // G4String fileName = "B4.xml";
96 analysisManager->OpenFile(fileName);
97 G4cout << "Using " << analysisManager->GetType() << G4endl;
98}

◆ EndOfRunAction()

void B4::RunAction::EndOfRunAction ( const G4Run )
override

Definition at line 102 of file RunAction.cc.

103{
104 // print histogram statistics
105 //
106 auto analysisManager = G4AnalysisManager::Instance();
107 if ( analysisManager->GetH1(1) ) {
108 G4cout << G4endl << " ----> print histograms statistic ";
109 if(isMaster) {
110 G4cout << "for the entire run " << G4endl << G4endl;
111 }
112 else {
113 G4cout << "for the local thread " << G4endl << G4endl;
114 }
115
116 G4cout << " EAbs : mean = "
117 << G4BestUnit(analysisManager->GetH1(0)->mean(), "Energy")
118 << " rms = "
119 << G4BestUnit(analysisManager->GetH1(0)->rms(), "Energy") << G4endl;
120
121 G4cout << " EGap : mean = "
122 << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
123 << " rms = "
124 << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
125
126 G4cout << " LAbs : mean = "
127 << G4BestUnit(analysisManager->GetH1(2)->mean(), "Length")
128 << " rms = "
129 << G4BestUnit(analysisManager->GetH1(2)->rms(), "Length") << G4endl;
130
131 G4cout << " LGap : mean = "
132 << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
133 << " rms = "
134 << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
135 }
136
137 // save histograms & ntuple
138 //
139 analysisManager->Write();
140 analysisManager->CloseFile();
141}

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

Applications | User Support | Publications | Collaboration