Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
B5::RunAction Class Reference

Run action class. More...

#include <Doxymodules_basic.h>

Inheritance diagram for B5::RunAction:
G4UserRunAction

Public Member Functions

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

Private Attributes

EventActionfEventAction = nullptr
 

Detailed Description

Run action class.

Definition at line 198 of file Doxymodules_basic.h.

Constructor & Destructor Documentation

◆ RunAction()

B5::RunAction::RunAction ( EventAction eventAction)

Definition at line 43 of file RunAction.cc.

44 : fEventAction(eventAction)
45{
46 // Create the generic analysis manager
47 auto analysisManager = G4AnalysisManager::Instance();
48 analysisManager->SetDefaultFileType("root");
49 // If the filename extension is not provided, the default file type (root)
50 // will be used for all files specified without extension.
51 analysisManager->SetVerboseLevel(1);
52
53 // Default settings
54 analysisManager->SetNtupleMerging(true);
55 // Note: merging ntuples is available only with Root output
56 analysisManager->SetFileName("B5");
57
58 // Book histograms, ntuple
59
60 // Creating 1D histograms
61 analysisManager
62 ->CreateH1("Chamber1","Drift Chamber 1 # Hits", 50, 0., 50); // h1 Id = 0
63 analysisManager
64 ->CreateH1("Chamber2","Drift Chamber 2 # Hits", 50, 0., 50); // h1 Id = 1
65
66 // Creating 2D histograms
67 analysisManager
68 ->CreateH2("Chamber1 XY","Drift Chamber 1 X vs Y", // h2 Id = 0
69 50, -1000., 1000, 50, -300., 300.);
70 analysisManager
71 ->CreateH2("Chamber2 XY","Drift Chamber 2 X vs Y", // h2 Id = 1
72 50, -1500., 1500, 50, -300., 300.);
73
74 // Creating ntuple
75 if ( fEventAction ) {
76 analysisManager->CreateNtuple("B5", "Hits");
77 analysisManager->CreateNtupleIColumn("Dc1Hits"); // column Id = 0
78 analysisManager->CreateNtupleIColumn("Dc2Hits"); // column Id = 1
79 analysisManager->CreateNtupleDColumn("ECEnergy"); // column Id = 2
80 analysisManager->CreateNtupleDColumn("HCEnergy"); // column Id = 3
81 analysisManager->CreateNtupleDColumn("Time1"); // column Id = 4
82 analysisManager->CreateNtupleDColumn("Time2"); // column Id = 5
83 analysisManager // column Id = 6
84 ->CreateNtupleDColumn("ECEnergyVector", fEventAction->GetEmCalEdep());
85 analysisManager // column Id = 7
86 ->CreateNtupleDColumn("HCEnergyVector", fEventAction->GetHadCalEdep());
87 analysisManager->FinishNtuple();
88 }
89
90 // Set ntuple output file
91 analysisManager->SetNtupleFileName(0, "B5ntuple");
92}
std::vector< G4double > & GetHadCalEdep()
std::vector< G4double > & GetEmCalEdep()
EventAction * fEventAction
Definition RunAction.hh:55

◆ ~RunAction()

B5::RunAction::~RunAction ( )
overridedefault

Member Function Documentation

◆ BeginOfRunAction()

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

Definition at line 96 of file RunAction.cc.

97{
98 //inform the runManager to save random number seed
99 //G4RunManager::GetRunManager()->SetRandomNumberStore(true);
100
101 // Get analysis manager
102 auto analysisManager = G4AnalysisManager::Instance();
103
104 // Reset histograms from previous run
105 analysisManager->Reset();
106
107 // Open an output file
108 // The default file name is set in RunAction::RunAction(),
109 // it can be overwritten in a macro
110 analysisManager->OpenFile();
111}

◆ EndOfRunAction()

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

Definition at line 115 of file RunAction.cc.

116{
117 // save histograms & ntuple
118 //
119 auto analysisManager = G4AnalysisManager::Instance();
120 analysisManager->Write();
121 analysisManager->CloseFile(false);
122 // Keep content of histos so that they are plotted.
123 // The content will be reset at start of the next run.
124}

Member Data Documentation

◆ fEventAction

EventAction* B5::RunAction::fEventAction = nullptr
private

Definition at line 55 of file RunAction.hh.


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

Applications | User Support | Publications | Collaboration