Import Geant4 10.6.0.beta source tree
This commit is contained in:
@@ -44,8 +44,7 @@
|
||||
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
|
||||
|
||||
|
||||
#ifndef G4MOLECULARREACTION_H
|
||||
#define G4MOLECULARREACTION_H
|
||||
#pragma once
|
||||
|
||||
#include <G4VITReactionProcess.hh>
|
||||
|
||||
@@ -54,67 +53,30 @@ class G4VDNAReactionModel;
|
||||
|
||||
/**
|
||||
* G4DNAMolecularReaction is the reaction process
|
||||
* used in G4DNAMolecularStepByStepModel between
|
||||
* two molecules.
|
||||
* After the global track steps, it test whether
|
||||
* the molecules can react. If so, the reaction is made.
|
||||
* used in G4DNAMolecularStepByStepModel.
|
||||
* It test whether molecules can react after testing.
|
||||
* If so, the reaction is made.
|
||||
* \deprecated This class will be removed
|
||||
*/
|
||||
|
||||
class G4DNAMolecularReaction : public G4VITReactionProcess
|
||||
{
|
||||
public:
|
||||
/** Default constructor */
|
||||
G4DNAMolecularReaction();
|
||||
/** Default destructor */
|
||||
virtual ~G4DNAMolecularReaction();
|
||||
/** Copy constructor
|
||||
* \param other Object to copy from
|
||||
*/
|
||||
G4DNAMolecularReaction(const G4DNAMolecularReaction& other);
|
||||
/** Assignment operator
|
||||
* \param other Object to assign from
|
||||
* \return A reference to this
|
||||
*/
|
||||
G4DNAMolecularReaction& operator=(const G4DNAMolecularReaction& other);
|
||||
public:
|
||||
G4DNAMolecularReaction();
|
||||
explicit G4DNAMolecularReaction(G4VDNAReactionModel*);
|
||||
~G4DNAMolecularReaction() override = default;
|
||||
G4DNAMolecularReaction(const G4DNAMolecularReaction& other) = delete;
|
||||
G4DNAMolecularReaction& operator=(const G4DNAMolecularReaction& other) = delete;
|
||||
|
||||
G4IT_ADD_CLONE(G4VITReactionProcess, G4DNAMolecularReaction)
|
||||
G4bool TestReactibility(const G4Track&,
|
||||
const G4Track&,
|
||||
double currentStepTime,
|
||||
bool userStepTimeLimit) override;
|
||||
|
||||
/** Given two tracks, it tells you whether they can react
|
||||
*/
|
||||
virtual G4bool TestReactibility(const G4Track&,
|
||||
const G4Track&,
|
||||
const double currentStepTime,
|
||||
const double previousStepTime,
|
||||
bool userStepTimeLimit) /*const*/ ;
|
||||
std::unique_ptr<G4ITReactionChange> MakeReaction(const G4Track&, const G4Track&) override;
|
||||
|
||||
/** Will generate the products of the two given tracks
|
||||
*/
|
||||
virtual G4ITReactionChange* MakeReaction(const G4Track&, const G4Track&) ;
|
||||
void SetReactionModel(G4VDNAReactionModel*);
|
||||
|
||||
inline void SetReactionModel(G4VDNAReactionModel*);
|
||||
inline void SetReactionTable(const G4DNAMolecularReactionTable*);
|
||||
|
||||
inline void SetVerbose(int);
|
||||
// 1 : only when make reaction is called
|
||||
// 2 : both make reaction + test reactibility are called
|
||||
|
||||
protected:
|
||||
const G4DNAMolecularReactionTable*& fMolReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
G4int fVerbose;
|
||||
G4double fReactionRadius ;
|
||||
G4double fDistance;
|
||||
private:
|
||||
protected:
|
||||
const G4DNAMolecularReactionTable*& fMolReactionTable;
|
||||
G4VDNAReactionModel* fpReactionModel;
|
||||
};
|
||||
|
||||
inline void G4DNAMolecularReaction::SetReactionModel(G4VDNAReactionModel* model)
|
||||
{
|
||||
fReactionModel = model;
|
||||
}
|
||||
|
||||
inline void G4DNAMolecularReaction::SetVerbose(int verb)
|
||||
{
|
||||
fVerbose = verb;
|
||||
}
|
||||
|
||||
#endif // G4MOLECULARREACTION_H
|
||||
|
||||
+12
-36
@@ -43,18 +43,14 @@
|
||||
// J. Comput. Phys. 274 (2014) 841-882
|
||||
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef G4MOLECULARSTEPBYSTEPMODEL_H
|
||||
#define G4MOLECULARSTEPBYSTEPMODEL_H
|
||||
|
||||
#include <AddClone_def.hh>
|
||||
#include <G4String.hh>
|
||||
#include <G4VITStepModel.hh>
|
||||
|
||||
class G4DNAMolecularReactionTable;
|
||||
class G4VDNAReactionModel;
|
||||
|
||||
|
||||
/**
|
||||
* G4DNAMolecularStepByStepModel :
|
||||
* - TimeStepper : G4DNAMolecularEncounterStepper
|
||||
@@ -64,45 +60,25 @@ class G4VDNAReactionModel;
|
||||
* within this time step. Then, only the relevant pair of molecules are checked for
|
||||
* reaction.
|
||||
*/
|
||||
|
||||
class G4DNAMolecularStepByStepModel : public G4VITStepModel
|
||||
{
|
||||
public:
|
||||
/** Default constructor */
|
||||
G4DNAMolecularStepByStepModel(const G4String& name = "DNAMolecularStepByStepModel");
|
||||
/** Default destructor */
|
||||
virtual ~G4DNAMolecularStepByStepModel();
|
||||
G4DNAMolecularStepByStepModel(const G4String& name,
|
||||
std::unique_ptr<G4VITTimeStepComputer> pTimeStepper,
|
||||
std::unique_ptr<G4VITReactionProcess> pReactionProcess);
|
||||
G4DNAMolecularStepByStepModel& operator=(const G4DNAMolecularStepByStepModel&) = delete;
|
||||
G4DNAMolecularStepByStepModel(const G4DNAMolecularStepByStepModel&) = delete;
|
||||
~G4DNAMolecularStepByStepModel() override;
|
||||
|
||||
G4DNAMolecularStepByStepModel(const G4DNAMolecularStepByStepModel&);
|
||||
void PrintInfo() override;
|
||||
void Initialize() override;
|
||||
|
||||
G4IT_ADD_CLONE(G4VITStepModel, G4DNAMolecularStepByStepModel)
|
||||
|
||||
virtual void PrintInfo();
|
||||
virtual void Initialize();
|
||||
|
||||
inline void SetReactionModel(G4VDNAReactionModel*);
|
||||
inline G4VDNAReactionModel* GetReactionModel();
|
||||
void SetReactionModel(G4VDNAReactionModel*);
|
||||
G4VDNAReactionModel* GetReactionModel();
|
||||
|
||||
protected:
|
||||
const G4DNAMolecularReactionTable*& fMolecularReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
|
||||
private :
|
||||
/** Assignment operator
|
||||
* \param other Object to assign from
|
||||
* \return A reference to this
|
||||
*/
|
||||
G4DNAMolecularStepByStepModel& operator=(const G4DNAMolecularStepByStepModel& /*other*/);
|
||||
std::unique_ptr<G4VDNAReactionModel> fpReactionModel;
|
||||
};
|
||||
|
||||
inline void G4DNAMolecularStepByStepModel::SetReactionModel(G4VDNAReactionModel* reactionModel)
|
||||
{
|
||||
fReactionModel = reactionModel;
|
||||
}
|
||||
|
||||
inline G4VDNAReactionModel* G4DNAMolecularStepByStepModel::GetReactionModel()
|
||||
{
|
||||
return fReactionModel;
|
||||
}
|
||||
|
||||
#endif // G4MOLECULARSTEPBYSTEPMODEL_H
|
||||
|
||||
+36
-57
@@ -43,8 +43,7 @@
|
||||
// J. Comput. Phys. 274 (2014) 841-882
|
||||
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
|
||||
|
||||
#ifndef G4MOLECULEENCOUNTERSTEPPER_H
|
||||
#define G4MOLECULEENCOUNTERSTEPPER_H
|
||||
#pragma once
|
||||
|
||||
#include "G4VITTimeStepComputer.hh"
|
||||
#include "G4KDTreeResult.hh"
|
||||
@@ -69,73 +68,53 @@ class G4Molecule;
|
||||
class G4DNAMoleculeEncounterStepper : public G4VITTimeStepComputer
|
||||
{
|
||||
public:
|
||||
G4DNAMoleculeEncounterStepper();
|
||||
virtual ~G4DNAMoleculeEncounterStepper();
|
||||
G4DNAMoleculeEncounterStepper(const G4DNAMoleculeEncounterStepper&);
|
||||
G4IT_ADD_CLONE(G4VITTimeStepComputer,G4DNAMoleculeEncounterStepper)
|
||||
G4DNAMoleculeEncounterStepper();
|
||||
virtual ~G4DNAMoleculeEncounterStepper();
|
||||
G4DNAMoleculeEncounterStepper(const G4DNAMoleculeEncounterStepper&) = delete;
|
||||
G4DNAMoleculeEncounterStepper& operator=(const G4DNAMoleculeEncounterStepper&) = delete;
|
||||
|
||||
virtual void Prepare();
|
||||
// virtual void PrepareForAllProcessors();
|
||||
virtual G4double CalculateStep(const G4Track&, const G4double&);
|
||||
virtual void Prepare();
|
||||
virtual G4double CalculateStep(const G4Track&, const G4double&);
|
||||
|
||||
inline void SetReactionModel(G4VDNAReactionModel*);
|
||||
inline G4VDNAReactionModel* GetReactionModel();
|
||||
void SetReactionModel(G4VDNAReactionModel*);
|
||||
G4VDNAReactionModel* GetReactionModel();
|
||||
|
||||
inline void SetVerbose(int);
|
||||
// Final time returned when reaction is avalaible in the reaction table = 1
|
||||
// All details = 2
|
||||
void SetVerbose(int);
|
||||
// Final time returned when reaction is available in the reaction table = 1
|
||||
// All details = 2
|
||||
|
||||
private:
|
||||
void InitializeForNewTrack();
|
||||
void InitializeForNewTrack();
|
||||
|
||||
class Utils;
|
||||
void CheckAndRecordResults(const Utils&,
|
||||
class Utils;
|
||||
void CheckAndRecordResults(const Utils&,
|
||||
#ifdef G4VERBOSE
|
||||
const G4double reactionRange,
|
||||
const G4double reactionRange,
|
||||
#endif
|
||||
G4KDTreeResultHandle&);
|
||||
G4KDTreeResultHandle&);
|
||||
|
||||
G4bool fHasAlreadyReachedNullTime;
|
||||
G4bool fHasAlreadyReachedNullTime;
|
||||
|
||||
G4DNAMoleculeEncounterStepper& operator=(const G4DNAMoleculeEncounterStepper&);
|
||||
const G4DNAMolecularReactionTable*& fMolecularReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
G4int fVerbose;
|
||||
const G4DNAMolecularReactionTable*& fMolecularReactionTable;
|
||||
G4VDNAReactionModel* fReactionModel;
|
||||
G4int fVerbose;
|
||||
|
||||
class Utils
|
||||
{
|
||||
public:
|
||||
Utils(const G4Track& tA, G4MolecularConfiguration* mB);
|
||||
~Utils(){;}
|
||||
|
||||
G4double GetConstant() const
|
||||
class Utils
|
||||
{
|
||||
return Constant;
|
||||
}
|
||||
public:
|
||||
Utils(const G4Track& tA, const G4MolecularConfiguration* mB);
|
||||
~Utils() = default;
|
||||
|
||||
const G4Track& trackA;
|
||||
G4MolecularConfiguration* moleculeB;
|
||||
const G4Molecule* moleculeA;
|
||||
G4double DA;
|
||||
G4double DB;
|
||||
G4double Constant;
|
||||
};
|
||||
G4double GetConstant() const
|
||||
{
|
||||
return fConstant;
|
||||
}
|
||||
|
||||
const G4Track& fpTrackA;
|
||||
const G4MolecularConfiguration* fpMoleculeB;
|
||||
const G4Molecule* fpMoleculeA;
|
||||
G4double fDA;
|
||||
G4double fDB;
|
||||
G4double fConstant;
|
||||
};
|
||||
};
|
||||
|
||||
inline void G4DNAMoleculeEncounterStepper::SetReactionModel(G4VDNAReactionModel* reactionModel)
|
||||
{
|
||||
fReactionModel = reactionModel;
|
||||
}
|
||||
|
||||
inline G4VDNAReactionModel* G4DNAMoleculeEncounterStepper::GetReactionModel()
|
||||
{
|
||||
return fReactionModel;
|
||||
}
|
||||
|
||||
inline void G4DNAMoleculeEncounterStepper::SetVerbose(int flag)
|
||||
{
|
||||
fVerbose = flag;
|
||||
}
|
||||
|
||||
#endif // G4MOLECULEENCOUNTERSTEPPER_H
|
||||
|
||||
+10
-17
@@ -43,11 +43,8 @@
|
||||
// J. Comput. Phys. 274 (2014) 841-882
|
||||
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef G4DiffControlledReactionRadius_
|
||||
#define G4DiffControlledReactionRadius_
|
||||
|
||||
#include "AddClone_def.hh"
|
||||
#include "G4VDNAReactionModel.hh"
|
||||
#include <vector>
|
||||
|
||||
@@ -69,25 +66,21 @@ public :
|
||||
G4DNASmoluchowskiReactionModel();
|
||||
virtual ~G4DNASmoluchowskiReactionModel();
|
||||
|
||||
G4DNASmoluchowskiReactionModel(const G4DNASmoluchowskiReactionModel&);
|
||||
G4DNASmoluchowskiReactionModel(const G4DNASmoluchowskiReactionModel&) = delete;
|
||||
G4DNASmoluchowskiReactionModel& operator=(const G4DNASmoluchowskiReactionModel&) = delete;
|
||||
|
||||
G4IT_ADD_CLONE(G4VDNAReactionModel, G4DNASmoluchowskiReactionModel)
|
||||
|
||||
virtual void Initialise(G4MolecularConfiguration*, const G4Track&) ;
|
||||
virtual void InitialiseToPrint(G4MolecularConfiguration*) ;
|
||||
virtual G4double GetReactionRadius(G4MolecularConfiguration*,
|
||||
G4MolecularConfiguration*);
|
||||
virtual void Initialise(const G4MolecularConfiguration*, const G4Track&) ;
|
||||
virtual void InitialiseToPrint(const G4MolecularConfiguration*) ;
|
||||
virtual G4double GetReactionRadius(const G4MolecularConfiguration*,
|
||||
const G4MolecularConfiguration*);
|
||||
virtual G4double GetReactionRadius(const G4int);
|
||||
|
||||
virtual G4bool FindReaction(const G4Track&,
|
||||
const G4Track&,
|
||||
const G4double /*reactionRadius*/,
|
||||
G4double /*reactionRadius*/,
|
||||
G4double& /*separationDistance*/,
|
||||
const G4bool /*alongStepInteraction*/) ;
|
||||
G4bool /*alongStepInteraction*/) ;
|
||||
|
||||
private :
|
||||
const std::vector<const G4DNAMolecularReactionData*>* fReactionData ;
|
||||
G4DNASmoluchowskiReactionModel& operator=(const G4DNASmoluchowskiReactionModel&);
|
||||
const std::vector<const G4DNAMolecularReactionData*>* fpReactionData ;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user