81 for(
unsigned i = 0; i <
fRunMaps.size(); ++i)
116 G4String fullCollectionName = mfdName+
"/"+collectionName;
119 if ( collectionID >= 0 ){
120 G4cout <<
"++ " << fullCollectionName<<
" id " << collectionID
131 (mfdName, collectionName));
134 G4cout <<
"** collection " << fullCollectionName <<
" not found. "
157 for(
unsigned i = 0; i <
fCollIDs.size(); ++i)
179 auto itr = EvtMap->
GetMap()->begin();
180 for(; itr != EvtMap->
GetMap()->end(); itr++)
199 const TSRun* localTSRun =
static_cast<const TSRun*
>(aTSRun);
201 for(
unsigned i = 0; i <
fRunMaps.size(); ++i)
214 for(
unsigned i = 0; i <
fCollNames.size(); ++i)
221 "GetHitsMap failed to locate the requested HitsMap");
233 for(
unsigned i = 0; i <
fCollNames.size(); ++i)
240 "GetHitsMap failed to locate the requested AtomicHitsMap");
256 "GetHitsMap failed to locate the requested MutexHitsMap");
virtual void Merge(const G4Run *)
G4VHitsCollection * GetHC(G4int i)
G4int GetCollectionID(G4String colName)
MutexHitsMap_t * GetMutexHitsMap(const G4String &) const
Definition of the TSRun class.
virtual void RecordEvent(const G4Event *)
std::vector< G4String > fCollNames
#define G4MUTEX_INITIALIZER
G4THitsMap< G4double > * GetHitsMap(const G4String &collname) const
static std::map< G4String, MutexHitsMap_t > fMutexRunMaps
G4GLOB_DLL std::ostream G4cout
G4VPrimitiveScorer * GetPrimitive(G4int id) const
std::map< G4int, G4double > MutexHitsMap_t
virtual void Merge(const G4Run *)
static std::vector< G4TAtomicHitsMap< G4double > * > fAtomicRunMaps
TSRun contains three collections of hits maps: a thread-local hits map, a global atomic hits map (imp...
void ConstructMFD(const G4String &)
G4VSensitiveDetector * FindSensitiveDetector(G4String dName, G4bool warning=true)
std::vector< G4THitsMap< G4double > * > fRunMaps
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
This is an implementation of G4THitsMap where the underlying type is G4atomic, not just T. A static assert is provided to ensure that T is fundamental. This class should be used in lieu of G4THitsMap when memory is a concern. Atomics are thread-safe and generally faster that mutexes (as long as the STL implementation is lock-free) but the synchronization does not come without a cost. If performance is the primary concern, use G4THitsMap in thread-local instances.
static G4SDManager * GetSDMpointer()
virtual void RecordEvent(const G4Event *)
std::vector< G4int > fCollIDs
std::map< G4int, T * > * GetMap() const
G4HCofThisEvent * GetHCofThisEvent() const
G4TAtomicHitsMap< G4double > * GetAtomicHitsMap(const G4String &) const
G4int GetNumberOfPrimitives() const