Import Geant4 8.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:44:26 +02:00
parent 8a51e0bc40
commit 216a75eeb1
8717 changed files with 360418 additions and 141343 deletions
@@ -1,221 +0,0 @@
*************************************************************
Geant4 version Name: geant4-07-01-ref-01 (30-June-2005)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
*************************************************************
***** Table : Nb of materials = 14 *****
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
Material: H2liquid density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.923 m
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Water H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm
---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: NaI density: 3.670 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.586 cm
---> Element: Sodium (Na) Z = 11.0 N = 23.0 A = 22.99 g/mole fractionMass: 15.34 % Abundance 50.00 %
---> Element: Iodine (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 84.66 % Abundance 50.00 %
Material: Iodine density: 4.930 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.720 cm
---> Element: Iodine (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 %
---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 %
---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 %
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm
---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm
---> Element: Uranium ( ) Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 %
Visualization Manager instantiating...
Visualization Manager initialising...
Registering graphics systems...
You have successfully chosen to use the following graphics systems.
Current available graphics systems are:
ASCIITree (ATree)
DAWNFILE (DAWNFILE)
GAGTree (GAGTree)
G4HepRep (HepRepXML)
G4HepRepFile (HepRepFile)
RayTracer (RayTracer)
VRML1FILE (VRML1FILE)
VRML2FILE (VRML2FILE)
/run/verbose 2
#
/testem/det/setMat Water
/testem/det/setSize 100 m
#
/run/initialize
userDetector->Construct() start.
The Box is 100 m of Water
Water is registered to the default region.
physicsList->Construct() start.
physicsList->ConstructParticle() start.
physicsList->Construct() start.
physicsList->setCut() start.
#
/gun/energy 100 keV
#
/testem/event/printModulo 10000
#
/run/beamOn 100000
phot: Total cross sections from Sandia parametrisation.
compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV
Sampling according Klein-Nishina model
tables are built for gamma
Lambda tables from 100 eV to 100 GeV in 90 bins.
conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z;
sampling secondary e+e- according to the Bethe-Heitler model
tables are built for gamma
Lambda tables from 1.022 MeV to 100 GeV in 100 bins.
GammaToMuPair: gamma->mu+mu- Bethe Heitler process.
good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z.
msc: Model variant of multiple scattering for e-
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary algorithm is active with facrange= 0.199
eIoni: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
eBrem: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
eIoni: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
eBrem: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
annihil: Heilter model of formula of annihilation into 2 photons
tables are built for e+
Lambda tables from 100 eV to 100 TeV in 120 bins.
Region DefaultRegionForTheWorld
Materials : Water
Production cuts : gamma 1 mm e- 1 mm e+ 1 mm
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes recalculation needed : No
Material : Water
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
====================================================================
Start closing geometry.
G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 0 kByte
Total CPU time elapsed for geometry optimisation: 0 seconds
### Run 0 start.
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 9876, 54321
----------------------------------------
Start Run processing.
---> Begin of Event: 0
---> Begin of Event: 10000
---> Begin of Event: 20000
---> Begin of Event: 30000
---> Begin of Event: 40000
---> Begin of Event: 50000
---> Begin of Event: 60000
---> Begin of Event: 70000
---> Begin of Event: 80000
---> Begin of Event: 90000
Run terminated.
Run Summary
Number of events processed : 100000
User=46s Real=9.5e+02s Sys=63s
The run consists of 100000 gamma of 100.00 keV through 100.00 m of Water (density: 1.00 g/cm3 )
Frequency of process calls ---> compt : 98355 phot : 1645
MeanFreePath: 6.08436 cm +- 6.07180 cm massic: 6.08436 g/cm2
AttenuationCoef: 0.16436 cm^-1 massic: 0.16436 cm2/g
Mass AttenuationCoef for compt from G4EmCalculator: 0.16230 cm2/g
Mass AttenuationCoef for phot from G4EmCalculator: 0.00269 cm2/g
Sum of mass AttenuationCoef from G4EmCalculator: 0.16498 cm2/g
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1388766644, 882092427
----------------------------------------
Graphics systems deleted.
Visualization Manager deleting...
UserDetectorConstruction deleted.
UserPhysicsList deleted.
UserRunAction deleted.
UserPrimaryGenerator deleted.
G4 kernel has come to Quit state.
EventManager deleted.
UImanager deleted.
StateManager deleted.
RunManagerKernel is deleted.
RunManager is deleting.
@@ -1,2 +0,0 @@
COMMON/PROCESS/nbCall(12),sumTrak,sumTrak2
@@ -1,62 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: PhysicsList.hh,v 1.2 2004/09/29 10:37:53 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysicsList_h
#define PhysicsList_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
class G4VPhysicsConstructor;
class PhysicsListMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysicsList: public G4VModularPhysicsList
{
public:
PhysicsList();
~PhysicsList();
void ConstructParticle();
void ConstructProcess();
void AddPhysicsList(const G4String& name);
void SetCuts();
private:
G4String emName;
G4VPhysicsConstructor* emPhysicsList;
PhysicsListMessenger* messenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,122 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: PhysicsList.cc,v 1.4 2005/05/09 16:10:42 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsList.hh"
#include "PhysicsListMessenger.hh"
#include "PhysListEmStandard.hh"
#include "PhysListEmG4v52.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::PhysicsList()
: G4VModularPhysicsList()
{
defaultCutValue = 1.0*mm;
messenger = new PhysicsListMessenger(this);
// EM physics
emName = G4String("standard");
emPhysicsList = new PhysListEmStandard(emName);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::~PhysicsList()
{
delete messenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Geantino.hh"
#include "G4Gamma.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
#include "G4MuonMinus.hh"
#include "G4MuonPlus.hh"
void PhysicsList::ConstructParticle()
{
G4Geantino::GeantinoDefinition();
G4Gamma::GammaDefinition();
G4Electron::ElectronDefinition();
G4Positron::PositronDefinition();
G4MuonMinus::MuonMinusDefinition();
G4MuonPlus::MuonPlusDefinition();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::ConstructProcess()
{
AddTransportation();
emPhysicsList->ConstructProcess();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::AddPhysicsList(const G4String& name)
{
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
if (name == emName) return;
if (name == "standard") {
emName = name;
delete emPhysicsList;
emPhysicsList = new PhysListEmStandard(name);
} else if (name == "g4v52") {
emName = name;
delete emPhysicsList;
emPhysicsList = new PhysListEmG4v52(name);
} else {
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
<< " is not defined"
<< G4endl;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCuts()
{
// set cut values for gamma at first and for e- second and next for e+,
// because some processes for e+/e- need cut values for gamma
SetCutValue(defaultCutValue, "gamma");
SetCutValue(defaultCutValue, "e-");
SetCutValue(defaultCutValue, "e+");
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,65 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: PhysicsListMessenger.cc,v 1.2 2004/09/29 10:38:04 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsListMessenger.hh"
#include "PhysicsList.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
:physicsList(pPhys)
{
physDir = new G4UIdirectory("/testem/phys/");
physDir ->SetGuidance("physics list");
pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this);
pListCmd->SetGuidance("Add modular physics list");
pListCmd->SetParameterName("PList",false);
pListCmd->AvailableForStates(G4State_PreInit);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::~PhysicsListMessenger()
{
delete pListCmd;
delete physDir;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
{
if (command == pListCmd)
{physicsList->AddPhysicsList(newValue);}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,96 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: SteppingAction.cc,v 1.6 2005/05/10 15:24:27 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "SteppingAction.hh"
#include "RunAction.hh"
#include "HistoManager.hh"
#include "G4RunManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SteppingAction::SteppingAction(RunAction* RuAct, HistoManager* Hist)
:runAction(RuAct), histoManager(Hist)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SteppingAction::~SteppingAction()
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void SteppingAction::UserSteppingAction(const G4Step* aStep)
{
G4StepPoint* endPoint = aStep->GetPostStepPoint();
G4String procName = endPoint->GetProcessDefinedStep()->GetProcessName();
G4double stepLength = aStep->GetStepLength();
//count processes and sum track length
//
runAction->CountProcesses(procName);
if (procName != "Transportation") runAction->SumTrack(stepLength);
//plot final state
//
//scattered primary particle
//
G4int id = 1;
if (aStep->GetTrack()->GetTrackStatus() == fAlive) {
G4double energy = endPoint->GetKineticEnergy();
histoManager->FillHisto(id,energy);
id = 2;
G4ThreeVector direction = endPoint->GetMomentumDirection();
G4double costeta = direction.x();
histoManager->FillHisto(id,costeta);
}
//secondaries
//
G4TrackVector* secondary = fpSteppingManager->GetSecondary();
for (size_t lp=0; lp<(*secondary).size(); lp++) {
G4double charge = (*secondary)[lp]->GetDefinition()->GetPDGCharge();
if (charge != 0.) id = 3; else id = 5;
G4double energy = (*secondary)[lp]->GetKineticEnergy();
histoManager->FillHisto(id,energy);
id++;
G4ThreeVector direction = (*secondary)[lp]->GetMomentumDirection();
G4double costeta = direction.x();
histoManager->FillHisto(id,costeta);
}
// kill event after first interaction
//
G4RunManager::GetRunManager()->AbortEvent();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,322 @@
//
// ********************************************************************
// * 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: DirectAccess.cc,v 1.2 2006/06/29 16:35:25 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
// ------------------------------------------------------------
//
// To print cross sections per atom and mean free path for simple material
//
#include "G4Material.hh"
#include "G4PEEffectModel.hh"
#include "G4KleinNishinaCompton.hh"
#include "G4BetheHeitlerModel.hh"
#include "G4eeToTwoGammaModel.hh"
#include "G4MollerBhabhaModel.hh"
#include "G4eBremsstrahlungModel.hh"
#include "G4BetheBlochModel.hh"
#include "G4BraggModel.hh"
#include "G4MuBetheBlochModel.hh"
#include "G4MuBremsstrahlungModel.hh"
#include "G4MuPairProductionModel.hh"
#include "globals.hh"
#include "G4UnitsTable.hh"
#include "G4Gamma.hh"
#include "G4Positron.hh"
#include "G4Electron.hh"
#include "G4Proton.hh"
#include "G4MuonPlus.hh"
int main() {
G4UnitDefinition::BuildUnitsTable();
// define materials
//
G4double Z, A;
G4Material* material =
new G4Material("Iodine", Z=53., A=126.90*g/mole, 4.93*g/cm3);
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// initialise gamma processes (models)
//
G4ParticleDefinition* gamma = G4Gamma::Gamma();
G4VEmModel* phot = new G4PEEffectModel();
G4VEmModel* comp = new G4KleinNishinaCompton();
G4VEmModel* conv = new G4BetheHeitlerModel();
// compute CrossSection per atom and MeanFreePath
//
G4double Emin = 1.01*MeV, Emax = 2.01*MeV, dE = 100*keV;
G4cout << "\n #### Gamma : CrossSectionPerAtom and MeanFreePath for "
<< material->GetName() << G4endl;
G4cout << "\n Energy \t PhotoElec \t Compton \t Conversion \t";
G4cout << "\t PhotoElec \t Compton \t Conversion" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (phot->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
<< "\t"
<< G4BestUnit (comp->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
<< "\t"
<< G4BestUnit (conv->ComputeCrossSectionPerAtom(gamma,Energy,Z), "Surface")
<< "\t \t"
<< G4BestUnit (phot->ComputeMeanFreePath(gamma,Energy,material), "Length")
<< "\t"
<< G4BestUnit (comp->ComputeMeanFreePath(gamma,Energy,material), "Length")
<< "\t"
<< G4BestUnit (conv->ComputeMeanFreePath(gamma,Energy,material), "Length");
}
G4cout << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// initialise positron annihilation (model)
//
G4ParticleDefinition* posit = G4Positron::Positron();
G4VEmModel* anni = new G4eeToTwoGammaModel();
// compute CrossSection per atom and MeanFreePath
//
Emin = 1.01*MeV; Emax = 2.01*MeV; dE = 100*keV;
G4cout << "\n #### e+ annihilation : CrossSectionPerAtom and MeanFreePath for "
<< material->GetName() << G4endl;
G4cout << "\n Energy \t e+ annihil \t";
G4cout << "\t e+ annihil" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (anni->ComputeCrossSectionPerAtom(posit,Energy,Z), "Surface")
<< "\t \t"
<< G4BestUnit (anni->ComputeMeanFreePath(posit,Energy,material), "Length");
}
G4cout << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// initialise electron processes (models)
//
G4ParticleDefinition* elec = G4Electron::Electron();
G4VEmModel* ioni = new G4MollerBhabhaModel();
G4VEmModel* brem = new G4eBremsstrahlungModel();
// compute CrossSection per atom and MeanFreePath
//
Emin = 1.01*MeV; Emax = 101.01*MeV; dE = 10*MeV;
G4double Ecut = 100*keV;
G4cout << "\n ####electron: CrossSection, MeanFreePath and StoppingPower for "
<< material->GetName()
<< ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
G4cout << "\n Energy \t ionization \t bremsstra \t";
G4cout << "\t ionization \t bremsstra \t";
G4cout << "\t ionization \t bremsstra" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (ioni->ComputeCrossSectionPerAtom(elec,Energy,Z,A,Ecut),
"Surface")
<< "\t"
<< G4BestUnit (brem->ComputeCrossSectionPerAtom(elec,Energy,Z,A,Ecut),
"Surface")
<< "\t \t"
<< G4BestUnit (ioni->ComputeMeanFreePath(elec,Energy,material,Ecut),
"Length")
<< "\t"
<< G4BestUnit (brem->ComputeMeanFreePath(elec,Energy,material,Ecut),
"Length")
<< "\t \t"
<< G4BestUnit (ioni->ComputeDEDXPerVolume(material,elec,Energy,Ecut),
"Energy/Length")
<< "\t"
<< G4BestUnit (brem->ComputeDEDXPerVolume(material,elec,Energy,Ecut),
"Energy/Length");
}
G4cout << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// initialise proton processes (models)
//
G4ParticleDefinition* prot = G4Proton::Proton();
ioni = new G4BetheBlochModel(prot);
// compute CrossSection per atom and MeanFreePath
//
Emin = 1.01*MeV; Emax = 102.01*MeV; dE = 10*MeV;
Ecut = 100*keV;
G4cout << "\n #### proton : CrossSection, MeanFreePath and StoppingPower for "
<< material->GetName()
<< ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
G4cout << "\n Energy \t ionization \t";
G4cout << "\t ionization \t";
G4cout << "\t ionization" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (ioni->ComputeCrossSectionPerAtom(prot,Energy,Z,A,Ecut),
"Surface")
<< "\t \t"
<< G4BestUnit (ioni->ComputeMeanFreePath(prot,Energy,material,Ecut),
"Length")
<< "\t \t"
<< G4BestUnit (ioni->ComputeDEDXPerVolume(material,prot,Energy,Ecut),
"Energy/Length");
}
G4cout << G4endl;
// low energy : Bragg Model
ioni = new G4BraggModel(prot);
// compute CrossSection per atom and MeanFreePath
//
Emin = 1.1*keV; Emax = 2.01*MeV; dE = 300*keV;
Ecut = 10*keV;
G4cout << "\n #### proton : low energy model (Bragg) "
<< ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
G4cout << "\n Energy \t ionization \t";
G4cout << "\t ionization \t";
G4cout << "\t ionization" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (ioni->ComputeCrossSectionPerAtom(prot,Energy,Z,A,Ecut),
"Surface")
<< "\t \t"
<< G4BestUnit (ioni->ComputeMeanFreePath(prot,Energy,material,Ecut),
"Length")
<< "\t \t"
<< G4BestUnit (ioni->ComputeDEDXPerVolume(material,prot,Energy,Ecut),
"Energy/Length");
}
G4cout << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// initialise muon processes (models)
//
G4ParticleDefinition* muon = G4MuonPlus::MuonPlus();
ioni = new G4MuBetheBlochModel(muon);
brem = new G4MuBremsstrahlungModel(muon);
G4VEmModel* pair = new G4MuPairProductionModel(muon);
// compute CrossSection per atom and MeanFreePath
//
Emin = 1.01*GeV; Emax = 101.01*GeV; dE = 10*GeV;
Ecut = 10*MeV;
G4cout << "\n ####muon: CrossSection and MeanFreePath for "
<< material->GetName()
<< ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
G4cout << "\n Energy \t ionization \t bremsstra \t pair_prod \t";
G4cout << "\t ionization \t bremsstra \t pair_prod" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (ioni->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
"Surface")
<< "\t"
<< G4BestUnit (brem->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
"Surface")
<< "\t"
<< G4BestUnit (pair->ComputeCrossSectionPerAtom(muon,Energy,Z,A,Ecut),
"Surface")
<< "\t \t"
<< G4BestUnit (ioni->ComputeMeanFreePath(muon,Energy,material,Ecut),
"Length")
<< "\t"
<< G4BestUnit (brem->ComputeMeanFreePath(muon,Energy,material,Ecut),
"Length")
<< "\t"
<< G4BestUnit (pair->ComputeMeanFreePath(muon,Energy,material,Ecut),
"Length");
}
G4cout << G4endl;
G4cout << "\n ####muon: StoppingPower for "
<< material->GetName()
<< ";\tEnergy cut = " << G4BestUnit (Ecut, "Energy") << G4endl;
G4cout << "\n Energy \t ionization \t bremsstra \t pair_prod \t" << G4endl;
for (G4double Energy = Emin; Energy <= Emax; Energy += dE) {
G4cout << "\n " << G4BestUnit (Energy, "Energy")
<< "\t"
<< G4BestUnit (ioni->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
"Energy/Length")
<< "\t"
<< G4BestUnit (brem->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
"Energy/Length")
<< "\t"
<< G4BestUnit (pair->ComputeDEDXPerVolume(material,muon,Energy,Ecut),
"Energy/Length");
}
G4cout << G4endl;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
return EXIT_SUCCESS;
}
@@ -0,0 +1,20 @@
# $Id: GNUmakefile,v 1.1 2006/03/18 11:02:14 maire Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
### name := DirectAccess
name := TestEm0
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../../../..
endif
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/architecture.gmk
include $(G4INSTALL)/config/binmake.gmk
@@ -0,0 +1,31 @@
$Id: History,v 1.7 2006/06/19 10:32:27 maire Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
TestEm1 History file
--------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
17-06-06 mma (testem0-V08-00-04)
- compute e- critical energy and Moliere radius
19-05-06 mma (testem0-V08-00-03)
- modify binning for CSDA range table
18-04-06 V.Ivant (testem0-V08-00-02)
- fix compilation warning, improve cout
05-04-06 mma (testem0-V08-00-01)
- add transport mean free path (for multiple scattering)
21-03-06 mma (testem0-V08-00-00)
- creation
@@ -0,0 +1,42 @@
$Id: README,v 1.2 2006/03/20 11:54:02 maire Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
TestEm0
-------
This program is not a simulation. It prints the cross sections and stopping
power used by the standard electromagnetic package, via G4EmCalculator
which extracts these data from the PhysicsTables.
The program can be used in batch or interactively.
- compile and link to generate an executable
% cd geant4/examples/extended/electromagnetic/TestEm0
% gmake
- execute TestEm0 in 'batch' mode from macro files :
% TestEm0 TestEm1.in
- Interactively, a typical sequence will be :
% TestEm0
....
Idle> /testem/det/setMat Silicon
Idle> /testem/phys/setCuts 100 um
Idle> /gun/particle e-
Idle> /gun/energy 10 MeV
Idle> /run/beamOn
The last command triggers BuildPhysicsTable() and executes the program.
DirectAccess
------------
DirectAccess is a small batch program which shows how to compute the same
basic data directly from the processes (indeed the models).
To run it, change name in the first line on GNUmakefile before to compile.
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * 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: TestEm0.cc,v 1.2 2006/06/29 16:35:27 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4UIterminal.hh"
#include "G4UItcsh.hh"
#include "DetectorConstruction.hh"
#include "PhysicsList.hh"
#include "PrimaryGeneratorAction.hh"
#include "RunAction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
int main(int argc,char** argv) {
// Construct the default run manager
G4RunManager * runManager = new G4RunManager;
// set mandatory initialization classes
DetectorConstruction* det;
PrimaryGeneratorAction* prim;
runManager->SetUserInitialization(det = new DetectorConstruction);
runManager->SetUserInitialization(new PhysicsList);
runManager->SetUserAction(prim = new PrimaryGeneratorAction(det));
// set user action classes
runManager->SetUserAction(new RunAction(det,prim));
//Initialize G4 kernel
runManager->Initialize();
if (argc==1) // Define UI terminal for interactive mode
{
G4UIsession * session = 0;
#ifdef G4UI_USE_TCSH
session = new G4UIterminal(new G4UItcsh);
#else
session = new G4UIterminal();
#endif
session->SessionStart();
delete session;
}
else // Batch mode
{
G4String command = "/control/execute ";
G4String fileName = argv[1];
G4UImanager::GetUIpointer()->ApplyCommand(command+fileName);
}
// job termination
//
delete runManager;
return 0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,18 @@
# $Id: TestEm0.in,v 1.1 2006/03/18 11:02:14 maire Exp $
#
# Macro file for "TestEm0.cc"
#
/control/verbose 0
/run/verbose 0
#
/testem/det/setMat Germanium
/testem/phys/setCuts 1 mm
/gun/particle gamma
/gun/energy 300 keV
/run/beamOn
#
/testem/det/setMat Water
/testem/phys/setCuts 100 um
/gun/particle e-
/gun/energy 10 MeV
/run/beamOn
@@ -0,0 +1,112 @@
*************************************************************
Geant4 version Name: global-V08-00-04 (30-June-2006)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
*************************************************************
***** Table : Nb of materials = 14 *****
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole ElmMassFraction: 70.00 % ElmAbundance 72.71 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 30.00 % ElmAbundance 27.29 %
Material: H2liquid density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.923 m
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 11.21 % ElmAbundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 88.79 % ElmAbundance 33.33 %
Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 15.41 % ElmAbundance 63.16 %
---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole ElmMassFraction: 17.48 % ElmAbundance 15.79 %
---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole ElmMassFraction: 67.10 % ElmAbundance 21.05 %
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm
---> Element: Copper ( ) Z = 29.0 N = 63.5 A = 63.55 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm
---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Silver density: 10.500 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.543 mm
---> Element: Silver ( ) Z = 47.0 N = 107.9 A = 107.87 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm
---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm
---> Element: Uranium ( ) Z = 92.0 N = 238.0 A = 238.03 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes recalculation needed : No
Material : Germanium
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
Energy thresholds : gamma 20.6936 keV e- 863.242 keV e+ 821.764 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
====================================================================
gamma (300 keV) in Germanium (density: 5.323 g/cm3 ; radiation length: 2.30121 cm )
processes : phot compt conv total
cross section per atom : 1.71686 barn 11.0976 barn 0 pbarn 12.8145 barn
cross section per volume : 0.075796 cm^-1 0.490629 cm^-1 0 cm^-1 0.566426 cm^-1
cross section per mass : 0.0142393 cm2/g 0.0921716 cm2/g 0 cm2/g 0.106411 cm2/g
mean free path : 13.1933 cm 2.0382 cm 5.82593e+288 pc 1.76546 cm
(g/cm2) : 70.228 g/cm2 10.8493 g/cm2 2.88022e+285 kg/cm2 9.39753 g/cm2
-------------------------------------------------------------
e- (10 MeV) in Water (density: 1 g/cm3 ; radiation length: 36.0925 cm )
Range cuts : gamma 100 um e- 100 um
Energy cuts : gamma 1.09571 keV e- 84.2696 keV
processes : eIoni eBrem total
cross section per volume : 1.00476 cm^-1 0.349696 cm^-1 1.35446 cm^-1
cross section per mass : 1.00476 cm2/g 0.349696 cm2/g 1.35446 cm2/g
mean free path : 9.95258 mm 2.85962 cm 7.38301 mm
(g/cm2) : 995.258 mg/cm2 2.85962 g/cm2 738.301 mg/cm2
restricted dE/dx : 1.61451 MeV/cm 21.1997 eV/cm 1.61454 MeV/cm
(MeV/g/cm2) : 1.61451 MeV*cm2/g 21.1997 eV*cm2/g 1.61454 MeV*cm2/g
range from restrict dE/dx: 6.06069 cm ( 6.06069 g/cm2 )
range from full dE/dx : 4.90255 cm ( 4.90255 g/cm2 )
transport mean free path : 27.9107 cm ( 27.9107 g/cm2 )
critical energy (Rossi) : 78.7733 MeV
Moliere radius : 0.269193 X0 = 9.71583 cm
-------------------------------------------------------------
@@ -0,0 +1,89 @@
//
// ********************************************************************
// * 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: DetectorConstruction.hh,v 1.2 2006/06/29 16:35:29 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef DetectorConstruction_h
#define DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4LogicalVolume;
class G4Material;
class DetectorMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class DetectorConstruction : public G4VUserDetectorConstruction
{
public:
DetectorConstruction();
~DetectorConstruction();
public:
G4VPhysicalVolume* Construct();
void SetMaterial (G4String);
public:
const
G4VPhysicalVolume* GetWorld() {return pBox;};
G4double GetSize() {return BoxSize;};
G4Material* GetMaterial() {return aMaterial;};
void PrintParameters();
private:
G4VPhysicalVolume* pBox;
G4double BoxSize;
G4Material* aMaterial;
DetectorMessenger* detectorMessenger;
private:
void DefineMaterials();
G4VPhysicalVolume* ConstructVolumes();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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: DetectorMessenger.hh,v 1.2 2006/06/29 16:35:31 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef DetectorMessenger_h
#define DetectorMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class DetectorConstruction;
class G4UIdirectory;
class G4UIcmdWithAString;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class DetectorMessenger: public G4UImessenger
{
public:
DetectorMessenger(DetectorConstruction* );
~DetectorMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
DetectorConstruction* Detector;
G4UIdirectory* testemDir;
G4UIdirectory* detDir;
G4UIcmdWithAString* MaterCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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: PhysListEmStandard.hh,v 1.2 2006/06/29 16:35:33 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmStandard_h
#define PhysListEmStandard_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmStandard : public G4VPhysicsConstructor
{
public:
PhysListEmStandard(const G4String& name = "standard");
~PhysListEmStandard();
public:
// This method is dummy for physics
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * 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: PhysicsList.hh,v 1.2 2006/06/29 16:35:35 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysicsList_h
#define PhysicsList_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
class PhysicsListMessenger;
class G4VPhysicsConstructor;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysicsList: public G4VModularPhysicsList
{
public:
PhysicsList();
~PhysicsList();
void ConstructParticle();
void ConstructProcess();
void AddPhysicsList(const G4String& name);
void SetCuts();
void SetCutForGamma(G4double);
void SetCutForElectron(G4double);
void SetCutForPositron(G4double);
private:
G4double cutForGamma;
G4double cutForElectron;
G4double cutForPositron;
G4double currentDefaultCut;
G4VPhysicsConstructor* emPhysicsList;
G4String emName;
PhysicsListMessenger* pMessenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysicsListMessenger.hh,v 1.2 2004/09/29 10:37:53 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
// $Id: PhysicsListMessenger.hh,v 1.2 2006/06/29 16:35:37 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -34,6 +37,7 @@
class PhysicsList;
class G4UIdirectory;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWithAString;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -49,10 +53,14 @@ class PhysicsListMessenger: public G4UImessenger
private:
PhysicsList* physicsList;
PhysicsList* pPhysicsList;
G4UIdirectory* physDir;
G4UIcmdWithAString* pListCmd;
G4UIdirectory* physDir;
G4UIcmdWithADoubleAndUnit* gammaCutCmd;
G4UIcmdWithADoubleAndUnit* electCutCmd;
G4UIcmdWithADoubleAndUnit* protoCutCmd;
G4UIcmdWithADoubleAndUnit* allCutCmd;
G4UIcmdWithAString* pListCmd;
};
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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: PrimaryGeneratorAction.hh,v 1.2 2006/06/29 16:35:40 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PrimaryGeneratorAction_h
#define PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "G4ParticleGun.hh"
#include "globals.hh"
class G4Event;
class DetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
PrimaryGeneratorAction(DetectorConstruction*);
~PrimaryGeneratorAction();
public:
void SetDefaultKinematic();
void GeneratePrimaries(G4Event*);
G4ParticleGun* GetParticleGun() {return particleGun;}
private:
G4ParticleGun* particleGun;
DetectorConstruction* Detector;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -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. *
// ********************************************************************
//
// $Id: RunAction.hh,v 1.3 2006/06/29 16:35:43 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef RunAction_h
#define RunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4Run;
class DetectorConstruction;
class PrimaryGeneratorAction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RunAction : public G4UserRunAction
{
public:
RunAction(DetectorConstruction*, PrimaryGeneratorAction*);
~RunAction();
public:
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
void GetCuts();
void CriticalEnergy();
private:
DetectorConstruction* detector;
PrimaryGeneratorAction* primary;
G4double rangeCut[3];
G4double energyCut[3];
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,191 @@
//
// ********************************************************************
// * 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: DetectorConstruction.cc,v 1.5 2006/06/29 16:35:46 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "DetectorConstruction.hh"
#include "DetectorMessenger.hh"
#include "G4Material.hh"
#include "G4Box.hh"
#include "G4LogicalVolume.hh"
#include "G4PVPlacement.hh"
#include "G4GeometryManager.hh"
#include "G4PhysicalVolumeStore.hh"
#include "G4LogicalVolumeStore.hh"
#include "G4SolidStore.hh"
#include "G4UnitsTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorConstruction::DetectorConstruction()
:pBox(0), aMaterial(0)
{
BoxSize = 1*mm;
DefineMaterials();
SetMaterial("Germanium");
detectorMessenger = new DetectorMessenger(this);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorConstruction::~DetectorConstruction()
{ delete detectorMessenger;}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4VPhysicalVolume* DetectorConstruction::Construct()
{
return ConstructVolumes();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::DefineMaterials()
{
//
// define Elements
//
G4double z,a;
G4Element* H = new G4Element("Hydrogen" ,"H" , z= 1., a= 1.01*g/mole);
G4Element* N = new G4Element("Nitrogen" ,"N" , z= 7., a= 14.01*g/mole);
G4Element* O = new G4Element("Oxygen" ,"O" , z= 8., a= 16.00*g/mole);
G4Element* Ge = new G4Element("Germanium","Ge", z=32., a= 72.59*g/mole);
G4Element* Bi = new G4Element("Bismuth" ,"Bi", z=83., a= 208.98*g/mole);
//
// define materials
//
G4double density;
G4int ncomponents, natoms;
G4double fractionmass;
G4Material* Air =
new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2);
Air->AddElement(N, fractionmass=70.*perCent);
Air->AddElement(O, fractionmass=30.*perCent);
G4Material* H2l =
new G4Material("H2liquid", density= 70.8*mg/cm3, ncomponents=1);
H2l->AddElement(H, fractionmass=1.);
G4Material* H2O =
new G4Material("Water", density= 1.000*g/cm3, ncomponents=2);
H2O->AddElement(H, natoms=2);
H2O->AddElement(O, natoms=1);
///H2O->SetChemicalFormula("H_2O");
H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV);
G4Material* BGO =
new G4Material("BGO", density= 7.10*g/cm3, ncomponents=3);
BGO->AddElement(O , natoms=12);
BGO->AddElement(Ge, natoms= 3);
BGO->AddElement(Bi, natoms= 4);
new G4Material("Aluminium" , z=13., a= 26.98*g/mole, density= 2.700*g/cm3);
new G4Material("Silicon" , z=14., a= 28.09*g/mole, density= 2.330*g/cm3);
new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3);
new G4Material("Iron" , z=26., a= 55.85*g/mole, density= 7.870*g/cm3);
new G4Material("Copper" , z=29., a= 63.55*g/mole, density= 8.960*g/cm3);
new G4Material("Germanium" , z=32., a= 72.61*g/mole, density= 5.323*g/cm3);
new G4Material("Silver" , z=47., a=107.87*g/mole, density= 10.50*g/cm3);
new G4Material("Tungsten" , z=74., a=183.85*g/mole, density= 19.30*g/cm3);
new G4Material("Lead" , z=82., a=207.19*g/mole, density= 11.35*g/cm3);
new G4Material("Uranium" , z=92., a=238.03*g/mole, density= 18.95*g/cm3);
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4VPhysicalVolume* DetectorConstruction::ConstructVolumes()
{
// Cleanup old geometry
G4GeometryManager::GetInstance()->OpenGeometry();
G4PhysicalVolumeStore::GetInstance()->Clean();
G4LogicalVolumeStore::GetInstance()->Clean();
G4SolidStore::GetInstance()->Clean();
G4Box*
sBox = new G4Box("Container", //its name
BoxSize/2,BoxSize/2,BoxSize/2); //its dimensions
G4LogicalVolume*
lBox = new G4LogicalVolume(sBox, //its shape
aMaterial, //its material
aMaterial->GetName()); //its name
pBox = new G4PVPlacement(0, //no rotation
G4ThreeVector(), //at (0,0,0)
lBox, //its logical volume
aMaterial->GetName(), //its name
0, //its mother volume
false, //no boolean operation
0); //copy number
//always return the root volume
//
return pBox;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::PrintParameters()
{
G4cout << "\n The Box is " << G4BestUnit(BoxSize,"Length")
<< " of " << aMaterial->GetName() << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4RunManager.hh"
void DetectorConstruction::SetMaterial(G4String materialChoice)
{
// search the material by its name
G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice);
if (pttoMaterial) {
aMaterial = pttoMaterial;
if (pBox) G4RunManager::GetRunManager()
->DefineWorldVolume(ConstructVolumes());
} else {
G4cout << "\n--> warning from DetectorConstruction::SetMaterial : "
<< materialChoice << " not found" << G4endl;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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: DetectorMessenger.cc,v 1.2 2006/06/29 16:35:48 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "DetectorMessenger.hh"
#include "DetectorConstruction.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
:Detector(Det)
{
testemDir = new G4UIdirectory("/testem/");
testemDir->SetGuidance("commands specific to this example");
detDir = new G4UIdirectory("/testem/det/");
detDir->SetGuidance("detector construction commands");
MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this);
MaterCmd->SetGuidance("Select material of the box.");
MaterCmd->SetParameterName("choice",false);
MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorMessenger::~DetectorMessenger()
{
delete MaterCmd;
delete detDir;
delete testemDir;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
{
if( command == MaterCmd )
{ Detector->SetMaterial(newValue);}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysListEmStandard.cc,v 1.2 2004/09/29 10:38:02 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
// $Id: PhysListEmStandard.cc,v 1.2 2006/06/29 16:35:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -30,10 +34,9 @@
#include "G4ParticleDefinition.hh"
#include "G4ProcessManager.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4ComptonScattering.hh"
#include "G4GammaConversion.hh"
#include "G4GammaConversionToMuons.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4MultipleScattering.hh"
@@ -41,6 +44,13 @@
#include "G4eBremsstrahlung.hh"
#include "G4eplusAnnihilation.hh"
#include "G4MuIonisation.hh"
#include "G4MuBremsstrahlung.hh"
#include "G4MuPairProduction.hh"
#include "G4hIonisation.hh"
#include "G4ionIonisation.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysListEmStandard::PhysListEmStandard(const G4String& name)
@@ -69,7 +79,6 @@ void PhysListEmStandard::ConstructProcess()
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
pmanager->AddDiscreteProcess(new G4ComptonScattering);
pmanager->AddDiscreteProcess(new G4GammaConversion);
pmanager->AddDiscreteProcess(new G4GammaConversionToMuons);
} else if (particleName == "e-") {
//electron
@@ -83,6 +92,25 @@ void PhysListEmStandard::ConstructProcess()
pmanager->AddProcess(new G4eIonisation, -1, 2,2);
pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3);
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
} else if( particleName == "mu+" ||
particleName == "mu-" ) {
//muon
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4MuIonisation, -1, 2,2);
pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3);
pmanager->AddProcess(new G4MuPairProduction, -1, 4,4);
} else if( particleName == "alpha" || particleName == "GenericIon" ) {
pmanager->AddProcess(new G4MultipleScattering,-1, 1,1);
pmanager->AddProcess(new G4ionIonisation, -1, 2,2);
} else if ((!particle->IsShortLived()) &&
(particle->GetPDGCharge() != 0.0) &&
(particle->GetParticleName() != "chargedgeantino")) {
//all others charged particles except geantino
pmanager->AddProcess(new G4MultipleScattering,-1,1,1);
pmanager->AddProcess(new G4hIonisation, -1,2,2);
}
}
}
@@ -0,0 +1,253 @@
//
// ********************************************************************
// * 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: PhysicsList.cc,v 1.4 2006/06/29 16:35:53 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsList.hh"
#include "PhysicsListMessenger.hh"
#include "PhysListEmStandard.hh"
#include "G4LossTableManager.hh"
#include "G4UnitsTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::PhysicsList()
: G4VModularPhysicsList()
{
G4LossTableManager::Instance();
currentDefaultCut = 1.0*mm;
cutForGamma = currentDefaultCut;
cutForElectron = currentDefaultCut;
cutForPositron = currentDefaultCut;
pMessenger = new PhysicsListMessenger(this);
SetVerboseLevel(1);
// EM physics
emName = G4String("standard");
emPhysicsList = new PhysListEmStandard(emName);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::~PhysicsList()
{
delete pMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
// Bosons
#include "G4ChargedGeantino.hh"
#include "G4Geantino.hh"
#include "G4Gamma.hh"
#include "G4OpticalPhoton.hh"
// leptons
#include "G4MuonPlus.hh"
#include "G4MuonMinus.hh"
#include "G4NeutrinoMu.hh"
#include "G4AntiNeutrinoMu.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
#include "G4NeutrinoE.hh"
#include "G4AntiNeutrinoE.hh"
// Mesons
#include "G4PionPlus.hh"
#include "G4PionMinus.hh"
#include "G4PionZero.hh"
#include "G4Eta.hh"
#include "G4EtaPrime.hh"
#include "G4KaonPlus.hh"
#include "G4KaonMinus.hh"
#include "G4KaonZero.hh"
#include "G4AntiKaonZero.hh"
#include "G4KaonZeroLong.hh"
#include "G4KaonZeroShort.hh"
// Baryons
#include "G4Proton.hh"
#include "G4AntiProton.hh"
#include "G4Neutron.hh"
#include "G4AntiNeutron.hh"
// Nuclei
#include "G4Deuteron.hh"
#include "G4Triton.hh"
#include "G4Alpha.hh"
#include "G4GenericIon.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::ConstructParticle()
{
// pseudo-particles
G4Geantino::GeantinoDefinition();
G4ChargedGeantino::ChargedGeantinoDefinition();
// gamma
G4Gamma::GammaDefinition();
// optical photon
G4OpticalPhoton::OpticalPhotonDefinition();
// leptons
G4Electron::ElectronDefinition();
G4Positron::PositronDefinition();
G4MuonPlus::MuonPlusDefinition();
G4MuonMinus::MuonMinusDefinition();
G4NeutrinoE::NeutrinoEDefinition();
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
G4NeutrinoMu::NeutrinoMuDefinition();
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
// mesons
G4PionPlus::PionPlusDefinition();
G4PionMinus::PionMinusDefinition();
G4PionZero::PionZeroDefinition();
G4Eta::EtaDefinition();
G4EtaPrime::EtaPrimeDefinition();
G4KaonPlus::KaonPlusDefinition();
G4KaonMinus::KaonMinusDefinition();
G4KaonZero::KaonZeroDefinition();
G4AntiKaonZero::AntiKaonZeroDefinition();
G4KaonZeroLong::KaonZeroLongDefinition();
G4KaonZeroShort::KaonZeroShortDefinition();
// barions
G4Proton::ProtonDefinition();
G4AntiProton::AntiProtonDefinition();
G4Neutron::NeutronDefinition();
G4AntiNeutron::AntiNeutronDefinition();
// ions
G4Deuteron::DeuteronDefinition();
G4Triton::TritonDefinition();
G4Alpha::AlphaDefinition();
G4GenericIon::GenericIonDefinition();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4EmProcessOptions.hh"
void PhysicsList::ConstructProcess()
{
// Transportation
//
AddTransportation();
// Electromagnetic physics list
//
emPhysicsList->ConstructProcess();
// Em options
//
G4EmProcessOptions emOptions;
emOptions.SetBuildCSDARange(true);
emOptions.SetMaxEnergyForCSDARange(100*TeV);
emOptions.SetDEDXBinningForCSDARange(120);
emOptions.SetVerbose(0);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::AddPhysicsList(const G4String& name)
{
if (verboseLevel>0) {
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
}
if (name == emName) return;
if (name == "standard") {
emName = name;
delete emPhysicsList;
emPhysicsList = new PhysListEmStandard(name);
} else {
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
<< " is not defined"
<< G4endl;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Gamma.hh"
#include "G4Electron.hh"
#include "G4Positron.hh"
void PhysicsList::SetCuts()
{
// set cut values for gamma at first and for e- second and next for e+,
// because some processes for e+/e- need cut values for gamma
SetCutValue(cutForGamma, "gamma");
SetCutValue(cutForElectron, "e-");
SetCutValue(cutForPositron, "e+");
DumpCutValuesTable();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCutForGamma(G4double cut)
{
cutForGamma = cut;
SetParticleCuts(cutForGamma, G4Gamma::Gamma());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCutForElectron(G4double cut)
{
cutForElectron = cut;
SetParticleCuts(cutForElectron, G4Electron::Electron());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCutForPositron(G4double cut)
{
cutForPositron = cut;
SetParticleCuts(cutForPositron, G4Positron::Positron());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,119 @@
//
// ********************************************************************
// * 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: PhysicsListMessenger.cc,v 1.2 2006/06/29 16:35:55 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsListMessenger.hh"
#include "PhysicsList.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4UIcmdWithAString.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
:pPhysicsList(pPhys)
{
physDir = new G4UIdirectory("/testem/phys/");
physDir->SetGuidance("physics list commands");
gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this);
gammaCutCmd->SetGuidance("Set gamma cut.");
gammaCutCmd->SetParameterName("Gcut",false);
gammaCutCmd->SetUnitCategory("Length");
gammaCutCmd->SetRange("Gcut>0.0");
gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
electCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this);
electCutCmd->SetGuidance("Set electron cut.");
electCutCmd->SetParameterName("Ecut",false);
electCutCmd->SetUnitCategory("Length");
electCutCmd->SetRange("Ecut>0.0");
electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this);
protoCutCmd->SetGuidance("Set positron cut.");
protoCutCmd->SetParameterName("Pcut",false);
protoCutCmd->SetUnitCategory("Length");
protoCutCmd->SetRange("Pcut>0.0");
protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
allCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setCuts",this);
allCutCmd->SetGuidance("Set cut for all.");
allCutCmd->SetParameterName("cut",false);
allCutCmd->SetUnitCategory("Length");
allCutCmd->SetRange("cut>0.0");
allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this);
pListCmd->SetGuidance("Add modula physics list.");
pListCmd->SetParameterName("PList",false);
pListCmd->AvailableForStates(G4State_PreInit);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::~PhysicsListMessenger()
{
delete gammaCutCmd;
delete electCutCmd;
delete protoCutCmd;
delete allCutCmd;
delete pListCmd;
delete physDir;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsListMessenger::SetNewValue(G4UIcommand* command,
G4String newValue)
{
if( command == gammaCutCmd )
{ pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));}
if( command == electCutCmd )
{ pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));}
if( command == protoCutCmd )
{ pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));}
if( command == allCutCmd )
{
G4double cut = allCutCmd->GetNewDoubleValue(newValue);
pPhysicsList->SetCutForGamma(cut);
pPhysicsList->SetCutForElectron(cut);
pPhysicsList->SetCutForPositron(cut);
}
if( command == pListCmd )
{ pPhysicsList->AddPhysicsList(newValue);}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * 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: PrimaryGeneratorAction.cc,v 1.2 2006/06/29 16:35:58 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PrimaryGeneratorAction.hh"
#include "DetectorConstruction.hh"
#include "G4Event.hh"
#include "G4ParticleTable.hh"
#include "G4ParticleDefinition.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PrimaryGeneratorAction::PrimaryGeneratorAction( DetectorConstruction* DC)
:Detector(DC)
{
particleGun = new G4ParticleGun(1);
SetDefaultKinematic();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PrimaryGeneratorAction::~PrimaryGeneratorAction()
{
delete particleGun;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PrimaryGeneratorAction::SetDefaultKinematic()
{
G4ParticleDefinition* particle
= G4ParticleTable::GetParticleTable()->FindParticle("e-");
particleGun->SetParticleDefinition(particle);
particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.));
particleGun->SetParticleEnergy(100*MeV);
G4double position = -0.5*(Detector->GetSize());
particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm));
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
{
//this function is called at the begining of event
//
particleGun->GeneratePrimaryVertex(anEvent);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,349 @@
//
// ********************************************************************
// * 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: RunAction.cc,v 1.5 2006/06/29 16:36:00 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "RunAction.hh"
#include "DetectorConstruction.hh"
#include "PrimaryGeneratorAction.hh"
#include "G4Run.hh"
#include "G4ProcessManager.hh"
#include "G4UnitsTable.hh"
#include "G4EmCalculator.hh"
#include "G4Electron.hh"
#include <vector>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin)
:detector(det), primary(kin)
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunAction::~RunAction()
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::BeginOfRunAction(const G4Run*)
{
//set precision for printing
G4int prec = G4cout.precision(6);
// get particle
G4ParticleDefinition* particle = primary->GetParticleGun()
->GetParticleDefinition();
G4String partName = particle->GetParticleName();
G4double charge = particle->GetPDGCharge();
G4double energy = primary->GetParticleGun()->GetParticleEnergy();
// get material
G4Material* material = detector->GetMaterial();
G4String matName = material->GetName();
G4double density = material->GetDensity();
G4double radl = material->GetRadlen();
G4cout << "\n " << partName << " ("
<< G4BestUnit(energy,"Energy") << ") in "
<< material->GetName() << " (density: "
<< G4BestUnit(density,"Volumic Mass") << "; radiation length: "
<< G4BestUnit(radl, "Length") << ")" << G4endl;
// get cuts
GetCuts();
if (charge != 0.) {
G4cout << "\n Range cuts : \t gamma "
<< std::setw(8) << G4BestUnit(rangeCut[0],"Length")
<< "\t e- " << std::setw(8) << G4BestUnit(rangeCut[1],"Length");
G4cout << "\n Energy cuts : \t gamma "
<< std::setw(8) << G4BestUnit(energyCut[0],"Energy")
<< "\t e- " << std::setw(8) << G4BestUnit(energyCut[1],"Energy")
<< G4endl;
}
// get processList and extract EM processes (but not MultipleScattering)
G4ProcessVector* plist = particle->GetProcessManager()->GetProcessList();
G4String procName;
G4double cut;
std::vector<G4String> emName;
std::vector<G4double> enerCut;
size_t length = plist->size();
for (size_t j=0; j<length; j++) {
procName = (*plist)[j]->GetProcessName();
cut = energyCut[1];
if ((procName == "eBrem")||(procName == "muBrems")) cut = energyCut[0];
if (((*plist)[j]->GetProcessType() == fElectromagnetic) &&
(procName != "msc")) {
emName.push_back(procName);
enerCut.push_back(cut);
}
}
// print list of processes
G4cout << "\n processes : ";
for (size_t j=0; j<emName.size();j++)
G4cout << "\t" << std::setw(13) << emName[j] << "\t";
G4cout << "\t" << std::setw(13) <<"total";
//instanciate EmCalculator
G4EmCalculator emCal;
// emCal.SetVerbose(2);
//compute cross section per atom (only for single material)
if (material->GetNumberOfElements() == 1) {
G4double Z = material->GetZ();
G4double A = material->GetA();
std::vector<G4double> sigma0;
G4double sig, sigtot = 0.;
for (size_t j=0; j<emName.size();j++) {
sig = emCal.ComputeCrossSectionPerAtom
(energy,particle,emName[j],Z,A,enerCut[j]);
sigtot += sig;
sigma0.push_back(sig);
}
sigma0.push_back(sigtot);
G4cout << "\n \n cross section per atom : ";
for (size_t j=0; j<sigma0.size();j++) {
G4cout << "\t" << std::setw(13) << G4BestUnit(sigma0[j], "Surface");
}
G4cout << G4endl;
}
//get cross section per volume
std::vector<G4double> sigma1;
std::vector<G4double> sigma2;
G4double Sig, Sigtot = 0.;
for (size_t j=0; j<emName.size();j++) {
Sig = emCal.GetCrossSectionPerVolume(energy,particle,emName[j],material);
if (Sig == 0.) Sig = emCal.ComputeCrossSectionPerVolume
(energy,particle,emName[j],material,enerCut[j]);
Sigtot += Sig;
sigma1.push_back(Sig);
sigma2.push_back(Sig/density);
}
sigma1.push_back(Sigtot);
sigma2.push_back(Sigtot/density);
//print cross sections
G4cout << "\n \n cross section per volume : ";
for (size_t j=0; j<sigma1.size();j++) {
G4cout << "\t" << std::setw(13) << sigma1[j]*cm << " cm^-1";
}
G4cout << "\n cross section per mass : ";
for (size_t j=0; j<sigma2.size();j++) {
G4cout << "\t" << std::setw(13) << G4BestUnit(sigma2[j], "Surface/Mass");
}
//print mean free path
G4double lambda;
G4cout << "\n \n mean free path : ";
for (size_t j=0; j<sigma1.size();j++) {
lambda = DBL_MAX;
if (sigma1[j] > 0.) lambda = 1/sigma1[j];
G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Length");
}
//mean free path (g/cm2)
G4cout << "\n (g/cm2) : ";
for (size_t j=0; j<sigma2.size();j++) {
lambda = DBL_MAX;
if (sigma2[j] > 0.) lambda = 1/sigma2[j];
G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Mass/Surface");
}
G4cout << G4endl;
if (charge == 0.) {
G4cout.precision(prec);
G4cout << "\n-------------------------------------------------------------\n";
return;
}
//get stopping power
std::vector<G4double> dedx1;
std::vector<G4double> dedx2;
G4double dedx, dedxtot = 0.;
for (size_t j=0; j<emName.size();j++) {
dedx = emCal.ComputeDEDX(energy,particle,emName[j],material,enerCut[j]);
dedx1.push_back(dedx);
dedx2.push_back(dedx/density);
}
dedxtot = emCal.GetDEDX(energy,particle,material);
dedx1.push_back(dedxtot);
dedx2.push_back(dedxtot/density);
//print stopping power
G4cout << "\n \n restricted dE/dx : ";
for (size_t j=0; j<sigma1.size();j++) {
G4cout << "\t" << std::setw(13) << G4BestUnit(dedx1[j],"Energy/Length");
}
G4cout << "\n (MeV/g/cm2) : ";
for (size_t j=0; j<sigma2.size();j++) {
G4cout << "\t" << std::setw(13) << G4BestUnit(dedx2[j],"Energy*Surface/Mass");
}
//get range from restricted dedx
G4double range1 = emCal.GetRangeFromRestricteDEDX(energy,particle,material);
G4double range2 = range1*density;
//get range from full dedx
G4double Range1 = emCal.GetCSDARange(energy,particle,material);
G4double Range2 = Range1*density;
//print range
G4cout << "\n \n range from restrict dE/dx: "
<< "\t" << std::setw(8) << G4BestUnit(range1,"Length")
<< " (" << std::setw(8) << G4BestUnit(range2,"Mass/Surface") << ")";
G4cout << "\n range from full dE/dx : "
<< "\t" << std::setw(8) << G4BestUnit(Range1,"Length")
<< " (" << std::setw(8) << G4BestUnit(Range2,"Mass/Surface") << ")";
//get transport mean free path (for multiple scattering)
G4double MSmfp1 = emCal.GetMeanFreePath(energy,particle,"msc",material);
G4double MSmfp2 = MSmfp1*density;
//print transport mean free path
G4cout << "\n \n transport mean free path : "
<< "\t" << std::setw(8) << G4BestUnit(MSmfp1,"Length")
<< " (" << std::setw(8) << G4BestUnit(MSmfp2,"Mass/Surface") << ")";
if (particle == G4Electron::Electron()) CriticalEnergy();
G4cout << "\n-------------------------------------------------------------\n";
G4cout << G4endl;
// reset default precision
G4cout.precision(prec);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::EndOfRunAction(const G4Run* )
{ }
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4ProductionCutsTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::GetCuts()
{
G4ProductionCutsTable* theCoupleTable =
G4ProductionCutsTable::GetProductionCutsTable();
size_t numOfCouples = theCoupleTable->GetTableSize();
const G4MaterialCutsCouple* couple = 0;
G4int index = 0;
for (size_t i=0; i<numOfCouples; i++) {
couple = theCoupleTable->GetMaterialCutsCouple(i);
if (couple->GetMaterial() == detector->GetMaterial()) {index = i; break;}
}
rangeCut[0] =
(*(theCoupleTable->GetRangeCutsVector(idxG4GammaCut)))[index];
rangeCut[1] =
(*(theCoupleTable->GetRangeCutsVector(idxG4ElectronCut)))[index];
rangeCut[2] =
(*(theCoupleTable->GetRangeCutsVector(idxG4PositronCut)))[index];
energyCut[0] =
(*(theCoupleTable->GetEnergyCutsVector(idxG4GammaCut)))[index];
energyCut[1] =
(*(theCoupleTable->GetEnergyCutsVector(idxG4ElectronCut)))[index];
energyCut[2] =
(*(theCoupleTable->GetEnergyCutsVector(idxG4PositronCut)))[index];
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::CriticalEnergy()
{
// compute e- critical energy (Rossi definition) and Moliere radius.
// Review of Particle Physics - Eur. Phys. J. C3 (1998) page 147
//
G4EmCalculator emCal;
const G4Material* material = detector->GetMaterial();
const G4double radl = material->GetRadlen();
G4double ekin = 5*MeV;
G4double deioni;
G4double err = 1., errmax = 0.001;
G4int iter = 0 , itermax = 10;
while (err > errmax && iter < itermax) {
iter++;
deioni = radl*
emCal.ComputeDEDX(ekin,G4Electron::Electron(),"eIoni",material);
err = std::abs(deioni - ekin)/ekin;
ekin = deioni;
}
G4cout << "\n \n critical energy (Rossi) : "
<< "\t" << std::setw(8) << G4BestUnit(ekin,"Energy");
//Pdg formula (only for single material)
G4double pdga[2] = { 610*MeV, 710*MeV };
G4double pdgb[2] = { 1.24, 0.92 };
G4double EcPdg = 0.;
if (material->GetNumberOfElements() == 1) {
G4int istat = 0;
if (material->GetState() == kStateGas) istat = 1;
G4double Zeff = material->GetZ() + pdgb[istat];
EcPdg = pdga[istat]/Zeff;
G4cout << "\t\t\t (from Pdg formula : "
<< std::setw(8) << G4BestUnit(EcPdg,"Energy") << ")";
}
const G4double Es = 21.2052*MeV;
G4double rMolier1 = Es/ekin, rMolier2 = rMolier1*radl;
G4cout << "\n Moliere radius : "
<< "\t" << std::setw(8) << rMolier1 << " X0 "
<< "= " << std::setw(8) << G4BestUnit(rMolier2,"Length");
if (material->GetNumberOfElements() == 1) {
G4double rMPdg = radl*Es/EcPdg;
G4cout << "\t (from Pdg formula : "
<< std::setw(8) << G4BestUnit(rMPdg,"Length") << ")";
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,4 +1,4 @@
$Id: History,v 1.64 2005/12/06 11:25:21 gcosmo Exp $
$Id: History,v 1.76 2006/05/19 12:36:43 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -14,6 +14,29 @@ track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
19-05-06 mma (testem1-V08-00-04)
- update README
27-03-06 mma (testem1-V08-00-03)
- PhysicsList: new functions AddDecay(), AddStepMax()
27-03-06 mma (testem1-V08-00-02)
- TestEm1.in : migration mum -> um
- name brem -> eBrem
26-01-06 mma (testem1-V08-00-01)
- refresh all geant3 macros
- change printing format in EndOfRun
25-01-06 mma (testem1-V08-00-00)
- rename csdaRange -> trueRange
- histograms for primary particle only
- refresh all macros. Change names
- GetCSDARange() in EndOfRun
19-01-06 mma
- add PhysListEmLivermore and PhysListEmPenelope
06-12-05 Gabriele Cosmo
- Trivial changes for support of CLHEP-2.0.X series.
@@ -1,4 +1,4 @@
$Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $
$Id: README,v 1.21 2006/05/15 14:38:15 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -7,8 +7,10 @@ $Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $
TestEm1
-------
This example has been setup to test individualy the electromagnetic processes.
How to count processes.
How to activate/inactivate processes.
How to survey the tracking, in perticular the range of charged particles.
How to define a maximum step size.
1 - GEOMETRY DEFINITION
@@ -82,14 +84,22 @@ $Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $
Idle> type your commands
....
Idle> exit
7 - HISTOGRAMS
7 - TRACKING : StepMax
In order to control the accuracy of the deposition, the user can limit
'by hand' the maximum step size of charged particles.
As an example, this limitation is implemented as a 'full' process :
see StepMax class and its Messenger. The 'StepMax process' is registered
in the Physics List.
8 - HISTOGRAMS
Testem1 produces several histo which are saved as testem1.hbook by default.
Content of these histo:
1 : track length of a charged particle
2 : number of steps per track (charged particle)
3 : step length (charged particle)
1 : track length of primary particle
2 : number of steps primary particle
3 : step size of primary particle
Note that, by default, histograms are disabled. To activate them, uncomment
the flag G4ANALYSIS_USE in GNUmakefile.
@@ -98,12 +108,12 @@ $Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $
gmake histclean
gmake
8- USING HISTOGRAMS
9 - USING HISTOGRAMS
To use histograms, at least one of the AIDA implementations should be
available (see http://aida.freehep.org).
8a - PI
9a - PI
A package including AIDA and extended interfaces also using Python is PI,
available from: http://cern.ch/pi
@@ -117,7 +127,7 @@ $Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $
Before running the example the command should be issued:
eval `aida-config --runtime csh`
8b - OpenScientist
9b - OpenScientist
OpenScientist is available at http://OpenScientist.lal.in2p3.fr.
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: TestEm1.cc,v 1.13 2005/12/06 11:25:21 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: TestEm1.cc,v 1.14 2006/06/29 16:36:02 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,4 +1,4 @@
# $Id: TestEm1.in,v 1.19 2005/02/01 11:34:00 maire Exp $
# $Id: TestEm1.in,v 1.24 2006/02/16 13:54:26 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
@@ -6,32 +6,31 @@
# electron 100 MeV; all processes
#
/control/verbose 2
/tracking/verbose 0
/run/verbose 2
#
/testem/phys/setGCut 2.20 mm
/testem/phys/setECut 6.05 mum
/testem/phys/setPCut 6.05 mum
/testem/det/setMat Aluminium
/testem/det/setSize 10 m
#
/run/initialize
#
/process/eLoss/StepFunction 0.183 1.70 micrometer
#
/run/verbose 2
#
/testem/gun/setDefault
/gun/particle e-
/gun/energy 100 MeV
#
/testem/histo/setHisto 1 100 0 50 cm
/testem/histo/setHisto 2 100 0 100
/testem/histo/setHisto 3 100 0 10 mm
/testem/histo/setHisto 1 100 0 50 cm #track length of primary
/testem/histo/setHisto 2 100 0 300 none #nb steps of primary
/testem/histo/setHisto 3 200 0 20 mm #step size of primary
#
/testem/histo/setFileType hbook
###/testem/histo/setFileType root
###/testem/histo/setFileType XML
#
/testem/histo/setFileName run0
/run/beamOn 200
#
/testem/phys/setCuts 1 mm
/testem/histo/setFileName run0
/run/beamOn 2000
#
/process/eLoss/verbose 0
#
/testem/phys/setCuts 10 um
/testem/histo/setFileName run1
/run/beamOn 200
/run/beamOn 2000
@@ -1,6 +1,6 @@
*************************************************************
Geant4 version Name: geant4-08-00-cand-01 (16-December-2005)
Geant4 version Name: global-V08-00-04 (30-June-2006)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
@@ -10,51 +10,51 @@
***** Table : Nb of materials = 12 *****
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole ElmMassFraction: 70.00 % ElmAbundance 72.71 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 30.00 % ElmAbundance 27.29 %
Material: H2liquid density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.923 m
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 11.21 % ElmAbundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 88.79 % ElmAbundance 33.33 %
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm
---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 %
---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 %
---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 15.41 % ElmAbundance 63.16 %
---> Element: Germanium (Ge) Z = 32.0 N = 72.6 A = 72.59 g/mole ElmMassFraction: 17.48 % ElmAbundance 15.79 %
---> Element: Bismuth (Bi) Z = 83.0 N = 209.0 A = 208.98 g/mole ElmMassFraction: 67.10 % ElmAbundance 21.05 %
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm
---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm
---> Element: Uranium ( ) Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 %
---> Element: Uranium ( ) Z = 92.0 N = 238.0 A = 238.03 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Visualization Manager instantiating...
Visualization Manager initialising...
Registering graphics systems...
You have successfully chosen to use the following graphics systems.
You have successfully registered the following graphics systems.
Current available graphics systems are:
ASCIITree (ATree)
DAWNFILE (DAWNFILE)
@@ -66,37 +66,58 @@ Current available graphics systems are:
VRML2FILE (VRML2FILE)
Registering model factories...
/tracking/verbose 0
#
/testem/phys/setGCut 2.20 mm
/testem/phys/setECut 6.05 mum
/testem/phys/setPCut 6.05 mum
#
/run/initialize
The Box is 10 m of Aluminium
PhysicsList::SetCuts:CutLength : 1 mm
#
/process/eLoss/StepFunction 0.183 1.70 micrometer
#
You have successfully registered the following model factories.
Registered model factories:
generic
drawByCharge
drawByParticleID
drawByOriginVolume
Registered models:
None
Registered filter factories:
chargeFilter
particleFilter
originVolumeFilter
Registered filters:
None
/run/verbose 2
#
/testem/det/setMat Aluminium
/testem/det/setSize 10 m
#
/run/initialize
userDetector->Construct() start.
The Box is 10 m of Aluminium
Aluminium is registered to the default region.
physicsList->Construct() start.
physicsList->Construct() start.
physicsList->setCut() start.
PhysicsList::SetCuts:CutLength : 1 mm
#
/testem/gun/setDefault
/gun/particle e-
/gun/energy 100 MeV
#
/testem/histo/setHisto 1 100 0 50 cm
----> SetHisto 1: total track length of a charged particle (cm); 100 bins from 0 cm to 50 cm
/testem/histo/setHisto 2 100 0 100
----> SetHisto 2: nb steps per track (charged particles); 100 bins from 0 none to 100 none
/testem/histo/setHisto 3 100 0 10 mm
----> SetHisto 3: step length of charged particles (mm); 100 bins from 0 mm to 10 mm
/testem/histo/setHisto 1 100 0 50 cm #track length of primary
----> SetHisto 1: total track length of primary particle (cm); 100 bins from 0 cm to 50 cm
/testem/histo/setHisto 2 100 0 300 none #nb steps of primary
----> SetHisto 2: nb steps of primary particle; 100 bins from 0 none to 300 none
/testem/histo/setHisto 3 200 0 20 mm #step size of primary
----> SetHisto 3: step size of primary particle (mm); 200 bins from 0 mm to 20 mm
#
/testem/histo/setFileType hbook
###/testem/histo/setFileType root
###/testem/histo/setFileType XML
#
/testem/phys/setCuts 1 mm
/testem/histo/setFileName run0
/run/beamOn 200
/run/beamOn 2000
phot: Total cross sections from Sandia parametrisation.
@@ -118,9 +139,10 @@ eIoni: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
brem: tables are built for e-
eBrem: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
@@ -130,9 +152,10 @@ eIoni: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
brem: tables are built for e+
eBrem: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
@@ -151,16 +174,28 @@ hIoni: tables are built for proton
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
msc: Model variant of multiple scattering for GenericIon
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
ionIoni: tables are built for GenericIon
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Stopping Power data for 8 ion/material pairs are used.
Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1
CSDA range table up to 1 GeV in 70 bins.
hIoni: tables are built for anti_proton
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
msc: Model variant of multiple scattering for mu+
Lambda tables from 100 eV to 100 TeV in 120 bins.
@@ -171,7 +206,8 @@ muIoni: tables are built for mu+
Lambda tables from threshold to 100 TeV in 120 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
muBrems: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
@@ -188,7 +224,8 @@ muIoni: tables are built for mu-
Lambda tables from threshold to 100 TeV in 120 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
muBrems: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
@@ -200,20 +237,36 @@ muPairProd: tables are built for mu-
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
hIoni: tables are built for pi+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 0.297504 MeV, ICRU49 parametrisation for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
msc: Model variant of multiple scattering for pi-
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
hIoni: tables are built for pi-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 0.297504 MeV, ICRU49 parametrisation for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 1 GeV in 70 bins.
Region <DefaultRegionForTheWorld> -- appears in <Aluminium> world volume
Materials : Aluminium
Production cuts : gamma 2.2 mm e- 6.05 mum e+ 6.05 mum
Production cuts : gamma 1 mm e- 1 mm e+ 1 mm
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes recalculation needed : No
Material : Aluminium
Range cuts : gamma 2.2 mm e- 6.05 mum e+ 6.05 mum
Energy thresholds : gamma 9.98636 keV e- 9.96618 keV e+ 9.96618 keV
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
Energy thresholds : gamma 6.88731 keV e- 596.68 keV e+ 568.011 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -235,160 +288,56 @@ Start Run processing.
---> Begin of Event: 0
Run terminated.
Run Summary
Number of events processed : 200
User=143.37s Real=168.97s Sys=23.87s
Number of events processed : 2000
User=88.64s Real=125.25s Sys=29.48s
======================== run summary ======================
The run was: 200 e- of 100.00 MeV through 10.00 m of Aluminium (density: 2.70 g/cm3 )
The run was: 2000 e- of 100 MeV through 10 m of Aluminium (density: 2.7 g/cm3 )
============================================================
total energy deposit: 99.809 MeV
total energy deposit: 99.783 MeV
nb tracks/event neutral: 27.575 charged: 693.310
nb steps/event neutral: 138.115 charged: 3828.275
nb tracks/event neutral: 27.951 charged: 148.47
nb steps/event neutral: 141.41 charged: 363.77
nb of process calls per event:
eIoni brem msc phot compt conv annihilTransportation
3144.490 25.910 656.495 25.180 110.540 1.380 1.380 1.015
eBrem eIoni compt phot mscTransportation conv annihil
26.174 188.17 113.46 25.501 147.96 0.9905 1.4625 1.463
---------------------------------------------------------
Primary particle :
CSDA Range = 10.761 cm rms = 3.879 cm
proj Range = 9.255 cm rms = 3.650 cm
proj/CSDA = 0.860
transverse dispersion at end = 1.741 cm
true Range = 11.121 cm rms = 3.8093 cm
proj Range = 9.5817 cm rms = 3.5013 cm
proj/true = 0.86158
transverse dispersion at end = 1.8005 cm
mass true Range from simulation = 30.027 g/cm2
from PhysicsTable (csda range) = 31.791 g/cm2
---------------------------------------------------------
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1674441358, 1865268964
Current couple of seeds = 486808439, 1322415313
----------------------------------------
mass CSDA Range from simulation = 29.055 g/cm2
from PhysicsTable = 85.395 g/cm2
---------------------------------------------------------
#
/testem/phys/setCuts 1 mm
/process/eLoss/verbose 0
#
/testem/phys/setCuts 10 um
/testem/histo/setFileName run1
/run/beamOn 200
phot: Total cross sections from Sandia parametrisation.
compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV
Sampling according Klein-Nishina model
tables are built for gamma
Lambda tables from 100 eV to 100 GeV in 90 bins.
conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z;
sampling secondary e+e- according to the Bethe-Heitler model
tables are built for gamma
Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins.
msc: Model variant of multiple scattering for e-
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
eIoni: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
brem: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
eIoni: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
brem: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
annihil: Heilter model of formula of annihilation into 2 photons
tables are built for e+
Lambda tables from 100 eV to 100 TeV in 120 bins.
msc: Model variant of multiple scattering for proton
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
hIoni: tables are built for proton
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
msc: Model variant of multiple scattering for GenericIon
ionIoni: tables are built for GenericIon
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Scaling relation is used to proton dE/dx and range
Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below.
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
msc: Model variant of multiple scattering for mu+
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
muIoni: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
muBrems: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
muPairProd: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
muIoni: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1
muBrems: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
muPairProd: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
msc: Model variant of multiple scattering for pi-
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1
/run/beamOn 2000
Region <DefaultRegionForTheWorld> -- appears in <Aluminium> world volume
Materials : Aluminium
Production cuts : gamma 1 mm e- 1 mm e+ 1 mm
Production cuts : gamma 10 um e- 10 um e+ 10 um
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes recalculation needed : No
Material : Aluminium
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
Energy thresholds : gamma 6.8873065 keV e- 596.68045 keV e+ 568.01052 keV
Range cuts : gamma 10 um e- 10 um e+ 10 um
Energy thresholds : gamma 990 eV e- 33.887552 keV e+ 33.472938 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -398,46 +347,46 @@ Index : 0 used in the geometry : Yes recalculation needed : No
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1674441358, 1865268964
Current couple of seeds = 486808439, 1322415313
----------------------------------------
Start Run processing.
---> Begin of Event: 0
Run terminated.
Run Summary
Number of events processed : 200
User=45.28s Real=58.43s Sys=11.47s
Number of events processed : 2000
User=175.77s Real=232.34s Sys=49.85s
======================== run summary ======================
The run was: 200 e- of 100.00 MeV through 10.00 m of Aluminium (density: 2.70 g/cm3 )
The run was: 2000 e- of 100 MeV through 10 m of Aluminium (density: 2.7 g/cm3 )
============================================================
total energy deposit: 99.789 MeV
total energy deposit: 99.793 MeV
nb tracks/event neutral: 27.115 charged: 143.160
nb steps/event neutral: 136.270 charged: 1161.905
nb tracks/event neutral: 36.393 charged: 290.7
nb steps/event neutral: 146.05 charged: 775.79
nb of process calls per event:
brem eIoni compt phot msc conv annihilTransportation
25.585 1022.685 109.155 24.920 112.355 1.280 1.280 0.915
eIoni eBrem msc phot compt conv annihilTransportation
449.81 34.605 289.96 34.055 109.65 1.397 1.3975 0.949
---------------------------------------------------------
Primary particle :
CSDA Range = 11.292 cm rms = 3.464 cm
proj Range = 9.702 cm rms = 3.120 cm
proj/CSDA = 0.859
transverse dispersion at end = 1.774 cm
true Range = 11.149 cm rms = 3.8924 cm
proj Range = 9.5626 cm rms = 3.5687 cm
proj/true = 0.85772
transverse dispersion at end = 1.9027 cm
mass true Range from simulation = 30.102 g/cm2
from PhysicsTable (csda range) = 31.791 g/cm2
---------------------------------------------------------
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1519444746, 431167489
Current couple of seeds = 763249003, 2053971629
----------------------------------------
mass CSDA Range from simulation = 30.488 g/cm2
from PhysicsTable = 67.818 g/cm2
---------------------------------------------------------
Graphics systems deleted.
Visualization Manager deleting...
UserDetectorConstruction deleted.
@@ -0,0 +1,39 @@
# $Id: annihil.mac,v 1.1 2006/01/25 13:56:40 maire Exp $
#
# Macro file for "TestEm1.cc"
#
# e+ beam; 100 MeV
# To visualise e+ annihilation
#
/control/verbose 2
/run/verbose 2
#
/testem/det/setMat Aluminium
/testem/det/setSize 20 cm
#
/testem/phys/addPhysics standard
#
/run/initialize
#
/control/execute vis.mac
#
# prevent ionisation and bremsstrahlung production
/testem/phys/setCuts 1 km
#
# no multiple scattering
/process/inactivate msc
#
# no photon interaction
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
#
/testem/gun/setDefault
/gun/particle e+
/gun/energy 100 MeV
# spread beam spot
/testem/gun/rndm 0.8
#
/tracking/verbose 1
#
/run/beamOn 20
@@ -0,0 +1,48 @@
# $Id: brems.mac,v 1.3 2006/04/10 10:22:41 vnivanch Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Bremsstrahlung only
#
/control/verbose 2
/run/verbose 2
#
/testem/det/setMat Aluminium
/testem/det/setSize 50 cm
#
/testem/phys/addPhysics standard
#
/run/initialize
#
# prevent any e- ionisation production
/testem/phys/setECut 1 km
#
# no multiple scattering
/process/inactivate msc
#
# set cut for gamma bremsstrahlung
/testem/phys/setGCut 1 mm
#
# no gamma interaction
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
#
/testem/gun/setDefault
/gun/particle e-
/gun/energy 200 MeV
#
/testem/histo/setFileName brems
/testem/histo/setFileType hbook
/testem/histo/setHisto 1 100 0 50 cm #track length of primary
/testem/histo/setHisto 2 100 0 100 none #nb steps of primary
/testem/histo/setHisto 3 200 0 50 mm #step size of primary
#
/testem/event/printModulo 2000
#
/process/eLoss/verbose 0
/process/inactivate eIoni
/run/physicsModified
/run/beamOn 10000
#
@@ -0,0 +1,38 @@
# $Id: gammaconversion.mac,v 1.1 2006/01/25 13:56:40 maire Exp $
#
# Macro file for "TestEm1.cc"
#
# Photon beam; 100 MeV
# To visualise gamma conversion and e+ annihilation
#
/control/verbose 2
/run/verbose 2
#
/testem/det/setMat Aluminium
/testem/det/setSize 1 m
#
/testem/phys/addPhysics standard
#
/run/initialize
#
/control/execute vis.mac
#
# no photoElectric nor Compton
/process/inactivate phot
/process/inactivate compt
#
# prevent ionisation and bremsstrahlung production
/testem/phys/setCuts 1 km
#
# no multiple scattering
/process/inactivate msc
#
/testem/gun/setDefault
/gun/particle gamma
/gun/energy 100 MeV
# spread beam spot
/testem/gun/rndm 0.8
#
/tracking/verbose 1
#
/run/beamOn 20
@@ -20,7 +20,7 @@
Content of these histo:
1 : track length of a charged particle
2 : number of steps per track (charged particle)
3 : step length (charged particle)
1 : track length of primary particle
2 : number of steps of primary particle
3 : step size of primary particle
@@ -1,18 +1,20 @@
LIST
C
C Eloss+muls only; no fluctuation; e- 10 Mev
C e+ beam; 100 MeV
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 0.010 (Ekine)
CALOR 5 (Al) 20. (cm) 0. (field)
TRIG 20
KINE 2 (positron) 0.1 (GeV) 1. (xBeam) 0.8 (rBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
MULS 0
PHOT 0
COMP 0
PAIR 0
MULS 1
LOSS 4
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,18 +1,20 @@
LIST
C
C full Brems only; e- 1 Gev
C Bremsstrahlung only
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 1.000 (Ekine)
DEBUG 10 5 1000
CALOR 5 (Al) 50. (cm) 0. (field)
TRIG 10000
KINE 3 (electron) 0.2 (GeV) 1. (xBeam)
DEBUG 10 5 2000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e-6 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
MULS 0
PHOT 0
COMP 0
PAIR 0
MULS 0
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,18 +1,19 @@
LIST
C
C Eloss only; glandz fluctuations; e- 1 Gev
C Photon beam; 100 MeV
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 1.000 (Ekine)
CALOR 5 (Al) 100. (cm) 0. (field)
TRIG 20
KINE 1 (gamma) 0.1 (GeV) 1. (xBeam) 0.8 (rBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 0
COMP 0
PAIR 0
MULS 0
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,14 +1,11 @@
LIST
C
C e- 1 Gev; all processes
C geantino; 100 evts
C
CALOR 5 (Imat) 2000. (size) 0. (field)
CALOR 5 (Al) 1000. (cm) 0. (field)
TRIG 100
KINE 3 (Itype) 1.000 (Ekine)
KINE 48 (Geantino) 1. (GeV) 1. (xBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e-6 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
LOSS 1
TIME 2=1.
@@ -26,7 +26,7 @@ chmod +x $name.xb
#
# cleanup
#
rm *.o
rm -rf *.o
echo 'done'
exit
@@ -25,7 +25,7 @@ chmod +x $name.xt
#
# cleanup
#
rm *.o
rm -rf *.o
echo 'done'
exit
@@ -1,18 +1,17 @@
LIST
C
C full Ionisation only; e- 100 Mev
C full Ionisation only
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 0.100 (Ekine)
DEBUG 10 5 1000
CALOR 5 (Al) 50. (cm) 0. (field)
TRIG 10000
KINE 3 (electron) 0.2 (GeV) 1. (xBeam)
DEBUG 10 5 2000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 0
COMP 0
PAIR 0
MULS 0
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,19 +0,0 @@
LIST
C
C Photo electric; gamma 1 MeV
C
CALOR 10 (Germanium) 1. (size) 0. (field)
TRIG 100000
KINE 1 (gamma) 0.001 (Ekine) 1. (xBeam) 0.8 (rBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 1
COMP 0
PAIR 0
BREM 0
MULS 1
LOSS 1
TIME 2=1.
@@ -1,18 +1,16 @@
LIST
C
C Compton + Photo electric; gamma 10 MeV
C Photon beam; gamma 300 keV
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 1000
KINE 1 (Itype) 0.010 (Ekine)
CALOR 10 (Germanium) 1. (cm) 0. (field)
TRIG 100000
KINE 1 (gamma) 300.e-6 (GeV) 1. (xBeam) 0.8 (rBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 2
COMP 2
PAIR 0
MULS 0
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,18 +1,17 @@
LIST
C
C Eloss only; no fluctuation; e- 1 Gev
C csda range of the primary particle
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 1.000 (Ekine)
DEBUG 10 5 1000
CALOR 3 (water) 10. (cm) 0. (field)
TRIG 20000
KINE 14 (proton) 0.1 (GeV) 1. (xBeam)
DEBUG 10 5 2000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*10.e+3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 0
COMP 0
PAIR 0
MULS 0
LOSS 4
C
ABAN 0
TIME 2=1.
@@ -1,14 +0,0 @@
LIST
C
C geantino; 10000 evts
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 10000
KINE 48 (Itype) 1.0 (Ekine)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e-6 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
LOSS 1
TIME 2=1.
@@ -1,19 +0,0 @@
LIST
C
C Gamma conversion and e+ annihilation; gamma 100 MeV
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 1000
KINE 1 (Itype) 0.100 (Ekine)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*15.e-3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
PHOT 0
COMP 0
PAIR 1
ANNI 2
MULS 0
LOSS 1
TIME 2=1.
@@ -1,14 +0,0 @@
LIST
C
C e- 10 Gev; all processes
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 10.000 (Ekine)
DEBUG 10 5 10
SWIT 0 (draw) 0 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e-6 (bcute/m) 2*597.e-6 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
LOSS 1
TIME 2=1.
@@ -1,14 +0,0 @@
LIST
C
C Eloss only + muls; e- 1 Gev
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 1000
KINE 3 (Itype) 1.000 (Ekine)
DEBUG 10 5 1000
SWIT 0 (draw) 1 (save)
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e+3 (bcute/m) 2*100.e-3 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
LOSS 1
TIME 2=1.
@@ -26,7 +26,6 @@
IF (CHARGE.NE.0.) THEN
NSTEP1 = NSTEP1 + 1
NSTRK1 = NSTRK1 + 1
CALL HFILL (3,STEP*10,0.,1.)
ELSE
NSTEP0 = NSTEP0 + 1
NSTRK0 = NSTRK0 + 1
@@ -40,5 +39,8 @@
IF (IPROC.LE.12) NBCALL(IPROC) = NBCALL(IPROC)+1
ENDDO
ENDIF
*
* *** step size of primary particle
IF ((ITRA.EQ.1).AND.(ISTAK.EQ.0)) CALL HFILL (3,STEP*10,0.,1.)
*
END
@@ -19,11 +19,17 @@
*
* *** count nb of tracks
IF (CHARGE.NE.0.) THEN
NTRAK1 = NTRAK1 + 1
CALL HFILL (1,SLENG*10,0.,1.)
CALL HFILL (2,REAL(NSTRK1),0.,1.)
NTRAK1 = NTRAK1 + 1
ELSE
NTRAK0 = NTRAK0 + 1
ENDIF
NTRAK0 = NTRAK0 + 1
ENDIF
*
* *** track length of primary particle
IF ((ITRA.EQ.1).AND.(ISTAK.EQ.0)) THEN
CALL HFILL (1,SLENG*10,0.,1.)
nstrk = NSTRK0
if (CHARGE.NE.0.) nstrk = NSTRK1
CALL HFILL (2,REAL(nstrk),0.,1.)
ENDIF
*
END
@@ -14,7 +14,7 @@
* *** read data cards
PRINT *, 'G3 > gives the filename of the data cards to be read:'
READ (*,'(A)') filnam
IF (filnam.EQ.' ') filnam = 'run01.dat'
IF (filnam.EQ.' ') filnam = 'testem1.dat'
OPEN (unit=5,file=filnam,status='unknown',form='formatted')
*
@@ -31,7 +31,7 @@
*
* *** Save selected histograms
IF (ISWIT(2).EQ.1) THEN
CALL HRPUT(0,'testem1.paw','N')
CALL HRPUT(0,'testem1.hbook','N')
ENDIF
*
* *** formats
@@ -3,11 +3,11 @@
*
* To book the user's histograms
*
CALL HBOOK1(1,'track length (mm) of a charged particle',
CALL HBOOK1(1,'track length (mm) of primary particle',
+ 100,0.,500.,0.)
CALL HBOOK1(2,'Nb of steps per track (charged particle)',
CALL HBOOK1(2,'Nb of steps of primary particle',
+ 100,0.,100.,0.)
CALL HBOOK1(3,'step length (mm) charged particle',
CALL HBOOK1(3,'step size (mm) of primary particle',
+ 100,0.,10. ,0.)
*
END
@@ -1,14 +1,16 @@
LIST
C
C e- 100 Mev; all processes
C e- 100 MeV; all processes
C
CALOR 5 (Imat) 2000. (size) 0. (field)
TRIG 100
KINE 3 (Itype) 0.100 (Ekine)
CALOR 5 (Al) 1000. (cm) 0. (field)
TRIG 2000
KINE 3 (electron) 0.1 (GeV) 1. (xBeam)
DEBUG 10 5 1000
SWIT 0 (draw) 0 (save)
C
CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo)
2*10.e-6 (bcute/m) 2*10.e-6 (dcute/m) 10.e-3 (ppcutm)
ABAN 0
LOSS 1
C
ABAN 0
TIME 2=1.
@@ -1,16 +1,17 @@
# $Id: run00.mac,v 1.2 2001/10/26 12:51:21 maire Exp $
# $Id: geantino.mac,v 1.1 2006/01/24 18:29:07 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# geantino 1 GeV; 10000 evts
# geantino 1 GeV; 100 evts
#
/control/verbose 2
/run/verbose 2
#
/run/initialize
#
/run/verbose 2
/process/eLoss/verbose 0
#
/gun/particle geantino
/gun/energy 1 GeV
/run/beamOn 10000
/run/beamOn 100
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: DetectorConstruction.hh,v 1.1 2003/10/06 10:02:22 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: DetectorConstruction.hh,v 1.2 2006/06/29 16:36:04 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: DetectorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: DetectorMessenger.hh,v 1.3 2006/06/29 16:36:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: EventAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: EventAction.hh,v 1.3 2006/06/29 16:36:10 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: EventActionMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: EventActionMessenger.hh,v 1.3 2006/06/29 16:36:13 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: HistoManager.hh,v 1.4 2005/02/01 11:34:03 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: HistoManager.hh,v 1.5 2006/06/29 16:36:15 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: HistoMessenger.hh,v 1.2 2005/02/01 11:34:03 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: HistoMessenger.hh,v 1.3 2006/06/29 16:36:18 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysListEmG4v52.hh,v 1.1 2003/10/06 10:02:24 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysListEmG4v52.hh,v 1.2 2006/06/29 16:36:21 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysListEmG4v71.hh,v 1.2 2005/10/05 12:05:13 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysListEmG4v71.hh,v 1.3 2006/06/29 16:36:23 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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: PhysListEmLivermore.hh,v 1.2 2006/06/29 16:36:25 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmLivermore_h
#define PhysListEmLivermore_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmLivermore : public G4VPhysicsConstructor
{
public:
PhysListEmLivermore(const G4String& name = "Livermore");
~PhysListEmLivermore();
public:
// This method is dummy for physics
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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: PhysListEmPenelope.hh,v 1.2 2006/06/29 16:36:28 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysListEmPenelope_h
#define PhysListEmPenelope_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysListEmPenelope : public G4VPhysicsConstructor
{
public:
PhysListEmPenelope(const G4String& name = "Penelope");
~PhysListEmPenelope();
public:
// This method is dummy for physics
void ConstructParticle() {};
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
void ConstructProcess();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysListEmStandard.hh,v 1.3 2003/10/24 12:06:36 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysListEmStandard.hh,v 1.4 2006/06/29 16:36:30 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysicsList.hh,v 1.2 2004/06/09 15:29:43 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysicsList.hh,v 1.4 2006/06/29 16:36:33 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
@@ -52,6 +55,9 @@ class PhysicsList: public G4VModularPhysicsList
void ConstructParticle();
void ConstructProcess();
void AddPhysicsList(const G4String& name);
void AddDecay();
void AddStepMax();
void SetCuts();
void SetCutForGamma(G4double);
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysicsListMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysicsListMessenger.hh,v 1.3 2006/06/29 16:36:35 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PrimaryGeneratorAction.hh,v 1.2 2004/07/23 15:39:34 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PrimaryGeneratorAction.hh,v 1.3 2006/06/29 16:36:37 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PrimaryGeneratorMessenger.hh,v 1.3 2006/06/29 16:36:39 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: ProcessesCount.hh,v 1.9 2003/10/06 10:02:25 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: ProcessesCount.hh,v 1.10 2006/06/29 16:36:41 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: RunAction.hh,v 1.6 2004/08/03 11:31:43 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: RunAction.hh,v 1.8 2006/06/29 16:36:43 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -59,7 +62,7 @@ class RunAction : public G4UserRunAction
void CountProcesses(G4String);
void AddEdep(G4double val) { edep += val;}
void AddCsdaRange (G4double l) { csdaRange += l; csdaRange2 += l*l;};
void AddTrueRange (G4double l) { trueRange += l; trueRange2 += l*l;};
void AddProjRange (G4double x) { projRange += x; projRange2 += x*x;};
void AddTransvDev (G4double y) { transvDev += y; transvDev2 += y*y;};
@@ -67,7 +70,7 @@ class RunAction : public G4UserRunAction
G4int NbOfTraks0, NbOfTraks1;
G4int NbOfSteps0, NbOfSteps1;
G4double edep;
G4double csdaRange, csdaRange2;
G4double trueRange, trueRange2;
G4double projRange, projRange2;
G4double transvDev, transvDev2;
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * 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: StepMax.hh,v 1.2 2006/06/29 16:36:45 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef StepMax_h
#define StepMax_h 1
#include "globals.hh"
#include "G4VDiscreteProcess.hh"
#include "G4ParticleDefinition.hh"
#include "G4Step.hh"
class StepMaxMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StepMax : public G4VDiscreteProcess
{
public:
StepMax(const G4String& processName = "UserMaxStep");
~StepMax();
G4bool IsApplicable(const G4ParticleDefinition&);
void SetMaxStep(G4double);
G4double GetMaxStep() {return MaxChargedStep;};
G4double PostStepGetPhysicalInteractionLength( const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition);
G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*)
{return DBL_MAX;};
private:
G4double MaxChargedStep;
StepMaxMessenger* pMess;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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: StepMaxMessenger.hh,v 1.2 2006/06/29 16:36:47 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef StepMaxMessenger_h
#define StepMaxMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class StepMax;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StepMaxMessenger: public G4UImessenger
{
public:
StepMaxMessenger(StepMax*);
~StepMaxMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
StepMax* stepMax;
G4UIcmdWithADoubleAndUnit* StepMaxCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: SteppingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: SteppingAction.hh,v 1.4 2006/06/29 16:36:49 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: SteppingVerbose.hh,v 1.1 2003/10/06 10:02:25 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: SteppingVerbose.hh,v 1.2 2006/06/29 16:36:51 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
// This class manages the verbose outputs in G4SteppingManager.
// It inherits from G4SteppingVerbose.
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: TrackingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: TrackingAction.hh,v 1.4 2006/06/29 16:36:53 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,39 @@
# $Id: ionis.mac,v 1.2 2006/01/25 13:56:40 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Ionisation only
#
/control/verbose 2
/run/verbose 2
#
/testem/det/setMat Aluminium
/testem/det/setSize 50 cm
#
/testem/phys/addPhysics standard
#
/run/initialize
#
# prevent any gamma production
/testem/phys/setGCut 1 km
#
# no multiple scattering
/process/inactivate msc
#
# set cut for ionisation
/testem/phys/setECut 1 mm
#
/testem/gun/setDefault
/gun/particle e-
/gun/energy 200 MeV
#
/testem/histo/setFileName ionis
/testem/histo/setFileType hbook
/testem/histo/setHisto 1 100 0 50 cm #track length of primary
/testem/histo/setHisto 2 100 0 100 none #nb steps of primary
/testem/histo/setHisto 3 200 0 50 mm #step size of primary
#
/testem/event/printModulo 2000
#
/run/beamOn 10000
@@ -1,9 +1,9 @@
# $Id: phot.mac,v 1.4 2004/08/03 11:31:40 maire Exp $
# $Id: photon.mac,v 1.1 2006/01/24 18:29:07 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# PhotoElectricEffect; Gamma 1 Mev
# Photon beam; 300 keV
# For interactive visualisation
#
/control/verbose 2
/run/verbose 2
@@ -13,13 +13,14 @@
#
/run/initialize
#
/control/execute vis.mac
#
/testem/gun/setDefault
/gun/particle gamma
/gun/energy 1 MeV
/testem/gun/rndm 0.8
/gun/energy 300 keV
# spread beam spot
/testem/gun/rndm 0.8
#
/tracking/verbose 1
#
#/run/particle/applyCuts
#
#/run/beamOn 100000
/run/beamOn 20
@@ -1,8 +1,9 @@
# $Id: range.mac,v 1.4 2005/06/01 10:20:12 maire Exp $
# $Id: range.mac,v 1.9 2006/01/25 15:28:27 maire Exp $
#
# Macro file for "TestEm1.cc"
#
# compute the range of primary particle
# compute the csda range of the primary particle
# with or without fluctuations
#
/control/verbose 2
/run/verbose 2
@@ -11,10 +12,15 @@
/testem/det/setSize 10 cm
#
/testem/phys/addPhysics standard
/testem/phys/setCuts 1 km
###/testem/phys/addPhysics penelope
###/testem/phys/addPhysics livermore
#
/run/initialize
#
# prevent any secondary production
/testem/phys/setCuts 1 km
#
# eliminate straggling
/process/inactivate msc
/process/eLoss/fluct false
#
@@ -22,6 +28,10 @@
/gun/particle proton
/gun/energy 100 MeV
#
/testem/event/printModulo 1000
/testem/histo/setFileName range
/testem/histo/setFileType hbook
/testem/histo/setHisto 1 150 70 85 mm # csda range
#
/testem/event/printModulo 2000
#
/run/beamOn 1000
/run/beamOn 20000
@@ -1,30 +0,0 @@
# $Id: run01.mac,v 1.6 2003/10/06 10:02:20 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Eloss only; no fluctuation; e- 1 GeV
#
/control/verbose 2
#
###/testem/phys/addPhysics g4v52
/testem/phys/addPhysics standard
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 95 cm
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
/process/inactivate msc
#
/process/eLoss/StepFunction 0.183 170 micrometer
/process/eLoss/fluct 0
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 100
@@ -1,31 +0,0 @@
# $Id: run02.mac,v 1.6 2003/10/06 10:02:20 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Eloss only; glandz fluctuations; e- 1 GeV
#
/control/verbose 2
#
#/testem/phys/addPhysics g4v52
/testem/phys/addPhysics standard
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 95 cm
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
/process/inactivate msc
#
/process/eLoss/integral false
/process/eLoss/StepFunction 0.183 170 micrometer
/process/eLoss/fluct 1
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 100
@@ -1,26 +0,0 @@
# $Id: run03.mac,v 1.5 2002/12/11 14:19:18 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Eloss+Muls only; no fluctuation; e- 10 MeV
#
/control/verbose 2
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 95 cm
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
#
/process/eLoss/StepFunction 0.183 170 micrometer
/process/eLoss/fluct 0
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 10 MeV
/run/beamOn 100
@@ -1,30 +0,0 @@
# $Id: run04.mac,v 1.7 2003/10/06 10:02:20 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# full Ionisation only; e- 100 MeV
#
/control/verbose 2
#
##/testem/phys/addPhysics g4v52
/testem/phys/addPhysics standard
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 100 micrometer
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
/process/inactivate msc
#
/process/eLoss/integral true
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 100 MeV
/run/beamOn 100
@@ -1,31 +0,0 @@
# $Id: run05.mac,v 1.7 2003/10/17 17:57:49 vnivanch Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# full Brems only; e- 1 GeV
#
/control/verbose 2
#
##/testem/phys/addPhysics g4v52
/testem/phys/addPhysics standard
#
/testem/phys/setGCut 2.2 mm
/testem/phys/setECut 95 cm
/testem/phys/setPCut 95 cm
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate conv
/process/inactivate msc
#
/process/eLoss/integral false
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 100
@@ -1,28 +0,0 @@
# $Id: run06.mac,v 1.6 2003/10/06 10:02:20 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Compton + PhotoElectricEffect; Gamma 10 Mev
#
/control/verbose 2
#
###/testem/phys/addPhysics g4v52
/testem/phys/addPhysics standard
/testem/phys/setGCut 95 cm
/testem/phys/setECut 95 cm
#
/run/initialize
#
/process/inactivate conv
/process/inactivate msc
#
/process/eLoss/integral false
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle gamma
/gun/energy 10 MeV
/run/beamOn 1000
@@ -1,25 +0,0 @@
# $Id: run07.mac,v 1.5 2002/12/11 14:19:18 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Gamma conversion and e+ annihilation; gamma 100 MeV
#
/control/verbose 2
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 30 mm
#
/run/initialize
#
/process/inactivate phot
/process/inactivate compt
/process/inactivate msc
#
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle gamma
/gun/energy 100 MeV
/run/beamOn 1000
@@ -1,21 +0,0 @@
# $Id: run08.mac,v 1.5 2002/12/11 14:19:18 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# electron 100 MeV; all processes
#
/control/verbose 2
#
/testem/phys/setGCut 2.2 mm
/testem/phys/setECut 6.05 micrometer
#
/run/initialize
#
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 100 MeV
/run/beamOn 100
@@ -1,22 +0,0 @@
# $Id: run09.mac,v 1.5 2002/12/11 14:19:18 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# electron 1 GeV; all processes
#
/control/verbose 2
#
/testem/phys/setGCut 2.2 mm
/testem/phys/setECut 6.05 micrometer
#
/run/initialize
#
/process/eLoss/StepFunction 0.183 170 micrometer
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 1 GeV
/testem/event/printModulo 10
/run/beamOn 100
@@ -1,17 +0,0 @@
# $Id: run10.mac,v 1.2 2002/12/11 14:19:19 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# electron 10 GeV; all processes
#
/control/verbose 2
#
/run/initialize
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 10 GeV
/testem/event/printModulo 10
/run/beamOn 100
@@ -1,19 +0,0 @@
# $Id: run11.mac,v 1.5 2002/12/11 14:19:19 maire Exp $
#
# Macro file for "TestEm1.cc"
# (can be run in batch, without graphic)
#
# Eloss only + muls; e- 1 GeV
#
/control/verbose 2
#
/testem/phys/setGCut 95 cm
/testem/phys/setECut 17 cm
#
/run/initialize
#
/run/verbose 2
#
/gun/particle e-
/gun/energy 1 GeV
/run/beamOn 1000
@@ -1,29 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: DetectorConstruction.cc,v 1.5 2005/06/01 10:20:12 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: DetectorConstruction.cc,v 1.6 2006/06/29 16:36:55 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: DetectorMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: DetectorMessenger.cc,v 1.3 2006/06/29 16:36:57 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: EventAction.cc,v 1.3 2004/03/15 11:09:36 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: EventAction.cc,v 1.4 2006/06/29 16:36:59 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: EventActionMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: EventActionMessenger.cc,v 1.3 2006/06/29 16:37:01 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: HistoManager.cc,v 1.6 2005/06/01 10:20:12 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: HistoManager.cc,v 1.9 2006/06/29 16:37:03 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -162,9 +165,9 @@ void HistoManager::SetHisto(G4int ih,
const G4String id[] = { "0", "1", "2", "3" };
const G4String title[] =
{ "dummy", //0
"total track length of a charged particle", //1
"nb steps per track (charged particles)", //2
"step length of charged particles" //3
"total track length of primary particle", //1
"nb steps of primary particle", //2
"step size of primary particle" //3
};
@@ -1,27 +1,30 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: HistoMessenger.cc,v 1.4 2005/11/14 14:14:38 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: HistoMessenger.cc,v 1.5 2006/06/29 16:37:05 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,28 +1,31 @@
//
// ********************************************************************
// * DISCLAIMER *
// * License and Disclaimer *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * 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. *
// * 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 intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// * 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: PhysListEmG4v52.cc,v 1.2 2005/06/01 10:20:12 maire Exp $
// GEANT4 tag $Name: geant4-08-00 $
// $Id: PhysListEmG4v52.cc,v 1.3 2006/06/29 16:37:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

Some files were not shown because too many files have changed in this diff Show More