ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <geant4/tree/geant4-10.6-release/examples/extended/parallel/ThreadsafeScorers/include/TSRun.hh>
Public Types | |
typedef std::map< G4int, G4double > | MutexHitsMap_t |
Private Attributes | |
std::vector< G4String > | fCollNames |
std::vector< G4int > | fCollIDs |
std::vector< G4THitsMap < G4double > * > | fRunMaps |
std::vector< G4StatContainer < G4StatAnalysis > * > | fStatMaps |
Static Private Attributes | |
static std::vector < G4TAtomicHitsMap< G4double > * > | fAtomicRunMaps |
static std::map< G4String, MutexHitsMap_t > | fMutexRunMaps |
static std::vector < G4StatContainer < G4ConvergenceTester > * > | fConvMaps |
Additional Inherited Members | |
Protected Attributes inherited from G4Run | |
G4int | runID |
G4int | numberOfEvent |
G4int | numberOfEventToBeProcessed |
G4HCtable * | HCtable |
G4DCtable * | DCtable |
G4String | randomNumberStatus |
std::vector< const G4Event * > * | eventVector |
Definition at line 76 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 76 of file TSRun.hh
typedef std::map<G4int, G4double> TSRun::MutexHitsMap_t |
TSRun::TSRun | ( | const G4String & | mfd_name | ) |
Definition at line 90 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 90 of file TSRun.cc
References ConstructMFD().
|
virtual |
Definition at line 98 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 98 of file TSRun.cc
References fAtomicRunMaps, fConvMaps, fMutexRunMaps, fRunMaps, and G4Threading::IsWorkerThread().
Definition at line 121 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 121 of file TSRun.cc
References fAtomicRunMaps, fCollIDs, fCollNames, fConvMaps, G4SDManager::FindSensitiveDetector(), fMutexRunMaps, fRunMaps, fStatMaps, G4cout, G4endl, G4SDManager::GetCollectionID(), G4VPrimitiveScorer::GetName(), G4MultiFunctionalDetector::GetNumberOfPrimitives(), G4MultiFunctionalDetector::GetPrimitive(), G4SDManager::GetSDMpointer(), TSDetectorConstruction::Instance(), and G4Threading::IsWorkerThread().
Referenced by TSRun().
G4TAtomicHitsMap< G4double > * TSRun::GetAtomicHitsMap | ( | const G4String & | collName | ) | const |
Definition at line 289 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 289 of file TSRun.cc
References fAtomicRunMaps, fCollNames, G4Exception(), and JustWarning.
Referenced by TSRunAction::EndOfRunAction().
G4StatContainer< G4ConvergenceTester > * TSRun::GetConvMap | ( | const G4String & | collName | ) | const |
Definition at line 340 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 340 of file TSRun.cc
References fCollNames, fConvMaps, G4Exception(), and JustWarning.
Referenced by TSRunAction::EndOfRunAction().
G4THitsMap< G4double > * TSRun::GetHitsMap | ( | const G4String & | collname | ) | const |
Definition at line 270 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 270 of file TSRun.cc
References fCollNames, fRunMaps, G4Exception(), and JustWarning.
Referenced by TSRunAction::EndOfRunAction().
TSRun::MutexHitsMap_t * TSRun::GetMutexHitsMap | ( | const G4String & | collName | ) | const |
Definition at line 308 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 308 of file TSRun.cc
References fMutexRunMaps, G4Exception(), and JustWarning.
Referenced by TSRunAction::EndOfRunAction().
G4StatContainer< G4StatAnalysis > * TSRun::GetStatMap | ( | const G4String & | collname | ) | const |
Definition at line 324 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 324 of file TSRun.cc
References fCollNames, fStatMaps, G4Exception(), and JustWarning.
Referenced by TSRunAction::EndOfRunAction().
Reimplemented from G4Run.
Definition at line 184 of file TSRun.cc.
View newest version in sPHENIX GitHub at line 184 of file TSRun.cc
References fAtomicRunMaps, fCollIDs, fCollNames, fConvMaps, fMutexRunMaps, fRunMaps, fStatMaps, G4cout, G4endl, G4MUTEX_INITIALIZER, G4HCofThisEvent::GetHC(), G4Event::GetHCofThisEvent(), G4Run::RecordEvent(), TIMEMORY_AUTO_TIMER, and TIMEMORY_BASIC_AUTO_TIMER.
|
staticprivate |
TSRun contains five hits collections types: 1) a thread-local hits map, 2) a global atomic hits map 3) a global "mutex" hits map 4) a global G4StatAnalysis hits deque 5) a global G4ConvergenceTester hits deque
The thread-local hits map is the same as you will find in many other examples.
The atomics hits map is the purpose of this example. Code-wise, the implementation looks extremely similar to the thread-local version with 3 primary exceptions: (1) construction - there should only be one instance so it should be a static member variable or a pointer/reference to a single instance (2) It does not need to, nor should be, summed in G4Run::Merge() (3) destruction – it should only be cleared by the master thread since there is only one instance.
The "mutex" hits map is also included as reference for checking the results accumulated by the thread-local hits maps and atomic hits maps. The differences w.r.t. this hits maps are computed in TSRunAction::EndOfRunAction
The "G4StatAnalysis" and "G4ConvergenceTester" hits deques are memory-efficient version of the standard G4THitsMap. While maps are ideal for scoring at the G4Event-level, where sparsity w.r.t. indices is common; at the G4Run-level, these data structures require much less memory overhead. Due to a lack of G4ConvergenceTester::operator+=(G4ConvergenceTester), the static version of G4ConvergenceTester is the only valid way to use G4ConvergenceTester in a scoring container. This is not the case for G4StatAnalysis, which can be used in lieu of G4double.
Definition at line 106 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 106 of file TSRun.hh
Referenced by ConstructMFD(), GetAtomicHitsMap(), RecordEvent(), and ~TSRun().
|
private |
Definition at line 103 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 103 of file TSRun.hh
Referenced by ConstructMFD(), and RecordEvent().
|
private |
Definition at line 102 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 102 of file TSRun.hh
Referenced by ConstructMFD(), GetAtomicHitsMap(), GetConvMap(), GetHitsMap(), GetStatMap(), and RecordEvent().
|
staticprivate |
Definition at line 108 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 108 of file TSRun.hh
Referenced by ConstructMFD(), GetConvMap(), RecordEvent(), and ~TSRun().
|
staticprivate |
Definition at line 107 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 107 of file TSRun.hh
Referenced by ConstructMFD(), GetMutexHitsMap(), RecordEvent(), and ~TSRun().
|
private |
Definition at line 104 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 104 of file TSRun.hh
Referenced by ConstructMFD(), GetHitsMap(), Merge(), RecordEvent(), and ~TSRun().
|
private |
Definition at line 105 of file TSRun.hh.
View newest version in sPHENIX GitHub at line 105 of file TSRun.hh
Referenced by ConstructMFD(), GetStatMap(), Merge(), and RecordEvent().