Warning, file /geant4/examples/advanced/dna/moleculardna/include/IRTDamageReactionModel.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
0027
0028 #ifndef MolecularIRTDamageReactionModel_hh
0029 #define MolecularIRTDamageReactionModel_hh
0030
0031 #include "G4LogicalVolume.hh"
0032 #include "G4String.hh"
0033 #include "G4ThreeVector.hh"
0034 #include "G4VDNAHitModel.hh"
0035 #include "globals.hh"
0036
0037 class DNAGeometry;
0038
0039 class G4DNAComponentNode;
0040
0041 class G4MolecularConfiguration;
0042
0043 class G4DNAMolecularReactionTable;
0044
0045
0046
0047 class IRTDamageReactionModel : public G4VDNAHitModel
0048 {
0049 public:
0050 explicit IRTDamageReactionModel(const G4String& name);
0051
0052 ~IRTDamageReactionModel() override = default;
0053
0054 IRTDamageReactionModel& operator=(const IRTDamageReactionModel& right) = delete;
0055
0056 IRTDamageReactionModel(const IRTDamageReactionModel&) = delete;
0057
0058 using DNANode = std::variant<const G4DNAComponentNode*,
0059 const G4VPhysicalVolume* >;
0060
0061 G4double CalculateReactionTime(const G4Track& trackA, DNANode&) override;
0062
0063 G4bool DoReaction(const G4Track& track, const G4double&, const DNANode&) override;
0064
0065 private:
0066 G4double GetTimeToEncounter(const G4MolecularConfiguration* molA,
0067 const G4MolecularConfiguration* molB, const G4double& distance);
0068
0069 void MakeReaction(const G4Track& track);
0070
0071 void RecordDNADamage() const;
0072
0073 const G4VPhysicalVolume* fpDNAPhyVolume = nullptr;
0074 const G4Track* fpTrack = nullptr;
0075 G4double fminTimeStep = DBL_MAX;
0076 G4double fReactionTime = DBL_MAX;
0077 DNAGeometry* fpDNAGeometry;
0078 const G4DNAMolecularReactionTable* fMolecularReactionTable;
0079 };
0080
0081
0082
0083 #endif