Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -25,37 +25,33 @@
//
// $Id$
//
/// \file ExG4DetectorConstruction02.hh
/// \brief Definition of the ExG4DetectorConstruction02 class
/// \file DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
#ifndef ExG4DetectorConstruction02_h
#define ExG4DetectorConstruction02_h 1
#ifndef DetectorConstruction_h
#define DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "ExG4DetectorConstruction02Messenger.hh"
#include "G4ThreeVector.hh"
#include "CLHEP/Units/SystemOfUnits.h"
class G4LogicalVolume;
class G4Material;
class DetectorMessenger;
class G4GenericMessenger;
/// Simple detector construction with a box volume placed in a world
class ExG4DetectorConstruction02 : public G4VUserDetectorConstruction
class DetectorConstruction : public G4VUserDetectorConstruction
{
public:
ExG4DetectorConstruction02(
DetectorConstruction(
const G4String& boxMaterialName = "G4_AIR",
G4double boxHx = 40*CLHEP::cm,
G4double boxHy = 40*CLHEP::cm,
G4double boxHz = 40*CLHEP::cm,
const G4String& worldMaterialName = "G4_AIR",
G4double worldSizeFactor = 1.25);
~ExG4DetectorConstruction02();
~DetectorConstruction();
public:
// methods from base class
@@ -64,18 +60,19 @@ class ExG4DetectorConstruction02 : public G4VUserDetectorConstruction
// set methods
void SetBoxMaterial(const G4String& materialName);
void SetWorldMaterial(const G4String& materialName);
void SetBoxDimensions(G4double hx, G4double hy, G4double hz);
void SetBoxDimensions(G4ThreeVector dimensions);
void SetWorldSizeFactor(G4double factor);
private:
ExG4DetectorConstruction02Messenger fMessenger;
void DefineCommands();
G4String fBoxMaterialName;
G4String fWorldMaterialName;
G4ThreeVector fBoxDimensions;
G4double fWorldSizeFactor;
G4LogicalVolume* fBoxVolume;
G4LogicalVolume* fWorldVolume;
G4GenericMessenger* fMessenger;
G4String fBoxMaterialName;
G4String fWorldMaterialName;
G4ThreeVector fBoxDimensions;
G4double fWorldSizeFactor;
G4LogicalVolume* fBoxVolume;
G4LogicalVolume* fWorldVolume;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -25,35 +25,31 @@
//
// $Id$
//
/// \file ExG4DetectorConstruction01.hh
/// \brief Definition of the ExG4DetectorConstruction01 class
/// \file DetectorConstruction0.hh
/// \brief Definition of the DetectorConstruction0 class
#ifndef ExG4DetectorConstruction01_h
#define ExG4DetectorConstruction01_h 1
#ifndef DetectorConstruction0_h
#define DetectorConstruction0_h 1
#include "G4VUserDetectorConstruction.hh"
#include "ExG4DetectorConstruction01Messenger.hh"
#include "G4ThreeVector.hh"
#include "CLHEP/Units/SystemOfUnits.h"
class G4LogicalVolume;
class G4Material;
class DetectorMessenger;
class G4GenericMessenger;
/// Simple detector construction with only a world volume
class ExG4DetectorConstruction01 : public G4VUserDetectorConstruction
class DetectorConstruction0 : public G4VUserDetectorConstruction
{
public:
ExG4DetectorConstruction01(
DetectorConstruction0(
const G4String& materialName = "G4_AIR",
G4double hx = 50*CLHEP::cm,
G4double hy = 50*CLHEP::cm,
G4double hz = 50*CLHEP::cm);
~ExG4DetectorConstruction01();
~DetectorConstruction0();
public:
// methods from base class
@@ -61,14 +57,15 @@ class ExG4DetectorConstruction01 : public G4VUserDetectorConstruction
// set methods
void SetMaterial(const G4String& materialName);
void SetDimensions(G4double hx, G4double hy, G4double hz);
void SetDimensions(G4ThreeVector dimensions);
private:
ExG4DetectorConstruction01Messenger fMessenger;
void DefineCommands();
G4String fMaterialName;
G4ThreeVector fDimensions;
G4LogicalVolume* fWorldVolume;
G4GenericMessenger* fMessenger;
G4String fMaterialName;
G4ThreeVector fDimensions;
G4LogicalVolume* fWorldVolume;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,70 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id: ExG4DetectorConstruction01Messenger.hh 85714 2014-11-04 14:30:40Z ihrivnac $
//
/// \file ExG4DetectorConstruction01Messenger.hh
/// \brief Definition of the ExG4DetectorConstruction01Messenger class
#ifndef ExG4DetectorConstruction01Messenger_h
#define ExG4DetectorConstruction01Messenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class ExG4DetectorConstruction01;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWith3VectorAndUnit;
class G4UIcmdWithADouble;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
/// Messenger class that defines commands for ExG4DetectorConstruction01.
///
/// It implements commands:
/// - /ExG4/det/setMaterialName name
/// - /ExG4/det/setDimensions hx hy hz unit
class ExG4DetectorConstruction01Messenger: public G4UImessenger
{
public:
ExG4DetectorConstruction01Messenger(ExG4DetectorConstruction01* );
virtual ~ExG4DetectorConstruction01Messenger();
virtual void SetNewValue(G4UIcommand* command, G4String newValue);
private:
ExG4DetectorConstruction01* fDetectorConstruction;
G4UIdirectory* fTopDirectory;
G4UIdirectory* fDirectory;
G4UIcmdWithAString* fSetMaterialCmd;
G4UIcmdWith3VectorAndUnit* fSetDimensionsCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,74 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id: ExG4DetectorConstruction02Messenger.hh 85714 2014-11-04 14:30:40Z ihrivnac $
//
/// \file ExG4DetectorConstruction02Messenger.hh
/// \brief Definition of the ExG4DetectorConstruction02Messenger class
#ifndef ExG4DetectorConstruction02Messenger_h
#define ExG4DetectorConstruction02Messenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class ExG4DetectorConstruction02;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWith3VectorAndUnit;
class G4UIcmdWithADouble;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
/// Messenger class that defines commands for ExG4DetectorConstruction02.
///
/// It implements commands:
/// - /ExG4/det/setBoxMaterialName name
/// - /ExG4/det/setWorldMaterialName name
/// - /ExG4/det/setBoxDimensions hx hy hz unit
/// - /ExG4/det/setWorldSizeFactor value
class ExG4DetectorConstruction02Messenger: public G4UImessenger
{
public:
ExG4DetectorConstruction02Messenger(ExG4DetectorConstruction02* );
virtual ~ExG4DetectorConstruction02Messenger();
virtual void SetNewValue(G4UIcommand* command, G4String newValue);
private:
ExG4DetectorConstruction02* fDetectorConstruction;
G4UIdirectory* fTopDirectory;
G4UIdirectory* fDirectory;
G4UIcmdWithAString* fSetBoxMaterialCmd;
G4UIcmdWithAString* fSetWorldMaterialCmd;
G4UIcmdWith3VectorAndUnit* fSetBoxDimensionsCmd;
G4UIcmdWithADouble* fSetWorldSizeFactorCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,82 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id$
//
/// \file ExG4EventAction01.hh
/// \brief Definition of the ExG4EventAction01 class
#ifndef ExG4EventAction01_h
#define ExG4EventAction01_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
#include "ExG4EventAction01Messenger.hh"
/// Event action class
///
/// It provides:
/// - setting verbose level and event modulo pronting
/// - option to save random number status at the end of event
class ExG4EventAction01 : public G4UserEventAction
{
public:
ExG4EventAction01();
virtual ~ExG4EventAction01();
public:
// methods from base class
virtual void BeginOfEventAction(const G4Event* event);
virtual void EndOfEventAction(const G4Event* event);
// set methods
void SetVerboseLevel(G4int level);
void SetSaveRndm(G4bool value);
void SetDrawFlag(G4String value);
private:
// static data members (constants)
static const G4int fgkDefaultVerboseLevel;
static const G4int fgkDefaultPrintModulo;
// data members
ExG4EventAction01Messenger fMessenger;
G4int fVerboseLevel;
G4bool fSaveRndm;
};
// inline functions
inline void ExG4EventAction01::SetVerboseLevel(G4int level) {
fVerboseLevel = level;
}
inline void ExG4EventAction01::SetSaveRndm(G4bool value) {
fSaveRndm = value;
}
#endif
@@ -1,66 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id$
//
/// \file ExG4EventAction01Messenger.hh
/// \brief Definition of the ExG4EventAction01Messenger class
#ifndef ExG4EventAction01Messenger_h
#define ExG4EventAction01Messenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class ExG4EventAction01;
class G4UIdirectory;
class G4UIcmdWithAnInteger;
class G4UIcmdWithABool;
/// Messenger class that defines commands for ExG4EventAction01
///
/// It implements commands:
/// - /ExG4/event/verboseLevel level
/// - /ExG4/event/printModulo modulo
/// - /ExG4/event/saveRndm true|false
class ExG4EventAction01Messenger: public G4UImessenger
{
public:
ExG4EventAction01Messenger(ExG4EventAction01* eventAction);
~ExG4EventAction01Messenger();
virtual void SetNewValue(G4UIcommand* command, G4String newValue);
private:
// data members
ExG4EventAction01* fEventAction;
G4UIdirectory* fTopDirectory;
G4UIdirectory* fDirectory;
G4UIcmdWithAnInteger* fSetVerboseLevelCmd;
G4UIcmdWithABool* fSetSaveRndmCmd;
};
#endif //ExG4EventAction01Messenger_h
@@ -1,101 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id$
//
/// \file ExG4RunAction01.hh
/// \brief Definition of the ExG4RunAction01 class
#ifndef ExG4RunAction01_h
#define ExG4RunAction01_h 1
#include "ExG4RunAction01Messenger.hh"
#include "G4UserRunAction.hh"
#include "globals.hh"
class G4Run;
/// Run action class
///
/// It provides:
/// - setting verbose level
/// - option to save random number status at begin and end of run
/// - option to read random number from a file at begin of run
/// - option for automatic (time-based) random seeds for each run
class ExG4RunAction01 : public G4UserRunAction
{
public:
ExG4RunAction01();
~ExG4RunAction01();
public:
// methods
virtual void BeginOfRunAction(const G4Run* run);
virtual void EndOfRunAction(const G4Run* run);
// set methods
void SetRndmFileName(const G4String& fileName);
void SetVerboseLevel(G4int level);
void SetSaveRndm(G4bool value);
void SetReadRndm(G4bool value);
void SetAutoSeed(G4bool value);
private:
// static data members
static const G4String fgkDefaultRndmFileName;
// data members
ExG4RunAction01Messenger fMessenger;
G4String fRndmFileName;
G4int fVerboseLevel;
G4bool fSaveRndm;
G4bool fReadRndm;
G4bool fAutoSeed;
};
// inline functions
inline void ExG4RunAction01::SetVerboseLevel(G4int level) {
fVerboseLevel = level;
}
inline void ExG4RunAction01::SetRndmFileName(const G4String& fileName) {
fRndmFileName = fileName;
}
inline void ExG4RunAction01::SetSaveRndm(G4bool value) {
fSaveRndm = value;
}
inline void ExG4RunAction01::SetReadRndm(G4bool value) {
fReadRndm = value;
}
inline void ExG4RunAction01::SetAutoSeed(G4bool value) {
fAutoSeed = value;
}
#endif
@@ -1,75 +0,0 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// $Id$
//
/// \file ExG4RunAction01Messenger.hh
/// \brief Definition of the ExG4RunAction01Messenger class
#ifndef ExG4RunAction01Messenger_h
#define ExG4RunAction01Messenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
#include "G4ios.hh"
class ExG4RunAction01;
class G4UIdirectory;
class G4UIcmdWithABool;
class G4UIcmdWithAnInteger;
class G4UIcmdWithAString;
/// Messenger class that defines commands for ExG4RunAction01
///
/// It implements commands:
/// - /ExG4/run/verboseLevel level
/// - /ExG4/run/saveRndm true|false
/// - /ExG4/run/readRndm true|false
/// - /ExG4/run/rndmFileName fileName
/// - /ExG4/run/autoSeed true|false
class ExG4RunAction01Messenger: public G4UImessenger
{
public:
ExG4RunAction01Messenger(ExG4RunAction01* );
~ExG4RunAction01Messenger();
virtual void SetNewValue(G4UIcommand* command, G4String newValue);
private:
ExG4RunAction01* fRunAction;
G4UIdirectory* fTopDirectory;
G4UIdirectory* fDirectory;
G4UIcmdWithAnInteger* fSetVerboseLevelCmd;
G4UIcmdWithABool* fSetSaveRndmCmd;
G4UIcmdWithABool* fSetReadRndmCmd;
G4UIcmdWithAString* fSetRndmFileNameCmd;
G4UIcmdWithABool* fSetAutoSeedCmd;
};
#endif
@@ -25,21 +25,21 @@
//
// $Id$
//
/// \file ExG4PhysicsList00.hh
/// \brief Definition of the ExG4PhysicsList00 class
/// \file GeantinoPhysicsList.hh
/// \brief Definition of the GeantinoPhysicsList class
#ifndef ExG4PhysicsList00_h
#define ExG4PhysicsList00_h 1
#ifndef GeantinoPhysicsList_h
#define GeantinoPhysicsList_h 1
#include "G4VUserPhysicsList.hh"
/// Physics list with geantino and charged geantino only
class ExG4PhysicsList00: public G4VUserPhysicsList
class GeantinoPhysicsList: public G4VUserPhysicsList
{
public:
ExG4PhysicsList00();
~ExG4PhysicsList00();
GeantinoPhysicsList();
~GeantinoPhysicsList();
protected:
// Construct particle and physics process
@@ -25,15 +25,12 @@
//
// $Id$
//
/// \file ExG4PrimaryGeneratorAction02.hh
/// \brief Definition of the ExG4PrimaryGeneratorAction02 class
/// \file GpsPrimaryGeneratorAction.hh
/// \brief Definition of the GpsPrimaryGeneratorActionclass
//
#ifndef ExG4PrimaryGeneratorAction02_h
#define ExG4PrimaryGeneratorAction02_h 1
/// \file ExG4PrimaryGeneratorAction02.hh
/// \brief Definition of the ExG4PrimaryGeneratorAction02 class
#ifndef GpsPrimaryGeneratorAction_h
#define GpsPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
@@ -46,11 +43,11 @@ class G4Event;
///
/// \author I. Hrivnacova; IPN Orsay
class ExG4PrimaryGeneratorAction02 : public G4VUserPrimaryGeneratorAction
class GpsPrimaryGeneratorAction: public G4VUserPrimaryGeneratorAction
{
public:
ExG4PrimaryGeneratorAction02();
~ExG4PrimaryGeneratorAction02();
GpsPrimaryGeneratorAction();
~GpsPrimaryGeneratorAction();
// methods
virtual void GeneratePrimaries(G4Event*);
@@ -61,7 +58,7 @@ class ExG4PrimaryGeneratorAction02 : public G4VUserPrimaryGeneratorAction
static const G4double fgkDefaultEnergy;
// data members
G4GeneralParticleSource* fGeneralParticleSource; //pointer a to G4 service class
G4GeneralParticleSource* fGeneralParticleSource;
};
#endif
@@ -25,11 +25,11 @@
//
// $Id$
//
/// \file ExG4PrimaryGeneratorAction01.hh
/// \brief Definition of the ExG4PrimaryGeneratorAction01 class
/// \file GunPrimaryGeneratorAction.hh
/// \brief Definition of the GunPrimaryGeneratorAction class
#ifndef ExG4PrimaryGeneratorAction01_h
#define ExG4PrimaryGeneratorAction01_h 1
#ifndef GunPrimaryGeneratorAction_h
#define GunPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "G4ThreeVector.hh"
@@ -45,23 +45,22 @@ class G4Event;
///
/// \author I. Hrivnacova; IPN Orsay
class ExG4PrimaryGeneratorAction01 : public G4VUserPrimaryGeneratorAction
class GunPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
ExG4PrimaryGeneratorAction01(
GunPrimaryGeneratorAction(
const G4String& particleName = "geantino",
G4double energy = 1.*CLHEP::MeV,
G4ThreeVector position= G4ThreeVector(0,0,0),
G4ThreeVector momentumDirection = G4ThreeVector(0,0,1));
~ExG4PrimaryGeneratorAction01();
~GunPrimaryGeneratorAction();
// methods
virtual void GeneratePrimaries(G4Event*);
private:
// data members
G4ParticleGun* fParticleGun; //pointer a to G4 service class
G4ParticleGun* fParticleGun;
};
#endif