Warning, file /include/Geant4/G4MoleculeCounterTimeComparer.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef G4MOLECULECOUNTERTIMECOMPARER_HH
0027 #define G4MOLECULECOUNTERTIMECOMPARER_HH 1
0028
0029 #include <CLHEP/Units/PhysicalConstants.h>
0030 #include "G4Types.hh"
0031
0032 #include <map>
0033 #include <vector>
0034
0035 class G4MoleculeCounterTimeComparer
0036 {
0037 public:
0038 enum TimeComparerType
0039 {
0040 FixedPrecision,
0041 VariablePrecision
0042 };
0043
0044 public:
0045 G4MoleculeCounterTimeComparer();
0046 virtual ~G4MoleculeCounterTimeComparer() = default;
0047
0048 G4MoleculeCounterTimeComparer(const G4MoleculeCounterTimeComparer&);
0049 G4MoleculeCounterTimeComparer& operator=(const G4MoleculeCounterTimeComparer&);
0050
0051 void SetFixedPrecision(G4double);
0052 void SetVariablePrecision(const std::vector<G4double>&, const std::vector<G4double>&);
0053 void SetVariablePrecision(const std::map<G4double, G4double>&);
0054
0055 G4double GetPrecisionAtTime(G4double) const;
0056
0057 bool operator()(const G4double&, const G4double&) const;
0058
0059 private:
0060 TimeComparerType fType;
0061 G4double fPrecision{1 * CLHEP::picosecond};
0062 std::map<G4double, G4double> fVariablePrecision{};
0063
0064 public:
0065 static G4MoleculeCounterTimeComparer CreateWithFixedPrecision(G4double);
0066 static G4MoleculeCounterTimeComparer CreateWithVariablePrecision(const std::map<G4double, G4double>&);
0067 };
0068
0069 #endif