Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4Run.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4Run
27//
28// Class description:
29//
30// This class represents a run. An object of this class is constructed
31// and deleted by G4RunManager. Basically the user should use only the
32// accessors (get methods). All properties are set by G4RunManager.
33
34// Author: M.Asai, 1996
35// --------------------------------------------------------------------
36#ifndef G4Run_hh
37#define G4Run_hh 1
38
39#include "G4Profiler.hh"
40#include "globals.hh"
41
42#include <vector>
43
44class G4Event;
45class G4HCtable;
46class G4DCtable;
47
48class G4Run
49{
50 public:
52
53 public:
54 G4Run();
55 virtual ~G4Run();
56 G4Run(const G4Run&) = delete;
57 G4Run& operator=(const G4Run&) = delete;
58
59 // Method to be overwritten by the user for recording events in this run.
60 // In such a case, it is the user's responsibility to increment
61 // numberOfEvent. Also, user's run class object must be instantiated in
62 // user's runAction.
63 virtual void RecordEvent(const G4Event*);
64
65 // Method to be overwritten by the user for merging local G4Run object
66 // to the global G4Run object.
67 virtual void Merge(const G4Run*);
68
69 // Method to be overwritten by the user for merging sub-event results
70 // (e.g. hits) into the master G4Event.
71 // [N.B.] Trajectories are merged in the base-class method. So, the user
72 // should invoke the base-class method at the end of his/her overwriting
73 // method.
74 virtual void MergeSubEvent(G4Event* masterEv, const G4Event* subEv);
75
76 // Store a G4Event object until this run object is deleted.
77 // Given the potential large memory size of G4Event and its data-member
78 // objects stored in G4Event, the user must be careful and responsible
79 // for not storing too many G4Event objects. This method is invoked by
80 // G4RunManager if the user invokes G4EventManager::KeepTheCurrentEvent()
81 // or "/event/keepCurrentEvent" UI command while the particular event is
82 // in being processed (typically in EndOfEventAction).
83 void StoreEvent(G4Event* evt);
84
85 // Returns the run ID. Run ID is set by G4RunManager.
86 inline G4int GetRunID() const { return runID; }
87
88 // Returns number of events processed in this run. The number is
89 // incremented at the end of each event processing.
90 inline G4int GetNumberOfEvent() const { return numberOfEvent; }
91
93
94 // Returns hits collection.
95 inline const G4HCtable* GetHCtable() const { return HCtable; }
96
97 // Returns digi collection.
98 inline const G4DCtable* GetDCtable() const { return DCtable; }
99
100 // Returns random number status at the beginning of this run.
101 inline const G4String& GetRandomNumberStatus() const { return randomNumberStatus; }
102
103 // Returns the event vector.
104 inline std::vector<const G4Event*>* GetEventVector() const { return eventVector; }
105
106 inline void SetRunID(G4int id) { runID = id; }
108 inline void SetHCtable(G4HCtable* HCtbl) { HCtable = HCtbl; }
109 inline void SetDCtable(G4DCtable* DCtbl) { DCtable = DCtbl; }
111
112 protected:
116 G4HCtable* HCtable = nullptr;
117 G4DCtable* DCtable = nullptr;
119 std::vector<const G4Event*>* eventVector = nullptr;
120};
121
122#endif
int G4int
Definition G4Types.hh:85
Definition G4Run.hh:49
void SetHCtable(G4HCtable *HCtbl)
Definition G4Run.hh:108
G4int GetRunID() const
Definition G4Run.hh:86
void StoreEvent(G4Event *evt)
Definition G4Run.cc:73
G4String randomNumberStatus
Definition G4Run.hh:118
std::vector< const G4Event * > * GetEventVector() const
Definition G4Run.hh:104
virtual void MergeSubEvent(G4Event *masterEv, const G4Event *subEv)
Definition G4Run.cc:79
std::vector< const G4Event * > * eventVector
Definition G4Run.hh:119
const G4HCtable * GetHCtable() const
Definition G4Run.hh:95
G4int numberOfEvent
Definition G4Run.hh:114
G4int GetNumberOfEventToBeProcessed() const
Definition G4Run.hh:92
const G4DCtable * GetDCtable() const
Definition G4Run.hh:98
virtual ~G4Run()
Definition G4Run.cc:45
const G4String & GetRandomNumberStatus() const
Definition G4Run.hh:101
G4DCtable * DCtable
Definition G4Run.hh:117
G4int GetNumberOfEvent() const
Definition G4Run.hh:90
G4Run(const G4Run &)=delete
virtual void Merge(const G4Run *)
Definition G4Run.cc:65
G4HCtable * HCtable
Definition G4Run.hh:116
virtual void RecordEvent(const G4Event *)
Definition G4Run.cc:59
void SetNumberOfEventToBeProcessed(G4int n_ev)
Definition G4Run.hh:107
G4int runID
Definition G4Run.hh:113
G4Run & operator=(const G4Run &)=delete
void SetRunID(G4int id)
Definition G4Run.hh:106
G4Run()
Definition G4Run.cc:38
void SetDCtable(G4DCtable *DCtbl)
Definition G4Run.hh:109
void SetRandomNumberStatus(G4String &st)
Definition G4Run.hh:110
G4int numberOfEventToBeProcessed
Definition G4Run.hh:115