Import Geant4 10.5.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2018-06-29 10:58:11 +02:00
parent fe81a77428
commit 6aa23be517
1581 changed files with 124288 additions and 83758 deletions
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm5/include/DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
//
// $Id: DetectorConstruction.hh 98752 2016-08-09 13:44:40Z gcosmo $
// $Id: DetectorConstruction.hh 109000 2018-03-21 09:25:56Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -51,79 +51,70 @@ class G4GlobalMagFieldMessenger;
class DetectorConstruction : public G4VUserDetectorConstruction
{
public:
public:
DetectorConstruction();
~DetectorConstruction();
DetectorConstruction();
~DetectorConstruction();
public:
void SetAbsorberMaterial (const G4String&);
void SetAbsorberThickness(G4double);
void SetAbsorberSizeYZ (G4double);
void SetAbsorberMaterial (G4String);
void SetAbsorberThickness(G4double);
void SetAbsorberSizeYZ (G4double);
void SetAbsorberXpos(G4double);
void SetAbsorberXpos(G4double);
void SetWorldMaterial(const G4String&);
void SetWorldSizeX (G4double);
void SetWorldSizeYZ (G4double);
void SetWorldMaterial(G4String);
void SetWorldSizeX (G4double);
void SetWorldSizeYZ (G4double);
void SetMagField(G4double);
void SetMagField(G4double);
virtual G4VPhysicalVolume* Construct();
virtual void ConstructSDandField();
virtual G4VPhysicalVolume* Construct();
virtual void ConstructSDandField();
void PrintGeomParameters();
public:
const G4Material* GetAbsorberMaterial() const {return fAbsorberMaterial;};
G4double GetAbsorberThickness() const {return fAbsorberThickness;};
G4double GetAbsorberSizeYZ() const {return fAbsorberSizeYZ;};
void PrintCalorParameters();
G4double GetAbsorberXpos() const {return fXposAbs;};
G4double GetxstartAbs() const {return fXstartAbs;};
G4double GetxendAbs() const {return fXendAbs;};
G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;};
G4double GetAbsorberThickness() {return fAbsorberThickness;};
G4double GetAbsorberSizeYZ() {return fAbsorberSizeYZ;};
const G4Material* GetWorldMaterial() const {return fWorldMaterial;};
G4double GetWorldSizeX() const {return fWorldSizeX;};
G4double GetAbsorberXpos() {return fXposAbs;};
G4double GetxstartAbs() {return fXstartAbs;};
G4double GetxendAbs() {return fXendAbs;};
const G4VPhysicalVolume* GetAbsorber() const {return fPhysiAbsorber;};
G4Material* GetWorldMaterial() {return fWorldMaterial;};
G4double GetWorldSizeX() {return fWorldSizeX;};
private:
const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;};
void DefineMaterials();
void ComputeGeomParameters();
void ChangeGeometry();
private:
G4Material* fAbsorberMaterial;
G4double fAbsorberThickness;
G4double fAbsorberSizeYZ;
void ChangeGeometry();
G4double fXposAbs;
G4double fXstartAbs, fXendAbs;
G4Material* fAbsorberMaterial;
G4double fAbsorberThickness;
G4double fAbsorberSizeYZ;
G4Material* fWorldMaterial;
G4double fWorldSizeX;
G4double fWorldSizeYZ;
G4double fXposAbs;
G4double fXstartAbs, fXendAbs;
G4bool fDefaultWorld;
G4Material* fWorldMaterial;
G4double fWorldSizeX;
G4double fWorldSizeYZ;
G4Box* fSolidWorld;
G4LogicalVolume* fLogicWorld;
G4VPhysicalVolume* fPhysiWorld;
G4bool fDefaultWorld;
G4Box* fSolidWorld;
G4LogicalVolume* fLogicWorld;
G4VPhysicalVolume* fPhysiWorld;
G4Box* fSolidAbsorber;
G4LogicalVolume* fLogicAbsorber;
G4VPhysicalVolume* fPhysiAbsorber;
G4Box* fSolidAbsorber;
G4LogicalVolume* fLogicAbsorber;
G4VPhysicalVolume* fPhysiAbsorber;
DetectorMessenger* fDetectorMessenger;
G4Cache<G4GlobalMagFieldMessenger*> fFieldMessenger;
private:
void DefineMaterials();
void ComputeCalorParameters();
G4VPhysicalVolume* ConstructCalorimeter();
DetectorMessenger* fDetectorMessenger;
G4Cache<G4GlobalMagFieldMessenger*> fFieldMessenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,39 +23,46 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm5/include/PhysListEmStandardSSM.hh
/// \brief Definition of the PhysListEmStandardSSM class
//
// $Id: PhysListEmStandardSSM.hh 98752 2016-08-09 13:44:40Z gcosmo $
// $Id: $
//
//---------------------------------------------------------------------------
//
// ClassName: PhysListEm19DStandard
//
// Author: Jose Luis Rodriguez 18.04.2018
//
// Modified:
// 18.04.2018 Created from PhysListEm19DStandard
//----------------------------------------------------------------------------
//
// This class provides construction of default EM standard physics which
// 5D generator model for gamma conversion
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmStandardSSM_h
#define PhysListEmStandardSSM_h 1
#ifndef PhysListEm19DStandard_h
#define PhysListEm19DStandard_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmStandardSSM : public G4VPhysicsConstructor
class PhysListEm19DStandard : public G4VPhysicsConstructor
{
public:
PhysListEmStandardSSM(const G4String& name = "standardSSM");
~PhysListEmStandardSSM();
public:
public:
// This method is dummy for physics
virtual void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
explicit PhysListEm19DStandard(G4int ver=0, const G4String& name="");
virtual ~PhysListEm19DStandard();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -23,36 +23,44 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm5/include/StepMaxMessenger.hh
/// \brief Definition of the StepMaxMessenger class
//
// $Id: StepMaxMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
// $Id: $
//
//---------------------------------------------------------------------------
//
// ClassName: PhysListEm5DStandard
//
// Author: IgS 07.11.2017
//
// Modified:
// 17.11.2017 Created using PhysListEmStandard from V.Ivanchenko
//----------------------------------------------------------------------------
//
// This class provides construction of default EM standard physics which
// 5D generator model for gamma conversion
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef StepMaxMessenger_h
#define StepMaxMessenger_h 1
#ifndef PhysListEm5DStandard_h
#define PhysListEm5DStandard_h 1
#include "G4UImessenger.hh"
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
class StepMax;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StepMaxMessenger: public G4UImessenger
class PhysListEm5DStandard : public G4VPhysicsConstructor
{
public:
StepMaxMessenger(StepMax*);
~StepMaxMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
StepMax* fStepMax;
G4UIcmdWithADoubleAndUnit* fStepMaxCmd;
public:
explicit PhysListEm5DStandard(G4int ver=0, const G4String& name="");
virtual ~PhysListEm5DStandard();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm5/include/PhysicsList.hh
/// \brief Definition of the PhysicsList class
//
// $Id: PhysicsList.hh 94973 2016-01-12 10:13:56Z gcosmo $
// $Id: PhysicsList.hh 109000 2018-03-21 09:25:56Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -53,7 +53,6 @@ public:
void AddPhysicsList(const G4String& name);
virtual void ConstructProcess();
void AddDecay();
void AddStepMax();
private:
@@ -62,6 +61,7 @@ private:
G4String fEmName;
G4VPhysicsConstructor* fEmPhysicsList;
G4VPhysicsConstructor* fDecayPhysics;
G4VPhysicsConstructor* fHadPhysicsList;
};
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm5/include/PhysicsListMessenger.hh
/// \brief Definition of the PhysicsListMessenger class
//
// $Id: PhysicsListMessenger.hh 81528 2014-06-02 16:21:24Z vnivanch $
// $Id: PhysicsListMessenger.hh 109000 2018-03-21 09:25:56Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -52,6 +52,8 @@ public:
~PhysicsListMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
inline G4double GetMaxChargedStep() const { return fMaxChargedStep; }
private:
@@ -59,6 +61,8 @@ private:
G4UIdirectory* fPhysDir;
G4UIcmdWithAString* fListCmd;
G4UIcmdWithADoubleAndUnit* fStepMaxCmd;
G4double fMaxChargedStep;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,10 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm5/include/StepMax.hh
/// \brief Definition of the StepMax class
//
// $Id: StepMax.hh 66241 2012-12-13 18:34:42Z gunter $
// $Id: StepMax.hh 109000 2018-03-21 09:25:56Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -35,38 +32,41 @@
#define StepMax_h 1
#include "globals.hh"
#include "G4VDiscreteProcess.hh"
#include "G4VEmProcess.hh"
#include "G4ParticleDefinition.hh"
#include "G4Step.hh"
class StepMaxMessenger;
class PhysicsListMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StepMax : public G4VDiscreteProcess
class StepMax : public G4VEmProcess
{
public:
public:
StepMax(const G4String& processName ="UserStepMax");
~StepMax();
StepMax(PhysicsListMessenger* mess);
virtual ~StepMax();
virtual G4bool IsApplicable(const G4ParticleDefinition&);
void SetMaxStep(G4double);
G4double GetMaxStep() {return fMaxChargedStep;};
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition);
virtual G4bool IsApplicable(const G4ParticleDefinition&);
virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
virtual void PreparePhysicsTable(const G4ParticleDefinition&);
virtual G4double GetMeanFreePath(const G4Track&,G4double,G4ForceCondition*)
{return 0.;}; // it is not needed here !
virtual void BuildPhysicsTable(const G4ParticleDefinition&);
private:
virtual void InitialiseProcess(const G4ParticleDefinition*);
G4double fMaxChargedStep;
StepMaxMessenger* fMess;
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
G4double previousStep,
G4ForceCondition* cond);
virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
private:
PhysicsListMessenger* fMessenger;
G4double fMaxChargedStep;
G4bool isInitialised;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......