45 #ifndef G4MoleculeCounter_h
46 #define G4MoleculeCounter_h
71 typedef std::map<G4double, G4int, compDoubleWithPrecision>
85 typedef std::unique_ptr<std::vector<G4MolecularConfiguration*> >
111 #ifdef MOLECULE_COUNTER_TESTING
133 int number = 1)
override;
137 int number = 1)
override;
187 G4cout <<
" ---> G4MoleculeCounter::ResetCounter" <<
G4endl;
NbMoleculeAgainstTime::iterator fLowerBoundTime
std::map< const G4MoleculeDefinition *, G4bool > fDontRegister
bool IsRegistered(const G4MoleculeDefinition *) override
void AddAMoleculeAtTime(G4MolecularConfiguration *, G4double time, const G4ThreeVector *position=nullptr, int number=1) override
std::vector< ExP01TrackerHit * > a
static G4MoleculeCounter * Instance()
RecordedMolecules GetRecordedMolecules()
void RegisterAll() override
virtual ~G4MoleculeCounter()
int SearchUpperBoundTime(double time, bool sameTypeOfMolecule)
std::unique_ptr< std::set< G4double > > RecordedTimes
void RemoveAMoleculeAtTime(G4MolecularConfiguration *, G4double time, const G4ThreeVector *position=nullptr, int number=1) override
CounterMapType fCounterMap
CounterMapType::iterator fLastMoleculeSearched
void DontRegister(const G4MoleculeDefinition *) override
std::map< G4double, G4int, compDoubleWithPrecision > NbMoleculeAgainstTime
void ResetCounter() override
bool operator()(const double &a, const double &b) const
void CheckTimeForConsistency(G4bool flag)
std::unique_ptr< Search > fpLastSearch
std::set< G4double >::iterator RecordedTimesIterator
static G4ThreadLocal double fPrecision
void SetTimeSlice(double)
RecordedTimes GetRecordedTimes()
G4bool SearchTimeMap(G4MolecularConfiguration *molecule)
G4GLOB_DLL std::ostream G4cout
const NbMoleculeAgainstTime & GetNbMoleculeAgainstTime(G4MolecularConfiguration *molecule)
G4bool fCheckTimeIsConsistentWithScheduler
G4bool IsTimeCheckedForConsistency() const
std::unique_ptr< std::vector< G4MolecularConfiguration * > > RecordedMolecules
std::map< G4MolecularConfiguration *, NbMoleculeAgainstTime > CounterMapType
void Initialize() override
int GetNMoleculesAtTime(G4MolecularConfiguration *molecule, double time)