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
0029
0030
0031
0032
0033
0034 #ifndef G4DNAIRT_HH_
0035 #define G4DNAIRT_HH_
0036
0037
0038 #include "G4DNAMolecularReaction.hh"
0039 #include "G4DNAMolecularReactionTable.hh"
0040 #include "G4ITReaction.hh"
0041 #include "G4ITReactionTable.hh"
0042 #include "G4ITTrackHolder.hh"
0043 #include "G4Molecule.hh"
0044 #include "G4MoleculeTable.hh"
0045 #include "G4ParticleChange.hh"
0046 #include "G4ThreeVector.hh"
0047 #include "G4VDNAReactionModel.hh"
0048 #include "G4VITReactionProcess.hh"
0049 #include "globals.hh"
0050
0051 #include "AddClone_def.hh"
0052
0053 #include <map>
0054 #include <vector>
0055
0056 class G4DNAMolecularReactionTable;
0057 class G4VDNAReactionModel;
0058 class G4ErrorFunction;
0059
0060 class G4DNAIRT : public G4VITReactionProcess
0061 {
0062 public:
0063
0064 G4DNAIRT();
0065 explicit G4DNAIRT(G4VDNAReactionModel*);
0066 ~G4DNAIRT() override;
0067 G4DNAIRT(const G4DNAIRT& other) = delete;
0068 G4DNAIRT& operator=(const G4DNAIRT& other) = delete;
0069
0070 G4bool TestReactibility(const G4Track&,
0071 const G4Track&,
0072 G4double ,
0073 G4bool ) override;
0074 std::vector<std::unique_ptr<G4ITReactionChange>> FindReaction(G4ITReactionSet*, const G4double, const G4double, const G4bool) override;
0075 std::unique_ptr<G4ITReactionChange> MakeReaction(const G4Track&, const G4Track&) override;
0076
0077 void SetReactionModel(G4VDNAReactionModel*);
0078
0079 void Initialize() override;
0080 void SpaceBinning();
0081 void IRTSampling();
0082 void Sampling(G4Track*);
0083
0084 G4double GetIndependentReactionTime(const G4MolecularConfiguration*, const G4MolecularConfiguration*, G4double);
0085 G4int FindBin(G4int, G4double, G4double, G4double);
0086 G4double SamplePDC(G4double , G4double );
0087
0088 protected:
0089 const G4DNAMolecularReactionTable*& fMolReactionTable;
0090 G4VDNAReactionModel* fpReactionModel;
0091
0092 private:
0093 G4ITTrackHolder* fTrackHolder;
0094 G4ITReactionSet* fReactionSet;
0095 G4ErrorFunction* erfc;
0096
0097 std::map<G4int,std::map<G4int,std::map<G4int,std::vector<G4Track*>>>> spaceBinned;
0098
0099 G4double fRCutOff;
0100 G4double timeMin;
0101 G4double timeMax;
0102
0103 G4double fXMin, fYMin, fZMin;
0104 G4double fXMax, fYMax, fZMax;
0105 G4int fNx, fNy, fNz;
0106 G4int xiniIndex, yiniIndex, ziniIndex;
0107 G4int xendIndex, yendIndex, zendIndex;
0108 };
0109
0110 #endif