Import Geant4 9.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 17:01:34 +02:00
parent b1eb5424d2
commit e2d2f9810a
10384 changed files with 698580 additions and 628834 deletions
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4AdjointPhysicsList.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/G4AdjointPhysicsList.hh
/// \brief Definition of the G4AdjointPhysicsList class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: G4AdjointPhysicsList
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: G4AdjointPhysicsList
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4AdjointPhysicsList_h
#define G4AdjointPhysicsList_h 1
@@ -48,34 +54,37 @@
#include "G4hIonisation.hh"
class G4AdjointPhysicsMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4AdjointPhysicsList: public G4VUserPhysicsList
{
public:
G4AdjointPhysicsList();
~G4AdjointPhysicsList();
virtual ~G4AdjointPhysicsList();
void SetLossFluctuationFlag(bool aBool);
inline void SetUseIonisation(bool aBool){use_eionisation = aBool;}
inline void SetUseProtonIonisation(bool aBool){use_pionisation = aBool;}
inline void SetUseBrem(bool aBool){use_brem = aBool;}
inline void SetUseCompton(bool aBool){use_compton = aBool;}
inline void SetUseMS(bool aBool){use_ms = aBool;}
inline void SetUsePEEffect(bool aBool){use_peeffect = aBool;}
inline void SetUseGammaConversion(bool aBool){use_gamma_conversion = aBool;}
inline void SetUseEgainFluctuation(bool aBool){use_egain_fluctuation = aBool;}
inline void SetEminAdjModels(G4double aVal){emin_adj_models = aVal;}
inline void SetEmaxAdjModels(G4double aVal){emax_adj_models = aVal;}
inline void SetUseIonisation(bool aBool){fUse_eionisation = aBool;}
inline void SetUseProtonIonisation(bool aBool){
fUse_pionisation = aBool;}
inline void SetUseBrem(bool aBool){fUse_brem = aBool;}
inline void SetUseCompton(bool aBool){fUse_compton = aBool;}
inline void SetUseMS(bool aBool){fUse_ms = aBool;}
inline void SetUsePEEffect(bool aBool){fUse_peeffect = aBool;}
inline void SetUseGammaConversion(bool aBool){
fUse_gamma_conversion = aBool;}
inline void SetUseEgainFluctuation(bool aBool){
fUse_egain_fluctuation = aBool;}
inline void SetEminAdjModels(G4double aVal){
fEmin_adj_models = aVal;}
inline void SetEmaxAdjModels(G4double aVal){
fEmax_adj_models = aVal;}
protected:
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
virtual void ConstructParticle();
virtual void ConstructProcess();
void SetCuts();
protected:
// these methods Construct particles
void ConstructBosons();
@@ -89,37 +98,33 @@ class G4AdjointPhysicsList: public G4VUserPhysicsList
void ConstructGeneral();
void ConstructEM();
// G4eIonisationWithAdjoint* theeminusIonisation;
G4eIonisation* theeminusIonisation;
G4hIonisation* thepIonisation;
// G4eIonisationWithAdjoint* fEminusIonisation;
G4eIonisation* fEminusIonisation;
G4hIonisation* fPIonisation;
private:
G4AdjointPhysicsMessenger* thePhysicsMessenger;
G4bool use_eionisation;
G4bool use_pionisation;
G4bool use_brem;
G4bool use_compton;
G4bool use_ms;
G4bool use_egain_fluctuation;
G4bool use_peeffect;
G4bool use_gamma_conversion;
G4AdjointPhysicsMessenger* fPhysicsMessenger;
G4bool fUse_eionisation;
G4bool fUse_pionisation;
G4bool fUse_brem;
G4bool fUse_compton;
G4bool fUse_ms;
G4bool fUse_egain_fluctuation;
G4bool fUse_peeffect;
G4bool fUse_gamma_conversion;
G4double emin_adj_models;
G4double emax_adj_models;
G4double fEmin_adj_models;
G4double fEmax_adj_models;
G4double CS_biasing_factor_compton;
G4double CS_biasing_factor_brem;
G4double CS_biasing_factor_ionisation;
G4double CS_biasing_factor_PEeffect;
G4double fCS_biasing_factor_compton;
G4double fCS_biasing_factor_brem;
G4double fCS_biasing_factor_ionisation;
G4double fCS_biasing_factor_PEeffect;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4AdjointPhysicsMessenger.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/G4AdjointPhysicsMessenger.hh
/// \brief Definition of the G4AdjointPhysicsMessenger class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: G4AdjointPhysicsMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: G4AdjointPhysicsMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef G4AdjointPhysicsMessenger_h
#define G4AdjointPhysicsMessenger_h 1
@@ -61,40 +67,28 @@ class G4AdjointPhysicsMessenger: public G4UImessenger
{
public:
G4AdjointPhysicsMessenger(G4AdjointPhysicsList* );
~G4AdjointPhysicsMessenger();
virtual ~G4AdjointPhysicsMessenger();
void SetNewValue(G4UIcommand*, G4String);
virtual void SetNewValue(G4UIcommand*, G4String);
private:
G4AdjointPhysicsList* thePhysicsList;
G4AdjointPhysicsList* fPhysicsList;
G4UIdirectory* PhysicsDir;
G4UIdirectory* fPhysicsDir;
//Physics Model
G4UIcmdWithABool* UseIonisationCmd;
G4UIcmdWithABool* UsepIonisationCmd;
G4UIcmdWithABool* UseBremCmd;
G4UIcmdWithABool* UseComptonCmd;
G4UIcmdWithABool* UseMSCmd;
G4UIcmdWithABool* UsePEEffectCmd;
G4UIcmdWithABool* UseGammaConversionCmd;
G4UIcmdWithABool* UseEgainFluctuationCmd;
G4UIcmdWithADoubleAndUnit* SetEminAdjModelsCmd;
G4UIcmdWithADoubleAndUnit* SetEmaxAdjModelsCmd;
/*
#ifdef TEST_MODE
G4UIcmdWithADouble* SetCSBiasingFactorComptonCmd;
G4UIcmdWithADouble* SetCSBiasingFactorBremCmd;
G4UIcmdWithADouble* SetCSBiasingFactorIonisationCmd;
G4UIcmdWithADouble* SetCSBiasingFactorPEeffectCmd;
#endif
*/
G4UIcmdWithABool* fUsepIonisationCmd;
G4UIcmdWithABool* fUseBremCmd;
G4UIcmdWithABool* fUseComptonCmd;
G4UIcmdWithABool* fUseMSCmd;
G4UIcmdWithABool* fUsePEEffectCmd;
G4UIcmdWithABool* fUseGammaConversionCmd;
G4UIcmdWithABool* fUseEgainFluctuationCmd;
G4UIcmdWithADoubleAndUnit* fSetEminAdjModelsCmd;
G4UIcmdWithADoubleAndUnit* fSetEmaxAdjModelsCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,18 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/ReverseMC01/include/Histo1DVar.hh
/// \brief Definition of the Histo1DVar class
//
#ifndef Histo1DVar_h
#define Histo1DVar_h 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: Histo1DVar.hh
//
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -23,18 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/ReverseMC01/include/Histo2DVar.hh
/// \brief Definition of the Histo2DVar class
//
#ifndef Histo2DVar_h
#define Histo2DVar_h 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: Histo2DVar.hh
//
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott, F Lei
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott, F Lei
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -23,18 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/ReverseMC01/include/Histograms.hh
/// \brief Definition of the Histograms class
//
#ifndef Histograms_h
#define Histograms_h 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: Histograms.hh
//
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01AdjointEventAction.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01AdjointEventAction.hh
/// \brief Definition of the RMC01AdjointEventAction class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01AdjointEventAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01AdjointEventAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01AdjointEventAction_h
#define RMC01AdjointEventAction_h 1
@@ -53,13 +59,16 @@ class RMC01AdjointEventAction : public G4UserEventAction
{
public:
RMC01AdjointEventAction();
~RMC01AdjointEventAction();
virtual ~RMC01AdjointEventAction();
public:
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,40 +23,34 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01AnalysisManager.hh,v 1.2 2009-11-27 14:43:25 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01AnalysisManager.hh
/// \brief Definition of the RMC01AnalysisManager class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01AnalysisManager
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01AnalysisManager
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 24-11-2009 L.Desorgher,
// - registering in Conv* ASCII files every 5000 events the computed edep with precision.
// -Correction of the adjoint computed current and answer matrices by a factor n_asked/n_processed for the case
// where a run is aborted because the user expected precision on e_dep has been reached.
// 17-11-2009 creation by L. Desorgher
// 24-11-2009 L.Desorgher,
// -registering in Conv* ASCII files every 5000 events the computed
// edep with precision.
// -Correction of the adjoint computed current and answer matrices
// by a factor n_asked/n_processed for the case where a run is aborted
// because the user expected precision on e_dep has been reached.
//
//-------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////
// Class Name: RMC01AnalysisManager
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
/////////////////////////////////////////////////////////////////////////////////
//
// CHANGE HISTORY
// --------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01AnalysisManager_HH
#define RMC01AnalysisManager_HH
@@ -68,16 +62,18 @@
#include"G4ThreeVector.hh"
#include"G4Event.hh"
#include"G4Run.hh"
class Histo1DVar;
class Histo2DVar;
class G4Timer;
class RMC01AnalysisManagerMessenger;
enum PRIM_SPECTRUM_TYPE{EXPO,POWER};
class G4Step;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01AnalysisManager
{
public:
@@ -92,16 +88,19 @@ public:
void BeginOfEvent(const G4Event*);
void EndOfEvent(const G4Event*);
void SetPrimaryExponentialSpectrumForAdjointSim(const G4String& particle_name, G4double fluence,G4double E0, G4double Emin,G4double Emax);
void SetPrimaryPowerLawSpectrumForAdjointSim(const G4String& particle_name,G4double fluence, G4double alpha, G4double Emin,G4double Emax);
inline void SetPrecision(G4double precision){precision_to_reach =precision/100.;}; //precision of the simulation results is given in % by the user
void SetPrimaryExpSpectrumForAdjointSim(
const G4String& particle_name, G4double fluence,
G4double E0, G4double Emin,G4double Emax);
void SetPrimaryPowerLawSpectrumForAdjointSim(
const G4String& particle_name,G4double fluence,
G4double alpha, G4double Emin,G4double Emax);
//precision of the simulation results is given in % by the user
inline void SetPrecision(G4double precision){
fPrecision_to_reach =precision/100.;};
private:
static RMC01AnalysisManager* instance;
static RMC01AnalysisManager* fInstance;
private:
@@ -110,89 +109,79 @@ private:
void EndOfEventForForwardSimulation(const G4Event* anEvent);
void EndOfEventForAdjointSimulation(const G4Event* anEvent);
G4double PrimDiffAndDirectionalFluxForAdjointSim(G4double prim_energy);
void WriteHisto(Histo1DVar* anHisto, G4double scaling_factor, G4String fileName, G4String header_lines);
void WriteHisto(Histo2DVar* anHisto, G4double scaling_factor, G4String fileName, G4String header_lines);
G4double PrimDiffAndDirFluxForAdjointSim(G4double prim_energy);
void WriteHisto(Histo1DVar* anHisto, G4double scaling_factor,
G4String fileName, G4String header_lines);
void WriteHisto(Histo2DVar* anHisto, G4double scaling_factor,
G4String fileName, G4String header_lines);
void ResetHistograms();
void ComputeMeanEdepAndError(const G4Event* anEvent,G4double& mean,G4double& error);
void ComputeMeanEdepAndError(const G4Event* anEvent,
G4double& mean,G4double& error);
private:
RMC01AnalysisManagerMessenger* theMsg;
RMC01AnalysisManagerMessenger* fMsg;
//Histos for fwd simulation
//--------------
Histo1DVar* edep_vs_prim_ekin;
Histo1DVar* electron_current;
Histo1DVar* proton_current;
Histo1DVar* gamma_current;
Histo1DVar* fEdep_vs_prim_ekin;
Histo1DVar* fElectron_current;
Histo1DVar* fProton_current;
Histo1DVar* fGamma_current;
//Fluence
//------------
G4double omni_fluence_for_fwd_sim;
G4double fOmni_fluence_for_fwd_sim;
//Variable to check the convergence of the energy deposited for both fwd and adjoint simulation
//Variable to check the convergence of the energy deposited
// for forward and adjoint simulations
//---------------------------------------------------------
G4double accumulated_edep;
G4double accumulated_edep2;
G4double mean_edep;
G4double error_mean_edep;
G4double relative_error;
G4double elapsed_time;
G4double precision_to_reach;
G4bool stop_run_if_precision_reached;
G4int nb_evt_modulo_for_convergence_test;
G4double fAccumulated_edep;
G4double fAccumulated_edep2;
G4double fMean_edep;
G4double fError_mean_edep;
G4double fRelative_error;
G4double fElapsed_time;
G4double fPrecision_to_reach;
G4bool fStop_run_if_precision_reached;
G4int fNb_evt_modulo_for_convergence_test;
//Histos for adjoint simulation
//-----------------------------
Histo1DVar* edep_answer_matrix_vs_electron_prim_energy;
Histo2DVar* electron_current_answer_matrix_vs_electron_prim_energy;
Histo2DVar* gamma_current_answer_matrix_vs_electron_prim_energy;
Histo1DVar* fEdep_rmatrix_vs_electron_prim_energy;
Histo2DVar* fElectron_current_rmatrix_vs_electron_prim_energy;
Histo2DVar* fGamma_current_rmatrix_vs_electron_prim_energy;
Histo1DVar* edep_answer_matrix_vs_gamma_prim_energy;
Histo2DVar* electron_current_answer_matrix_vs_gamma_prim_energy;
Histo2DVar* gamma_current_answer_matrix_vs_gamma_prim_energy;
Histo1DVar* fEdep_rmatrix_vs_gamma_prim_energy;
Histo2DVar* fElectron_current_rmatrix_vs_gamma_prim_energy;
Histo2DVar* fGamma_current_rmatrix_vs_gamma_prim_energy;
Histo1DVar* edep_answer_matrix_vs_proton_prim_energy;
Histo2DVar* electron_current_answer_matrix_vs_proton_prim_energy;
Histo2DVar* proton_current_answer_matrix_vs_proton_prim_energy;
Histo2DVar* gamma_current_answer_matrix_vs_proton_prim_energy;
Histo1DVar* fEdep_rmatrix_vs_proton_prim_energy;
Histo2DVar* fElectron_current_rmatrix_vs_proton_prim_energy;
Histo2DVar* fProton_current_rmatrix_vs_proton_prim_energy;
Histo2DVar* fGamma_current_rmatrix_vs_proton_prim_energy;
//Prim spectrum to which the adjoint simulation will be normalised
//Answer matrices will be also registered for post processing normalisation
//--------------------------------------------------------
PRIM_SPECTRUM_TYPE the_prim_spectrum_type;
G4int thePrimPDG_ID;
G4double alpha_or_E0;
G4double amplitude_prim_spectrum;
G4double emin_prim_spectrum;
G4double emax_prim_spectrum;
G4bool adjoint_sim_mode;
G4int nb_evt_per_adj_evt;
PRIM_SPECTRUM_TYPE fPrimSpectrumType;
G4int fPrimPDG_ID;
G4double fAlpha_or_E0;
G4double fAmplitude_prim_spectrum;
G4double fEmin_prim_spectrum;
G4double fEmax_prim_spectrum;
G4bool fAdjoint_sim_mode;
G4int fNb_evt_per_adj_evt;
//Timer
//------
G4Timer* theTimer;
std::fstream ConvergenceFileOutput;
G4Timer* fTimer;
std::fstream fConvergenceFileOutput;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,23 +23,29 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01AnalysisManagerMessenger.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01AnalysisManagerMessenger.hh
/// \brief Definition of the RMC01AnalysisManagerMessenger class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01AnalysisManagerMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01AnalysisManagerMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01AnalysisManagerMessenger_h
#define RMC01AnalysisManagerMessenger_h 1
@@ -50,8 +56,6 @@ class RMC01AnalysisManager;
class G4UIdirectory;
class G4UIcmdWithADouble;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01AnalysisManagerMessenger: public G4UImessenger
@@ -59,25 +63,18 @@ class RMC01AnalysisManagerMessenger: public G4UImessenger
public:
RMC01AnalysisManagerMessenger(RMC01AnalysisManager* );
~RMC01AnalysisManagerMessenger();
virtual ~RMC01AnalysisManagerMessenger();
void SetNewValue(G4UIcommand*, G4String);
virtual void SetNewValue(G4UIcommand*, G4String);
private:
RMC01AnalysisManager* theAnalysisManager;
G4UIdirectory* analysisDir;
RMC01AnalysisManager* fAnalysisManager;
G4UIdirectory* fAnalysisDir;
G4UIcmdWithADouble* SetPrecisionForConvergenceTestCmd;
G4UIcommand* SetExponentialSpectrumToNormaliseAdjointResultsCmd;
G4UIcommand* SetPowerLawSpectrumToNormaliseAdjointResultsCmd;
G4UIcmdWithADouble* fSetPrecisionForConvergenceTestCmd;
G4UIcommand* fSetExpSpectrumToNormaliseAdjResCmd;
G4UIcommand* fSetPowerLawSpectrumToNormaliseAdjResCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01DetectorConstruction.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01DetectorConstruction.hh
/// \brief Definition of the RMC01DetectorConstruction class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01DetectorConstruction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01DetectorConstruction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01DetectorConstruction_h
#define RMC01DetectorConstruction_h 1
@@ -54,10 +60,10 @@ class RMC01DetectorConstruction : public G4VUserDetectorConstruction
public:
RMC01DetectorConstruction();
~RMC01DetectorConstruction();
virtual ~RMC01DetectorConstruction();
public:
G4VPhysicalVolume* Construct();
virtual G4VPhysicalVolume* Construct();
void UpdateGeometry();
void SetSensitiveVolumeHeight(G4double h);
@@ -67,30 +73,21 @@ class RMC01DetectorConstruction : public G4VUserDetectorConstruction
private:
RMC01DetectorMessenger* detectorMessenger; //pointer to the Messenger
RMC01DetectorMessenger* fDetectorMessenger; //pointer to the Messenger
//Geometrical parameters
//----------------------
G4double shield_Thickness;
G4double sensitive_cylinder_H;
G4double sensitive_cylinder_Rout;
G4double fShield_Thickness;
G4double fSensitive_cylinder_H;
G4double fSensitive_cylinder_Rout;
private:
void DefineMaterials();
G4VPhysicalVolume* ConstructSimpleGeometry();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,23 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01DetectorMessenger.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01DetectorMessenger.hh
/// \brief Definition of the RMC01DetectorMessenger class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01DetectorMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01DetectorMessenger
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01DetectorMessenger_h
#define RMC01DetectorMessenger_h 1
@@ -60,23 +65,20 @@ class RMC01DetectorMessenger: public G4UImessenger
public:
RMC01DetectorMessenger(RMC01DetectorConstruction* );
~RMC01DetectorMessenger();
virtual ~RMC01DetectorMessenger();
void SetNewValue(G4UIcommand*, G4String);
virtual void SetNewValue(G4UIcommand*, G4String);
private:
RMC01DetectorConstruction* theDetector;
RMC01DetectorConstruction* fTheDetector;
G4UIdirectory* GeneralDir;
G4UIdirectory* detDir;
G4UIcmdWithADoubleAndUnit* SetSensitiveVolumeHeightCmd;
G4UIcmdWithADoubleAndUnit* SetSensitiveVolumeRadiusCmd;
G4UIcmdWithADoubleAndUnit* SetShieldingThicknessCmd;
G4UIdirectory* fGeneralDir;
G4UIdirectory* fDetDir;
G4UIcmdWithADoubleAndUnit* fSetSensitiveVolumeHeightCmd;
G4UIcmdWithADoubleAndUnit* fSetSensitiveVolumeRadiusCmd;
G4UIcmdWithADoubleAndUnit* fSetShieldingThicknessCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01DoubleWithWeightHit.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01DoubleWithWeightHit.hh
/// \brief Definition of the RMC01DoubleWithWeightHit class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01DoubleWithWeightHit
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01DoubleWithWeightHit
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01DoubleWithWeightHit_h
#define RMC01DoubleWithWeightHit_h 1
@@ -46,15 +52,18 @@
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01DoubleWithWeightHit : public G4VHit
{
public:
RMC01DoubleWithWeightHit(G4double value, G4double weight);
~RMC01DoubleWithWeightHit();
virtual ~RMC01DoubleWithWeightHit();
RMC01DoubleWithWeightHit(const RMC01DoubleWithWeightHit &right);
const RMC01DoubleWithWeightHit& operator = (const RMC01DoubleWithWeightHit &right);
const RMC01DoubleWithWeightHit& operator = (
const RMC01DoubleWithWeightHit &right);
int operator == (const RMC01DoubleWithWeightHit &right) const;
@@ -63,23 +72,23 @@ public:
private:
G4double theValue; // It can be anything
G4double theWeight;
G4double fValue; // It can be anything
G4double fWeight;
public:
// Methods to get the information - energy deposit and associated
// position in the phantom - of the hits stored in the hits collection
inline G4double GetValue()
{return theValue;}
inline G4double GetValue() {return fValue;}
inline G4double GetWeight()
{return theWeight;}
inline G4double GetWeight() {return fWeight;}
};
typedef G4THitsCollection<RMC01DoubleWithWeightHit> RMC01DoubleWithWeightHitsCollection;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
typedef G4THitsCollection<RMC01DoubleWithWeightHit>
RMC01DoubleWithWeightHitsCollection;
extern G4Allocator<RMC01DoubleWithWeightHit> RMC01DoubleWithWeightHitAllocator;
inline void* RMC01DoubleWithWeightHit::operator new(size_t)
@@ -89,10 +98,15 @@ inline void* RMC01DoubleWithWeightHit::operator new(size_t)
return aHit;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline void RMC01DoubleWithWeightHit::operator delete(void *aHit)
{
RMC01DoubleWithWeightHitAllocator.FreeSingle((RMC01DoubleWithWeightHit*) aHit);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,20 +23,22 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01EventAction.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01EventAction.hh
/// \brief Definition of the RMC01EventAction class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01EventAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01EventAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
#ifndef RMC01EventAction_h
@@ -53,17 +55,16 @@ class RMC01EventAction : public G4UserEventAction
{
public:
RMC01EventAction();
~RMC01EventAction();
virtual ~RMC01EventAction();
public:
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,44 +23,48 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01PrimaryGeneratorAction.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01PrimaryGeneratorAction.hh
/// \brief Definition of the RMC01PrimaryGeneratorAction class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01PrimaryGeneratorAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01PrimaryGeneratorAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01PrimaryGeneratorAction_h
#define RMC01PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
#include "G4GeneralParticleSource.hh"
class OnExternalSurfacePrimaryGenerator;
class G4ParticleGun;
class G4Event;
class G4SingleParticleSource;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
RMC01PrimaryGeneratorAction();
~RMC01PrimaryGeneratorAction();
virtual ~RMC01PrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event*);
virtual void GeneratePrimaries(G4Event*);
private:
G4GeneralParticleSource* theParticleSource;
G4GeneralParticleSource* fParticleSource;
};
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01RunAction.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01RunAction.hh
/// \brief Definition of the RMC01RunAction class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01RunAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01RunAction
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01RunAction_h
#define RMC01RunAction_h 1
@@ -48,6 +54,9 @@
class G4Run;
class RMC01AnalysisManager;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01RunAction : public G4UserRunAction
{
public:
@@ -61,10 +70,10 @@ public:
virtual void EndOfRunAction(const G4Run*);
private:
RMC01AnalysisManager* theAnalysisManager;
RMC01AnalysisManager* fAnalysisManager;
};
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,22 +23,28 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: RMC01SD.hh,v 1.1 2009-11-19 22:41:18 ldesorgh Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
/// \file biasing/ReverseMC01/include/RMC01SD.hh
/// \brief Definition of the RMC01SD class
//
// $Id$
//
//////////////////////////////////////////////////////////////
// Class Name: RMC01SD
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
// Class Name: RMC01SD
// Author: L. Desorgher
// Organisation: SpaceIT GmbH
// Contract: ESA contract 21435/08/NL/AT
// Customer: ESA/ESTEC
//////////////////////////////////////////////////////////////
// CHANGE HISTORY
//--------------
// ChangeHistory:
// 17-11-2009 creation by L. Desorgher
// 17-11-2009 creation by L. Desorgher
//
//-------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RMC01SD_h
#define RMC01SD_h 1
@@ -55,38 +61,31 @@ class G4VPhysicalVolume;
#include"G4ios.hh"
#include"RMC01DoubleWithWeightHit.hh"
//The sensitive detector
//----------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RMC01SD : public G4VSensitiveDetector
{
public:
RMC01SD(G4String name);
~RMC01SD();
RMC01SD(G4String name);
virtual ~RMC01SD();
virtual void Initialize(G4HCofThisEvent*HCE);
virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
virtual void EndOfEvent(G4HCofThisEvent*HCE);
virtual void Clear();
virtual void DrawAll();
virtual void PrintAll();
void Initialize(G4HCofThisEvent*HCE);
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
void EndOfEvent(G4HCofThisEvent*HCE);
void clear();
void DrawAll();
void PrintAll();
private:
G4double TotalEventEdep;
RMC01DoubleWithWeightHitsCollection* EventEdepCollection;
RMC01DoubleWithWeightHitsCollection* ProtonCurrentCollection;
RMC01DoubleWithWeightHitsCollection* GammaCurrentCollection;
RMC01DoubleWithWeightHitsCollection* ElectronCurrentCollection;
G4double fTotalEventEdep;
RMC01DoubleWithWeightHitsCollection* fEventEdepCollection;
RMC01DoubleWithWeightHitsCollection* fProtonCurrentCollection;
RMC01DoubleWithWeightHitsCollection* fGammaCurrentCollection;
RMC01DoubleWithWeightHitsCollection* fElectronCurrentCollection;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,18 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/ReverseMC01/include/VariableLengthPartition.hh
/// \brief Definition of the VariableLengthPartition class
//
#ifndef VariableLengthPartition_h
#define VariableLengthPartition_h 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: VariableLengthParition.hh
//
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
@@ -23,18 +23,21 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file biasing/ReverseMC01/include/side.hh
/// \brief Definition of the side class
//
#ifndef side_h
#define side_h 1
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//
// MODULE: side.hh
//
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott, F Lei
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
// Version: 1.0
// Date: 09/03/00
// Author: P R Truscott, F Lei
// Organisation: DERA UK
// Customer: ESA/ESTEC, NOORDWIJK
// Contract: 12115/96/NL/JG Work Order No. 3
//
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//