File indexing completed on 2026-09-19 09:21:06
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 G4DNAMakeReaction_hh
0029 #define G4DNAMakeReaction_hh 1
0030
0031 #include "G4VITReactionProcess.hh"
0032 class G4DNAMolecularReactionTable;
0033 class G4VDNAReactionModel;
0034 class G4ITReactionSet;
0035 class G4VITTimeStepComputer;
0036 class G4DNAScavengerMaterial;
0037
0038 class G4DNAMakeReaction : public G4VITReactionProcess
0039 {
0040 public:
0041 G4DNAMakeReaction();
0042 explicit G4DNAMakeReaction(G4VDNAReactionModel*);
0043 ~G4DNAMakeReaction() override = default;
0044 G4DNAMakeReaction(const G4DNAMakeReaction& other) = delete;
0045 G4DNAMakeReaction& operator=(const G4DNAMakeReaction& other) = delete;
0046 G4bool TestReactibility(const G4Track&,
0047 const G4Track&,
0048 G4double currentStepTime,
0049 G4bool userStepTimeLimit) override;
0050
0051 std::vector<std::unique_ptr<G4ITReactionChange>> FindReaction(G4ITReactionSet*,
0052 const G4double, const G4double, const G4bool) override;
0053
0054 std::unique_ptr<G4ITReactionChange> MakeReaction(const G4Track&, const G4Track&) override;
0055 void SetReactionModel(G4VDNAReactionModel*);
0056 void UpdatePositionForReaction(G4Track&, G4Track&);
0057 void SetTimeStepComputer(G4VITTimeStepComputer*);
0058 protected:
0059 const G4DNAMolecularReactionTable*& fMolReactionTable;
0060 G4VDNAReactionModel* fpReactionModel;
0061 G4VITTimeStepComputer* fpTimeStepper;
0062 G4double fTimeStep;
0063 G4DNAScavengerMaterial* fpScavengerMaterial{nullptr};
0064
0065 };
0066 #endif