28#ifndef G4VMoleculeCounterInternalBaseBASE_HH
29#define G4VMoleculeCounterInternalBaseBASE_HH 1
62class G4VMoleculeCounterInternalBase
76 G4VMoleculeCounterInternalBase();
77 G4VMoleculeCounterInternalBase(
const G4String&);
78 G4VMoleculeCounterInternalBase(G4VMoleculeCounterInternalBase
const&) =
delete;
79 void operator=(G4VMoleculeCounterInternalBase
const& x) =
delete;
88 virtual void Dump()
const = 0;
158 description <<
"Someone is trying to change the managed id of this counter but it was already "
159 "changed from -1!\n";
161 description <<
"Name: " <<
fName <<
"\n";
256 "Molecule counter was already initialized, assigning the time comparer now may "
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
std::map< G4double, G4int, G4MoleculeCounterTimeComparer > InnerCounterMapType
virtual std::set< G4double > GetRecordedTimes() const =0
const G4MoleculeCounterTimeComparer & GetTimeComparer() const
void SetActiveLowerBound(G4double, G4bool=true)
G4bool GetCheckRecordedTimeConsistency() const
G4bool fActiveLowerBoundInclusive
G4bool IsTimeBelowLowerBound(G4double) const
G4MoleculeCounterTimeComparer fTimeComparer
virtual void AbsorbCounter(const G4VMoleculeCounterInternalBase *)=0
const G4String & GetName() const
friend class G4VMoleculeCounter
void SetTimeComparer(const G4MoleculeCounterTimeComparer &)
G4double GetActiveUpperBound() const
void SetCheckTimeConsistencyWithScheduler(G4bool=true)
G4double GetActiveLowerBound() const
static void SetFixedTimePrecision(G4double)
virtual void Dump() const =0
virtual void ResetCounter()=0
G4bool GetActiveUpperBoundInclusive() const
G4bool IsTimeAboveUpperBound(G4double) const
G4bool IsActiveAtGlobalTime(G4double) const
void SetActiveUpperBound(G4double, G4bool=true)
virtual void InitializeUser()=0
void SetCheckRecordedTimeConsistency(G4bool=true)
virtual ~G4VMoleculeCounterInternalBase()=default
G4bool fCheckRecordedTimesAreConsistent
G4bool GetCheckTimeConsistencyWithScheduler() const
virtual void DumpCounterMapIndices() const =0
friend class G4VMoleculeReactionCounter
G4bool GetActiveLowerBoundInclusive() const
G4bool fCheckTimeIsConsistentWithScheduler
G4bool fActiveUpperBoundInclusive
G4double fActiveLowerBound
G4double fActiveUpperBound
virtual void Initialize()=0
G4int GetManagedId() const
virtual G4String GetInfo() const =0
virtual ~G4VMoleculeCounterIndexInterface()=default
G4bool operator()(const G4double &a, const G4double &b) const
static G4ThreadLocal G4double fPrecision