45 #ifndef G4MoleculeCounter_h
46 #define G4MoleculeCounter_h
72 #if __cplusplus > 199711L && !defined __clang__
73 #define stdunique_ptr std::unique_ptr
75 #define stdunique_ptr std::auto_ptr
120 #ifdef MOLECULE_COUNTER_TESTING
stdunique_ptr< Search > fpLastSearch
int SearchUpperBoundTime(double time, bool sameTypeOfMolecule)
virtual void AddAMoleculeAtTime(const G4Molecule &, G4double)
CounterMapType fCounterMap
std::set< G4double >::iterator RecordedTimesIterator
static G4MoleculeCounter * GetMoleculeCounter()
G4bool SearchTimeMap(const G4Molecule &molecule)
int GetNMoleculesAtTime(const G4Molecule &molecule, double time)
std::map< const G4MoleculeDefinition *, G4bool > fDontRegister
virtual void RegisterAll()
RecordedMolecules GetRecordedMolecules()
virtual void DontRegister(const G4MoleculeDefinition *)
virtual ~G4MoleculeCounter()
static G4MoleculeCounter * Instance()
stdunique_ptr< std::set< G4double > > RecordedTimes
void Use(G4bool flag=true)
bool operator()(const double &a, const double &b) const
CounterMapType::iterator fLastMoleculeSearched
virtual void ResetCounter()
static G4ThreadLocal double fPrecision
NbMoleculeAgainstTime::iterator fLowerBoundTime
std::map< G4Molecule, NbMoleculeAgainstTime > CounterMapType
static G4ThreadLocal G4MoleculeCounter * fpInstance
stdunique_ptr< std::vector< G4Molecule > > RecordedMolecules
std::map< G4double, G4int, compDoubleWithPrecision > NbMoleculeAgainstTime
static void InitializeInstance()
RecordedTimes GetRecordedTimes()
Class Description The dynamic molecule holds all the data that change for a molecule It has a pointer...
virtual void RemoveAMoleculeAtTime(const G4Molecule &, G4double)
const NbMoleculeAgainstTime & GetNbMoleculeAgainstTime(const G4Molecule &molecule)
void SetTimeSlice(double)
static void DeleteInstance()