Import Geant4 10.6.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2019-06-28 11:59:04 +02:00
parent 28a70706e0
commit d0f911957d
1056 changed files with 95168 additions and 78160 deletions
@@ -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
@@ -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
@@ -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
@@ -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