Import Geant4 11.0.0.beta source tree
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.8...3.18)
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.12...3.20)
|
||||
project(microbeam)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
@@ -7,6 +7,26 @@
|
||||
|
||||
Package History file
|
||||
--------------------
|
||||
|
||||
10 June 2021 - V. Ivanchenko - tag microbeam-V10-07-03
|
||||
- an attempt to fix problems at nightly and some clean-up:
|
||||
microbeam.cc - do not initialize run and number of threads, let
|
||||
these be done in microbeam.mac
|
||||
DetectorConstruction - use CLHEP::twopi; do not have fField pointer
|
||||
as the class member, instead use G4AutoDelete registration
|
||||
CellParameterisation - initilize all data members
|
||||
|
||||
24 May 2021 - B. Morgan (microbeam-V10-07-02)
|
||||
- Bump required CMake version range to 3.12...3.20, matching core Geant4
|
||||
|
||||
15 Feb 2021 - S. Guatelli - tag microbeam-V10-07-01
|
||||
- explicit constructors and "override" instead of "virtual" in derived classes.
|
||||
Initialisation of G4double/G4int variables in the DetectorConstruction
|
||||
|
||||
09 Feb 2021 - S. Guatelli - tag microbeam-V10-07-00
|
||||
- Initialisation of fDose3DDose and fMapVoxels in the
|
||||
constructor of the RunAction class
|
||||
|
||||
15 Nov 2020 - S. Guatelli - tag microbeam-V10-06-01
|
||||
- Migration to G4RunManagerFactory
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class DetectorConstruction;
|
||||
class ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
ActionInitialization(DetectorConstruction*);
|
||||
explicit ActionInitialization(DetectorConstruction*);
|
||||
virtual ~ActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
|
||||
@@ -44,73 +44,73 @@ class CellParameterisation : public G4VPVParameterisation
|
||||
{
|
||||
public:
|
||||
|
||||
CellParameterisation
|
||||
explicit CellParameterisation
|
||||
(G4Material* nucleus1, G4Material* cytoplasm1,
|
||||
G4Material* nucleus2, G4Material* cytoplasm2,
|
||||
G4Material* nucleus3, G4Material* cytoplasm3
|
||||
);
|
||||
|
||||
virtual ~CellParameterisation();
|
||||
~CellParameterisation() override;
|
||||
|
||||
void ComputeTransformation (const G4int copyNo,G4VPhysicalVolume* physVol) const;
|
||||
void ComputeTransformation (const G4int copyNo,G4VPhysicalVolume* physVol) const override;
|
||||
|
||||
void ComputeDimensions(G4Box&,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume* ) const;
|
||||
const G4VPhysicalVolume* ) const override;
|
||||
|
||||
void ComputeDimensions(G4Tubs &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override {}
|
||||
|
||||
void ComputeDimensions(G4Trd &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override {}
|
||||
|
||||
void ComputeDimensions(G4Trap &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override {}
|
||||
|
||||
void ComputeDimensions(G4Cons &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Sphere &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Ellipsoid &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Orb &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Torus &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Para &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Polycone &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Polyhedra &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
void ComputeDimensions(G4Hype &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const {}
|
||||
const G4VPhysicalVolume *) const override{}
|
||||
|
||||
G4int GetNoBoxes() const {return fPhantomTotalPixels;}
|
||||
|
||||
G4Material* ComputeMaterial(const G4int copyNo,
|
||||
G4VPhysicalVolume* physVol,
|
||||
const G4VTouchable*);
|
||||
const G4VTouchable*) override;
|
||||
|
||||
// NEW
|
||||
|
||||
@@ -136,7 +136,8 @@ class CellParameterisation : public G4VPVParameterisation
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
static CellParameterisation* gInstance;
|
||||
|
||||
G4Material * fNucleusMaterial1;
|
||||
G4Material * fCytoplasmMaterial1;
|
||||
G4Material * fNucleusMaterial2;
|
||||
@@ -152,24 +153,20 @@ class CellParameterisation : public G4VPVParameterisation
|
||||
G4VisAttributes * fCytoplasmAttributes3;
|
||||
|
||||
G4ThreeVector * fMapCell; // VOXEL COORDINATES
|
||||
|
||||
G4double * fMaterial; // MATERIAL
|
||||
G4double * fMass; // DENSITY REGION
|
||||
G4int * fTissueType; // DENSITY REGION
|
||||
|
||||
G4int fPhantomTotalPixels;
|
||||
G4int fNucleusTotalPixels;
|
||||
G4int fCytoplasmTotalPixels;
|
||||
|
||||
G4double fDimCellBoxX;
|
||||
G4double fDimCellBoxY;
|
||||
G4double fDimCellBoxZ;
|
||||
G4double fNucleusMass;
|
||||
G4double fCytoplasmMass;
|
||||
|
||||
static CellParameterisation* gInstance;
|
||||
|
||||
G4int * fTissueType; // DENSITY REGION
|
||||
G4int fPhantomTotalPixels;
|
||||
G4int fNucleusTotalPixels;
|
||||
G4int fCytoplasmTotalPixels;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#ifndef DetectorConstruction_h
|
||||
#define DetectorConstruction_h 1
|
||||
|
||||
#include "CellParameterisation.hh"
|
||||
#include "EMField.hh"
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4Cons.hh"
|
||||
@@ -42,27 +44,24 @@
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4PVParameterised.hh"
|
||||
#include "CellParameterisation.hh"
|
||||
|
||||
#include "EMField.hh"
|
||||
#include "G4EqMagElectricField.hh"
|
||||
#include "G4PropagatorInField.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4ChordFinder.hh"
|
||||
#include "G4ClassicalRK4.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
DetectorConstruction();
|
||||
virtual ~DetectorConstruction();
|
||||
explicit DetectorConstruction();
|
||||
~DetectorConstruction() override;
|
||||
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
G4VPhysicalVolume* Construct() override;
|
||||
|
||||
virtual void ConstructSDandField();
|
||||
void DefineMaterials();
|
||||
|
||||
void ConstructSDandField() override;
|
||||
|
||||
void SetMassNucleus(G4double mN) {fMassNucleus = mN;}
|
||||
G4double GetMassNucleus() const {return fMassNucleus;}
|
||||
@@ -88,30 +87,14 @@ public:
|
||||
|
||||
const CellParameterisation * GetCellParameterisation() const
|
||||
{return fMyCellParameterisation;};
|
||||
|
||||
G4VPhysicalVolume* ConstructLine();
|
||||
|
||||
private:
|
||||
|
||||
G4double fMassNucleus;
|
||||
G4double fMassCytoplasm;
|
||||
|
||||
G4double fDensityPhantom;
|
||||
G4double fDensityNucleus;
|
||||
G4double fDensityCytoplasm;
|
||||
G4int fNbOfPixelsInPhantom;
|
||||
|
||||
G4double fWorldSizeXY;
|
||||
G4double fWorldSizeZ;
|
||||
G4double fCollObjSizeXY;
|
||||
G4double fCollObjSizeZ;
|
||||
|
||||
G4double fCiblePositionX;
|
||||
G4double fCiblePositionY;
|
||||
G4double fCiblePositionZ;
|
||||
|
||||
G4double fLineAngle;
|
||||
|
||||
// Materials
|
||||
|
||||
CellParameterisation * fMyCellParameterisation;
|
||||
|
||||
// Materials
|
||||
G4Material* fDefaultMaterial;
|
||||
G4Material* fCollimatorMaterial;
|
||||
G4Material* fBoiteMaterial;
|
||||
@@ -127,7 +110,7 @@ private:
|
||||
G4Material* fCytoplasmMaterial2;
|
||||
G4Material* fNucleusMaterial3;
|
||||
G4Material* fCytoplasmMaterial3;
|
||||
|
||||
|
||||
// Volumes
|
||||
|
||||
G4VPhysicalVolume* fPhysiWorld;
|
||||
@@ -208,15 +191,25 @@ private:
|
||||
G4LogicalVolume* fLogicPhantom;
|
||||
G4Box* fSolidPhantom;
|
||||
|
||||
CellParameterisation * fMyCellParameterisation;
|
||||
|
||||
// EM FIELD
|
||||
|
||||
static G4ThreadLocal EMField * fField;
|
||||
|
||||
void DefineMaterials();
|
||||
G4VPhysicalVolume* ConstructLine();
|
||||
G4double fMassNucleus;
|
||||
G4double fMassCytoplasm;
|
||||
|
||||
G4double fDensityPhantom;
|
||||
G4double fDensityNucleus;
|
||||
G4double fDensityCytoplasm;
|
||||
|
||||
G4double fWorldSizeXY;
|
||||
G4double fWorldSizeZ;
|
||||
G4double fCollObjSizeXY;
|
||||
G4double fCollObjSizeZ;
|
||||
|
||||
G4double fCiblePositionX;
|
||||
G4double fCiblePositionY;
|
||||
G4double fCiblePositionZ;
|
||||
|
||||
G4double fLineAngle;
|
||||
|
||||
G4int fNbOfPixelsInPhantom;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -46,11 +46,10 @@ class EMField
|
||||
{
|
||||
public:
|
||||
|
||||
EMField();
|
||||
explicit EMField();
|
||||
|
||||
void GetFieldValue( const double Point[4], double *Bfield ) const;
|
||||
|
||||
G4bool DoesFieldChangeEnergy() const {return true;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -40,23 +40,18 @@
|
||||
|
||||
class RunAction;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
|
||||
EventAction(RunAction*);
|
||||
virtual ~EventAction();
|
||||
explicit EventAction(RunAction*);
|
||||
~EventAction() override;
|
||||
|
||||
virtual void BeginOfEventAction(const G4Event*);
|
||||
virtual void EndOfEventAction(const G4Event*);
|
||||
void BeginOfEventAction(const G4Event*) override;
|
||||
void EndOfEventAction(const G4Event*) override;
|
||||
|
||||
private:
|
||||
|
||||
private:
|
||||
RunAction* fRun;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -37,22 +37,20 @@
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
class PhysicsListMessenger;
|
||||
class G4VPhysicsConstructor;
|
||||
class G4StepLimiter;
|
||||
class PhysicsListMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
|
||||
PhysicsList();
|
||||
virtual ~PhysicsList();
|
||||
explicit PhysicsList();
|
||||
~PhysicsList() override;
|
||||
|
||||
virtual void ConstructParticle();
|
||||
void ConstructParticle()override;
|
||||
|
||||
virtual void ConstructProcess();
|
||||
void ConstructProcess()override;
|
||||
|
||||
void AddPhysicsList(const G4String& name);
|
||||
|
||||
@@ -60,7 +58,6 @@ public:
|
||||
G4StepLimiter* GetStepMaxProcess() {return fStepMaxProcess;};
|
||||
|
||||
private:
|
||||
|
||||
G4String fEmName;
|
||||
G4VPhysicsConstructor* fEmPhysicsList;
|
||||
G4VPhysicsConstructor* fDecPhysicsList;
|
||||
@@ -69,6 +66,5 @@ private:
|
||||
|
||||
PhysicsListMessenger* fMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -27,9 +27,6 @@
|
||||
/// \brief Definition of the PhysicsListMessenger class
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef PhysicsListMessenger_h
|
||||
#define PhysicsListMessenger_h 1
|
||||
|
||||
@@ -41,16 +38,14 @@ class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class PhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
PhysicsListMessenger(PhysicsList* );
|
||||
explicit PhysicsListMessenger(PhysicsList* );
|
||||
~PhysicsListMessenger();
|
||||
|
||||
virtual void SetNewValue(G4UIcommand*, G4String);
|
||||
void SetNewValue(G4UIcommand*, G4String) override;
|
||||
|
||||
inline G4double GetMaxChargedStep() const { return fMaxChargedStep; }
|
||||
|
||||
@@ -63,8 +58,5 @@ private:
|
||||
G4UIcmdWithADoubleAndUnit* fStepMaxCmd;
|
||||
G4double fMaxChargedStep;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -40,20 +40,17 @@
|
||||
|
||||
class G4Event;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
PrimaryGeneratorAction();
|
||||
virtual ~PrimaryGeneratorAction();
|
||||
explicit PrimaryGeneratorAction();
|
||||
~PrimaryGeneratorAction() override;
|
||||
|
||||
virtual void GeneratePrimaries(G4Event*);
|
||||
void GeneratePrimaries(G4Event*) override;
|
||||
|
||||
private:
|
||||
G4ParticleGun* fParticleGun;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -31,28 +31,25 @@
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
|
||||
//
|
||||
#ifndef RunAction_h
|
||||
#define RunAction_h 1
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "G4UserRunAction.hh"
|
||||
//#include "G4ThreeVector.hh"
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class G4Run;
|
||||
|
||||
class RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
|
||||
RunAction(const DetectorConstruction*);
|
||||
virtual ~RunAction();
|
||||
explicit RunAction(const DetectorConstruction*);
|
||||
~RunAction() override;
|
||||
|
||||
virtual void BeginOfRunAction(const G4Run*);
|
||||
virtual void EndOfRunAction(const G4Run*);
|
||||
void BeginOfRunAction(const G4Run*) override;
|
||||
void EndOfRunAction(const G4Run*) override;
|
||||
|
||||
void SetRndmFreq(G4int val) {fSaveRndm = val;}
|
||||
G4int GetRndmFreq() const {return fSaveRndm;}
|
||||
@@ -86,19 +83,17 @@ private:
|
||||
|
||||
const DetectorConstruction* fDetector;
|
||||
|
||||
G4int fSaveRndm;
|
||||
G4int fNumEvent;
|
||||
G4int fNbOfPixels;
|
||||
G4int fNbOfHitsGas;
|
||||
|
||||
G4ThreeVector * fMapVoxels;
|
||||
|
||||
G4double fDoseN;
|
||||
G4double fDoseC;
|
||||
G4double fMassCytoplasm;
|
||||
G4double fMassNucleus;
|
||||
G4double * fDose3DDose;
|
||||
|
||||
G4ThreeVector * fMapVoxels;
|
||||
|
||||
G4int fSaveRndm;
|
||||
G4int fNumEvent;
|
||||
G4int fNbOfPixels;
|
||||
G4int fNbOfHitsGas;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,10 +23,15 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// This example is provided by the Geant4-DNA collaboration
|
||||
// Any report or published results obtained using the Geant4-DNA software
|
||||
// shall cite the following Geant4-DNA collaboration publication:
|
||||
// Med. Phys. 37 (2010) 4692-4708
|
||||
// The Geant4-DNA web site is available at http://geant4-dna.org
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef StepMax_h
|
||||
#define StepMax_h 1
|
||||
|
||||
@@ -37,28 +42,26 @@
|
||||
|
||||
class PhysicsListMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class StepMax : public G4VEmProcess
|
||||
{
|
||||
public:
|
||||
|
||||
StepMax(PhysicsListMessenger* mess);
|
||||
virtual ~StepMax();
|
||||
explicit StepMax(PhysicsListMessenger* mess);
|
||||
~StepMax() override;
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
G4bool IsApplicable(const G4ParticleDefinition&) override;
|
||||
|
||||
virtual void PreparePhysicsTable(const G4ParticleDefinition&);
|
||||
void PreparePhysicsTable(const G4ParticleDefinition&)override;
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&);
|
||||
void BuildPhysicsTable(const G4ParticleDefinition&)override;
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
void InitialiseProcess(const G4ParticleDefinition*)override;
|
||||
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
|
||||
G4double PostStepGetPhysicalInteractionLength(const G4Track& track,
|
||||
G4double previousStep,
|
||||
G4ForceCondition* cond);
|
||||
G4ForceCondition* cond)override;
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
|
||||
G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override;
|
||||
|
||||
private:
|
||||
|
||||
@@ -67,8 +70,5 @@ private:
|
||||
G4double fMaxChargedStep;
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -40,23 +40,19 @@
|
||||
#include "RunAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
SteppingAction(RunAction* ,const DetectorConstruction*);
|
||||
virtual ~SteppingAction();
|
||||
explicit SteppingAction(RunAction* ,const DetectorConstruction*);
|
||||
~SteppingAction() override;
|
||||
|
||||
virtual void UserSteppingAction(const G4Step*);
|
||||
void UserSteppingAction(const G4Step*)override;
|
||||
|
||||
private:
|
||||
RunAction* fRun;
|
||||
const DetectorConstruction* fDetector;
|
||||
const CellParameterisation * fMyCellParameterisation;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -54,8 +54,6 @@ int main(int argc,char** argv) {
|
||||
// Construct the default run manager
|
||||
|
||||
auto* runManager = G4RunManagerFactory::CreateRunManager();
|
||||
G4int nThreads = 4;
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
|
||||
// Set mandatory user initialization classes
|
||||
|
||||
@@ -68,14 +66,9 @@ int main(int argc,char** argv) {
|
||||
|
||||
runManager->SetUserInitialization(new ActionInitialization(detector));
|
||||
|
||||
// Initialize G4 kernel
|
||||
|
||||
runManager->Initialize();
|
||||
|
||||
// Visualization
|
||||
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
visManager->Initialize();
|
||||
G4VisManager* visManager = nullptr;
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
@@ -90,6 +83,8 @@ int main(int argc,char** argv) {
|
||||
}
|
||||
else {
|
||||
// interactive mode
|
||||
visManager = new G4VisExecutive;
|
||||
visManager->Initialize();
|
||||
UImanager->ApplyCommand("/control/execute vis.mac");
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
/control/verbose 0
|
||||
/run/numberOfThreads 4
|
||||
/run/verbose 0
|
||||
/tracking/verbose 0
|
||||
|
||||
/run/initialize
|
||||
|
||||
/tracking/verbose 0
|
||||
/run/verbose 0
|
||||
|
||||
/run/beamOn 10
|
||||
|
||||
@@ -4,8 +4,14 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
|
||||
################################
|
||||
!!! G4Backtrace is activated !!!
|
||||
################################
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-07-patch-02 (11-June-2021)
|
||||
Geant4 version Name: geant4-10-07-ref-06 (25-June-2021)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -313,6 +319,8 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
|
||||
|
||||
|
||||
|
||||
*** /run/numberOfThreads command is issued in sequential mode.
|
||||
Command is ignored.
|
||||
==========> The phantom contains 53480 voxels
|
||||
==========> Nucleus mass (kg)=4.94494e-13
|
||||
==========> Cytoplasm mass (kg)=8.75855e-13
|
||||
@@ -320,59 +328,6 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
|
||||
==========> Voxel size Y (um)=0.35906
|
||||
==========> Voxel size Z (um)=0.16281
|
||||
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Registered graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByAttribute
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered models:
|
||||
None
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
Registered filters:
|
||||
None
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
"/vis/list" to see available colours.
|
||||
|
||||
### === Deexcitation model UAtomDeexcitation is activated for 1 region:
|
||||
DefaultRegionForTheWorld 1 0 0
|
||||
@@ -381,57 +336,57 @@ Some /vis commands (optionally) take a string to specify colour.
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 174 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
LivermorePhElectric : Emin= 0 meV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreCompton : Emin= 0 eV Emax= 1 GeV Fluo
|
||||
LivermoreCompton : Emin= 0 meV Emax= 1 GeV Fluo
|
||||
KleinNishina : Emin= 1 GeV Emax= 100 TeV Fluo
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Livermore5DConversion : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
Livermore5DConversion : Emin= 0 meV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 100 TeV in 180 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
LivermoreRayleigh : Emin= 0 meV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
GoudsmitSaunderson : Emin= 0 meV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
eIoni: for e- SubType=2
|
||||
eIoni: for e- XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
|
||||
LowEnergyIoni : Emin= 0 meV Emax= 100 keV deltaVI
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e- SubType=3
|
||||
eBrem: for e- XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremSB : Emin= 0 meV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- SubType=4
|
||||
ePairProd: for e- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
ePairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for e-, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for e- XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
@@ -440,38 +395,38 @@ UserMaxStep: SubType= 401 Step limit(mm)= 1
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
GoudsmitSaunderson : Emin= 0 meV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
eIoni: for e+ SubType=2
|
||||
eIoni: for e+ XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV deltaVI
|
||||
MollerBhabha : Emin= 0 meV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e+ SubType=3
|
||||
eBrem: for e+ XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
|
||||
eBremSB : Emin= 0 meV Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ SubType=4
|
||||
ePairProd: for e+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
ePairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
annihil: for e+, integral:1 SubType=5 BuildTable=0
|
||||
annihil: for e+ XStype:2 SubType=5 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
eplus2gg : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for e+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
@@ -479,301 +434,299 @@ CoulombScat: for e+, integral:1 SubType=1 BuildTable=1
|
||||
|
||||
msc: for proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for proton SubType=2
|
||||
hIoni: for proton XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
Bragg : Emin= 0 meV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for proton SubType=3
|
||||
hBrems: for proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for proton SubType=4
|
||||
hPairProd: for proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for proton, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for proton XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
nuclearStopping: for proton SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
UrbanMsc : Emin= 0 meV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
ionIoni: for GenericIon SubType=2
|
||||
ionIoni: for GenericIon XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ParamICRU73 : Emin= 0 eV Emax= 100 TeV deltaVI
|
||||
ParamICRU73 : Emin= 0 meV Emax= 100 TeV deltaVI
|
||||
|
||||
nuclearStopping: for GenericIon SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
UrbanMsc : Emin= 0 meV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
ionIoni: for alpha SubType=2
|
||||
ionIoni: for alpha XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
|
||||
BraggIon : Emin= 0 meV Emax=7.9452 MeV deltaVI
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
nuclearStopping: for alpha SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for anti_proton SubType=2
|
||||
hIoni: for anti_proton XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
|
||||
ICRU73QO : Emin= 0 meV Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton SubType=3
|
||||
hBrems: for anti_proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for anti_proton SubType=4
|
||||
hPairProd: for anti_proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for anti_proton, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for anti_proton XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for kaon+ SubType=2
|
||||
hIoni: for kaon+ XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
Bragg : Emin= 0 meV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ SubType=3
|
||||
hBrems: for kaon+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon+ SubType=4
|
||||
hPairProd: for kaon+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon+, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for kaon+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for kaon- SubType=2
|
||||
hIoni: for kaon- XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
|
||||
ICRU73QO : Emin= 0 meV Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- SubType=3
|
||||
hBrems: for kaon- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon- SubType=4
|
||||
hPairProd: for kaon- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon-, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for kaon- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
muIoni: for mu+ SubType=2
|
||||
muIoni: for mu+ XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
Bragg : Emin= 0 meV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ SubType=3
|
||||
muBrems: for mu+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
MuBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu+ SubType=4
|
||||
muPairProd: for mu+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
muPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu+, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for mu+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
muIoni: for mu- SubType=2
|
||||
muIoni: for mu- XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
|
||||
ICRU73QO : Emin= 0 meV Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- SubType=3
|
||||
muBrems: for mu- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
MuBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu- SubType=4
|
||||
muPairProd: for mu- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
muPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu-, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for mu- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for pi+ SubType=2
|
||||
hIoni: for pi+ XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
Bragg : Emin= 0 meV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ SubType=3
|
||||
hBrems: for pi+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi+ SubType=4
|
||||
hPairProd: for pi+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi+, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for pi+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llimit=1
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for pi- SubType=2
|
||||
hIoni: for pi- XStype:1 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
|
||||
ICRU73QO : Emin= 0 meV Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi- SubType=3
|
||||
hBrems: for pi- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi- SubType=4
|
||||
hPairProd: for pi- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi-, integral:1 SubType=1 BuildTable=1
|
||||
CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
##### Create analysis manager 0x21e7c80
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
##### Create analysis manager 0x14933f0
|
||||
Using Root analysis manager
|
||||
All Ntuples have been created
|
||||
-> Event # 1 generated
|
||||
@@ -781,8 +734,8 @@ All Ntuples have been created
|
||||
|
||||
-> Event # 2 generated
|
||||
===> The incident alpha particle has reached the targeted cell :
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.29742504062042
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.037565765905129
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.29757452037102
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.037570357139502
|
||||
|
||||
-> Event # 3 generated
|
||||
===> Sorry, the incident alpha particle has missed the targeted cell !
|
||||
@@ -798,24 +751,19 @@ All Ntuples have been created
|
||||
|
||||
-> Event # 7 generated
|
||||
===> The incident alpha particle has reached the targeted cell :
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.32122858192571
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.058497168523494
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.32122862361442
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.058497147049515
|
||||
|
||||
-> Event # 8 generated
|
||||
===> Sorry, the incident alpha particle has missed the targeted cell !
|
||||
|
||||
-> Event # 9 generated
|
||||
===> Sorry, the incident alpha particle has missed the targeted cell !
|
||||
===> The incident alpha particle has reached the targeted cell :
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.31521898707499
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.024969238306048
|
||||
|
||||
-> Event # 10 generated
|
||||
===> The incident alpha particle has reached the targeted cell :
|
||||
-----> total absorbed dose within Nucleus is (Gy) = 0.30452573909279
|
||||
-----> total absorbed dose within Cytoplasm is (Gy) = 0.048417545311347
|
||||
===> Sorry, the incident alpha particle has missed the targeted cell !
|
||||
|
||||
-> Total number of particles detected by the gas detector : 3
|
||||
|
||||
0 events have been kept for refreshing and/or reviewing.
|
||||
"/vis/reviewKeptEvents" to review them one by one.
|
||||
"/vis/enable", then "/vis/viewer/flush" or "/vis/viewer/rebuild" to see them accumulated.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -39,30 +39,22 @@
|
||||
#include "SteppingAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ActionInitialization::ActionInitialization(DetectorConstruction* detConstruction)
|
||||
: G4VUserActionInitialization(),
|
||||
fDetectorConstruction(detConstruction)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ActionInitialization::~ActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::BuildForMaster() const
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new PrimaryGeneratorAction());
|
||||
|
||||
RunAction* runAction= new RunAction(fDetectorConstruction);
|
||||
RunAction* runAction = new RunAction(fDetectorConstruction);
|
||||
SetUserAction(runAction);
|
||||
|
||||
SetUserAction(new EventAction(runAction));
|
||||
|
||||
@@ -36,12 +36,9 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// SINGLETON
|
||||
CellParameterisation * CellParameterisation::gInstance = 0;
|
||||
|
||||
|
||||
CellParameterisation::CellParameterisation
|
||||
(G4Material * nucleus1, G4Material * cytoplasm1,
|
||||
G4Material * nucleus2, G4Material * cytoplasm2,
|
||||
@@ -59,21 +56,16 @@ CellParameterisation::CellParameterisation
|
||||
G4int shiftX, shiftY, shiftZ;
|
||||
G4double x,y,z,mat,den,tmp,density;
|
||||
G4double denCyto1, denCyto2, denCyto3, denNucl1, denNucl2, denNucl3;
|
||||
|
||||
ncols = nlines = shiftX = shiftY = shiftZ = 0;
|
||||
x = y = z = mat = den = tmp = density =
|
||||
denCyto1 = denCyto2 = denCyto3 = denNucl1 = denNucl2 = denNucl3 = 0.0;
|
||||
|
||||
density=0;
|
||||
denCyto1=0;
|
||||
denCyto2=0;
|
||||
denCyto3=0;
|
||||
denNucl1=0;
|
||||
denNucl2=0;
|
||||
denNucl3=0;
|
||||
|
||||
ncols=0; nlines=0;
|
||||
|
||||
// READ PHANTOM
|
||||
|
||||
// READ PHANTOM
|
||||
fNucleusMass = 0;
|
||||
fCytoplasmMass = 0;
|
||||
|
||||
fDimCellBoxX = fDimCellBoxY = fDimCellBoxZ = micrometer;
|
||||
|
||||
FILE *fMap;
|
||||
fMap = fopen("phantom.dat","r");
|
||||
@@ -91,14 +83,14 @@ CellParameterisation::CellParameterisation
|
||||
|
||||
if (nlines == 1)
|
||||
{
|
||||
ncols = fscanf(fMap,"%lf %lf %lf",&fDimCellBoxX,&fDimCellBoxY,&fDimCellBoxZ);
|
||||
|
||||
ncols = fscanf(fMap,"%lf %lf %lf",&fDimCellBoxX,&fDimCellBoxY,&fDimCellBoxZ);
|
||||
fDimCellBoxX=fDimCellBoxX*micrometer;
|
||||
fDimCellBoxY=fDimCellBoxY*micrometer;
|
||||
fDimCellBoxZ=fDimCellBoxZ*micrometer;
|
||||
}
|
||||
|
||||
if (nlines == 2) ncols = fscanf(fMap,"%i %i %i",&shiftX,&shiftY,&shiftZ); // VOXEL SHIFT IN Z ASSUMED TO BE NEGATIVE
|
||||
// VOXEL SHIFT IN Z ASSUMED TO BE NEGATIVE
|
||||
if (nlines == 2) ncols = fscanf(fMap,"%i %i %i",&shiftX,&shiftY,&shiftZ);
|
||||
|
||||
if (nlines == 3) ncols = fscanf(fMap,"%lf %lf %lf",&denCyto1, &denCyto2, &denCyto3);
|
||||
|
||||
@@ -108,8 +100,8 @@ CellParameterisation::CellParameterisation
|
||||
|
||||
if (ncols < 0) break;
|
||||
|
||||
G4ThreeVector v(x+shiftX,y+shiftY,z-1500/(fDimCellBoxZ/micrometer)-shiftZ); // VOXEL SHIFT IN ORDER TO CENTER PHANTOM
|
||||
|
||||
// VOXEL SHIFT IN ORDER TO CENTER PHANTOM
|
||||
G4ThreeVector v(x+shiftX,y+shiftY,z-1500/(fDimCellBoxZ/micrometer)-shiftZ);
|
||||
if (nlines>4)
|
||||
{
|
||||
|
||||
@@ -204,13 +196,9 @@ CellParameterisation::CellParameterisation
|
||||
fCytoplasmAttributes3->SetForceSolid(false);
|
||||
|
||||
//
|
||||
|
||||
gInstance = this;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
CellParameterisation::~CellParameterisation()
|
||||
{
|
||||
delete[] fMapCell;
|
||||
@@ -219,8 +207,6 @@ CellParameterisation::~CellParameterisation()
|
||||
delete[] fTissueType;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void CellParameterisation::ComputeTransformation
|
||||
(const G4int copyNo, G4VPhysicalVolume* physVol) const
|
||||
{
|
||||
@@ -234,14 +220,10 @@ void CellParameterisation::ComputeTransformation
|
||||
physVol->SetTranslation(origin);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void CellParameterisation::ComputeDimensions
|
||||
(G4Box&, const G4int, const G4VPhysicalVolume*) const
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4Material*
|
||||
CellParameterisation::ComputeMaterial(const G4int copyNo,
|
||||
G4VPhysicalVolume* physVol,
|
||||
|
||||
@@ -36,12 +36,7 @@
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4MagIntegratorDriver.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
G4ThreadLocal EMField* DetectorConstruction::fField = nullptr;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
#include "G4AutoDelete.hh"
|
||||
|
||||
DetectorConstruction::DetectorConstruction()
|
||||
|
||||
@@ -72,31 +67,38 @@ DetectorConstruction::DetectorConstruction()
|
||||
fPhysiPhantom(nullptr),fLogicPhantom(nullptr),fSolidPhantom(nullptr)
|
||||
|
||||
{
|
||||
fWorldSizeXY=fWorldSizeZ=0;
|
||||
DefineMaterials();
|
||||
|
||||
// Initialisation of variables which
|
||||
// will then be appropriately fixed in methods of this class
|
||||
// to implement the simulation geometry set-up
|
||||
fDensityPhantom = 0.; // in g/cm3
|
||||
fDensityNucleus = 0.; // in g/cm3
|
||||
fDensityCytoplasm = 0.; // in g/cm3
|
||||
fWorldSizeXY=fWorldSizeZ=0.;
|
||||
fCollObjSizeXY = 0.;
|
||||
fCollObjSizeZ = 0.;
|
||||
|
||||
// TARGET POSITION
|
||||
fCiblePositionX = 0.;
|
||||
fCiblePositionY = 0.;
|
||||
fCiblePositionZ = 0.;
|
||||
|
||||
// MICROBEAM LINE ANGLE
|
||||
fLineAngle = 0.;
|
||||
|
||||
fNbOfPixelsInPhantom=0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
DetectorConstruction::~DetectorConstruction()
|
||||
{
|
||||
if(fField) {
|
||||
delete fField;
|
||||
fField = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
{}
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
|
||||
{
|
||||
if(fPhysiWorld) { return fPhysiWorld; }
|
||||
return ConstructLine();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DetectorConstruction::DefineMaterials()
|
||||
{
|
||||
G4String name, symbol;
|
||||
@@ -285,8 +287,6 @@ void DetectorConstruction::DefineMaterials()
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
{
|
||||
// WORLD
|
||||
@@ -353,9 +353,9 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
PosZ = PosZ + 1.3 * micrometer * std::sin(fLineAngle);
|
||||
|
||||
G4RotationMatrix *rot = new G4RotationMatrix();
|
||||
rot->rotateX(0*deg);
|
||||
// rot->rotateX(0*deg);
|
||||
rot->rotateY(10*deg);
|
||||
rot->rotateZ(0*deg);
|
||||
// rot->rotateZ(0*deg);
|
||||
|
||||
fSolidBoite = new G4Box("Boite", 4*cm, 4*cm, 6958.3*mm/2);
|
||||
|
||||
@@ -388,7 +388,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
fSolid1Gap = new G4Cons("_CollObj_gap1_", 0.*micrometer, 6*micrometer,
|
||||
0.*micrometer,2.5*micrometer,
|
||||
3.5*micrometer,
|
||||
0, ((360*CLHEP::pi)/180));
|
||||
0, twopi);
|
||||
|
||||
fLogic1Gap = new G4LogicalVolume(fSolid1Gap, fDefaultMaterial, "_CollObj_gap1_");
|
||||
|
||||
@@ -401,7 +401,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
fSolid2Gap = new G4Cons("_CollObj_gap2_", 0.*micrometer, 15*micrometer,
|
||||
0.*micrometer,6*micrometer,
|
||||
6.5*micrometer,
|
||||
0, ((360*CLHEP::pi)/180));
|
||||
0, twopi);
|
||||
|
||||
fLogic2Gap = new G4LogicalVolume(fSolid2Gap, fDefaultMaterial, "_CollObj_gap2_");
|
||||
|
||||
@@ -414,7 +414,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
fSolid3Gap = new G4Cons("_CollObj_gap3_", 0.*micrometer, 105*micrometer,
|
||||
0.*micrometer,15*micrometer,
|
||||
25*micrometer,
|
||||
0, ((360*CLHEP::pi)/180));
|
||||
0, twopi);
|
||||
|
||||
fLogic3Gap = new G4LogicalVolume(fSolid3Gap, fDefaultMaterial, "_CollObj_gap3_");
|
||||
|
||||
@@ -439,7 +439,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
fSolid4Gap = new G4Cons("_CollDet_gap4_", 0.*micrometer, 8*micrometer,
|
||||
0.*micrometer,5*micrometer,
|
||||
7.5*micrometer,
|
||||
0, ((360*CLHEP::pi)/180));
|
||||
0, twopi);
|
||||
|
||||
fLogic4Gap = new G4LogicalVolume(fSolid4Gap, fDefaultMaterial, "_CollDet_gap4_");
|
||||
|
||||
@@ -451,7 +451,7 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
fSolid5Gap = new G4Cons("_CollDet_gap5_", 0.*micrometer, 105*micrometer,
|
||||
0.*micrometer,8*micrometer,
|
||||
27.5*micrometer,
|
||||
0, ((360*CLHEP::pi)/180));
|
||||
0, twopi);
|
||||
|
||||
fLogic5Gap = new G4LogicalVolume(fSolid5Gap, fDefaultMaterial, "_CollDet_gap5_");
|
||||
|
||||
@@ -690,13 +690,12 @@ G4VPhysicalVolume* DetectorConstruction::ConstructLine()
|
||||
return fPhysiWorld;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
if(!fField) { fField = new EMField(); }
|
||||
EMField* field = new EMField();
|
||||
G4AutoDelete::Register(field);
|
||||
|
||||
G4EqMagElectricField* fEquation = new G4EqMagElectricField(fField);
|
||||
G4EqMagElectricField* fEquation = new G4EqMagElectricField(field);
|
||||
G4MagIntegratorStepper* fStepper = new G4ClassicalRK4 (fEquation,8);
|
||||
G4FieldManager* fFieldMgr =
|
||||
G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
@@ -707,7 +706,7 @@ void DetectorConstruction::ConstructSDandField()
|
||||
|
||||
G4ChordFinder* fChordFinder = new G4ChordFinder(fIntgrDriver);
|
||||
fFieldMgr->SetChordFinder(fChordFinder);
|
||||
fFieldMgr->SetDetectorField(fField);
|
||||
fFieldMgr->SetDetectorField(field);
|
||||
|
||||
// FOLLOWING PARAMETERS TUNED FROM RAY-TRACING SIMULATIONS OF THE AIFIRA NANOBEAM LINE
|
||||
/*
|
||||
|
||||
@@ -39,14 +39,9 @@
|
||||
#include "G4Exp.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
EMField::EMField()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void EMField::GetFieldValue(const double point[4], double *Bfield ) const
|
||||
{
|
||||
// Magnetic field
|
||||
@@ -530,6 +525,4 @@ if (z>=-1400*mm && z <-200*mm)
|
||||
Bfield[5] = 0;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
@@ -39,19 +39,13 @@
|
||||
#include "RunAction.hh"
|
||||
#include "Analysis.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
EventAction::EventAction(RunAction* run)
|
||||
:fRun(run)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
EventAction::~EventAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void EventAction::BeginOfEventAction(const G4Event* evt)
|
||||
{
|
||||
G4int evtNb = evt->GetEventID();
|
||||
@@ -60,8 +54,6 @@ void EventAction::BeginOfEventAction(const G4Event* evt)
|
||||
fRun->SetDoseC(0);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void EventAction::EndOfEventAction(const G4Event* )
|
||||
{
|
||||
G4AnalysisManager* man = G4AnalysisManager::Instance();
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "StepMax.hh"
|
||||
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmStandardPhysics_option1.hh"
|
||||
#include "G4EmStandardPhysics_option2.hh"
|
||||
@@ -46,15 +45,11 @@
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
#include "G4DecayPhysics.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsList::PhysicsList() : G4VModularPhysicsList()
|
||||
{
|
||||
fMessenger = new PhysicsListMessenger(this);
|
||||
@@ -70,8 +65,6 @@ PhysicsList::PhysicsList() : G4VModularPhysicsList()
|
||||
fDecPhysicsList = new G4DecayPhysics();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsList::~PhysicsList()
|
||||
{
|
||||
delete fMessenger;
|
||||
@@ -79,15 +72,11 @@ PhysicsList::~PhysicsList()
|
||||
delete fDecPhysicsList;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::ConstructParticle()
|
||||
{
|
||||
fDecPhysicsList->ConstructParticle();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::ConstructProcess()
|
||||
{
|
||||
// transportation
|
||||
@@ -104,8 +93,6 @@ void PhysicsList::ConstructProcess()
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::AddPhysicsList(const G4String& name)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
@@ -159,8 +146,6 @@ void PhysicsList::AddPhysicsList(const G4String& name)
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsList::AddStepMax()
|
||||
{
|
||||
// Step limitation seen as a process
|
||||
@@ -178,5 +163,3 @@ void PhysicsList::AddStepMax()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -27,19 +27,14 @@
|
||||
/// \brief Implementation of the PhysicsListMessenger class
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PhysicsListMessenger.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include "PhysicsList.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
|
||||
:G4UImessenger(),fPhysicsList(pPhys),fMaxChargedStep(1*CLHEP::mm)
|
||||
{
|
||||
@@ -60,8 +55,6 @@ PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
|
||||
fStepMaxCmd->AvailableForStates(G4State_PreInit, G4State_Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PhysicsListMessenger::~PhysicsListMessenger()
|
||||
{
|
||||
delete fListCmd;
|
||||
@@ -69,8 +62,6 @@ PhysicsListMessenger::~PhysicsListMessenger()
|
||||
delete fStepMaxCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
|
||||
{
|
||||
if( command == fListCmd )
|
||||
@@ -79,4 +70,3 @@ void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
|
||||
{ fMaxChargedStep = fStepMaxCmd->GetNewDoubleValue(newValue); }
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -31,30 +31,23 @@
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
|
||||
//
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
{
|
||||
fParticleGun = new G4ParticleGun(1);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
PrimaryGeneratorAction::~PrimaryGeneratorAction()
|
||||
{
|
||||
delete fParticleGun;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
G4int numEvent;
|
||||
|
||||
@@ -31,31 +31,27 @@
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
//
|
||||
#include "RunAction.hh"
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#include "RunAction.hh"
|
||||
#include "Analysis.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
RunAction::RunAction(const DetectorConstruction* det)
|
||||
:fDetector(det)
|
||||
{
|
||||
fSaveRndm = 0;
|
||||
fDose3DDose = nullptr;
|
||||
fMapVoxels = nullptr;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
RunAction::~RunAction()
|
||||
{
|
||||
delete[] fDose3DDose;
|
||||
delete[] fMapVoxels;
|
||||
if (fDose3DDose) delete[] fDose3DDose;
|
||||
if (fMapVoxels) delete[] fMapVoxels;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void RunAction::BeginOfRunAction(const G4Run*)
|
||||
{
|
||||
// Read phantom - Singleton
|
||||
@@ -150,11 +146,8 @@ void RunAction::BeginOfRunAction(const G4Run*)
|
||||
fMapVoxels [i]=fMyCellParameterisation->GetVoxelThreeVector(i);
|
||||
fDose3DDose[i]=0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void RunAction::EndOfRunAction(const G4Run* /*aRun*/)
|
||||
{
|
||||
G4AnalysisManager* man = G4AnalysisManager::Instance();
|
||||
@@ -189,5 +182,4 @@ void RunAction::EndOfRunAction(const G4Run* /*aRun*/)
|
||||
|
||||
// Complete clean-up
|
||||
delete G4AnalysisManager::Instance();
|
||||
|
||||
}
|
||||
|
||||
@@ -24,16 +24,21 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
//
|
||||
// This example is provided by the Geant4-DNA collaboration
|
||||
// Any report or published results obtained using the Geant4-DNA software
|
||||
// shall cite the following Geant4-DNA collaboration publication:
|
||||
// Med. Phys. 37 (2010) 4692-4708
|
||||
// The Geant4-DNA web site is available at http://geant4-dna.org
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
//
|
||||
#include "StepMax.hh"
|
||||
#include "PhysicsListMessenger.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4TransportationProcessType.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
StepMax::StepMax(PhysicsListMessenger* mess)
|
||||
: G4VEmProcess("UserMaxStep", fGeneral),fMessenger(mess),
|
||||
fMaxChargedStep(DBL_MAX),isInitialised(false)
|
||||
@@ -41,20 +46,14 @@ StepMax::StepMax(PhysicsListMessenger* mess)
|
||||
SetProcessSubType(static_cast<G4int>(STEP_LIMITER));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
StepMax::~StepMax()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool StepMax::IsApplicable(const G4ParticleDefinition& part)
|
||||
{
|
||||
return (part.GetPDGCharge() != 0. && !part.IsShortLived());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void StepMax::PreparePhysicsTable(const G4ParticleDefinition&)
|
||||
{
|
||||
if(isInitialised) {
|
||||
@@ -62,8 +61,6 @@ void StepMax::PreparePhysicsTable(const G4ParticleDefinition&)
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void StepMax::BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
{
|
||||
if(!isInitialised) {
|
||||
@@ -76,13 +73,9 @@ void StepMax::BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void StepMax::InitialiseProcess(const G4ParticleDefinition*)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4double
|
||||
StepMax::PostStepGetPhysicalInteractionLength(const G4Track&,
|
||||
G4double,
|
||||
@@ -93,8 +86,6 @@ StepMax::PostStepGetPhysicalInteractionLength(const G4Track&,
|
||||
return fMaxChargedStep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&)
|
||||
{
|
||||
// do nothing
|
||||
@@ -102,5 +93,4 @@ G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&)
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -31,31 +31,23 @@
|
||||
//
|
||||
// If you use this example, please cite the following publication:
|
||||
// Rad. Prot. Dos. 133 (2009) 2-11
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
|
||||
//
|
||||
#include "SteppingAction.hh"
|
||||
#include "RunAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "Analysis.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4Electron.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
SteppingAction::SteppingAction(RunAction* run,const DetectorConstruction* det)
|
||||
:fRun(run),fDetector(det)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
SteppingAction::~SteppingAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void SteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user