File indexing completed on 2025-01-18 09:58:08
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
0037 class G4DNAMakeReaction : public G4VITReactionProcess
0038 {
0039 public:
0040 G4DNAMakeReaction();
0041 explicit G4DNAMakeReaction(G4VDNAReactionModel*);
0042 ~G4DNAMakeReaction() override = default;
0043 G4DNAMakeReaction(const G4DNAMakeReaction& other) = delete;
0044 G4DNAMakeReaction& operator=(const G4DNAMakeReaction& other) = delete;
0045 G4bool TestReactibility(const G4Track&,
0046 const G4Track&,
0047 G4double currentStepTime,
0048 G4bool userStepTimeLimit) override;
0049
0050 std::vector<std::unique_ptr<G4ITReactionChange>> FindReaction(G4ITReactionSet*,
0051 const G4double, const G4double, const G4bool) override;
0052
0053 std::unique_ptr<G4ITReactionChange> MakeReaction(const G4Track&, const G4Track&) override;
0054 void SetReactionModel(G4VDNAReactionModel*);
0055 void UpdatePositionForReaction(G4Track&, G4Track&);
0056 void SetTimeStepComputer(G4VITTimeStepComputer*);
0057 protected:
0058 const G4DNAMolecularReactionTable*& fMolReactionTable;
0059 G4VDNAReactionModel* fpReactionModel;
0060 G4VITTimeStepComputer* fpTimeStepper;
0061 G4double fTimeStep;
0062 };
0063 #endif