Import Geant4 4.1.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.6 2001/11/29 11:28:06 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.7 2002/05/31 17:10:34 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -20,8 +20,9 @@ G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
# for the aida-config command see the README file
|
||||
CPPFLAGS += `aida-config --useHBook --include`
|
||||
LDFLAGS += `aida-config --useHBook --lib`
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.15 2001/11/29 11:28:06 maire Exp $
|
||||
$Id: History,v 1.20 2002/06/05 17:57:27 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,24 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
05-06-02 mma (testem1-V04-00-03)
|
||||
-do not delete histos in destructor of RunAction
|
||||
|
||||
31-05-02 mma (testem1-V04-00-02)
|
||||
-old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README
|
||||
|
||||
08-03-02 mma (testem1-V04-00-01)
|
||||
- PhysicsList: unifomisation of the setG(E)Cut commands
|
||||
|
||||
06-02-02 mma (testem1-V04-00-00)
|
||||
|
||||
06-12-01 mma
|
||||
- In PrimaryGeneratorAction, possibility to fix the vertex at front face,
|
||||
and to randomize the beam spot.
|
||||
- command /gun/rndm in PrimaryGeneratorMessenger
|
||||
- similar functionality in geant3: gukine.F
|
||||
- change output precision in RunAction (+uglast.F)
|
||||
|
||||
29-11-01 mma (testem1-V03-02-02)
|
||||
- EventAction: DrawTrack "none"
|
||||
- small change in vis.mac
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $
|
||||
$Id: README,v 1.6 2002/05/31 17:10:34 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -42,7 +42,11 @@ $Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $
|
||||
in the PrimaryGeneratorAction class, and can be changed via the G4
|
||||
build-in commands of ParticleGun class (see the macros provided with
|
||||
this example).
|
||||
|
||||
|
||||
In addition one can choose randomly the impact point of the incident
|
||||
particle. The corresponding interactive command is built in
|
||||
PrimaryGeneratorMessenger class.
|
||||
|
||||
A RUN is a set of events.
|
||||
|
||||
|
||||
@@ -98,8 +102,24 @@ $Id: README,v 1.4 2001/10/26 12:51:21 maire Exp $
|
||||
2 : number of steps per track (charged particle)
|
||||
3 : step length (charged particle)
|
||||
|
||||
Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile.
|
||||
Currently, histograms in this example are implemented through the obsolete
|
||||
CLHEP/Hist package, which is no longer supported. The implementation will
|
||||
be replaced by direct call to the "analysis" module in a near future.
|
||||
Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile.
|
||||
|
||||
7- Using the Anaphe implementation of the AIDA 2.2 histograms:
|
||||
--------------------------------------------------------------
|
||||
|
||||
In order to use the Anaphe implementation of the AIDA 2.2 interfaces,
|
||||
prepare some environment variables by source-ing one of the following
|
||||
startup scripts (depending on your compiler version):
|
||||
|
||||
# gcc-2.95.2
|
||||
source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh
|
||||
|
||||
# egcs_1.1.2 (aka gcc 2.91.66)
|
||||
source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh
|
||||
|
||||
At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a
|
||||
more recent release, check http:/cern.ch/anaphe for more information.
|
||||
|
||||
After this, you will have access to the 'aida-config' command which
|
||||
is used in the GNUmakefile.
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: TestEm1.cc,v 1.7 2001/11/29 11:28:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: TestEm1.cc,v 1.8 2001/12/07 11:49:08 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -68,7 +68,7 @@ int main(int argc,char** argv) {
|
||||
Em1DetectorConstruction* det;
|
||||
runManager->SetUserInitialization(det = new Em1DetectorConstruction);
|
||||
runManager->SetUserInitialization(new Em1PhysicsList(det));
|
||||
runManager->SetUserAction(new Em1PrimaryGeneratorAction);
|
||||
runManager->SetUserAction(new Em1PrimaryGeneratorAction(det));
|
||||
|
||||
#ifdef Em1NoOptimize
|
||||
#ifdef G4VIS_USE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: TestEm1.in,v 1.3 2001/10/31 15:49:30 maire Exp $
|
||||
# $Id: TestEm1.in,v 1.4 2002/03/08 15:08:57 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 2.20 mm
|
||||
/calor/cutE 6.05 mum
|
||||
/run/particle/setGCut 2.20 mm
|
||||
/run/particle/setECut 6.05 mum
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-04-00 $
|
||||
(14-Dec-2001)
|
||||
Geant4 version $Name: geant4-04-01 $
|
||||
(28-Feb-2002)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
Visualization Manager instantiating...
|
||||
@@ -17,12 +17,12 @@ Current available graphics systems are:
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
#
|
||||
/calor/cutG 2.20 mm
|
||||
/calor/cutE 6.05 mum
|
||||
/run/particle/setGCut 2.20 mm
|
||||
/run/particle/setECut 6.05 mum
|
||||
#
|
||||
/run/initialize
|
||||
|
||||
***** Table : Nb of materials = 9 *****
|
||||
***** Table : Nb of materials = 11 *****
|
||||
|
||||
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 %
|
||||
@@ -44,27 +44,31 @@ Current available graphics systems are:
|
||||
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: 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.861 mm
|
||||
---> Element: Uranium Z = 82.0 N = 238.0 A = 238.03 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 %
|
||||
|
||||
|
||||
|
||||
The Box is 20 m of Aluminium
|
||||
Em1PhysicsList::SetCuts:CutLength : 1 (mm)
|
||||
|
||||
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
|
||||
Sandia crossSection below 50 KeV
|
||||
PhysicsTables from 50 keV to 50 MeV in 100 bins.
|
||||
phot: Total cross sections from Sandia parametrisation.
|
||||
Em1PhysicsList::SetCuts:CutLength : 1 mm
|
||||
|
||||
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
|
||||
Scattered gamma energy according Klein-Nishina.
|
||||
PhysicsTables from 10 keV to 100 GeV in 100 bins.
|
||||
PhysicsTables from 1 keV to 100 GeV in 80 bins.
|
||||
|
||||
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
|
||||
e+e- energies according Bethe-Heitler
|
||||
@@ -125,7 +129,9 @@ Cut in range
|
||||
liquidArgon 2.2 mm 6.05 mum
|
||||
Aluminium 2.2 mm 6.05 mum
|
||||
Silicon 2.2 mm 6.05 mum
|
||||
Germanium 2.2 mm 6.05 mum
|
||||
Iron 2.2 mm 6.05 mum
|
||||
Tungsten 2.2 mm 6.05 mum
|
||||
Lead 2.2 mm 6.05 mum
|
||||
Uranium 2.2 mm 6.05 mum
|
||||
Cut in energy
|
||||
@@ -135,9 +141,11 @@ Cut in energy
|
||||
liquidArgon 9.08 keV 3.98 keV
|
||||
Aluminium 9.99 keV 9.97 keV
|
||||
Silicon 10 keV 8.45 keV
|
||||
Germanium 31.6 keV 32.7 keV
|
||||
Iron 31.1 keV 43.3 keV
|
||||
Tungsten 139 keV 59.7 keV
|
||||
Lead 124 keV 42.8 keV
|
||||
Uranium 143 keV 53.4 keV
|
||||
Uranium 188 keV 56.1 keV
|
||||
===================================================
|
||||
#
|
||||
/process/eLoss/StepFunction 0.183 170 micrometer
|
||||
@@ -164,18 +172,18 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=16s Real=19s Sys=2.6s
|
||||
User=12s Real=23s Sys=2.8s
|
||||
|
||||
nb tracks/event neutral: 27.29 charged: 692.97
|
||||
nb steps/event neutral: 145.49 charged: 1331.63
|
||||
nb tracks/event neutral: 27.5700 charged: 695.0200
|
||||
nb steps/event neutral: 148.5400 charged: 1331.6000
|
||||
|
||||
nb of process calls per event:
|
||||
eIoni eBrem compt phot conv annihil
|
||||
1305.51 24.92 118.20 26.09 1.20 1.20
|
||||
eIoni eBrem phot compt conv annihil
|
||||
1305.3700 24.8300 26.1700 120.9700 1.4000 1.4000
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 640041358, 1353064269
|
||||
Current couple of seeds = 2126832091, 1419935556
|
||||
----------------------------------------
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
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.
|
||||
@@ -3,20 +3,30 @@
|
||||
*
|
||||
* Generates Kinematics for primary track
|
||||
*
|
||||
* Data card Kine : Itype Ekine
|
||||
* Data card Kine : Itype Ekine xbeam rbeam
|
||||
*
|
||||
#include "geant321/gcbank.inc"
|
||||
#include "geant321/gcflag.inc"
|
||||
#include "geant321/gckine.inc"
|
||||
#include "geant321/gckine.inc"
|
||||
#include "calor.inc"
|
||||
*
|
||||
DIMENSION VERTEX(3),PLAB(3)
|
||||
dimension rndm(3)
|
||||
*
|
||||
DATA VERTEX/3*0./
|
||||
DATA PLAB /3*0./
|
||||
*
|
||||
IF (PKINE(2).NE.0.) vertex(1) = -0.5*BoxSize
|
||||
*
|
||||
* random in YZ ?
|
||||
if ((pkine(3).lt.0.).or.(pkine(3).gt.1.)) pkine(3) = 0.
|
||||
rbeam = pkine(3)*0.5*BoxSize
|
||||
call GRNDM (rndm,2)
|
||||
*
|
||||
VERTEX(2) = (2*rndm(1)-1.)*rbeam
|
||||
VERTEX(3) = (2*rndm(2)-1.)*rbeam
|
||||
*
|
||||
CALL GSVERT(VERTEX,0,0,0,0,NVERT)
|
||||
*
|
||||
*
|
||||
JPA = LQ(JPART-IKINE)
|
||||
XMASS = Q(JPA+7)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
CALL GSMATE( 7,'Tungsten' ,183.85, 74., 19.30 , 0.35, 18.5, 0,0)
|
||||
CALL GSMATE( 8,'Lead' ,207.19, 82., 11.35 , 0.56, 18.5, 0,0)
|
||||
CALL GSMATE( 9,'Uranium' ,238.03, 92., 18.95 , 0.32, 12. , 0,0)
|
||||
*
|
||||
CALL GSMATE(10,'Germanium', 72.61, 32., 5.323 , 2.30, 16.6, 0,0)
|
||||
*
|
||||
* *** Defines USER tracking media parameters
|
||||
IFIELD = 0
|
||||
|
||||
@@ -40,6 +40,6 @@
|
||||
|
||||
760 FORMAT(//,1X,'nb of process calls per event: ',
|
||||
+ /,3X,12A9)
|
||||
761 FORMAT( 3X,12F9.2,//)
|
||||
761 FORMAT( 3X,12F9.4,//)
|
||||
*
|
||||
END
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1DetectorConstruction.hh,v 1.4 2001/10/26 12:51:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1DetectorConstruction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -64,7 +64,7 @@ class Em1DetectorConstruction : public G4VUserDetectorConstruction
|
||||
const
|
||||
G4VPhysicalVolume* GetWorld() {return pBox;};
|
||||
|
||||
G4double GeSize() {return BoxSize;};
|
||||
G4double GetSize() {return BoxSize;};
|
||||
G4Material* GetMaterial() {return aMaterial;};
|
||||
|
||||
void PrintParameters();
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1DetectorMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1EventAction.hh,v 1.5 2001/11/29 11:28:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1EventActionMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PhysicsList.hh,v 1.4 2001/10/26 12:51:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PhysicsList.hh,v 1.5 2002/03/08 13:43:29 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -59,7 +59,6 @@ class Em1PhysicsList: public G4VUserPhysicsList
|
||||
void SetGammaCut(G4double);
|
||||
void SetElectronCut(G4double);
|
||||
void SetProtonCut(G4double);
|
||||
void SetCutsByEnergy(G4double);
|
||||
void GetRange(G4double);
|
||||
|
||||
protected:
|
||||
@@ -75,6 +74,7 @@ class Em1PhysicsList: public G4VUserPhysicsList
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForProton;
|
||||
G4double currentDefaultCut;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PhysicsListMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PhysicsListMessenger.hh,v 1.5 2002/03/08 13:43:29 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -54,7 +54,6 @@ class Em1PhysicsListMessenger: public G4UImessenger
|
||||
G4UIcmdWithADoubleAndUnit* cutECmd;
|
||||
G4UIcmdWithADoubleAndUnit* cutPCmd;
|
||||
G4UIcmdWithADoubleAndUnit* rCmd;
|
||||
G4UIcmdWithADoubleAndUnit* eCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PrimaryGeneratorAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PrimaryGeneratorAction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -37,20 +37,27 @@
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
class Em1DetectorConstruction;
|
||||
class Em1PrimaryGeneratorMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class Em1PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
Em1PrimaryGeneratorAction();
|
||||
Em1PrimaryGeneratorAction(Em1DetectorConstruction*);
|
||||
~Em1PrimaryGeneratorAction();
|
||||
|
||||
public:
|
||||
void SetDefaultKinematic(G4int);
|
||||
void SetRndmBeam(G4double val) {rndmBeam = val;}
|
||||
void GeneratePrimaries(G4Event*);
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun; //pointer a to G4 service class
|
||||
G4ParticleGun* particleGun;
|
||||
Em1DetectorConstruction* Em1Detector;
|
||||
G4double rndmBeam;
|
||||
Em1PrimaryGeneratorMessenger* gunMessenger;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: Em1PrimaryGeneratorMessenger.hh,v 1.1 2001/12/07 11:49:09 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef Em1PrimaryGeneratorMessenger_h
|
||||
#define Em1PrimaryGeneratorMessenger_h 1
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em1PrimaryGeneratorAction;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADouble;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class Em1PrimaryGeneratorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
Em1PrimaryGeneratorMessenger(Em1PrimaryGeneratorAction*);
|
||||
~Em1PrimaryGeneratorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em1PrimaryGeneratorAction* Em1Action;
|
||||
G4UIcmdWithAnInteger* DefaultCmd;
|
||||
G4UIcmdWithADouble* RndmCmd;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1RunAction.hh,v 1.8 2001/11/29 11:28:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1RunAction.hh,v 1.9 2002/05/31 17:10:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
class G4Run;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
class ITree;
|
||||
class IHistogram1D;
|
||||
#endif
|
||||
|
||||
class Em1RunAction : public G4UserRunAction
|
||||
@@ -62,7 +62,7 @@ class Em1RunAction : public G4UserRunAction
|
||||
void CountProcesses(G4String);
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepHistogram* GetHisto(G4int id) {return histo[id];}
|
||||
IHistogram1D* GetHisto(G4int id) {return histo[id];}
|
||||
#endif
|
||||
|
||||
private:
|
||||
@@ -75,8 +75,8 @@ class Em1RunAction : public G4UserRunAction
|
||||
ProcessesCount* ProcCounter;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram* histo[3];
|
||||
ITree* tree;
|
||||
IHistogram1D* histo[3];
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1SteppingAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1SteppingVerbose.hh,v 1.7 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
// This class manages the verbose outputs in G4SteppingManager.
|
||||
// It inherits from G4SteppingVerbose.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1TrackingAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1VisManager.hh,v 1.4 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ProcessesCount.hh,v 1.7 2001/10/26 12:51:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# $Id: phot.mac,v 1.1 2002/02/06 13:57:58 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
#
|
||||
# PhotoElectricEffect; Gamma 1 Mev
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
/calor/setMat Germanium
|
||||
/calor/setSize 1 cm
|
||||
/calor/update
|
||||
#
|
||||
/gun/setDefault 1
|
||||
#
|
||||
/run/verbose 2
|
||||
#
|
||||
/gun/particle gamma
|
||||
/gun/energy 1 MeV
|
||||
/gun/rndm 0.8
|
||||
#
|
||||
/tracking/verbose 1
|
||||
#
|
||||
#/run/particle/applyCuts
|
||||
#
|
||||
#/run/beamOn 100000
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run01.mac,v 1.3 2001/10/31 15:36:43 maire Exp $
|
||||
# $Id: run01.mac,v 1.4 2002/03/08 13:43:27 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 95 cm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 95 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run02.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run02.mac,v 1.4 2002/03/08 13:43:27 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 95 cm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 95 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run03.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run03.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 95 cm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 95 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run04.mac,v 1.4 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run04.mac,v 1.5 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 100. micrometer
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 100 micrometer
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run05.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run05.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 2.2 mm
|
||||
/calor/cutE 95 cm
|
||||
/run/particle/setGCut 2.2 mm
|
||||
/run/particle/setECut 95 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run06.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run06.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 95 cm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 95 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run07.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run07.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 30 mm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 30 mm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run08.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run08.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 2.2 mm
|
||||
/calor/cutE 6.05 micrometer
|
||||
/run/particle/setGCut 2.2 mm
|
||||
/run/particle/setECut 6.05 micrometer
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run09.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run09.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 2.2 mm
|
||||
/calor/cutE 6.05 micrometer
|
||||
/run/particle/setGCut 2.2 mm
|
||||
/run/particle/setECut 6.05 micrometer
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run11.mac,v 1.3 2001/10/31 15:36:44 maire Exp $
|
||||
# $Id: run11.mac,v 1.4 2002/03/08 13:43:28 maire Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -7,8 +7,8 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
#
|
||||
/calor/cutG 95 cm
|
||||
/calor/cutE 17 cm
|
||||
/run/particle/setGCut 95 cm
|
||||
/run/particle/setECut 17 cm
|
||||
#
|
||||
/run/initialize
|
||||
#
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
//
|
||||
|
||||
//
|
||||
// $Id: Em1DetectorConstruction.cc,v 1.7 2001/11/29 11:28:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1DetectorConstruction.cc,v 1.9 2002/05/31 17:10:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -129,17 +129,25 @@ density = 2.330*g/cm3;
|
||||
a = 28.09*g/mole;
|
||||
G4Material* Si = new G4Material(name="Silicon" , z=14., a, density);
|
||||
|
||||
density = 5.323*g/cm3;
|
||||
a = 72.61*g/mole;
|
||||
G4Material* Ge = new G4Material(name="Germanium" , z=32., a, density);
|
||||
|
||||
density = 7.870*g/cm3;
|
||||
a = 55.85*g/mole;
|
||||
G4Material* Fe = new G4Material(name="Iron" , z=26., a, density);
|
||||
|
||||
density = 19.30*g/cm3;
|
||||
a = 183.85*g/mole;
|
||||
G4Material* W = new G4Material(name="Tungsten" , z=74., a, density);
|
||||
|
||||
density = 11.35*g/cm3;
|
||||
a = 207.19*g/mole;
|
||||
G4Material* Pb = new G4Material(name="Lead" , z=82., a, density);
|
||||
|
||||
density = 18.95*g/cm3;
|
||||
a = 238.03*g/mole;
|
||||
G4Material* U = new G4Material(name="Uranium" , z=82., a, density);
|
||||
G4Material* U = new G4Material(name="Uranium" , z=92., a, density);
|
||||
|
||||
|
||||
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1DetectorMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1EventAction.cc,v 1.6 2001/11/29 11:28:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1EventActionMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PhysicsList.cc,v 1.5 2001/10/26 12:51:25 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PhysicsList.cc,v 1.6 2002/03/08 13:43:29 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -54,13 +54,14 @@ Em1PhysicsList::Em1PhysicsList(Em1DetectorConstruction* p)
|
||||
{
|
||||
pDet = p;
|
||||
|
||||
defaultCutValue = 1.*mm;
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = defaultCutValue;
|
||||
cutForProton = defaultCutValue;
|
||||
|
||||
SetVerboseLevel(1);
|
||||
currentDefaultCut = defaultCutValue = 1.*mm;
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = defaultCutValue;
|
||||
cutForProton = defaultCutValue;
|
||||
|
||||
pMes = new Em1PhysicsListMessenger(this);
|
||||
|
||||
SetVerboseLevel(1);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -241,9 +242,18 @@ void Em1PhysicsList::ConstructGeneral()
|
||||
|
||||
void Em1PhysicsList::SetCuts()
|
||||
{
|
||||
// reactualise cutValues
|
||||
if (currentDefaultCut != defaultCutValue)
|
||||
{
|
||||
if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue;
|
||||
if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue;
|
||||
if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue;
|
||||
currentDefaultCut = defaultCutValue;
|
||||
}
|
||||
|
||||
if (verboseLevel >0){
|
||||
G4cout << "Em1PhysicsList::SetCuts:";
|
||||
G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl;
|
||||
G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
|
||||
// set cut values for gamma at first and for e- second and next for e+,
|
||||
@@ -288,39 +298,6 @@ void Em1PhysicsList::SetProtonCut(G4double val)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Em1PhysicsList::SetCutsByEnergy(G4double val)
|
||||
{
|
||||
G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable();
|
||||
G4Material* currMat = pDet->GetMaterial();
|
||||
|
||||
// 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
|
||||
G4ParticleDefinition* part;
|
||||
G4double cut;
|
||||
|
||||
part = theParticleTable->FindParticle("e-");
|
||||
cut = G4EnergyLossTables::GetRange(part,val,currMat);
|
||||
SetCutValue(cut, "e-");
|
||||
|
||||
part = theParticleTable->FindParticle("e+");
|
||||
cut = G4EnergyLossTables::GetRange(part,val,currMat);
|
||||
SetCutValue(cut, "e+");
|
||||
|
||||
// set cut values for proton and anti_proton before all other hadrons
|
||||
// because some processes for hadrons need cut values for proton/anti_proton
|
||||
part = theParticleTable->FindParticle("proton");
|
||||
cut = G4EnergyLossTables::GetRange(part,val,currMat);
|
||||
SetCutValue(cut, "proton");
|
||||
|
||||
part = theParticleTable->FindParticle("anti_proton");
|
||||
cut = G4EnergyLossTables::GetRange(part,val,currMat);
|
||||
SetCutValue(cut, "anti_proton");
|
||||
|
||||
SetCutValueForOthers(cut);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Em1PhysicsList::GetRange(G4double val)
|
||||
{
|
||||
G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable();
|
||||
@@ -330,10 +307,10 @@ void Em1PhysicsList::GetRange(G4double val)
|
||||
G4double cut;
|
||||
part = theParticleTable->FindParticle("e-");
|
||||
cut = G4EnergyLossTables::GetRange(part,val,currMat);
|
||||
G4cout << "material : " << currMat->GetName() << G4endl;
|
||||
G4cout << "particle : " << part->GetParticleName() << G4endl;
|
||||
G4cout << "energy : " << val / keV << " (keV)" << G4endl;
|
||||
G4cout << "range : " << cut / mm << " (mm)" << G4endl;
|
||||
G4cout << "material : " << currMat->GetName() << G4endl;
|
||||
G4cout << "particle : " << part->GetParticleName() << G4endl;
|
||||
G4cout << "energy : " << G4BestUnit(val,"Energy") << G4endl;
|
||||
G4cout << "range : " << G4BestUnit(cut,"Length") << G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PhysicsListMessenger.cc,v 1.5 2001/10/31 15:36:45 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PhysicsListMessenger.cc,v 1.6 2002/03/08 13:43:30 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -40,36 +40,29 @@
|
||||
Em1PhysicsListMessenger::Em1PhysicsListMessenger(Em1PhysicsList* EvAct)
|
||||
:physList(EvAct)
|
||||
{
|
||||
cutGCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutG",this);
|
||||
cutGCmd->SetGuidance("Set cut values by RANGE for Gamma.");
|
||||
cutGCmd->SetParameterName("range",false);
|
||||
cutGCmd->SetRange("range>0.");
|
||||
cutGCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this);
|
||||
cutGCmd->SetGuidance("Set gamma cut.");
|
||||
cutGCmd->SetParameterName("Gcut",false);
|
||||
cutGCmd->SetRange("Gcut>0.");
|
||||
cutGCmd->SetUnitCategory("Length");
|
||||
cutGCmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this);
|
||||
cutECmd->SetGuidance("Set cut values by RANGE for e- e+.");
|
||||
cutECmd->SetParameterName("range",false);
|
||||
cutECmd->SetRange("range>0.");
|
||||
cutECmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setECut",this);
|
||||
cutECmd->SetGuidance("Set electron cut");
|
||||
cutECmd->SetParameterName("Ecut",false);
|
||||
cutECmd->SetRange("Ecut>0.");
|
||||
cutECmd->SetUnitCategory("Length");
|
||||
cutECmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this);
|
||||
cutPCmd->SetGuidance("Set cut values by RANGE for proton and others.");
|
||||
cutPCmd->SetParameterName("range",false);
|
||||
cutPCmd->SetRange("range>0.");
|
||||
cutPCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setPCut",this);
|
||||
cutPCmd->SetGuidance("Set proton cut.");
|
||||
cutPCmd->SetParameterName("Pcut",false);
|
||||
cutPCmd->SetRange("Pcut>0.");
|
||||
cutPCmd->SetUnitCategory("Length");
|
||||
cutPCmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this);
|
||||
eCmd->SetGuidance("Set cut values by ENERGY for charged particles.");
|
||||
eCmd->SetParameterName("energy",false);
|
||||
eCmd->SetRange("energy>0.");
|
||||
eCmd->SetUnitCategory("Energy");
|
||||
eCmd->AvailableForStates(Idle);
|
||||
|
||||
rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this);
|
||||
rCmd->SetGuidance("Display the RANGE of Electron for the current material.");
|
||||
rCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/getRange",this);
|
||||
rCmd->SetGuidance("get the electron cut for the current material.");
|
||||
rCmd->SetParameterName("energy",false);
|
||||
rCmd->SetRange("energy>0.");
|
||||
rCmd->SetUnitCategory("Energy");
|
||||
@@ -84,7 +77,6 @@ Em1PhysicsListMessenger::~Em1PhysicsListMessenger()
|
||||
delete cutECmd;
|
||||
delete cutPCmd;
|
||||
delete rCmd;
|
||||
delete eCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -95,11 +87,9 @@ void Em1PhysicsListMessenger::SetNewValue(G4UIcommand* command,
|
||||
if(command == cutGCmd)
|
||||
{physList->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));}
|
||||
if(command == cutECmd)
|
||||
{physList->SetElectronCut(eCmd->GetNewDoubleValue(newValue));}
|
||||
{physList->SetElectronCut(cutECmd->GetNewDoubleValue(newValue));}
|
||||
if(command == cutPCmd)
|
||||
{physList->SetProtonCut(eCmd->GetNewDoubleValue(newValue));}
|
||||
if(command == eCmd)
|
||||
{physList->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));}
|
||||
{physList->SetProtonCut(cutPCmd->GetNewDoubleValue(newValue));}
|
||||
if(command == rCmd)
|
||||
{physList->GetRange(rCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1PrimaryGeneratorAction.cc,v 1.4 2001/10/26 12:51:25 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1PrimaryGeneratorAction.cc,v 1.5 2001/12/07 11:49:09 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -31,26 +31,27 @@
|
||||
|
||||
#include "Em1PrimaryGeneratorAction.hh"
|
||||
|
||||
#include "Em1DetectorConstruction.hh"
|
||||
#include "Em1PrimaryGeneratorMessenger.hh"
|
||||
|
||||
#include "G4Event.hh"
|
||||
#include "G4ParticleGun.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction()
|
||||
Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction(
|
||||
Em1DetectorConstruction* Em1DC)
|
||||
:Em1Detector(Em1DC)
|
||||
{
|
||||
G4int n_particle = 1;
|
||||
particleGun = new G4ParticleGun(n_particle);
|
||||
|
||||
// default particle kinematic
|
||||
|
||||
G4ParticleDefinition* particle
|
||||
= G4ParticleTable::GetParticleTable()->FindParticle("e-");
|
||||
particleGun->SetParticleDefinition(particle);
|
||||
particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.));
|
||||
particleGun->SetParticleEnergy(100*MeV);
|
||||
particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm));
|
||||
particleGun = new G4ParticleGun(1);
|
||||
SetDefaultKinematic(0);
|
||||
rndmBeam = 0.;
|
||||
|
||||
//create a messenger for this class
|
||||
gunMessenger = new Em1PrimaryGeneratorMessenger(this);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -58,13 +59,42 @@ Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction()
|
||||
Em1PrimaryGeneratorAction::~Em1PrimaryGeneratorAction()
|
||||
{
|
||||
delete particleGun;
|
||||
delete gunMessenger;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Em1PrimaryGeneratorAction::SetDefaultKinematic(G4int front)
|
||||
{
|
||||
G4ParticleDefinition* particle
|
||||
= G4ParticleTable::GetParticleTable()->FindParticle("e-");
|
||||
particleGun->SetParticleDefinition(particle);
|
||||
particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.));
|
||||
particleGun->SetParticleEnergy(100*MeV);
|
||||
G4double position = 0.*cm;
|
||||
if (front) position = -0.5*(Em1Detector->GetSize());
|
||||
particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Em1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
{
|
||||
//this function is called at the begining of event
|
||||
//
|
||||
//randomize the beam, if requested.
|
||||
if (rndmBeam > 0.)
|
||||
{
|
||||
G4ThreeVector oldPosition = particleGun->GetParticlePosition();
|
||||
G4double rbeam = 0.5*(Em1Detector->GetSize())*rndmBeam;
|
||||
G4double x0 = oldPosition.x();
|
||||
G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam;
|
||||
G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam;
|
||||
particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0));
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
particleGun->SetParticlePosition(oldPosition);
|
||||
}
|
||||
else particleGun->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: Em1PrimaryGeneratorMessenger.cc,v 1.1 2001/12/07 11:49:10 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "Em1PrimaryGeneratorMessenger.hh"
|
||||
|
||||
#include "Em1PrimaryGeneratorAction.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWithADouble.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Em1PrimaryGeneratorMessenger::Em1PrimaryGeneratorMessenger(
|
||||
Em1PrimaryGeneratorAction* Em1Gun)
|
||||
:Em1Action(Em1Gun)
|
||||
{
|
||||
DefaultCmd = new G4UIcmdWithAnInteger("/gun/setDefault",this);
|
||||
DefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator");
|
||||
DefaultCmd->SetGuidance("0=boxCenter, else=frontFace");
|
||||
DefaultCmd->SetParameterName("position",true);
|
||||
DefaultCmd->SetDefaultValue(0);
|
||||
DefaultCmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
RndmCmd = new G4UIcmdWithADouble("/gun/rndm",this);
|
||||
RndmCmd->SetGuidance("random lateral extension on the beam");
|
||||
RndmCmd->SetGuidance("in fraction of 0.5*sizeYZ");
|
||||
RndmCmd->SetParameterName("rBeam",false);
|
||||
RndmCmd->SetRange("rBeam>=0.&&rBeam<=1.");
|
||||
RndmCmd->AvailableForStates(Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Em1PrimaryGeneratorMessenger::~Em1PrimaryGeneratorMessenger()
|
||||
{
|
||||
delete DefaultCmd;
|
||||
delete RndmCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void Em1PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,
|
||||
G4String newValue)
|
||||
{
|
||||
if (command == DefaultCmd)
|
||||
{Em1Action->SetDefaultKinematic(DefaultCmd->GetNewIntValue(newValue));}
|
||||
|
||||
if (command == RndmCmd)
|
||||
{Em1Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1RunAction.cc,v 1.13 2001/11/29 11:28:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1RunAction.cc,v 1.16 2002/06/03 13:49:28 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -43,18 +43,22 @@
|
||||
#include "Randomize.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#include "AIDA/IAnalysisFactory.h"
|
||||
#include "AIDA/ITreeFactory.h"
|
||||
#include "AIDA/ITree.h"
|
||||
#include "AIDA/IHistogramFactory.h"
|
||||
#include "AIDA/IHistogram1D.h"
|
||||
#include "AIDA/IAxis.h"
|
||||
#include "AIDA/IAnnotation.h"
|
||||
#include "AIDA/ITupleFactory.h"
|
||||
#include "AIDA/ITuple.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
Em1RunAction::Em1RunAction()
|
||||
: ProcCounter(0)
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = 0;
|
||||
#endif
|
||||
}
|
||||
{ }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -68,15 +72,30 @@ Em1RunAction::~Em1RunAction()
|
||||
void Em1RunAction::bookHisto()
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = new HBookFile("testem1.paw", 68);
|
||||
// Creating the analysis factory
|
||||
IAnalysisFactory* af = AIDA_createAnalysisFactory();
|
||||
|
||||
// Creating the tree factory
|
||||
ITreeFactory* tf = af->createTreeFactory();
|
||||
|
||||
// Creating a tree mapped to an hbook file.
|
||||
tree = tf->create("testem1.paw", false, false, "hbook");
|
||||
|
||||
// booking histograms
|
||||
histo[0] = hbookManager->histogram
|
||||
("track length (mm) of a charged particle",100,0.,50*cm);
|
||||
histo[1] = hbookManager->histogram
|
||||
("Nb of steps per track (charged particle)",100,0.,100.);
|
||||
histo[2] = hbookManager->histogram
|
||||
("step length (mm) charged particle",100,0.,10*mm);
|
||||
// Creating a histogram factory, whose histograms will be handled by the tree
|
||||
IHistogramFactory* hf = af->createHistogramFactory(*tree);
|
||||
|
||||
|
||||
// booking histograms
|
||||
histo[0] = hf->create1D("1","track length (mm) of a charged particle",
|
||||
100,0.,50*cm);
|
||||
histo[1] = hf->create1D("2","Nb of steps per track (charged particle)",
|
||||
100,0.,100.);
|
||||
histo[2] = hf->create1D("3","step length (mm) charged particle",
|
||||
100,0.,10*mm);
|
||||
|
||||
delete hf;
|
||||
delete tf;
|
||||
delete af;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -85,10 +104,10 @@ void Em1RunAction::bookHisto()
|
||||
void Em1RunAction::cleanHisto()
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
// writing histogram file
|
||||
hbookManager->write();
|
||||
delete [] histo;
|
||||
delete hbookManager;
|
||||
tree->commit(); // Writing the histograms to the file
|
||||
tree->close(); // and closing the tree (and the file)
|
||||
|
||||
delete tree;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -136,24 +155,24 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
G4double dNbOfEvents = double(NbOfEvents);
|
||||
|
||||
G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield);
|
||||
G4int oldprec = G4cout.precision(2);
|
||||
G4int oldprec = G4cout.precision(4);
|
||||
|
||||
G4cout << "\n nb tracks/event"
|
||||
<< " neutral: " << G4std::setw(7) << NbOfTraks0/dNbOfEvents
|
||||
<< " charged: " << G4std::setw(7) << NbOfTraks1/dNbOfEvents
|
||||
<< " neutral: " << G4std::setw(10) << NbOfTraks0/dNbOfEvents
|
||||
<< " charged: " << G4std::setw(10) << NbOfTraks1/dNbOfEvents
|
||||
<< "\n nb steps/event"
|
||||
<< " neutral: " << G4std::setw(7) << NbOfSteps0/dNbOfEvents
|
||||
<< " charged: " << G4std::setw(7) << NbOfSteps1/dNbOfEvents
|
||||
<< " neutral: " << G4std::setw(10) << NbOfSteps0/dNbOfEvents
|
||||
<< " charged: " << G4std::setw(10) << NbOfSteps1/dNbOfEvents
|
||||
<< G4endl;
|
||||
|
||||
//frequency of processes call
|
||||
G4cout << "\n nb of process calls per event: \n ";
|
||||
for (size_t i=0; i< ProcCounter->size();i++)
|
||||
G4cout << G4std::setw(9) << (*ProcCounter)[i]->GetName();
|
||||
G4cout << G4std::setw(12) << (*ProcCounter)[i]->GetName();
|
||||
|
||||
G4cout << "\n ";
|
||||
for (size_t j=0; j< ProcCounter->size();j++)
|
||||
G4cout << G4std::setw(9) << ((*ProcCounter)[j]->GetCounter())
|
||||
G4cout << G4std::setw(12) << ((*ProcCounter)[j]->GetCounter())
|
||||
/dNbOfEvents;
|
||||
G4cout << G4endl;
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em1SteppingAction.cc,v 1.7 2001/10/26 12:51:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1SteppingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "G4VProcess.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#include "AIDA/IHistogram1D.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -64,7 +64,7 @@ void Em1SteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
G4double steplen = aStep->GetStepLength();
|
||||
|
||||
#ifndef G4NOHIST
|
||||
if (charge != 0.) runAction->GetHisto(2)->accumulate(steplen);
|
||||
if (charge != 0.) runAction->GetHisto(2)->fill(steplen);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1SteppingVerbose.cc,v 1.8 2001/10/26 12:51:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
//
|
||||
|
||||
//
|
||||
// $Id: Em1TrackingAction.cc,v 1.7 2001/10/26 12:51:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em1TrackingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "G4Track.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#include "AIDA/IHistogram1D.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -59,8 +59,8 @@ void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack)
|
||||
{runAction->CountTraks0(1); runAction->CountSteps0(nbSteps);}
|
||||
else {runAction->CountTraks1(1); runAction->CountSteps1(nbSteps);
|
||||
#ifndef G4NOHIST
|
||||
runAction->GetHisto(0)->accumulate(Trleng);
|
||||
runAction->GetHisto(1)->accumulate((float)nbSteps);
|
||||
runAction->GetHisto(0)->fill(Trleng);
|
||||
runAction->GetHisto(1)->fill((float)nbSteps);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em1VisManager.cc,v 1.6 2001/11/15 13:09:44 johna Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.4 2001/11/27 17:01:17 gcosmo Exp $
|
||||
$Id: History,v 1.5 2002/06/11 16:12:58 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,9 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
11 Jun. 2002 Vladimir Grichine (testem10-V04-00-00)
|
||||
- new TestEm10.in and TestEm10.largr_N.in
|
||||
|
||||
27 Nov. 2001 Gabriele Cosmo (TestEm10-V03-02-01)
|
||||
- Corrected README.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TestEm10.cc,v 1.2 2001/07/11 09:57:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
@@ -5,38 +5,8 @@
|
||||
/run/initialize
|
||||
/run/particle/dumpCutValues
|
||||
/gun/particle e-
|
||||
/gun/energy 9000.0 MeV
|
||||
|
||||
# Test G4FoamXrayTRmodel
|
||||
/XTRdetector/setModel 1
|
||||
/gun/energy 9 GeV
|
||||
/run/beamOn 1000
|
||||
# Test G4FoamXTRdEdx
|
||||
/XTRdetector/setModel 2
|
||||
/run/beamOn 10
|
||||
# Test G4GamDistrXrayTRmodel
|
||||
/XTRdetector/setModel 3
|
||||
/run/beamOn 10
|
||||
# Test G4GamDistrXTRdEdx
|
||||
/XTRdetector/setModel 4
|
||||
/run/beamOn 10
|
||||
# Test G4IrregularXrayTRmodel
|
||||
/XTRdetector/setModel 5
|
||||
/run/beamOn 10
|
||||
# Test G4IrregularXTRdEdx
|
||||
/XTRdetector/setModel 6
|
||||
/run/beamOn 10
|
||||
# Test G4PlateIrrGasXrayTRmodel
|
||||
/XTRdetector/setModel 7
|
||||
/run/beamOn 10
|
||||
# Test G4PlateIrrGasXTRdEdx
|
||||
/XTRdetector/setModel 8
|
||||
/run/beamOn 10
|
||||
# Test G4RegularXrayTRmodel
|
||||
/XTRdetector/setModel 9
|
||||
/run/beamOn 10
|
||||
# Test G4RegularXTRdEdx
|
||||
/XTRdetector/setModel 10
|
||||
/run/beamOn 10
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,42 +1,13 @@
|
||||
#
|
||||
# Macro file 'TestEm10.large_N.in' for testing "TestEm10"
|
||||
# Macro file 'TestEm10.in' for testing "TestEm10"
|
||||
#
|
||||
#
|
||||
/run/initialize
|
||||
/run/particle/dumpCutValues
|
||||
/gun/particle e-
|
||||
/gun/energy 9000.0 MeV
|
||||
|
||||
# Test G4FoamXrayTRmodel
|
||||
/XTRdetector/setModel 1
|
||||
/run/beamOn 1000
|
||||
# Test G4FoamXTRdEdx
|
||||
/XTRdetector/setModel 2
|
||||
/run/beamOn 1000
|
||||
# Test G4GamDistrXrayTRmodel
|
||||
/XTRdetector/setModel 3
|
||||
/run/beamOn 1000
|
||||
# Test G4GamDistrXTRdEdx
|
||||
/XTRdetector/setModel 4
|
||||
/run/beamOn 1000
|
||||
# Test G4IrregularXrayTRmodel
|
||||
/XTRdetector/setModel 5
|
||||
/run/beamOn 1000
|
||||
# Test G4IrregularXTRdEdx
|
||||
/XTRdetector/setModel 6
|
||||
/run/beamOn 1000
|
||||
# Test G4PlateIrrGasXrayTRmodel
|
||||
/XTRdetector/setModel 7
|
||||
/run/beamOn 1000
|
||||
# Test G4PlateIrrGasXTRdEdx
|
||||
/XTRdetector/setModel 8
|
||||
/run/beamOn 1000
|
||||
# Test G4RegularXrayTRmodel
|
||||
/XTRdetector/setModel 9
|
||||
/run/beamOn 1000
|
||||
# Test G4RegularXTRdEdx
|
||||
/XTRdetector/setModel 10
|
||||
/run/beamOn 1000
|
||||
/gun/energy 9 GeV
|
||||
/run/beamOn 10000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-04-00 $
|
||||
Geant4 version $Name: geant4-04-01 $
|
||||
(29-Jun-2001)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
h/file 1 g4.p11
|
||||
h/pl 1
|
||||
fort/file 66 el.ps
|
||||
meta 66 -111
|
||||
h/pl 1
|
||||
close 66
|
||||
q
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10CalorHit.hh,v 1.2 2001/07/11 09:57:19 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10CalorimeterSD.hh,v 1.2 2001/07/11 09:57:19 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10DetectorConstruction.hh,v 1.4 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em10DetectorConstruction.hh,v 1.5 2002/02/05 11:06:37 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -65,7 +65,9 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
void SetGasGapThickness(G4double);
|
||||
|
||||
void SetFoilNumber (G4int i){fFoilNumber=i;};
|
||||
void SetFoilNumber (G4int i) {fFoilNumber = i; };
|
||||
void SetAlphaPlate (G4double val){fAlphaPlate = val;};
|
||||
void SetAlphaGas (G4double val){fAlphaGas = val;};
|
||||
|
||||
void SetWorldMaterial(G4String);
|
||||
void SetWorldSizeZ(G4double);
|
||||
@@ -96,7 +98,14 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction
|
||||
const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;};
|
||||
const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;};
|
||||
G4LogicalVolume* GetLogicalAbsorber() {return logicAbsorber;};
|
||||
|
||||
|
||||
G4LogicalVolume* GetLogicalRadiator() {return logicRadiator;};
|
||||
G4double GetFoilThick() {return fRadThickness;};
|
||||
G4double GetGasThick() {return fGasGap;};
|
||||
G4int GetFoilNumber() {return fFoilNumber;};
|
||||
G4Material* GetFoilMaterial() {return fFoilMat;};
|
||||
G4Material* GetGasMaterial() {return fGasMat;};
|
||||
|
||||
private:
|
||||
|
||||
G4bool worldchanged;
|
||||
@@ -113,6 +122,9 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction
|
||||
G4Material* fGapMat ;
|
||||
G4double fGapThick ;
|
||||
|
||||
G4double fAlphaPlate ;
|
||||
G4double fAlphaGas ;
|
||||
|
||||
|
||||
G4double zAbsorber ;
|
||||
G4double zstartAbs , zendAbs ;
|
||||
@@ -139,38 +151,41 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction
|
||||
G4LogicalVolume* logicRadiator;
|
||||
G4VPhysicalVolume* physiRadiator;
|
||||
|
||||
G4Material* fRadiatorMat; //pointer to the TR radiator material
|
||||
G4Material* fRadiatorMat; // pointer to the mixed TR radiator material
|
||||
G4Material* fFoilMat; // pointer to the TR foil radiator material
|
||||
G4Material* fGasMat; // pointer to the TR gas radiator material
|
||||
|
||||
G4double fRadThickness ;
|
||||
G4double fGasGap ;
|
||||
G4double fRadThickness ;
|
||||
G4double fGasGap ;
|
||||
G4double foilGasRatio ;
|
||||
|
||||
G4int fFoilNumber ;
|
||||
G4int fModelNumber ; // selection of parametrisation model1-10
|
||||
G4int fFoilNumber ;
|
||||
G4int fModelNumber ; // selection of parametrisation model1-10
|
||||
|
||||
G4double fDetThickness ;
|
||||
G4double fDetLength ;
|
||||
G4double fDetGap ;
|
||||
G4double fDetThickness ;
|
||||
G4double fDetLength ;
|
||||
G4double fDetGap ;
|
||||
|
||||
G4double fStartR ;
|
||||
G4double fStartZ ;
|
||||
G4double fStartR ;
|
||||
G4double fStartZ ;
|
||||
|
||||
G4int fModuleNumber ; // the number of Rad-Det modules
|
||||
G4int fModuleNumber ; // the number of Rad-Det modules
|
||||
|
||||
G4Box* solidAbsorber; //pointer to the solid Absorber
|
||||
G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber
|
||||
G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber
|
||||
G4Box* solidAbsorber; //pointer to the solid Absorber
|
||||
G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber
|
||||
G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber
|
||||
|
||||
G4UniformMagField* magField; //pointer to the magnetic field
|
||||
G4UniformMagField* magField; //pointer to the magnetic field
|
||||
|
||||
Em10DetectorMessenger* detectorMessenger; //pointer to the Messenger
|
||||
Em10CalorimeterSD* calorimeterSD; //pointer to the sensitive detector
|
||||
G4VXrayTRmodel* fXTRModel ;
|
||||
Em10DetectorMessenger* detectorMessenger; //pointer to the Messenger
|
||||
Em10CalorimeterSD* calorimeterSD; //pointer to the sensitive detector
|
||||
G4VXrayTRmodel* fXTRModel ;
|
||||
|
||||
private:
|
||||
private:
|
||||
|
||||
void DefineMaterials();
|
||||
void ComputeCalorParameters();
|
||||
G4VPhysicalVolume* ConstructCalorimeter();
|
||||
void DefineMaterials();
|
||||
void ComputeCalorParameters();
|
||||
G4VPhysicalVolume* ConstructCalorimeter();
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10DetectorMessenger.hh,v 1.3 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10EventAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10EventActionMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PhysicsList.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
|
||||
#ifndef Em10PhysicsList_h
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PhysicsListMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10RunAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
//
|
||||
// $Id: Em10RunMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10StepCut.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingAction.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingMessenger.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingVerbose.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10VisManager.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TRTDetectorConstruction.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TRTMaterials.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
h/file 1 g4.p11
|
||||
h/pl 1
|
||||
fort/file 66 dEdx.eps
|
||||
meta 66 -113
|
||||
h/pl 1
|
||||
close 66
|
||||
q
|
||||
@@ -13,24 +13,24 @@
|
||||
# Xe55He15CH4, Xe10CH4, Xe20CH4, Xe5CH4, Xe20CO2, Kr20CO2
|
||||
# Kr7CH4, Ar7CH4, XeArCH4
|
||||
#
|
||||
/XTRdetector/setAbsMat Xe20CO2
|
||||
/XTRdetector/setAbsThick 3.0 mm
|
||||
/XTRdetector/setWorldZ 4000.0 mm
|
||||
#/XTRdetector/setAbsMat Xe10CH4
|
||||
#/XTRdetector/setAbsThick 30.0 mm
|
||||
#/XTRdetector/setWorldZ 4000.0 mm
|
||||
#
|
||||
# Parameters of Radiator (default mm)
|
||||
# TRT_CH2, Radiator, CarbonFiber, Li, Be, Mylar, Kapton ?, CH2
|
||||
# Air, CO2, He, Ne, Kr, Ar, Xe,
|
||||
#
|
||||
/XTRdetector/setRadMat CH2
|
||||
/XTRdetector/setWorldMat Air
|
||||
/XTRdetector/setRadThick 0.02 mm
|
||||
/XTRdetector/setGasGapThick 0.2 mm
|
||||
/XTRdetector/setFoilNum 200
|
||||
#/XTRdetector/setRadMat Li
|
||||
#/XTRdetector/setWorldMat He
|
||||
#/XTRdetector/setRadThick 0.04 mm
|
||||
#/XTRdetector/setGasGapThick 0.126 mm
|
||||
#/XTRdetector/setFoilNum 300
|
||||
#
|
||||
# Selection of XTR parametrisation model: 1-10
|
||||
# TRmodel/XTRdEdx: Foam 1/2, GamDistr 3/4, Irr 5/6, Plate 7/8, Reg 9/10
|
||||
# TRmodel/XTRdEdx: Foam 1/2, GamDistr 3/4, Irr 5/6, Plate 7/8, Reg 9/10, no model 0
|
||||
#
|
||||
/XTRdetector/setModel 10
|
||||
#/XTRdetector/setModel 0
|
||||
#
|
||||
# Update geometry after changing its parametrs
|
||||
#
|
||||
@@ -39,9 +39,9 @@
|
||||
# PLOT: energy deposit distribution in absorber (g4.11)
|
||||
#
|
||||
/plots/sethistName g4.p11
|
||||
/plots/setnbinEn 40
|
||||
/plots/setnbinEn 73
|
||||
/plots/setEnlow 0.0 MeV
|
||||
/plots/setEnhigh 0.02 MeV
|
||||
/plots/setEnhigh 0.011 MeV
|
||||
#
|
||||
#
|
||||
/run/initialize
|
||||
@@ -50,13 +50,15 @@
|
||||
# Particle and its energy
|
||||
#
|
||||
/gun/particle e-
|
||||
/gun/energy 3000.0 MeV
|
||||
#
|
||||
/gun/energy 40000.0 MeV
|
||||
#/gun/particle proton
|
||||
#/gun/energy 10000.0 GeV
|
||||
#
|
||||
#/tracking/verbose 2
|
||||
#/tracking/verbose 6
|
||||
#
|
||||
/event/printModulo 100
|
||||
/run/beamOn 1000
|
||||
/event/printModulo 500
|
||||
/run/beamOn 5000
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10CalorHit.cc,v 1.2 2001/07/11 09:57:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10CalorimeterSD.cc,v 1.2 2001/07/11 09:57:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10DetectorConstruction.cc,v 1.7 2001/11/21 18:48:56 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em10DetectorConstruction.cc,v 1.8 2002/02/05 11:06:38 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -73,16 +73,27 @@ Em10DetectorConstruction::Em10DetectorConstruction()
|
||||
{
|
||||
// default parameter values of the calorimeter
|
||||
|
||||
WorldSizeZ = 80.*cm;
|
||||
|
||||
G4double inch = 2.54*cm ;
|
||||
G4double mil = inch/1000.0 ;
|
||||
|
||||
WorldSizeZ = 200.*cm;
|
||||
WorldSizeR = 20.*cm;
|
||||
|
||||
// Radiator and detector parameters
|
||||
|
||||
fRadThickness = 40.0*micrometer ; // 25*micrometer ;
|
||||
fGasGap = 0.126*mm ; // 1500*micrometer ;
|
||||
fFoilNumber = 300 ; // 188 ;
|
||||
|
||||
AbsorberThickness = 3.0*cm ; // 40.0*mm ;
|
||||
fRadThickness = 0.0127*mm ; // 25*micrometer ;
|
||||
fGasGap = 0.762*mm ; // 1500*micrometer ;
|
||||
foilGasRatio = fRadThickness/(fRadThickness+fGasGap) ;
|
||||
fFoilNumber = 100 ; // 188 ;
|
||||
|
||||
fAlphaPlate = 160.0 ;
|
||||
fAlphaGas = 160.0 ;
|
||||
fModelNumber = 0 ;
|
||||
|
||||
|
||||
AbsorberThickness = 15.0*mm ; // 40.0*mm ;
|
||||
|
||||
AbsorberRadius = 10.*cm;
|
||||
zAbsorber = 36.*cm ;
|
||||
@@ -94,10 +105,11 @@ Em10DetectorConstruction::Em10DetectorConstruction()
|
||||
|
||||
fDetThickness = 40.0*mm ;
|
||||
fDetLength = 200.0*cm ;
|
||||
fDetGap = 1.0*mm ;
|
||||
fDetGap = 0.01*mm ;
|
||||
|
||||
fStartR = 40.0*cm ;
|
||||
fStartZ = 50.0*mm ;
|
||||
|
||||
fStartR = 40*cm ;
|
||||
fStartZ = 100.0*mm ;
|
||||
|
||||
fModuleNumber = 1 ;
|
||||
|
||||
@@ -134,10 +146,10 @@ void Em10DetectorConstruction::DefineMaterials()
|
||||
{
|
||||
//This function illustrates the possible ways to define materials
|
||||
|
||||
G4String name, symbol ; //a =mass of a mole;
|
||||
G4double a, z, density ; //z =mean number of protons;
|
||||
//G4int iz, n, nel ; //iz=number of protons in an isotope;
|
||||
//n =number of nucleons in an isotope;
|
||||
G4String name, symbol ; //a =mass of a mole;
|
||||
G4double a, z ; //z =mean number of protons;
|
||||
G4double density, foilDensity, gasDensity, totDensity ;
|
||||
G4double fractionFoil, fractionGas ;
|
||||
G4int nel ;
|
||||
|
||||
//G4int ncomponents, natoms;
|
||||
@@ -241,8 +253,8 @@ void Em10DetectorConstruction::DefineMaterials()
|
||||
Kapton->AddElement(elH,4);
|
||||
|
||||
// Polypropelene
|
||||
|
||||
G4Material* CH2 = new G4Material ("Polypropelene" , 0.91*g/cm3, 2);
|
||||
|
||||
G4Material* CH2 = new G4Material ("CH2" , 0.91*g/cm3, 2);
|
||||
CH2->AddElement(elH,2);
|
||||
CH2->AddElement(elC,1);
|
||||
|
||||
@@ -280,10 +292,10 @@ void Em10DetectorConstruction::DefineMaterials()
|
||||
a = 131.29*g/mole ;
|
||||
G4Material* Xe = new G4Material(name="Xenon",z=54., a, density );
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Hydrocarbones, metane and others
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Hydrocarbones, metane and others
|
||||
|
||||
// Metane, STP
|
||||
|
||||
density = 0.7174*mg/cm3 ;
|
||||
@@ -304,13 +316,14 @@ void Em10DetectorConstruction::DefineMaterials()
|
||||
G4Material* isobutane = new G4Material(name="isoC4H10",density,nel=2) ;
|
||||
isobutane->AddElement(elC,4) ;
|
||||
isobutane->AddElement(elH,10) ;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Molecular gases
|
||||
|
||||
// Carbon dioxide
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Molecular gases
|
||||
|
||||
// Carbon dioxide, STP
|
||||
|
||||
density = 1.977*mg/cm3;
|
||||
G4Material* CO2 = new G4Material(name="CO2", density, nel=2,
|
||||
kStateGas,273.15*kelvin,1.*atmosphere);
|
||||
@@ -415,21 +428,64 @@ void Em10DetectorConstruction::DefineMaterials()
|
||||
ncomponents=2);
|
||||
Xe20CH4->AddMaterial( Xe, fractionmass = 0.97 ) ;
|
||||
Xe20CH4->AddMaterial( metane, fractionmass = 0.03 ) ;
|
||||
|
||||
|
||||
|
||||
// 93% Ar + 7% CH4, STP ; NIM 107 (1973) 413-422
|
||||
|
||||
density = 1.709*mg/cm3 ;
|
||||
G4Material* Ar7CH4 = new G4Material(name="Ar7CH4" , density,
|
||||
ncomponents=2);
|
||||
Ar7CH4->AddMaterial( Argon, fractionmass = 0.971 ) ;
|
||||
Ar7CH4->AddMaterial( metane, fractionmass = 0.029 ) ;
|
||||
|
||||
// 93% Kr + 7% CH4, STP ; NIM 107 (1973) 413-422
|
||||
|
||||
density = 3.491*mg/cm3 ;
|
||||
G4Material* Kr7CH4 = new G4Material(name="Kr7CH4" , density,
|
||||
ncomponents=2);
|
||||
Kr7CH4->AddMaterial( Kr, fractionmass = 0.986 ) ;
|
||||
Kr7CH4->AddMaterial( metane, fractionmass = 0.014 ) ;
|
||||
|
||||
// 0.5*(95% Xe + 5% CH4)+0.5*(93% Ar + 7% CH4), STP ; NIM A214 (1983) 261-268
|
||||
|
||||
density = 3.655*mg/cm3 ;
|
||||
G4Material* XeArCH4 = new G4Material(name="XeArCH4" , density,
|
||||
ncomponents=2);
|
||||
XeArCH4->AddMaterial( Xe5CH4, fractionmass = 0.766 ) ;
|
||||
XeArCH4->AddMaterial( Ar7CH4, fractionmass = 0.234 ) ;
|
||||
|
||||
|
||||
// Preparation of mixed radiator material
|
||||
|
||||
foilDensity = 1.39*g/cm3; // Mylar 0.534*g/cm3; //Li 0.91*g/cm3 ;// CH2
|
||||
gasDensity = 1.2928*mg/cm3 ; // Air 0.178*mg/cm3 ; // He 1.977*mg/cm3; // CO2
|
||||
totDensity = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio) ;
|
||||
|
||||
fractionFoil = foilDensity*foilGasRatio/totDensity ;
|
||||
fractionGas = gasDensity*(1.0-foilGasRatio)/totDensity ;
|
||||
|
||||
G4Material* radiatorMat = new G4Material(name="radiatorMat" , totDensity,
|
||||
ncomponents=2);
|
||||
radiatorMat->AddMaterial( Mylar, fractionFoil ) ;
|
||||
radiatorMat->AddMaterial( Air, fractionGas ) ;
|
||||
|
||||
G4cout << *(G4Material::GetMaterialTable()) << G4endl;
|
||||
|
||||
// default materials of the calorimeter and TR radiator
|
||||
|
||||
fRadiatorMat = Li ; // CH2 Mylar ;
|
||||
|
||||
fRadiatorMat = radiatorMat ; // CH2 Mylar ;
|
||||
fFoilMat = Mylar ; // Li ; // CH2 ;
|
||||
fGasMat = Air ; // He ;// CO2 ;
|
||||
|
||||
fWindowMat = Mylar ;
|
||||
fElectrodeMat = Al ;
|
||||
|
||||
AbsorberMaterial = Xe10CH4 ;
|
||||
|
||||
AbsorberMaterial = Ar7CH4; // Xe10CH4; // Xe55He15CH4;
|
||||
|
||||
|
||||
fGapMat = Xe10CH4 ;
|
||||
|
||||
WorldMaterial = He ;
|
||||
|
||||
WorldMaterial = Air ; // CO2 ;
|
||||
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
@@ -471,12 +527,13 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
G4double radThick = fFoilNumber*(fRadThickness + fGasGap) + fDetGap ;
|
||||
G4double radThick = fFoilNumber*(fRadThickness + fGasGap) - fGasGap + fDetGap ;
|
||||
|
||||
G4double zRad = fStartZ + 0.5*radThick ;
|
||||
G4cout<<"zRad = "<<zRad/mm<<" mm"<<G4endl ;
|
||||
|
||||
radThick *= 1.2 ;
|
||||
// radThick *= 1.02 ;
|
||||
|
||||
G4cout<<"radThick = "<<radThick/mm<<" mm"<<G4endl ;
|
||||
G4cout<<"fFoilNumber = "<<fFoilNumber<<G4endl ;
|
||||
G4cout<<"fRadiatorMat = "<<fRadiatorMat->GetName()<<G4endl ;
|
||||
@@ -491,7 +548,7 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
0.5*radThick ) ;
|
||||
|
||||
logicRadiator = new G4LogicalVolume(solidRadiator,
|
||||
WorldMaterial,
|
||||
fRadiatorMat,
|
||||
"Radiator");
|
||||
|
||||
physiRadiator = new G4PVPlacement(0,
|
||||
@@ -509,9 +566,9 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
fLogicRadSlice = new G4LogicalVolume(fSolidRadSlice,fRadiatorMat,
|
||||
"RadSlice",0,0,0);
|
||||
|
||||
zModule = fStartZ + fRadThickness ;
|
||||
zModule = fStartZ ; // ??? + fRadThickness ;
|
||||
G4cout<<"zModule = "<<zModule/mm<<" mm"<<G4endl ;
|
||||
|
||||
/*
|
||||
for(j=0;j<fFoilNumber;j++)
|
||||
{
|
||||
|
||||
@@ -524,7 +581,7 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
physiRadiator,false,j);
|
||||
}
|
||||
G4cout<<G4endl ;
|
||||
|
||||
*/
|
||||
G4Box* solidWindow = new G4Box("Window",AbsorberRadius,
|
||||
AbsorberRadius,
|
||||
fWindowThick/2. );
|
||||
@@ -532,11 +589,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
G4LogicalVolume* logicWindow = new G4LogicalVolume(solidWindow,
|
||||
fWindowMat, "Window");
|
||||
|
||||
G4double zWindow = fStartZ + radThick + fWindowThick/2. + 5.0*mm ;
|
||||
G4double zWindow = fStartZ + radThick + fWindowThick/2. + 15.0*mm ;
|
||||
|
||||
// G4VPhysicalVolume* physiWindow = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,zWindow),
|
||||
// "Window",logicWindow,physiWorld,false,0);
|
||||
G4VPhysicalVolume* physiWindow = new G4PVPlacement(0,
|
||||
G4ThreeVector(0.,0.,zWindow),
|
||||
"Window",logicWindow,physiWorld,false,0);
|
||||
|
||||
G4Box* solidGap = new G4Box("Gap",AbsorberRadius,
|
||||
AbsorberRadius,
|
||||
@@ -567,7 +624,7 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
// Absorber
|
||||
|
||||
zAbsorber = zElectrode + fElectrodeThick/2. + AbsorberThickness/2. + 0.01*mm;
|
||||
|
||||
G4cout<<"zAbsorber = "<<zAbsorber/mm<<" mm"<<G4endl;
|
||||
if (AbsorberThickness > 0.)
|
||||
{
|
||||
if(solidAbsorber) delete solidAbsorber ;
|
||||
@@ -605,7 +662,7 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
// Parameterisation
|
||||
|
||||
ParametrisationModel();
|
||||
// ParametrisationModel();
|
||||
|
||||
// always return physics world
|
||||
|
||||
@@ -620,6 +677,7 @@ void Em10DetectorConstruction::ParametrisationModel()
|
||||
{
|
||||
G4cout<<"Em10DetectorConstruction::ParametrisationModel() is called"<<G4endl;
|
||||
G4cout<<"fModelNumber = "<<fModelNumber<<G4endl;
|
||||
G4cout<<"start fXTRModel = "<<fXTRModel<<G4endl;
|
||||
|
||||
G4double alphaPlate = 160.0 ;
|
||||
G4double alphaGas = 160.0 ;
|
||||
@@ -631,6 +689,7 @@ void Em10DetectorConstruction::ParametrisationModel()
|
||||
delete fXTRModel;
|
||||
}
|
||||
|
||||
|
||||
switch(fModelNumber)
|
||||
{
|
||||
case 1:
|
||||
@@ -641,13 +700,13 @@ void Em10DetectorConstruction::ParametrisationModel()
|
||||
break;
|
||||
case 3:
|
||||
fXTRModel = new G4GamDistrXrayTRmodel(logicRadiator,
|
||||
fRadThickness,alphaPlate,
|
||||
fGasGap,alphaGas);
|
||||
fRadThickness,fAlphaPlate,
|
||||
fGasGap,fAlphaGas);
|
||||
break;
|
||||
case 4:
|
||||
fXTRModel = new G4GamDistrXTRdEdx(logicRadiator,
|
||||
fRadThickness,alphaPlate,
|
||||
fGasGap,alphaGas);
|
||||
fRadThickness,fAlphaPlate,
|
||||
fGasGap,fAlphaGas);
|
||||
break;
|
||||
case 5:
|
||||
fXTRModel = new G4IrregularXrayTRmodel(logicRadiator,fRadThickness,fGasGap);
|
||||
@@ -673,6 +732,7 @@ void Em10DetectorConstruction::ParametrisationModel()
|
||||
G4cout<<"Warning: No parametrisation model was defined?"<<G4endl ;
|
||||
break ;
|
||||
}
|
||||
G4cout<<"finish fXTRModel = "<<fXTRModel<<G4endl;
|
||||
// fXTRModel->GetPlateZmuProduct() ;
|
||||
// fXTRModel->GetGasZmuProduct() ;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10DetectorMessenger.cc,v 1.5 2001/11/21 18:48:56 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10EventAction.cc,v 1.3 2001/11/21 11:57:14 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10EventActionMessenger.cc,v 1.2 2001/07/11 09:57:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10PhysicsList.cc,v 1.3 2001/11/21 11:57:14 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em10PhysicsList.cc,v 1.4 2002/02/05 11:06:38 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
|
||||
#include "G4Timer.hh"
|
||||
@@ -153,7 +153,7 @@ void Em10PhysicsList::ConstructBarions()
|
||||
void Em10PhysicsList::ConstructProcess()
|
||||
{
|
||||
AddTransportation();
|
||||
AddParameterisation();
|
||||
// AddParameterisation();
|
||||
|
||||
ConstructEM();
|
||||
ConstructGeneral();
|
||||
@@ -179,7 +179,9 @@ void Em10PhysicsList::ConstructProcess()
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4PAIonisation.hh"
|
||||
|
||||
#include "G4ForwardXrayTR.hh"
|
||||
#include "G4RegularXTRadiator.hh"
|
||||
|
||||
#include "Em10StepCut.hh"
|
||||
|
||||
@@ -229,9 +231,19 @@ void Em10PhysicsList::ConstructEM()
|
||||
pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName,
|
||||
pDet->GetLogicalAbsorber(),
|
||||
"IonisationByLogVol"),-1,1,-1);
|
||||
|
||||
|
||||
pmanager->AddContinuousProcess(
|
||||
new G4RegularXTRadiator(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator"));
|
||||
// ,-1,1,-1);
|
||||
|
||||
pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,-1);
|
||||
|
||||
|
||||
// pmanager->AddProcess(fPAIonisation,-1,2,2);
|
||||
|
||||
// pmanager->AddProcess(fForwardXrayTR,-1,-1,2);
|
||||
@@ -303,7 +315,7 @@ void Em10PhysicsList::ConstructEM()
|
||||
|
||||
pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName,
|
||||
pDet->GetLogicalAbsorber(),
|
||||
"IonisationByLogVolHadr"),-1,2,2);
|
||||
"IonisationByLogVolHadr"),-1,2,-2);
|
||||
|
||||
// pmanager->AddProcess(thehMultipleScattering,-1,1,1);
|
||||
// pmanager->AddProcess(thehIonisation,-1,2,2);
|
||||
@@ -347,7 +359,7 @@ void Em10PhysicsList::ConstructGeneral()
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
void Em10PhysicsList::AddParameterisation()
|
||||
{
|
||||
G4FastSimulationManagerProcess* theFastSimulationManagerProcess =
|
||||
@@ -365,7 +377,7 @@ void Em10PhysicsList::AddParameterisation()
|
||||
pmanager->AddProcess(theFastSimulationManagerProcess, -1, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PhysicsListMessenger.cc,v 1.2 2001/07/11 09:57:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorAction.cc,v 1.3 2001/11/21 11:57:14 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em10PrimaryGeneratorAction.cc,v 1.4 2002/02/05 11:06:38 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -115,7 +115,8 @@ void Em10PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
y0 = r0*sin(phi0);
|
||||
}
|
||||
********************************************* */
|
||||
particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0));
|
||||
// particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0));
|
||||
particleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.));
|
||||
particleGun->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorMessenger.cc,v 1.2 2001/07/11 09:57:25 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10RunAction.cc,v 1.3 2001/11/21 11:57:14 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10RunMessenger.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10StepCut.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
|
||||
#include "Em10StepCut.hh"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingAction.cc,v 1.3 2001/11/21 11:57:15 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingMessenger.cc,v 1.2 2001/07/11 09:57:27 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -21,87 +21,83 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingVerbose.cc,v 1.3 2001/11/21 11:57:15 mverderi Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// $Id: Em10SteppingVerbose.cc,v 1.4 2002/02/05 11:06:38 grichine Exp $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
// Em10SteppingVerbose.cc
|
||||
//
|
||||
// Description:
|
||||
// Implementation of the Em10SteppingVerbose class
|
||||
// Contact:
|
||||
// Questions and comments to this code should be sent to
|
||||
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
|
||||
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
#include "Em10SteppingVerbose.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
////////////////////////////////////////////////
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
Em10SteppingVerbose::Em10SteppingVerbose()
|
||||
////////////////////////////////////////////////
|
||||
{
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
Em10SteppingVerbose::~Em10SteppingVerbose()
|
||||
//////////////////////////////////////////////////
|
||||
{
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
/////////////////////////////////////////
|
||||
void Em10SteppingVerbose::StepInfo()
|
||||
/////////////////////////////////////////
|
||||
{
|
||||
CopyState();
|
||||
|
||||
G4int prec = G4cout.precision(3);
|
||||
G4int prec = G4cout.precision(8);
|
||||
|
||||
if( verboseLevel >= 1 ){
|
||||
if( verboseLevel >= 4 ) VerboseTrack();
|
||||
if( verboseLevel >= 3 ){
|
||||
G4cout << G4endl;
|
||||
G4cout << G4std::setw( 5) << "#Step#" << " "
|
||||
<< G4std::setw( 6) << "X" << " "
|
||||
<< G4std::setw( 6) << "Y" << " "
|
||||
<< G4std::setw( 6) << "Z" << " "
|
||||
<< G4std::setw( 9) << "KineE" << " "
|
||||
<< G4std::setw( 9) << "dEStep" << " "
|
||||
<< G4std::setw(10) << "X" << " "
|
||||
<< G4std::setw(10) << "Y" << " "
|
||||
<< G4std::setw(10) << "Z" << " "
|
||||
<< G4std::setw(10) << "KineE" << " "
|
||||
<< G4std::setw(10) << "dEStep" << " "
|
||||
<< G4std::setw(10) << "StepLeng"
|
||||
<< G4std::setw(10) << "TrakLeng"
|
||||
<< G4std::setw(10) << "NextVolu"
|
||||
<< G4std::setw(10) << "Process" << G4endl;
|
||||
<< G4std::setw(10) << "Process"
|
||||
<< G4std::setw(10) << "Dir_x" << " "
|
||||
<< G4std::setw(10) << "Dir_y" << " "
|
||||
<< G4std::setw(10) << "Dir_z" << " "
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
<< G4std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< G4std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< G4std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< G4std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< G4std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< G4std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< G4std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
// if( fStepStatus != fWorldBoundary){
|
||||
if( fTrack->GetNextVolume() != 0 ) {
|
||||
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName();
|
||||
G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << G4std::setw(10) << "OutOfWorld";
|
||||
}
|
||||
|
||||
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
|
||||
G4cout << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName();
|
||||
G4cout << " "
|
||||
<< G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName();
|
||||
} else {
|
||||
G4cout << "User Limit";
|
||||
G4cout << " UserLimit";
|
||||
}
|
||||
|
||||
G4cout << G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().x(),"Length")
|
||||
<< G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length")
|
||||
<< G4std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length");
|
||||
|
||||
G4cout << G4endl;
|
||||
|
||||
if( verboseLevel == 2 ){
|
||||
@@ -121,6 +117,7 @@ void Em10SteppingVerbose::StepInfo()
|
||||
|
||||
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
|
||||
G4cout << " : "
|
||||
<< G4std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
@@ -146,9 +143,9 @@ void Em10SteppingVerbose::StepInfo()
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void Em10SteppingVerbose::TrackingStarted()
|
||||
////////////////////////////////////////////////
|
||||
{
|
||||
|
||||
CopyState();
|
||||
@@ -163,7 +160,7 @@ G4int prec = G4cout.precision(3);
|
||||
<< G4std::setw( 9) << "dEStep" << " "
|
||||
<< G4std::setw(10) << "StepLeng"
|
||||
<< G4std::setw(10) << "TrakLeng"
|
||||
<< G4std::setw(10) << "NextVolu"
|
||||
<< G4std::setw(10) << "Volume" << " "
|
||||
<< G4std::setw(10) << "Process" << G4endl;
|
||||
|
||||
G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
@@ -176,11 +173,22 @@ G4int prec = G4cout.precision(3);
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
if(fTrack->GetNextVolume()){
|
||||
G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName() << " ";
|
||||
G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
} else {
|
||||
G4cout << G4std::setw(10) << "OutOfWorld" << " ";
|
||||
G4cout << G4std::setw(10) << "OutOfWorld";
|
||||
}
|
||||
G4cout << G4std::setw(10) << "initStep" << G4endl;
|
||||
G4cout << " initStep" << G4endl;
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em10VisManager.cc,v 1.3 2001/12/12 15:22:30 johna Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.6 2001/10/25 15:12:05 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.7 2002/05/31 16:06:53 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -20,8 +20,9 @@ G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
# for the aida-config command see the README file
|
||||
CPPFLAGS += `aida-config --useHBook --include`
|
||||
LDFLAGS += `aida-config --useHBook --lib`
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.17 2001/12/11 17:42:24 gcosmo Exp $
|
||||
$Id: History,v 1.19 2002/06/05 18:06:28 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,12 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
05-06-02 mma (testem2-V04-00-01)
|
||||
-do not delete histos in runAction destructor
|
||||
|
||||
31-05-02 mma (testem2-V04-00-00)
|
||||
-old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README
|
||||
|
||||
11-12-01 gcosmo (testem2-V03-02-04)
|
||||
- SteppingAction: added check on history depth also for rings!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.5 2001/10/25 15:12:05 maire Exp $
|
||||
$Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -107,8 +107,24 @@ $Id: README,v 1.5 2001/10/25 15:12:05 maire Exp $
|
||||
11 : cumulated radial energy profile
|
||||
12 : rms of cumulated radial energy profile
|
||||
|
||||
Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile.
|
||||
Currently, histograms in this example are implemented through the obsolete
|
||||
CLHEP/Hist package, which is no longer supported. The implementation will
|
||||
be replaced by direct call to the "analysis" module in a near future.
|
||||
Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile.
|
||||
|
||||
|
||||
7- Using the Anaphe implementation of the AIDA 2.2 histograms:
|
||||
--------------------------------------------------------------
|
||||
|
||||
In order to use the Anaphe implementation of the AIDA 2.2 interfaces,
|
||||
prepare some environment variables by source-ing one of the following
|
||||
startup scripts (depending on your compiler version):
|
||||
|
||||
# gcc-2.95.2
|
||||
source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh
|
||||
|
||||
# egcs_1.1.2 (aka gcc 2.91.66)
|
||||
source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh
|
||||
|
||||
At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a
|
||||
more recent release, check http:/cern.ch/anaphe for more information.
|
||||
|
||||
After this, you will have access to the 'aida-config' command which
|
||||
is used in the GNUmakefile.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TestEm2.cc,v 1.6 2001/10/25 15:12:05 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-04-00 $
|
||||
(14-Dec-2001)
|
||||
Geant4 version $Name: geant4-04-01 $
|
||||
(28-Feb-2002)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
Visualization Manager instantiating...
|
||||
@@ -57,15 +57,13 @@ Current available graphics systems are:
|
||||
|
||||
|
||||
Absorber is 17.848 cm of PbWO4
|
||||
Em2PhysicsList::SetCuts:CutLength : 5 mm
|
||||
|
||||
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z
|
||||
Sandia crossSection below 50 KeV
|
||||
PhysicsTables from 50 keV to 50 MeV in 100 bins.
|
||||
phot: Total cross sections from Sandia parametrisation.
|
||||
Em2PhysicsList::SetCuts:CutLength : 5 mm
|
||||
|
||||
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
|
||||
Scattered gamma energy according Klein-Nishina.
|
||||
PhysicsTables from 10 keV to 100 GeV in 100 bins.
|
||||
PhysicsTables from 1 keV to 100 GeV in 80 bins.
|
||||
|
||||
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
|
||||
e+e- energies according Bethe-Heitler
|
||||
@@ -173,20 +171,20 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=37.72s Real=47.63s Sys=8.41s
|
||||
User=23.26s Real=43.58s Sys=2.91s
|
||||
LATERAL PROFILE CUMULATIVE LATERAL PROFILE
|
||||
|
||||
bin Mean rms bin Mean rms
|
||||
|
||||
0.00-> 1.11 radl: 18.73% 6.89% 0-> 1.11 radl: 18.73% 6.89%
|
||||
1.11-> 2.22 radl: 25.86% 10.89% 0-> 2.22 radl: 44.59% 14.75%
|
||||
2.22-> 3.33 radl: 21.63% 8.64% 0-> 3.33 radl: 66.22% 15.88%
|
||||
3.33-> 4.44 radl: 13.21% 8.38% 0-> 4.44 radl: 79.43% 12.32%
|
||||
4.44-> 5.55 radl: 8.11% 6.45% 0-> 5.55 radl: 87.55% 9.59%
|
||||
5.55-> 6.66 radl: 3.81% 4.04% 0-> 6.66 radl: 91.36% 8.37%
|
||||
6.66-> 7.77 radl: 2.14% 3.05% 0-> 7.77 radl: 93.49% 7.34%
|
||||
7.77-> 8.88 radl: 0.82% 1.67% 0-> 8.88 radl: 94.32% 6.46%
|
||||
8.88-> 9.99 radl: 0.60% 1.51% 0-> 9.99 radl: 94.92% 5.76%
|
||||
0.00-> 1.11 radl: 15.10% 6.92% 0-> 1.11 radl: 15.10% 6.92%
|
||||
1.11-> 2.22 radl: 24.22% 10.76% 0-> 2.22 radl: 39.32% 14.56%
|
||||
2.22-> 3.33 radl: 21.55% 9.89% 0-> 3.33 radl: 60.87% 17.09%
|
||||
3.33-> 4.44 radl: 14.26% 7.99% 0-> 4.44 radl: 75.13% 16.32%
|
||||
4.44-> 5.55 radl: 8.32% 6.26% 0-> 5.55 radl: 83.44% 14.90%
|
||||
5.55-> 6.66 radl: 4.76% 5.25% 0-> 6.66 radl: 88.20% 12.18%
|
||||
6.66-> 7.77 radl: 2.84% 4.64% 0-> 7.77 radl: 91.04% 10.05%
|
||||
7.77-> 8.88 radl: 1.83% 3.78% 0-> 8.88 radl: 92.88% 8.76%
|
||||
8.88-> 9.99 radl: 1.10% 3.13% 0-> 9.99 radl: 93.98% 7.39%
|
||||
|
||||
|
||||
|
||||
@@ -194,21 +192,21 @@ Run Summary
|
||||
|
||||
bin Mean rms bin Mean rms
|
||||
|
||||
0.00-> 0.11 radl: 69.85% 10.68% 0-> 0.11 radl: 69.85% 10.68%
|
||||
0.11-> 0.22 radl: 15.02% 6.67% 0-> 0.22 radl: 84.87% 8.03%
|
||||
0.22-> 0.33 radl: 5.39% 4.26% 0-> 0.33 radl: 90.26% 6.67%
|
||||
0.33-> 0.44 radl: 2.44% 1.97% 0-> 0.44 radl: 92.70% 5.97%
|
||||
0.44-> 0.56 radl: 1.34% 1.20% 0-> 0.56 radl: 94.04% 5.85%
|
||||
0.56-> 0.67 radl: 0.87% 0.76% 0-> 0.67 radl: 94.92% 5.76%
|
||||
0.00-> 0.11 radl: 65.45% 11.91% 0-> 0.11 radl: 65.45% 11.91%
|
||||
0.11-> 0.22 radl: 16.29% 6.69% 0-> 0.22 radl: 81.74% 9.13%
|
||||
0.22-> 0.33 radl: 6.28% 4.06% 0-> 0.33 radl: 88.03% 8.05%
|
||||
0.33-> 0.44 radl: 3.18% 2.44% 0-> 0.44 radl: 91.21% 7.60%
|
||||
0.44-> 0.56 radl: 1.83% 1.93% 0-> 0.56 radl: 93.04% 7.46%
|
||||
0.56-> 0.67 radl: 0.94% 0.97% 0-> 0.67 radl: 93.98% 7.39%
|
||||
|
||||
SUMMARY
|
||||
energy deposit : 94.92 % E0 +- 5.76 % E0
|
||||
charged traklen: 13.88 radl +- 0.85 radl
|
||||
neutral traklen: 201.27 radl +- 19.31 radl
|
||||
energy deposit : 93.98 % E0 +- 7.39 % E0
|
||||
charged traklen: 13.66 radl +- 1.08 radl
|
||||
neutral traklen: 201.00 radl +- 22.88 radl
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 1086208127, 994034357
|
||||
Current couple of seeds = 1983783255, 1611071241
|
||||
----------------------------------------
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em2DetectorConstruction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: Em2DetectorMessenger.hh,v 1.4 2001/10/25 15:12:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-04-00 $
|
||||
// GEANT4 tag $Name: geant4-04-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user