Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file ActionInitialization.hh
/// \brief Definition of the ActionInitialization class
@@ -40,13 +47,16 @@ class G4VSteppingVerbose;
class ActionInitialization: public G4VUserActionInitialization
{
public:
ActionInitialization();
ActionInitialization(DetectorConstruction*);
virtual ~ActionInitialization();
virtual void BuildForMaster() const;
virtual void Build() const;
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
private:
DetectorConstruction* fDetectorConstruction;
};
#endif
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
@@ -45,25 +52,56 @@ public:
DetectorConstruction();
~DetectorConstruction();
void SetRadius(G4double);
void SetMaterial(G4String);
void SetTrackingCut(G4double);
void SetCytoThickness(G4double);
void SetCytoMaterial(G4String);
void SetNuclRadius(G4double);
void SetNuclMaterial(G4String);
void SetWorldMaterial(G4String);
virtual G4VPhysicalVolume* Construct();
inline G4double GetAbsorRadius() const
inline G4double GetCytoThickness() const
{
return fAbsorRadius;
return fCytoThickness;
}
inline G4Material* GetAbsorMaterial() const
inline G4Material* GetCytoMaterial() const
{
return fAbsorMaterial;
return fCytoMaterial;
}
inline G4double GetAbsorMass() const
inline G4double GetCytoMass() const
{
return fLogicalAbsor->GetMass();
return fLogicalCyto->GetMass();
}
inline G4double GetNuclRadius() const
{
return fNuclRadius;
}
inline G4Material* GetNuclMaterial() const
{
return fNuclMaterial;
}
inline G4double GetNuclMass() const
{
return fLogicalNucl->GetMass();
}
const G4LogicalVolume* GetNuclLogicalVolume() const
{
return fLogicalNucl;
}
const G4LogicalVolume* GetCytoLogicalVolume() const
{
return fLogicalCyto;
}
void PrintParameters() const;
@@ -74,10 +112,25 @@ private:
G4VPhysicalVolume* ConstructVolumes();
G4double fTrackingCut;
G4double fAbsorRadius;
G4Material* fAbsorMaterial;
G4VPhysicalVolume* fAbsor;
G4LogicalVolume* fLogicalAbsor;
G4double fNuclRadius;
G4Material* fNuclMaterial;
G4double fCytoThickness;
G4Material* fCytoMaterial;
G4double fWorldRadius;
G4Material* fWorldMaterial;
G4VPhysicalVolume* fNucl;
G4LogicalVolume* fLogicalNucl;
G4VPhysicalVolume* fCyto;
G4LogicalVolume* fLogicalCyto;
G4VPhysicalVolume* fWorld;
G4LogicalVolume* fLogicalWorld;
DetectorMessenger* fDetectorMessenger;
};
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/DetectorMessenger.hh
/// \brief Definition of the DetectorMessenger class
@@ -55,8 +62,11 @@ private:
G4UIdirectory* fTestemDir;
G4UIdirectory* fDetDir;
G4UIcmdWithAString* fMaterCmd;
G4UIcmdWithADoubleAndUnit* fRadiusCmd;
G4UIcmdWithAString* fMaterWorldCmd;
G4UIcmdWithAString* fMaterCytoCmd;
G4UIcmdWithAString* fMaterNuclCmd;
G4UIcmdWithADoubleAndUnit* fNuclRadiusCmd;
G4UIcmdWithADoubleAndUnit* fCytoThicknessCmd;
G4UIcmdWithADoubleAndUnit* fTrackingCutCmd;
};
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/EventAction.hh
/// \brief Definition of the EventAction class
@@ -43,13 +50,19 @@ public:
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
inline void AddEdep(G4double edep)
inline void AddCytoEdep(G4double edep)
{
fTotalEdep += edep;
fCytoEdep += edep;
}
inline void AddNuclEdep(G4double edep)
{
fNuclEdep += edep;
}
private:
G4double fTotalEdep;
G4double fCytoEdep;
G4double fNuclEdep;
};
#endif
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/HistoManager.hh
/// \brief Definition of the HistoManager class
@@ -0,0 +1,42 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Derived from
// https://twiki.cern.ch/twiki/bin/view/Geant4/QuickMigrationGuideForGeant4V10
// Courtesy of A. Dotti
//
// 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue2/include/MyFile.hh
/// \brief Declaration of the MyFile class
//#define MYFILE 1
#undef MYFILE
@@ -0,0 +1,55 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Derived from
// https://twiki.cern.ch/twiki/bin/view/Geant4/QuickMigrationGuideForGeant4V10
// Courtesy of A. Dotti
//
// 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue2/include/MyFileReader.hh
/// \brief Declaration of the MyFileReader class
#include <list>
#include <fstream>
#include "G4String.hh"
class MyFileReader
{
public:
MyFileReader();
~MyFileReader();
G4double GetAnEvent();
private:
std::ifstream inputFile;
std::list<G4double> evList;
};
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Derived from
// https://twiki.cern.ch/twiki/bin/view/Geant4/QuickMigrationGuideForGeant4V10
// Courtesy of A. Dotti
//
// 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue2/include/MyPrimaryGeneratorActionFromFile.hh
/// \brief Declaration of the MyPrimaryGeneratorActionFromFile class
#include "G4VUserPrimaryGeneratorAction.hh"
#include "G4ParticleGun.hh"
#include "globals.hh"
#include "G4VStateDependent.hh"
class MyFileReader;
class DetectorConstruction;
class MyPrimaryGeneratorActionFromFile
: public G4VUserPrimaryGeneratorAction,
public G4VStateDependent
{
public:
MyPrimaryGeneratorActionFromFile();
virtual ~MyPrimaryGeneratorActionFromFile();
virtual G4bool Notify(G4ApplicationState requestedState);
virtual void GeneratePrimaries(G4Event* anEvent);
G4ParticleGun* GetParticleGun() const
{
return fParticleGun;
}
private:
static MyFileReader* fileReader;
G4ParticleGun* fParticleGun;
const DetectorConstruction* fDetector;
};
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/PhysicsList.hh
/// \brief Definition of the PhysicsList class
@@ -50,6 +57,10 @@ class PhysicsList: public G4VModularPhysicsList
void AddTrackingCut();
protected:
virtual void SetCuts();
private:
G4String fEmName;
G4VPhysicsConstructor* fEmPhysicsList;
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/PhysicsListMessenger.hh
/// \brief Definition of the PhysicsListMessenger class
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/PrimaryGeneratorAction.hh
/// \brief Definition of the PrimaryGeneratorAction class
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/Run.hh
/// \brief Definition of the Run class
@@ -33,7 +40,6 @@
#include "G4Run.hh"
class DetectorConstruction;
class G4ParticleDefinition;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -50,8 +56,11 @@ class Run : public G4Run
void AddProjRange (G4double x);
void AddStepSize (G4int nb, G4double st);
void AddEdep (G4double e);
G4double GetEdep() const {return fEdeposit;};
void AddCytoEdep (G4double e);
G4double GetCytoEdep() const {return fCytoEdeposit;};
void AddNuclEdep (G4double e);
G4double GetNuclEdep() const {return fNuclEdeposit;};
virtual void Merge(const G4Run*);
@@ -63,7 +72,8 @@ class Run : public G4Run
G4ParticleDefinition* fParticle;
G4double fEkin;
G4double fEdeposit, fEdeposit2;
G4double fCytoEdeposit, fCytoEdeposit2;
G4double fNuclEdeposit, fNuclEdeposit2;
G4double fTrackLen, fTrackLen2;
G4double fProjRange, fProjRange2;
G4int fNbOfSteps, fNbOfSteps2;
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/RunAction.hh
/// \brief Definition of the RunAction class
@@ -34,7 +41,6 @@
class Run;
class DetectorConstruction;
class PrimaryGeneratorAction;
class HistoManager;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/SteppingAction.hh
/// \brief Definition of the SteppingAction class
@@ -32,19 +39,21 @@
#include "G4UserSteppingAction.hh"
class EventAction;
class DetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class SteppingAction : public G4UserSteppingAction
{
public:
SteppingAction(EventAction*);
SteppingAction(EventAction*, DetectorConstruction*);
~SteppingAction();
virtual void UserSteppingAction(const G4Step*);
private:
EventAction* fEventAction;
DetectorConstruction* fDetectorConstruction;
};
#endif
@@ -23,6 +23,13 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/SteppingVerbose.hh
/// \brief Definition of the SteppingVerbose class
@@ -23,29 +23,55 @@
// * 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 publications:
// Med. Phys. 37 (2010) 4692-4708
// Phys. Med. 31 (2015) 861-874
// The Geant4-DNA web site is available at http://geant4-dna.org
//
/// \file medical/dna/svalue/include/TrackingAction.hh
/// \brief Definition of the TrackingAction class
#include "MyFile.hh"
#ifndef TrackingAction_h
#define TrackingAction_h 1
#include "G4UserTrackingAction.hh"
#include "globals.hh"
class PrimaryGeneratorAction;
#ifdef MYFILE
class MyPrimaryGeneratorActionFromFile;
#else
class PrimaryGeneratorAction;
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class TrackingAction : public G4UserTrackingAction {
public:
TrackingAction(PrimaryGeneratorAction*);
#ifdef MYFILE
TrackingAction(MyPrimaryGeneratorActionFromFile*);
#else
TrackingAction(PrimaryGeneratorAction*);
#endif
~TrackingAction() {};
virtual void PreUserTrackingAction(const G4Track*);
virtual void PostUserTrackingAction(const G4Track*);
private:
PrimaryGeneratorAction* fPrimary;
#ifdef MYFILE
MyPrimaryGeneratorActionFromFile* fPrimary;
#else
PrimaryGeneratorAction* fPrimary;
#endif
};
#endif