Import Geant4 3.1.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.4 2000/12/07 11:43:03 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.5 2001/02/21 14:00:33 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -16,4 +16,12 @@ all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.7 2000/12/07 11:43:03 maire Exp $
|
||||
$Id: History,v 1.11 2001/03/27 08:34:07 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,19 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
27-03-01 mma (testem1-V03-00-05)
|
||||
- set cppflag G4NOHIST = true in gnumakefile
|
||||
|
||||
08-03-01 Hisaya (testem1-V03-00-04)
|
||||
- adapted ProcessesCount to STL
|
||||
|
||||
21-02-01 mma (testem1-V03-00-03)
|
||||
- hbook histograms restored
|
||||
|
||||
20-02-01 mma (testem1-V03-00-02)
|
||||
- verbose stepping adapted for STL
|
||||
- save rndm at begin of event
|
||||
|
||||
07-12-00 mma (testem1-V02-00-03 & testem-noHist)
|
||||
remove hbook histograms: GNUmakefile,runAction,trackingAction,
|
||||
steppingAction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.1 1999/10/11 13:07:24 maire Exp $
|
||||
$Id: README,v 1.3 2001/03/30 12:41:27 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -90,13 +90,16 @@ $Id: README,v 1.1 1999/10/11 13:07:24 maire Exp $
|
||||
|
||||
7- HISTOGRAMS
|
||||
|
||||
Testem1 produces several histo which are saved as testem1.histo
|
||||
Testem1 produces several histo which are saved as testem1.paw
|
||||
|
||||
Content of these histo:
|
||||
|
||||
1 : track length of a charged particle
|
||||
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.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: TestEm1.cc,v 1.4 2000/12/06 13:21:48 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-03-00 $
|
||||
(30-Jun-2000)
|
||||
Geant4 version $Name: geant4-03-01 $
|
||||
(15-Dec-2000)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
|
||||
***** Table : Nb of materials = 8 *****
|
||||
***** Table : Nb of materials = 9 *****
|
||||
|
||||
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 %
|
||||
@@ -23,6 +23,9 @@
|
||||
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
|
||||
---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
|
||||
---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: 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 %
|
||||
|
||||
@@ -63,13 +66,14 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
H2liquid 28.675
|
||||
Water 81.507
|
||||
liquidArgon 78.362
|
||||
Aluminium 125.06
|
||||
Iron 224.07
|
||||
Lead 229.55
|
||||
Uranium 296.06
|
||||
H2liquid 28.089
|
||||
Water 81.851
|
||||
liquidArgon 79.954
|
||||
Aluminium 125.02
|
||||
Silicon 116.88
|
||||
Iron 225.11
|
||||
Lead 228.53
|
||||
Uranium 294.24
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -91,13 +95,14 @@ msc: Tables of transport mean free paths.
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
H2liquid 28.675
|
||||
Water 81.507
|
||||
liquidArgon 78.362
|
||||
Aluminium 125.06
|
||||
Iron 224.07
|
||||
Lead 229.55
|
||||
Uranium 296.06
|
||||
H2liquid 28.089
|
||||
Water 81.851
|
||||
liquidArgon 79.954
|
||||
Aluminium 125.02
|
||||
Silicon 116.88
|
||||
Iron 225.11
|
||||
Lead 228.53
|
||||
Uranium 294.24
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -130,11 +135,12 @@ Cut in energy
|
||||
Water 2.9 keV 347 keV
|
||||
liquidArgon 6.18 keV 343 keV
|
||||
Aluminium 6.89 keV 597 keV
|
||||
Silicon 6.89 keV 541 keV
|
||||
Iron 20.8 keV 1.28 MeV
|
||||
Lead 101 keV 1.38 MeV
|
||||
Uranium 110 keV 1.92 MeV
|
||||
===================================================
|
||||
# $Id: TestEm1.out,v 1.7 2000/11/24 10:36:58 stesting Exp $
|
||||
# $Id: TestEm1.out,v 1.11 2001/03/30 09:02:57 stesting Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -176,11 +182,12 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
Air 0.99
|
||||
H2liquid 0.99
|
||||
Water 3.2733
|
||||
liquidArgon 3.7293
|
||||
Aluminium 6.3003
|
||||
Iron 10.422
|
||||
Lead 8.9769
|
||||
Uranium 11.54
|
||||
liquidArgon 3.9154
|
||||
Aluminium 6.2979
|
||||
Silicon 5.8817
|
||||
Iron 10.524
|
||||
Lead 9.1135
|
||||
Uranium 11.689
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -204,11 +211,12 @@ msc: Tables of transport mean free paths.
|
||||
Air 0.99
|
||||
H2liquid 0.99
|
||||
Water 3.2733
|
||||
liquidArgon 3.7293
|
||||
Aluminium 6.3003
|
||||
Iron 10.422
|
||||
Lead 8.9769
|
||||
Uranium 11.54
|
||||
liquidArgon 3.9154
|
||||
Aluminium 6.2979
|
||||
Silicon 5.8817
|
||||
Iron 10.524
|
||||
Lead 9.1135
|
||||
Uranium 11.689
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -241,6 +249,7 @@ Cut in energy
|
||||
Water 4.06 keV 3.27 keV
|
||||
liquidArgon 9.08 keV 3.98 keV
|
||||
Aluminium 9.99 keV 9.97 keV
|
||||
Silicon 10 keV 8.45 keV
|
||||
Iron 31.1 keV 43.3 keV
|
||||
Lead 124 keV 42.8 keV
|
||||
Uranium 143 keV 53.4 keV
|
||||
@@ -265,18 +274,18 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=70.06s Real=75.54s Sys=4.95s
|
||||
User=91.99s Real=97.75s Sys=5.73s
|
||||
|
||||
nb tracks/event neutral: 28.42 charged: 650.00
|
||||
nb steps/event neutral: 151.89 charged: 1278.63
|
||||
nb tracks/event neutral: 27.57 charged: 666.07
|
||||
nb steps/event neutral: 144.93 charged: 2194.99
|
||||
|
||||
nb of process calls per event:
|
||||
eIoni eBrem phot compt conv annihil
|
||||
1251.55 25.69 27.03 123.47 1.39 1.39
|
||||
eIoni eBrem conv annihil compt phot
|
||||
2168.94 24.47 1.58 1.58 117.36 25.99
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 1391858697, 202982242
|
||||
Current couple of seeds = 1463312763, 65501812
|
||||
----------------------------------------
|
||||
G4 kernel has come to Quit state.
|
||||
Deletion of G4 kernel class start.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorConstruction.hh,v 1.2 1999/12/15 14:48:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorMessenger.hh,v 1.2 1999/12/15 14:48:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventAction.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventActionMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsList.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsListMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PrimaryGeneratorAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1RunAction.hh,v 1.4 2000/12/07 11:43:04 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1RunAction.hh,v 1.5 2001/02/21 14:00:34 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -25,6 +25,11 @@
|
||||
class G4Run;
|
||||
class Em1RunActionMessenger;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
#endif
|
||||
|
||||
class Em1RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
@@ -44,7 +49,11 @@ class Em1RunAction : public G4UserRunAction
|
||||
public:
|
||||
void SetRndmFreq(G4int val) {saveRndm = val;}
|
||||
G4int GetRndmFreq() {return saveRndm;}
|
||||
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepHistogram* GetHisto(G4int id) {return histo[id];}
|
||||
#endif
|
||||
|
||||
private:
|
||||
void bookHisto();
|
||||
void cleanHisto();
|
||||
@@ -56,6 +65,11 @@ class Em1RunAction : public G4UserRunAction
|
||||
|
||||
Em1RunActionMessenger* runMessenger;
|
||||
G4int saveRndm;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram* histo[3];
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1RunActionMessenger.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1SteppingAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1SteppingVerbose.hh,v 1.4 2000/12/06 13:21:49 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1SteppingVerbose.hh,v 1.5 2001/02/19 14:04:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// This class manages the verbose outputs in G4SteppingManager.
|
||||
// It inherits from G4SteppingVerbose.
|
||||
@@ -15,8 +15,6 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
class Em1SteppingVerbose;
|
||||
|
||||
#ifndef Em1SteppingVerbose_h
|
||||
#define Em1SteppingVerbose_h 1
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1TrackingAction.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1VisManager.hh,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
@@ -6,19 +5,13 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ProcessesCount.hh,v 1.3 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: ProcessesCount.hh,v 1.5 2001/03/08 16:45:17 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// -----------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
//
|
||||
// ------------------- class ProcessesCount -----------------
|
||||
//
|
||||
// 26-10-98: first version, M.Maire
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// 08.03.01 Hisaya: adapted for STL
|
||||
// 26.10.98 mma : first version
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -27,7 +20,7 @@
|
||||
#define ProcessesCount_HH
|
||||
|
||||
#include "globals.hh"
|
||||
#include "g4rw/tpordvec.h"
|
||||
#include "g4std/vector"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -36,12 +29,6 @@ class OneProcessCount
|
||||
public:
|
||||
OneProcessCount(G4String name) {Name=name; Counter=0;};
|
||||
~OneProcessCount() {};
|
||||
G4int operator==(const OneProcessCount& right) const {return (this==&right);};
|
||||
G4int operator!=(const OneProcessCount& right) const {return (this!=&right);};
|
||||
|
||||
private:
|
||||
OneProcessCount(OneProcessCount& right) {*this= right;};
|
||||
const OneProcessCount& operator=(const OneProcessCount& right) {return right;};
|
||||
|
||||
public:
|
||||
G4String GetName() {return Name;};
|
||||
@@ -56,6 +43,12 @@ private:
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
typedef G4RWTPtrOrderedVector<OneProcessCount> ProcessesCount;
|
||||
typedef G4std::vector<OneProcessCount*> ProcessesCount;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorConstruction.cc,v 1.4 2000/12/13 11:11:59 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorMessenger.cc,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventAction.cc,v 1.2 1999/12/15 14:48:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1EventAction.cc,v 1.3 2001/02/20 15:45:17 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -47,10 +47,21 @@ Em1EventAction::~Em1EventAction()
|
||||
void Em1EventAction::BeginOfEventAction(const G4Event* evt)
|
||||
{
|
||||
G4int evtNb = evt->GetEventID();
|
||||
|
||||
//printing survey
|
||||
if (evtNb%printModulo == 0)
|
||||
G4cout << "\n---> Begin of Event: " << evtNb << G4endl;
|
||||
|
||||
TotalEnergyDeposit = 0.;}
|
||||
|
||||
//save rndm status
|
||||
if (Em1Run->GetRndmFreq() == 2)
|
||||
{
|
||||
HepRandom::saveEngineStatus("beginOfEvent.rndm");
|
||||
if (evtNb%printModulo == 0) HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
//additional initializations
|
||||
TotalEnergyDeposit = 0.;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -73,18 +84,6 @@ void Em1EventAction::EndOfEventAction(const G4Event* evt)
|
||||
trj->DrawTrajectory(50);
|
||||
}
|
||||
}
|
||||
|
||||
//save rndm status
|
||||
if (Em1Run->GetRndmFreq() == 2)
|
||||
{
|
||||
HepRandom::saveEngineStatus("endOfEvent.rndm");
|
||||
G4int evtNb = evt->GetEventID();
|
||||
if (evtNb%printModulo == 0)
|
||||
{
|
||||
G4cout << "\n---> End of Event: " << evtNb << G4endl;
|
||||
HepRandom::showEngineStatus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventActionMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsList.cc,v 1.3 2000/03/05 03:31:39 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsListMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PrimaryGeneratorAction.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,10 +5,12 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1RunAction.cc,v 1.6 2000/12/07 11:43:04 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
// $Id: Em1RunAction.cc,v 1.10 2001/03/27 08:34:08 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// 08.03.01 Hisaya: adapted for STL
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -24,12 +26,20 @@
|
||||
|
||||
#include "Randomize.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em1RunAction::Em1RunAction()
|
||||
: ProcCounter(0), saveRndm (1),
|
||||
runMessenger(new Em1RunActionMessenger(this))
|
||||
{}
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -42,12 +52,28 @@ Em1RunAction::~Em1RunAction()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void Em1RunAction::bookHisto()
|
||||
{}
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = new HBookFile("testem1.paw", 68);
|
||||
|
||||
// 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);
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void Em1RunAction::cleanHisto()
|
||||
{}
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
// writing histogram file
|
||||
hbookManager->write();
|
||||
delete [] histo;
|
||||
delete hbookManager;
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -80,10 +106,10 @@ void Em1RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
void Em1RunAction::CountProcesses(G4String procName)
|
||||
{
|
||||
//does the process already encounted ?
|
||||
size_t nbProc = ProcCounter->entries();
|
||||
size_t nbProc = ProcCounter->size();
|
||||
size_t i = 0;
|
||||
while ((i<nbProc)&&((*ProcCounter)[i]->GetName()!=procName)) i++;
|
||||
if (i == nbProc) ProcCounter->insert( new OneProcessCount(procName));
|
||||
if (i == nbProc) ProcCounter->push_back( new OneProcessCount(procName));
|
||||
|
||||
(*ProcCounter)[i]->Count();
|
||||
}
|
||||
@@ -110,11 +136,11 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
|
||||
//frequency of processes call
|
||||
G4cout << "\n nb of process calls per event: \n ";
|
||||
for (G4int i=0; i< ProcCounter->entries();i++)
|
||||
for (G4int i=0; i< ProcCounter->size();i++)
|
||||
G4cout << G4std::setw(9) << (*ProcCounter)[i]->GetName();
|
||||
|
||||
G4cout << "\n ";
|
||||
for (G4int j=0; j< ProcCounter->entries();j++)
|
||||
for (G4int j=0; j< ProcCounter->size();j++)
|
||||
G4cout << G4std::setw(9) << ((*ProcCounter)[j]->GetCounter())/dNbOfEvents;
|
||||
G4cout << G4endl;
|
||||
|
||||
@@ -122,15 +148,20 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
G4cout.precision(oldprec);
|
||||
}
|
||||
|
||||
ProcCounter->clearAndDestroy();
|
||||
delete ProcCounter;
|
||||
// delete and remove all contents in ProcCounter
|
||||
while (ProcCounter->size()>0){
|
||||
OneProcessCount* aProcCount=ProcCounter->back();
|
||||
ProcCounter->pop_back();
|
||||
delete aProcCount;
|
||||
}
|
||||
delete ProcCounter;
|
||||
|
||||
//draw the events
|
||||
if (G4VVisManager::GetConcreteInstance())
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update");
|
||||
|
||||
// save Rndm status
|
||||
if (saveRndm == 1)
|
||||
if (saveRndm > 0)
|
||||
{ HepRandom::showEngineStatus();
|
||||
HepRandom::saveEngineStatus("endOfRun.rndm");
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1RunActionMessenger.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1RunActionMessenger.cc,v 1.3 2001/02/20 15:45:17 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -35,8 +35,8 @@ Em1RunActionMessenger::Em1RunActionMessenger(Em1RunAction* run)
|
||||
RndmSaveCmd->SetGuidance("set frequency to save rndm status on external files.");
|
||||
RndmSaveCmd->SetGuidance("freq = 0 not saved");
|
||||
RndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq > 0 saved on: endOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 2 saved on: beginOfEvent.rndm");
|
||||
RndmSaveCmd->SetParameterName("frequency",false);
|
||||
RndmSaveCmd->SetRange("frequency>=0 && frequency<=2");
|
||||
RndmSaveCmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1SteppingAction.cc,v 1.4 2000/12/07 11:43:04 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1SteppingAction.cc,v 1.5 2001/02/21 14:00:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -19,6 +19,10 @@
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4VProcess.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em1SteppingAction::Em1SteppingAction(Em1RunAction* RuAct, Em1EventAction* EvAct)
|
||||
@@ -41,7 +45,11 @@ void Em1SteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
if (process) runAction->CountProcesses(process->GetProcessName());
|
||||
|
||||
G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge();
|
||||
G4double steplen = aStep->GetStepLength();
|
||||
G4double steplen = aStep->GetStepLength();
|
||||
|
||||
#ifndef G4NOHIST
|
||||
if (charge != 0.) runAction->GetHisto(2)->accumulate(steplen);
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1SteppingVerbose.cc,v 1.4 2000/12/06 13:21:50 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1SteppingVerbose.cc,v 1.6 2001/02/19 14:05:15 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -46,7 +46,7 @@ void Em1SteppingVerbose::StepInfo()
|
||||
<< 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;
|
||||
}
|
||||
|
||||
@@ -61,16 +61,17 @@ void Em1SteppingVerbose::StepInfo()
|
||||
|
||||
// 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 << G4endl;
|
||||
@@ -86,12 +87,12 @@ void Em1SteppingVerbose::StepInfo()
|
||||
<< ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).entries()
|
||||
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
|
||||
for(G4int lp1=(*fSecondary).entries()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).entries(); lp1++){
|
||||
for(G4int lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " : "
|
||||
<< G4std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
@@ -115,8 +116,8 @@ void Em1SteppingVerbose::StepInfo()
|
||||
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void Em1SteppingVerbose::TrackingStarted()
|
||||
@@ -134,7 +135,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() << " "
|
||||
@@ -147,13 +148,13 @@ 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.....
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1TrackingAction.cc,v 1.4 2000/12/07 11:43:04 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em1TrackingAction.cc,v 1.5 2001/02/21 14:00:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
#include "Em1RunAction.hh"
|
||||
|
||||
#include "G4Track.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -38,6 +42,10 @@ void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack)
|
||||
if (aTrack->GetDefinition()->GetPDGCharge() == 0.)
|
||||
{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);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1VisManager.cc,v 1.2 1999/12/15 14:48:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.4 2000/12/07 12:14:06 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.5 2001/02/21 12:15:45 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -16,4 +16,12 @@ all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.7 2000/12/07 12:14:06 maire Exp $
|
||||
$Id: History,v 1.11 2001/03/27 08:58:14 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,19 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
27-03-01 mma (testem2-V03-00-05)
|
||||
- set cppflag G4NOHIST = true in gnumakefile
|
||||
|
||||
08-03-01 Hisaya (testem2-V03-00-04)
|
||||
- RunAction adapted for STL
|
||||
|
||||
21-02-01 mma (testem2-V03-00-03)
|
||||
- hbook histograms restored
|
||||
|
||||
20-02-01 mma (testem2-V03-00-02)
|
||||
- verbose stepping adapted for STL
|
||||
- save rndm at begin of event
|
||||
|
||||
07-12-00 mma (testem2-V02-00-03 & testem-noHist)
|
||||
remove hbook histograms: GNUmakefile,runAction
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.2 2000/01/21 10:56:13 maire Exp $
|
||||
$Id: README,v 1.4 2001/03/30 12:40:42 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -87,7 +87,7 @@ $Id: README,v 1.2 2000/01/21 10:56:13 maire Exp $
|
||||
|
||||
7- HISTOGRAMS
|
||||
|
||||
TestEm2 produces several histo which are saved as testem2.histo
|
||||
TestEm2 produces several histo which are saved as testem2.paw
|
||||
|
||||
Content of these histo:
|
||||
|
||||
@@ -106,4 +106,9 @@ $Id: README,v 1.2 2000/01/21 10:56:13 maire Exp $
|
||||
10 : radial energy profile
|
||||
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.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: TestEm2.cc,v 1.4 2000/12/06 14:12:15 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-03-00 $
|
||||
(30-Jun-2000)
|
||||
Geant4 version $Name: geant4-03-01 $
|
||||
(15-Dec-2000)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
|
||||
@@ -69,14 +69,14 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
Water 81.507
|
||||
lAr 78.362
|
||||
Al 125.06
|
||||
Fe 224.07
|
||||
BGO 186.87
|
||||
PbWO4 200.84
|
||||
Tungsten 337.27
|
||||
Lead 229.55
|
||||
Water 81.851
|
||||
lAr 79.954
|
||||
Al 125.02
|
||||
Fe 225.11
|
||||
BGO 187.26
|
||||
PbWO4 201.19
|
||||
Tungsten 336.44
|
||||
Lead 228.53
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -98,14 +98,14 @@ msc: Tables of transport mean free paths.
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
Water 81.507
|
||||
lAr 78.362
|
||||
Al 125.06
|
||||
Fe 224.07
|
||||
BGO 186.87
|
||||
PbWO4 200.84
|
||||
Tungsten 337.27
|
||||
Lead 229.55
|
||||
Water 81.851
|
||||
lAr 79.954
|
||||
Al 125.02
|
||||
Fe 225.11
|
||||
BGO 187.26
|
||||
PbWO4 201.19
|
||||
Tungsten 336.44
|
||||
Lead 228.53
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -143,7 +143,7 @@ Cut in energy
|
||||
Tungsten 105 keV 2.31 MeV
|
||||
Lead 101 keV 1.38 MeV
|
||||
===================================================
|
||||
# $Id: TestEm2.out,v 1.9 2000/11/24 10:50:41 stesting Exp $
|
||||
# $Id: TestEm2.out,v 1.13 2001/03/30 09:03:08 stesting Exp $
|
||||
#
|
||||
# Macro file for "TestEm2.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -190,14 +190,14 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 3.2397
|
||||
Water 215.03
|
||||
lAr 209.58
|
||||
Al 349.52
|
||||
Fe 697.65
|
||||
BGO 571.17
|
||||
PbWO4 625.41
|
||||
Tungsten 1205.1
|
||||
Lead 750.46
|
||||
Water 215.85
|
||||
lAr 213.4
|
||||
Al 349.38
|
||||
Fe 698.96
|
||||
BGO 569.64
|
||||
PbWO4 622.56
|
||||
Tungsten 1181.6
|
||||
Lead 737.09
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -219,14 +219,14 @@ msc: Tables of transport mean free paths.
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 3.2397
|
||||
Water 215.03
|
||||
lAr 209.58
|
||||
Al 349.52
|
||||
Fe 697.65
|
||||
BGO 571.17
|
||||
PbWO4 625.41
|
||||
Tungsten 1205.1
|
||||
Lead 750.46
|
||||
Water 215.85
|
||||
lAr 213.4
|
||||
Al 349.38
|
||||
Fe 698.96
|
||||
BGO 569.64
|
||||
PbWO4 622.56
|
||||
Tungsten 1181.6
|
||||
Lead 737.09
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -293,20 +293,20 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=140.09s Real=152.81s Sys=11.26s
|
||||
User=118.39s Real=124.16s Sys=5.71s
|
||||
LATERAL PROFILE CUMULATIVE LATERAL PROFILE
|
||||
|
||||
bin Mean rms bin Mean rms
|
||||
|
||||
0.00-> 1.11 radl: 14.27% 5.32% 0-> 1.11 radl: 14.27% 5.32%
|
||||
1.11-> 2.22 radl: 25.49% 10.73% 0-> 2.22 radl: 39.76% 12.31%
|
||||
2.22-> 3.33 radl: 24.35% 9.19% 0-> 3.33 radl: 64.11% 14.46%
|
||||
3.33-> 4.44 radl: 14.08% 8.04% 0-> 4.44 radl: 78.19% 12.42%
|
||||
4.44-> 5.55 radl: 7.56% 5.98% 0-> 5.55 radl: 85.75% 9.56%
|
||||
5.55-> 6.66 radl: 4.56% 4.61% 0-> 6.66 radl: 90.31% 6.95%
|
||||
6.66-> 7.77 radl: 2.53% 3.85% 0-> 7.77 radl: 92.84% 4.92%
|
||||
7.77-> 8.88 radl: 1.36% 2.46% 0-> 8.88 radl: 94.20% 3.96%
|
||||
8.88-> 9.99 radl: 0.81% 2.04% 0-> 9.99 radl: 95.00% 3.23%
|
||||
0.00-> 1.11 radl: 13.95% 5.86% 0-> 1.11 radl: 13.95% 5.86%
|
||||
1.11-> 2.22 radl: 24.45% 11.26% 0-> 2.22 radl: 38.40% 14.27%
|
||||
2.22-> 3.33 radl: 21.91% 9.16% 0-> 3.33 radl: 60.31% 16.74%
|
||||
3.33-> 4.44 radl: 13.94% 8.39% 0-> 4.44 radl: 74.25% 15.37%
|
||||
4.44-> 5.55 radl: 9.45% 7.28% 0-> 5.55 radl: 83.71% 11.88%
|
||||
5.55-> 6.66 radl: 5.33% 6.03% 0-> 6.66 radl: 89.04% 8.36%
|
||||
6.66-> 7.77 radl: 3.38% 4.46% 0-> 7.77 radl: 92.41% 5.90%
|
||||
7.77-> 8.88 radl: 1.43% 2.94% 0-> 8.88 radl: 93.84% 3.90%
|
||||
8.88-> 9.99 radl: 0.98% 2.37% 0-> 9.99 radl: 94.82% 3.19%
|
||||
|
||||
|
||||
|
||||
@@ -314,21 +314,21 @@ Run Summary
|
||||
|
||||
bin Mean rms bin Mean rms
|
||||
|
||||
0.00-> 0.11 radl: 66.35% 10.09% 0-> 0.11 radl: 66.35% 10.09%
|
||||
0.11-> 0.22 radl: 16.35% 6.18% 0-> 0.22 radl: 82.70% 7.45%
|
||||
0.22-> 0.33 radl: 5.98% 3.96% 0-> 0.33 radl: 88.68% 5.74%
|
||||
0.33-> 0.44 radl: 3.19% 3.15% 0-> 0.44 radl: 91.87% 4.09%
|
||||
0.44-> 0.56 radl: 1.94% 2.23% 0-> 0.56 radl: 93.81% 3.33%
|
||||
0.56-> 0.67 radl: 1.19% 1.25% 0-> 0.67 radl: 95.00% 3.23%
|
||||
0.00-> 0.11 radl: 65.09% 8.82% 0-> 0.11 radl: 65.09% 8.82%
|
||||
0.11-> 0.22 radl: 17.01% 6.52% 0-> 0.22 radl: 82.10% 7.04%
|
||||
0.22-> 0.33 radl: 6.93% 4.24% 0-> 0.33 radl: 89.02% 5.40%
|
||||
0.33-> 0.44 radl: 3.06% 3.03% 0-> 0.44 radl: 92.08% 3.54%
|
||||
0.44-> 0.56 radl: 1.71% 1.25% 0-> 0.56 radl: 93.79% 3.27%
|
||||
0.56-> 0.67 radl: 1.03% 0.93% 0-> 0.67 radl: 94.82% 3.19%
|
||||
|
||||
SUMMARY
|
||||
energy deposit : 95.00 % E0 +- 3.23 % E0
|
||||
charged traklen: 13.59 radl +- 0.48 radl
|
||||
neutral traklen: 200.27 radl +- 20.88 radl
|
||||
energy deposit : 94.82 % E0 +- 3.19 % E0
|
||||
charged traklen: 13.56 radl +- 0.46 radl
|
||||
neutral traklen: 200.51 radl +- 16.58 radl
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 617458126, 1124214817
|
||||
Current couple of seeds = 576966569, 1968644705
|
||||
----------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -35,3 +35,6 @@
|
||||
10 : radial energy profile
|
||||
11 : cumulated radial energy profile
|
||||
12 : rms of cumulated radial energy profile
|
||||
|
||||
21 : edep distrib as function of kine energy of contributing particle
|
||||
22 : cumulative distrib of 21
|
||||
|
||||
@@ -3,4 +3,5 @@
|
||||
COMMON/CELOSS/ SEL1(NBIN), SEL1C(NBIN), SER1(NBIN), SER1C(NBIN),
|
||||
+ SEL2(NBIN), SEL2C(NBIN), SER2(NBIN), SER2C(NBIN),
|
||||
+ DEDL(NBIN), DEDR(NBIN) , FNPAT(NBIN,3),
|
||||
+ STRCH,STRCH1,STRCH2,STRNE,STRNE1,STRNE2
|
||||
+ STRCH,STRCH1,STRCH2,STRNE,STRNE1,STRNE2,
|
||||
+ EDEPCH,EDEPNE
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
* History
|
||||
* -------
|
||||
*
|
||||
* 27-08-01 : added histo 21 and 22 : edep distribution
|
||||
* 08-02-99 : adapted for Geant4 comparison: electromagnetic/test/TestEm2
|
||||
* 17-02-98 : adapted to Unix + interactive + graphic
|
||||
* 21-01-90 : Simplified version (i.e. near gexam1)
|
||||
|
||||
@@ -31,11 +31,13 @@
|
||||
DEDL(NL) = DEDL(NL) + DESTEP
|
||||
ENDIF
|
||||
*
|
||||
* *** track length
|
||||
* *** track length and total energy deposit
|
||||
IF (CHARGE.NE.0.) THEN
|
||||
STRCH = STRCH + STEP
|
||||
STRCH = STRCH + STEP
|
||||
EDEPCH = EDEPCH + DESTEP
|
||||
ELSE
|
||||
STRNE = STRNE + STEP
|
||||
STRNE = STRNE + STEP
|
||||
EDEPNE = EDEPNE + DESTEP
|
||||
ENDIF
|
||||
*
|
||||
* *** Particle's flux
|
||||
@@ -46,5 +48,10 @@
|
||||
IF (IPART.LE.3) FNPAT(NPL,IPART) = FNPAT(NPL,IPART) + 1.
|
||||
NLOLD = NL
|
||||
ENDIF
|
||||
*
|
||||
*
|
||||
* *** energy of particles contributing to edep
|
||||
IF ((DESTEP).GT.0.)THEN
|
||||
elog = log10((gekin+destep)/pkine(3))
|
||||
call hfill (21,elog,0.,destep)
|
||||
ENDIF
|
||||
END
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
* *** achieve initialization
|
||||
NLTOT = MIN(NLTOT,NBIN)
|
||||
NRTOT = MIN(NRTOT,NBIN)
|
||||
CALL VZERO(SEL1,13*NBIN+6)
|
||||
CALL VZERO(SEL1,13*NBIN+8)
|
||||
*
|
||||
CALL GZINIT
|
||||
CALL GPART
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
#include "celoss.inc"
|
||||
*
|
||||
DIMENSION XSEL1(NBIN),XSEL1C(NBIN),XSER1(NBIN),XSER1C(NBIN),
|
||||
+ XSEL2(NBIN),XSEL2C(NBIN),XSER2(NBIN),XSER2C(NBIN)
|
||||
|
||||
*
|
||||
+ XSEL2(NBIN),XSEL2C(NBIN),XSER2(NBIN),XSER2C(NBIN)
|
||||
|
||||
DIMENSION EDIST(100),EDISTC(100)
|
||||
*
|
||||
CALL GLAST
|
||||
*
|
||||
@@ -21,7 +21,11 @@
|
||||
*
|
||||
* *** Normalize and print energy distribution
|
||||
XEVENT=IEVENT
|
||||
CNORM = 100./(XEVENT*PKINE(3))
|
||||
CNORM = 100./(XEVENT*PKINE(3))
|
||||
*
|
||||
* *** mean total energy deposit by charged and by neutral
|
||||
EDEPCH = CNORM*EDEPCH
|
||||
EDEPNE = CNORM*EDEPNE
|
||||
*
|
||||
* *** longitudinal profile
|
||||
DO 2 I = 1,NLTOT
|
||||
@@ -67,9 +71,24 @@
|
||||
PRINT 754,B0,B1,XSER1(I),XSER2(I),B1,XSER1C(I),XSER2C(I)
|
||||
16 CONTINUE
|
||||
*
|
||||
* *** normalize histo of energy ditribution of contributing particles
|
||||
* and compute cumulative distribution
|
||||
SUM = HSUM (21)
|
||||
CALL HUNPAK(21,EDIST,'HIST',1)
|
||||
EDIST( 1) = EDIST(1)*100/SUM
|
||||
EDISTC(1) = EDIST(1)
|
||||
DO 17 I=2,100
|
||||
EDIST (I) = EDIST (I)*100/SUM
|
||||
EDISTC(I) = EDISTC(I-1) + EDIST(I)
|
||||
17 CONTINUE
|
||||
CALL HPAK (21,EDIST)
|
||||
CALL HPAK (22,EDISTC)
|
||||
*
|
||||
* *** print summary
|
||||
PRINT 770
|
||||
PRINT 771,XSEL1C(NLTOT),XSEL2C(NLTOT)
|
||||
PRINT 774,EDEPCH
|
||||
PRINT 775,EDEPNE
|
||||
PRINT 772,XTRCH1,XTRCH2
|
||||
PRINT 773,XTRNE1,XTRNE2
|
||||
*
|
||||
@@ -88,7 +107,9 @@
|
||||
770 FORMAT(///,30X,'SUMMARY',/)
|
||||
771 FORMAT( 25X,'energy deposit : ',F7.2,' % E0 +- ',F7.2,' % E0')
|
||||
772 FORMAT( 25X,'charged traklen: ',F7.2,' radl +- ',F7.2,' radl')
|
||||
773 FORMAT( 25X,'neutral traklen: ',F7.2,' radl +- ',F7.2,' radl')
|
||||
773 FORMAT( 25X,'neutral traklen: ',F7.2,' radl +- ',F7.2,' radl')
|
||||
774 FORMAT( 25X,'edep by charged: ',F7.2,' % E0')
|
||||
775 FORMAT( 25X,'edep by neutral: ',F7.2,' % E0')
|
||||
*
|
||||
END
|
||||
|
||||
|
||||
@@ -56,6 +56,16 @@
|
||||
CALL HBPROF(11,'cumul radial energy dep. (in percent of E inc)'
|
||||
*, NRTOT, RMIN,RMAX, 0., 100.,' ')
|
||||
CALL HBOOK1(12,'resolution: cumul R energy dep. (% of E inc)'
|
||||
*, NRTOT, RMIN,RMAX, 0.0)
|
||||
*, NRTOT, RMIN,RMAX, 0.0)
|
||||
|
||||
*
|
||||
* *** Origin of the deposited energy
|
||||
tminlog = -6.
|
||||
tmaxlog = 0.
|
||||
CALL HBOOK1(21,'edep (normalized 100 percent) versus log(ekin/e0)'
|
||||
*, 100, tminlog, tmaxlog, 0.0)
|
||||
CALL HBOOK1(22,'cumul edep (100 percent) versus log(ekin/e0)'
|
||||
*, 100, tminlog, tmaxlog, 0.0)
|
||||
|
||||
*
|
||||
END
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2DetectorConstruction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2DetectorMessenger.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2EventAction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2EventActionMessenger.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PhysicsList.hh,v 1.3 2000/04/17 11:25:52 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PhysicsListMessenger.hh,v 1.1 2000/04/17 11:25:52 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PrimaryGeneratorAction.hh,v 1.2 1999/12/15 14:48:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,10 +5,12 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2RunAction.hh,v 1.5 2000/12/07 12:14:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2RunAction.hh,v 1.7 2001/03/08 14:28:14 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// 08.03.01 Hisaya: Adapted MyVector for STL
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -24,8 +26,9 @@
|
||||
#include "G4Positron.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "g4rw/tvvector.h"
|
||||
typedef G4RWTValVector<G4double> MyVector;
|
||||
#include "g4std/vector"
|
||||
|
||||
typedef G4std::vector<G4double> MyVector;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -35,6 +38,11 @@ class Em2RunActionMessenger;
|
||||
|
||||
class G4Run;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
#endif
|
||||
|
||||
class Em2RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
@@ -91,7 +99,16 @@ class Em2RunAction : public G4UserRunAction
|
||||
G4double sum2NeutrTrLength;
|
||||
|
||||
Em2RunActionMessenger* runMessenger;
|
||||
G4int saveRndm;
|
||||
G4int saveRndm;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram *histo1, *histo2, *histo3;
|
||||
HepHistogram *histo4, *histo5, *histo6;
|
||||
HepHistogram *histo7, *histo8, *histo9;
|
||||
HepHistogram *hist10, *hist11, *hist12;
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -101,10 +118,10 @@ void Em2RunAction::initializePerEvent()
|
||||
{
|
||||
//initialize arrays of energy deposit per bin
|
||||
for (G4int i=0; i<nLbin; i++)
|
||||
{ dEdL(i) = 0.; }
|
||||
{ dEdL[i] = 0.; }
|
||||
|
||||
for (G4int j=0; j<nRbin; j++)
|
||||
{ dEdR(j) = 0.; }
|
||||
{ dEdR[j] = 0.; }
|
||||
|
||||
//initialize tracklength
|
||||
ChargTrLength = NeutrTrLength = 0.;
|
||||
@@ -124,7 +141,7 @@ void Em2RunAction::fillPerTrack(G4double charge, G4double trkLength)
|
||||
inline
|
||||
void Em2RunAction::fillPerStep(G4double dEstep, G4int Lbin, G4int Rbin)
|
||||
{
|
||||
dEdL(Lbin) += dEstep; dEdR(Rbin) += dEstep;
|
||||
dEdL[Lbin] += dEstep; dEdR[Rbin] += dEstep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -132,9 +149,9 @@ void Em2RunAction::fillPerStep(G4double dEstep, G4int Lbin, G4int Rbin)
|
||||
inline
|
||||
void Em2RunAction::particleFlux(G4ParticleDefinition* particle, G4int Lplan)
|
||||
{
|
||||
if (particle == G4Gamma::Gamma()) gammaFlux(Lplan)++;
|
||||
else if (particle == G4Electron::Electron()) electronFlux(Lplan)++;
|
||||
else if (particle == G4Positron::Positron()) positronFlux(Lplan)++;
|
||||
if (particle == G4Gamma::Gamma()) gammaFlux[Lplan]++;
|
||||
else if (particle == G4Electron::Electron()) electronFlux[Lplan]++;
|
||||
else if (particle == G4Positron::Positron()) positronFlux[Lplan]++;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2RunActionMessenger.hh,v 1.3 2000/01/21 10:56:15 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2SteppingAction.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2SteppingVerbose.hh,v 1.4 2000/12/06 14:12:16 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2SteppingVerbose.hh,v 1.5 2001/02/19 14:06:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// This class manages the verbose outputs in G4SteppingManager.
|
||||
// It inherits from G4SteppingVerbose.
|
||||
@@ -15,8 +15,6 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
class Em2SteppingVerbose;
|
||||
|
||||
#ifndef Em2SteppingVerbose_h
|
||||
#define Em2SteppingVerbose_h 1
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2TrackingAction.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2VisManager.hh,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2DetectorConstruction.cc,v 1.4 2000/05/09 13:56:33 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2DetectorMessenger.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2EventAction.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2EventAction.cc,v 1.3 2001/02/20 15:58:35 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -45,10 +45,20 @@ Em2EventAction::~Em2EventAction()
|
||||
|
||||
void Em2EventAction::BeginOfEventAction(const G4Event* evt)
|
||||
{
|
||||
G4int evtNb = evt->GetEventID();
|
||||
if (evtNb%printModulo == 0)
|
||||
G4cout << "\n---> Begin Of Event: " << evtNb << G4endl;
|
||||
G4int evtNb = evt->GetEventID();
|
||||
|
||||
//printing survey
|
||||
if (evtNb%printModulo == 0)
|
||||
G4cout << "\n---> Begin of Event: " << evtNb << G4endl;
|
||||
|
||||
//save rndm status
|
||||
if (Em2Run->GetRndmFreq() == 2)
|
||||
{
|
||||
HepRandom::saveEngineStatus("beginOfEvent.rndm");
|
||||
if (evtNb%printModulo == 0) HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
//additional initializations
|
||||
Em2Run->initializePerEvent();
|
||||
}
|
||||
|
||||
@@ -70,18 +80,6 @@ void Em2EventAction::EndOfEventAction(const G4Event* evt)
|
||||
trj->DrawTrajectory(50);
|
||||
}
|
||||
}
|
||||
|
||||
//save rndm status
|
||||
if (Em2Run->GetRndmFreq() == 2)
|
||||
{
|
||||
HepRandom::saveEngineStatus("endOfEvent.rndm");
|
||||
G4int evtNb = evt->GetEventID();
|
||||
if (evtNb%printModulo == 0)
|
||||
{
|
||||
G4cout << "\n---> End of Event: " << evtNb << G4endl;
|
||||
HepRandom::showEngineStatus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2EventActionMessenger.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PhysicsList.cc,v 1.5 2000/12/06 14:12:16 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PhysicsListMessenger.cc,v 1.1 2000/04/17 11:26:49 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2PrimaryGeneratorAction.cc,v 1.2 1999/12/15 14:49:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,9 +5,12 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2RunAction.cc,v 1.6 2000/12/07 12:14:07 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2RunAction.cc,v 1.10 2001/03/27 08:58:15 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// 08.03.01 Hisaya: Adapted MyVector for STL
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -29,6 +32,10 @@
|
||||
|
||||
#include "Randomize.hh"
|
||||
|
||||
#ifndef G4NOHIST
|
||||
#include "CLHEP/Hist/HBookFile.h"
|
||||
#endif
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em2RunAction::Em2RunAction(Em2DetectorConstruction* det,
|
||||
@@ -36,25 +43,30 @@ Em2RunAction::Em2RunAction(Em2DetectorConstruction* det,
|
||||
:Em2Det(det),Em2Kin(kin)
|
||||
{
|
||||
nLbin = Em2Det->GetnLtot();
|
||||
dEdL = *new MyVector(nLbin);
|
||||
sumELongit = *new MyVector(nLbin);
|
||||
sumELongitCumul = *new MyVector(nLbin);
|
||||
sumE2Longit = *new MyVector(nLbin);
|
||||
sumE2LongitCumul = *new MyVector(nLbin);
|
||||
dEdL.resize(nLbin, 0.0);
|
||||
sumELongit.resize(nLbin, 0.0);
|
||||
sumELongitCumul.resize(nLbin, 0.0);
|
||||
sumE2Longit.resize(nLbin, 0.0);
|
||||
sumE2LongitCumul.resize(nLbin, 0.0);
|
||||
|
||||
gammaFlux = *new MyVector(nLbin);
|
||||
electronFlux = *new MyVector(nLbin);
|
||||
positronFlux = *new MyVector(nLbin);
|
||||
gammaFlux.resize(nLbin, 0.0);
|
||||
electronFlux.resize(nLbin, 0.0);
|
||||
positronFlux.resize(nLbin, 0.0);
|
||||
|
||||
nRbin = Em2Det->GetnRtot();
|
||||
dEdR = *new MyVector(nRbin);
|
||||
sumERadial = *new MyVector(nRbin);
|
||||
sumERadialCumul = *new MyVector(nRbin);
|
||||
sumE2Radial = *new MyVector(nRbin);
|
||||
sumE2RadialCumul = *new MyVector(nRbin);
|
||||
dEdR.resize(nRbin, 0.0);
|
||||
sumERadial.resize(nRbin, 0.0);
|
||||
sumERadialCumul.resize(nRbin, 0.0);
|
||||
sumE2Radial.resize(nRbin, 0.0);
|
||||
sumE2RadialCumul.resize(nRbin, 0.0);
|
||||
|
||||
runMessenger = new Em2RunActionMessenger(this);
|
||||
saveRndm = 1;
|
||||
saveRndm = 1;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = NULL;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -68,12 +80,69 @@ Em2RunAction::~Em2RunAction()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void Em2RunAction::bookHisto()
|
||||
{}
|
||||
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
hbookManager = new HBookFile("TestEm2.paw", 68);
|
||||
assert (hbookManager != 0);
|
||||
|
||||
G4double Ekin = Em2Kin->GetParticleGun()->GetParticleEnergy();
|
||||
G4double dLradl = Em2Det->GetdLradl();
|
||||
G4double dRradl = Em2Det->GetdRradl();
|
||||
|
||||
histo1 = hbookManager->histogram("total energy deposit (percent of E inc)",
|
||||
100,0.,100.);
|
||||
|
||||
histo2 = hbookManager->histogram("total charged tracklength (radl)",
|
||||
100,0.,100.*Ekin/GeV);
|
||||
|
||||
histo3 = hbookManager->histogram("total neutral tracklength (radl)",
|
||||
100,0.,1000.*Ekin/GeV);
|
||||
|
||||
histo4 = hbookManager->histogram("longit energy profile (% of E inc)",
|
||||
nLbin,0.,nLbin*dLradl);
|
||||
|
||||
G4double Zmin=0.5*dLradl, Zmax=Zmin+nLbin*dLradl;
|
||||
histo5 = hbookManager->histogram("cumul longit energy dep (% of E inc)",
|
||||
nLbin,Zmin,Zmax);
|
||||
|
||||
histo6 = hbookManager->histogram("rms on cumul longit Edep (% of E inc)",
|
||||
nLbin,Zmin,Zmax);
|
||||
|
||||
histo7 = hbookManager->histogram("nb of gamma per plane",
|
||||
nLbin,Zmin,Zmax);
|
||||
|
||||
histo8 = hbookManager->histogram("nb of positron per plane",
|
||||
nLbin,Zmin,Zmax);
|
||||
|
||||
histo9 = hbookManager->histogram("nb of electron per plane",
|
||||
nLbin,Zmin,Zmax);
|
||||
|
||||
hist10 = hbookManager->histogram("radial energy profile (% of E inc)",
|
||||
nRbin,0.,nRbin*dRradl);
|
||||
|
||||
G4double Rmin=0.5*dRradl, Rmax=Rmin+nRbin*dRradl;
|
||||
hist11 = hbookManager->histogram("cumul radial energy dep (% of E inc)",
|
||||
nRbin,Rmin,Rmax);
|
||||
|
||||
hist12 = hbookManager->histogram("rms on cumul radial Edep (% of E inc)",
|
||||
nRbin,Rmin,Rmax);
|
||||
#endif
|
||||
}
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void Em2RunAction::cleanHisto()
|
||||
{}
|
||||
{
|
||||
#ifndef G4NOHIST
|
||||
// Write histogram file
|
||||
hbookManager->write();
|
||||
|
||||
delete histo1; delete histo2; delete histo3;
|
||||
delete histo4; delete histo5; delete histo6;
|
||||
delete histo7; delete histo8; delete histo9;
|
||||
delete hist10; delete hist11; delete hist12;
|
||||
delete hbookManager;
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -93,29 +162,34 @@ void Em2RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
|
||||
G4int nLtot = Em2Det->GetnLtot();
|
||||
if(nLbin != nLtot)
|
||||
{dEdL.reshape(nLbin=nLtot);
|
||||
sumELongit.reshape(nLbin) ; sumE2Longit.reshape(nLbin);
|
||||
sumELongitCumul.reshape(nLbin); sumE2LongitCumul.reshape(nLbin);
|
||||
gammaFlux.reshape(nLbin) ;
|
||||
electronFlux.reshape(nLbin) ; positronFlux.reshape(nLbin);
|
||||
{dEdL.resize(nLbin=nLtot, 0.0);
|
||||
sumELongit.resize(nLbin, 0.0);
|
||||
sumE2Longit.resize(nLbin, 0.0);
|
||||
sumELongitCumul.resize(nLbin, 0.0);
|
||||
sumE2LongitCumul.resize(nLbin, 0.0);
|
||||
gammaFlux.resize(nLbin, 0.0);
|
||||
electronFlux.resize(nLbin, 0.0);
|
||||
positronFlux.resize(nLbin, 0.0);
|
||||
rebin=true;
|
||||
}
|
||||
|
||||
G4int nRtot = Em2Det->GetnRtot();
|
||||
if(nRbin != nRtot)
|
||||
{dEdR.reshape(nRbin=nRtot);
|
||||
sumERadial.reshape(nRbin) ; sumE2Radial.reshape(nRbin);
|
||||
sumERadialCumul.reshape(nRbin); sumE2RadialCumul.reshape(nRbin);
|
||||
{dEdR.resize(nRbin=nRtot, 0.0);
|
||||
sumERadial.resize(nRbin, 0.0);
|
||||
sumE2Radial.resize(nRbin, 0.0);
|
||||
sumERadialCumul.resize(nRbin, 0.0);
|
||||
sumE2RadialCumul.resize(nRbin, 0.0);
|
||||
rebin=true;
|
||||
}
|
||||
|
||||
//initialize arrays of cumulative energy deposition
|
||||
//
|
||||
for (G4int i=0; i<nLbin; i++)
|
||||
sumELongit(i)=sumE2Longit(i)=sumELongitCumul(i)=sumE2LongitCumul(i)=0.;
|
||||
sumELongit[i]=sumE2Longit[i]=sumELongitCumul[i]=sumE2LongitCumul[i]=0.;
|
||||
|
||||
for (G4int j=0; j<nRbin; j++)
|
||||
sumELongit(j)=sumE2Longit(j)=sumELongitCumul(j)=sumE2LongitCumul(j)=0.;
|
||||
sumELongit[j]=sumE2Longit[j]=sumELongitCumul[j]=sumE2LongitCumul[j]=0.;
|
||||
|
||||
//initialize track length
|
||||
sumChargTrLength=sum2ChargTrLength=sumNeutrTrLength=sum2NeutrTrLength=0.;
|
||||
@@ -143,27 +217,39 @@ void Em2RunAction::fillPerEvent()
|
||||
G4double dLCumul = 0.;
|
||||
for (G4int i=0; i<nLbin; i++)
|
||||
{
|
||||
sumELongit(i) += dEdL(i);
|
||||
sumE2Longit(i) += dEdL(i)*dEdL(i);
|
||||
dLCumul += dEdL(i);
|
||||
sumELongitCumul(i) += dLCumul;
|
||||
sumE2LongitCumul(i) += dLCumul*dLCumul;
|
||||
sumELongit[i] += dEdL[i];
|
||||
sumE2Longit[i] += dEdL[i]*dEdL[i];
|
||||
dLCumul += dEdL[i];
|
||||
sumELongitCumul[i] += dLCumul;
|
||||
sumE2LongitCumul[i] += dLCumul*dLCumul;
|
||||
}
|
||||
|
||||
G4double dRCumul = 0.;
|
||||
for (G4int j=0; j<nRbin; j++)
|
||||
{
|
||||
sumERadial(j) += dEdR(j);
|
||||
sumE2Radial(j) += dEdR(j)*dEdR(j);
|
||||
dRCumul += dEdR(j);
|
||||
sumERadialCumul(j) += dRCumul;
|
||||
sumE2RadialCumul(j) += dRCumul*dRCumul;
|
||||
sumERadial[j] += dEdR[j];
|
||||
sumE2Radial[j] += dEdR[j]*dEdR[j];
|
||||
dRCumul += dEdR[j];
|
||||
sumERadialCumul[j] += dRCumul;
|
||||
sumE2RadialCumul[j] += dRCumul*dRCumul;
|
||||
}
|
||||
|
||||
sumChargTrLength += ChargTrLength;
|
||||
sum2ChargTrLength += ChargTrLength*ChargTrLength;
|
||||
sumNeutrTrLength += NeutrTrLength;
|
||||
sum2NeutrTrLength += NeutrTrLength*NeutrTrLength;
|
||||
sum2NeutrTrLength += NeutrTrLength*NeutrTrLength;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
//fill histograms
|
||||
//
|
||||
G4double Ekin=Em2Kin->GetParticleGun()->GetParticleEnergy();
|
||||
G4double mass=Em2Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass();
|
||||
G4double radl=Em2Det->GetMaterial()->GetRadlen();
|
||||
|
||||
histo1->accumulate(100.*dLCumul/(Ekin+mass));
|
||||
histo2->accumulate(ChargTrLength/radl);
|
||||
histo3->accumulate(NeutrTrLength/radl);
|
||||
#endif
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -186,42 +272,61 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
//
|
||||
G4double dLradl = Em2Det->GetdLradl();
|
||||
|
||||
MyVector MeanELongit (nLbin), rmsELongit (nLbin);
|
||||
MyVector MeanELongit(nLbin), rmsELongit(nLbin);
|
||||
MyVector MeanELongitCumul(nLbin), rmsELongitCumul(nLbin);
|
||||
|
||||
G4int i; G4double bin;
|
||||
for (i=0; i<nLbin; i++)
|
||||
{
|
||||
MeanELongit(i) = norme*sumELongit(i);
|
||||
rmsELongit(i) = norme*sqrt(abs(NbOfEvents*sumE2Longit(i)
|
||||
- sumELongit(i)*sumELongit(i)));
|
||||
MeanELongit[i] = norme*sumELongit[i];
|
||||
rmsELongit[i] = norme*sqrt(abs(NbOfEvents*sumE2Longit[i]
|
||||
- sumELongit[i]*sumELongit[i]));
|
||||
|
||||
MeanELongitCumul(i) = norme*sumELongitCumul(i);
|
||||
rmsELongitCumul(i) = norme*sqrt(abs(NbOfEvents*sumE2LongitCumul(i)
|
||||
- sumELongitCumul(i)*sumELongitCumul(i)));
|
||||
MeanELongitCumul[i] = norme*sumELongitCumul[i];
|
||||
rmsELongitCumul[i] = norme*sqrt(abs(NbOfEvents*sumE2LongitCumul[i]
|
||||
- sumELongitCumul[i]*sumELongitCumul[i]));
|
||||
|
||||
gammaFlux (i) /= NbOfEvents;
|
||||
electronFlux(i) /= NbOfEvents;
|
||||
positronFlux(i) /= NbOfEvents;
|
||||
gammaFlux [i] /= NbOfEvents;
|
||||
electronFlux[i] /= NbOfEvents;
|
||||
positronFlux[i] /= NbOfEvents;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
bin = i*dLradl;
|
||||
histo4->accumulate(bin,MeanELongit[i]/dLradl);
|
||||
bin = (i+1)*dLradl;
|
||||
histo5->accumulate(bin,MeanELongitCumul[i]);
|
||||
histo6->accumulate(bin, rmsELongitCumul[i]);
|
||||
|
||||
histo7->accumulate(bin, gammaFlux[i]);
|
||||
histo8->accumulate(bin, positronFlux[i]);
|
||||
histo9->accumulate(bin, electronFlux[i]);
|
||||
#endif
|
||||
}
|
||||
|
||||
//radial
|
||||
//
|
||||
G4double dRradl = Em2Det->GetdRradl();
|
||||
|
||||
MyVector MeanERadial (nRbin), rmsERadial (nRbin);
|
||||
MyVector MeanERadial(nRbin), rmsERadial(nRbin);
|
||||
MyVector MeanERadialCumul(nRbin), rmsERadialCumul(nRbin);
|
||||
|
||||
for (i=0; i<nRbin; i++)
|
||||
{
|
||||
MeanERadial(i) = norme*sumERadial(i);
|
||||
rmsERadial(i) = norme*sqrt(abs(NbOfEvents*sumE2Radial(i)
|
||||
- sumERadial(i)*sumERadial(i)));
|
||||
MeanERadial[i] = norme*sumERadial[i];
|
||||
rmsERadial[i] = norme*sqrt(abs(NbOfEvents*sumE2Radial[i]
|
||||
- sumERadial[i]*sumERadial[i]));
|
||||
|
||||
MeanERadialCumul(i) = norme*sumERadialCumul(i);
|
||||
rmsERadialCumul(i) = norme*sqrt(abs(NbOfEvents*sumE2RadialCumul(i)
|
||||
- sumERadialCumul(i)*sumERadialCumul(i)));
|
||||
|
||||
MeanERadialCumul[i] = norme*sumERadialCumul[i];
|
||||
rmsERadialCumul[i] = norme*sqrt(abs(NbOfEvents*sumE2RadialCumul[i]
|
||||
- sumERadialCumul[i]*sumERadialCumul[i]));
|
||||
|
||||
#ifndef G4NOHIST
|
||||
bin = i*dRradl;
|
||||
hist10->accumulate(bin,MeanERadial[i]/dRradl);
|
||||
bin = (i+1)*dRradl;
|
||||
hist11->accumulate(bin,MeanERadialCumul[i]);
|
||||
hist12->accumulate(bin, rmsERadialCumul[i]);
|
||||
#endif
|
||||
}
|
||||
|
||||
//track length
|
||||
@@ -252,11 +357,11 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
G4double inf=i*dLradl, sup=inf+dLradl;
|
||||
|
||||
G4cout << G4std::setw(8) << inf << "->" << G4std::setw(5) << sup << " radl: "
|
||||
<< G4std::setw(7) << MeanELongit(i) << "% "
|
||||
<< G4std::setw(9) << rmsELongit(i) << "% "
|
||||
<< G4std::setw(7) << MeanELongit[i] << "% "
|
||||
<< G4std::setw(9) << rmsELongit[i] << "% "
|
||||
<< " 0->" << G4std::setw(5) << sup << " radl: "
|
||||
<< G4std::setw(7) << MeanELongitCumul(i) << "% "
|
||||
<< G4std::setw(7) << rmsELongitCumul(i) << "% "
|
||||
<< G4std::setw(7) << MeanELongitCumul[i] << "% "
|
||||
<< G4std::setw(7) << rmsELongitCumul[i] << "% "
|
||||
<<G4endl;
|
||||
}
|
||||
|
||||
@@ -273,18 +378,18 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
G4double inf=i*dRradl, sup=inf+dRradl;
|
||||
|
||||
G4cout << G4std::setw(8) << inf << "->" << G4std::setw(5) << sup << " radl: "
|
||||
<< G4std::setw(7) << MeanERadial(i) << "% "
|
||||
<< G4std::setw(9) << rmsERadial(i) << "% "
|
||||
<< G4std::setw(7) << MeanERadial[i] << "% "
|
||||
<< G4std::setw(9) << rmsERadial[i] << "% "
|
||||
<< " 0->" << G4std::setw(5) << sup << " radl: "
|
||||
<< G4std::setw(7) << MeanERadialCumul(i) << "% "
|
||||
<< G4std::setw(7) << rmsERadialCumul(i) << "% "
|
||||
<< G4std::setw(7) << MeanERadialCumul[i] << "% "
|
||||
<< G4std::setw(7) << rmsERadialCumul[i] << "% "
|
||||
<<G4endl;
|
||||
}
|
||||
G4cout << G4endl;
|
||||
G4cout << G4std::setw(37) << "SUMMARY" << G4endl;
|
||||
G4cout << G4std::setw(42) << "energy deposit : "
|
||||
<< G4std::setw(7) << MeanELongitCumul(nLbin-1) << " % E0 +- "
|
||||
<< G4std::setw(7) << rmsELongitCumul(nLbin-1) << " % E0" << G4endl;
|
||||
<< G4std::setw(7) << MeanELongitCumul[nLbin-1] << " % E0 +- "
|
||||
<< G4std::setw(7) << rmsELongitCumul[nLbin-1] << " % E0" << G4endl;
|
||||
G4cout << G4std::setw(42) << "charged traklen: "
|
||||
<< G4std::setw(7) << MeanChargTrLength << " radl +- "
|
||||
<< G4std::setw(7) << rmsChargTrLength << " radl" << G4endl;
|
||||
@@ -297,7 +402,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
G4cout.precision(oldprec);
|
||||
|
||||
// save Rndm status
|
||||
if (saveRndm == 1)
|
||||
if (saveRndm > 0)
|
||||
{ HepRandom::showEngineStatus();
|
||||
HepRandom::saveEngineStatus("endOfRun.rndm");
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2RunActionMessenger.cc,v 1.3 2000/01/21 10:56:16 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2RunActionMessenger.cc,v 1.4 2001/02/20 15:58:36 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -35,8 +35,8 @@ Em2RunActionMessenger::Em2RunActionMessenger(Em2RunAction* run)
|
||||
RndmSaveCmd->SetGuidance("set frequency to save rndm status on external files.");
|
||||
RndmSaveCmd->SetGuidance("freq = 0 not saved");
|
||||
RndmSaveCmd->SetGuidance("freq > 0 saved on: beginOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 1 saved on: endOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq > 0 saved on: endOfRun.rndm");
|
||||
RndmSaveCmd->SetGuidance("freq = 2 saved on: beginOfEvent.rndm");
|
||||
RndmSaveCmd->SetParameterName("frequency",false);
|
||||
RndmSaveCmd->SetRange("frequency>=0 && frequency<=2");
|
||||
RndmSaveCmd->AvailableForStates(PreInit,Idle);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2SteppingAction.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2SteppingVerbose.cc,v 1.4 2000/12/06 14:12:16 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em2SteppingVerbose.cc,v 1.6 2001/02/19 14:06:36 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -46,7 +46,7 @@ void Em2SteppingVerbose::StepInfo()
|
||||
<< 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;
|
||||
}
|
||||
|
||||
@@ -61,16 +61,17 @@ void Em2SteppingVerbose::StepInfo()
|
||||
|
||||
// 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 << G4endl;
|
||||
@@ -86,12 +87,12 @@ void Em2SteppingVerbose::StepInfo()
|
||||
<< ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).entries()
|
||||
<< "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
|
||||
for(G4int lp1=(*fSecondary).entries()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).entries(); lp1++){
|
||||
for(G4int lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " : "
|
||||
<< G4std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
@@ -115,8 +116,8 @@ void Em2SteppingVerbose::StepInfo()
|
||||
|
||||
}
|
||||
G4cout.precision(prec);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
void Em2SteppingVerbose::TrackingStarted()
|
||||
@@ -134,7 +135,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() << " "
|
||||
@@ -147,13 +148,13 @@ 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.....
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2TrackingAction.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em2VisManager.cc,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.4 2000/12/07 12:38:24 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.5 2001/02/21 11:17:02 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -16,4 +16,12 @@ all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.4 2000/12/07 12:38:24 maire Exp $
|
||||
$Id: History,v 1.7 2001/03/26 16:01:57 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,26 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
26-03-01 mma (testem3-V03-00-04)
|
||||
- change in histogramming : 1d histo of Edep/Ebeam
|
||||
in each absorber instead of ntuple, both in G4 and G3.
|
||||
- interactive command /run/setHisto (in G4) and ffread
|
||||
data card *histo (in G3) to control the binning of the
|
||||
histos.
|
||||
- in G3, new data card cutpr to set bcute, dcute, ppcutm for
|
||||
each tracking medium
|
||||
- in gnumakefile : the cpp flag g4nohist=true by default.
|
||||
--> no histograms in G4 by default.
|
||||
|
||||
|
||||
21-02-01 mma (testem3-V03-00-03)
|
||||
- hbook histograms restored
|
||||
|
||||
20-02-01 mma (testem3-V03-00-02)
|
||||
-stepping verbose adapted for STL
|
||||
-BirkAttenuation function
|
||||
-save rndm at begin of event
|
||||
|
||||
07-12-00 mma (testem3-V02-00-03 & testem-noHist)
|
||||
remove hbook histograms: GNUmakefile,runAction,eventAction
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.2 2000/01/21 09:11:04 maire Exp $
|
||||
$Id: README,v 1.4 2001/03/30 12:39:56 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -111,16 +111,19 @@ $Id: README,v 1.2 2000/01/21 09:11:04 maire Exp $
|
||||
....
|
||||
Idle> exit
|
||||
|
||||
7- NTUPLE
|
||||
7- Histograms
|
||||
|
||||
Testem3 produce an Ntuple which is saved as testem3.histo
|
||||
|
||||
Content of this Ntuple:
|
||||
Testem3 produces histograms which are saved as testem3.paw :
|
||||
histo 1 : energy deposit in absorber 0 (edep/Ebeam)
|
||||
histo 2 : energy deposit in absorber 1 (edep/Ebeam)
|
||||
...etc...........
|
||||
|
||||
EAbs0 = energy deposit in absorber[0] per event
|
||||
LAbs0 = charged track length in absorber[0] per event
|
||||
........
|
||||
EAbsN = energy deposit in absorber[N] per event
|
||||
LAbsN = charged track length in absorber[N] per event
|
||||
|
||||
|
||||
One can control the binning of the histo with the command:
|
||||
/run/setHisto idAbsor nbin vmin vmax
|
||||
...etc...........
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: TestEm3.cc,v 1.4 2000/12/06 16:43:38 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: TestEm3.cc,v 1.5 2001/03/26 16:01:57 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -46,8 +46,9 @@ int main(int argc,char** argv) {
|
||||
Em3DetectorConstruction* detector = new Em3DetectorConstruction;
|
||||
runManager->SetUserInitialization(detector);
|
||||
runManager->SetUserInitialization(new Em3PhysicsList);
|
||||
|
||||
runManager->SetUserAction(new Em3PrimaryGeneratorAction(detector));
|
||||
//
|
||||
Em3PrimaryGeneratorAction* KinAct = new Em3PrimaryGeneratorAction(detector);
|
||||
runManager->SetUserAction(KinAct);
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// visualization manager
|
||||
@@ -58,7 +59,7 @@ int main(int argc,char** argv) {
|
||||
// set user action classes
|
||||
Em3RunAction* RunAct = new Em3RunAction(detector);
|
||||
runManager->SetUserAction(RunAct);
|
||||
runManager->SetUserAction(new Em3EventAction(RunAct,detector));
|
||||
runManager->SetUserAction(new Em3EventAction(RunAct,KinAct,detector));
|
||||
runManager->SetUserAction(new Em3SteppingAction);
|
||||
|
||||
//Initialize G4 kernel
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-03-00 $
|
||||
(30-Jun-2000)
|
||||
Geant4 version $Name: geant4-03-01 $
|
||||
(15-Dec-2000)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
|
||||
|
||||
Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 6317232936888469291008.000 km
|
||||
Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc
|
||||
---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.786 km
|
||||
@@ -107,21 +107,21 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
|
||||
material min.delta energy(keV)
|
||||
|
||||
Aluminium 82.738
|
||||
liquidArgon 52.207
|
||||
Iron 142.65
|
||||
Copper 153.03
|
||||
Tungsten 210.48
|
||||
Lead 145.94
|
||||
Uranium 198.28
|
||||
Water 54.624
|
||||
Scintillator 55.559
|
||||
Silicium 76.801
|
||||
quartz 76.434
|
||||
NemaG10 68.96
|
||||
Aluminium 82.719
|
||||
liquidArgon 53.268
|
||||
Iron 143.41
|
||||
Copper 153.59
|
||||
Tungsten 210.64
|
||||
Lead 145.79
|
||||
Uranium 197.41
|
||||
Water 54.852
|
||||
Scintillator 55.938
|
||||
Silicium 77.338
|
||||
quartz 77.2
|
||||
NemaG10 69.507
|
||||
Air 0.99
|
||||
Aerogel 20.283
|
||||
CarbonicGas 6.298
|
||||
Aerogel 20.477
|
||||
CarbonicGas 6.4196
|
||||
WaterSteam 0.99
|
||||
Galactic 0.99
|
||||
Beam 0.99
|
||||
@@ -145,21 +145,21 @@ msc: Tables of transport mean free paths.
|
||||
|
||||
material min.delta energy(keV)
|
||||
|
||||
Aluminium 82.738
|
||||
liquidArgon 52.207
|
||||
Iron 142.65
|
||||
Copper 153.03
|
||||
Tungsten 210.48
|
||||
Lead 145.94
|
||||
Uranium 198.28
|
||||
Water 54.624
|
||||
Scintillator 55.559
|
||||
Silicium 76.801
|
||||
quartz 76.434
|
||||
NemaG10 68.96
|
||||
Aluminium 82.719
|
||||
liquidArgon 53.268
|
||||
Iron 143.41
|
||||
Copper 153.59
|
||||
Tungsten 210.64
|
||||
Lead 145.79
|
||||
Uranium 197.41
|
||||
Water 54.852
|
||||
Scintillator 55.938
|
||||
Silicium 77.338
|
||||
quartz 77.2
|
||||
NemaG10 69.507
|
||||
Air 0.99
|
||||
Aerogel 20.283
|
||||
CarbonicGas 6.298
|
||||
Aerogel 20.477
|
||||
CarbonicGas 6.4196
|
||||
WaterSteam 0.99
|
||||
Galactic 0.99
|
||||
Beam 0.99
|
||||
@@ -209,7 +209,7 @@ Cut in energy
|
||||
Galactic 990 eV 990 eV
|
||||
Beam 990 eV 990 eV
|
||||
===================================================
|
||||
# $Id: TestEm3.out,v 1.8 2000/11/24 11:02:55 stesting Exp $
|
||||
# $Id: TestEm3.out,v 1.12 2001/03/30 09:03:15 stesting Exp $
|
||||
#
|
||||
# Macro file for "exampleN03.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -242,19 +242,19 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=273.62s Real=311.24s Sys=20.37s
|
||||
User=141.92s Real=151.68s Sys=9.63s
|
||||
|
||||
-------------------------------------------------------------
|
||||
total energy dep total tracklen
|
||||
|
||||
Absorber0 ( Lead) : 814.79 MeV +- 14.27 MeV 51.33 cm +- 1.17 cm
|
||||
Absorber1 ( liquidArgon) : 175.43 MeV +- 13.23 MeV 87.65 cm +- 6.82 cm
|
||||
Absorber0 ( Lead) : 812.12 MeV +- 16.14 MeV 51.89 cm +- 1.22 cm
|
||||
Absorber1 ( liquidArgon) : 177.04 MeV +- 15.38 MeV 88.78 cm +- 8.08 cm
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 1497149051, 1975036636
|
||||
Current couple of seeds = 859140068, 732198684
|
||||
----------------------------------------
|
||||
G4 kernel has come to Quit state.
|
||||
Deletion of G4 kernel class start.
|
||||
|
||||
@@ -15,13 +15,18 @@
|
||||
|
||||
run01.dat (runNN.dat is the equivalent of the G4 runNN.mac)
|
||||
|
||||
It is possible to set the production cuts BCUTE, DCUTE and PPCUTM
|
||||
medium by medium, via the data cards:
|
||||
CUTPR imed1 bcute/m dcute/m ppcutm
|
||||
CUTPR imed2 bcute/m dcute/m ppcutm
|
||||
...etc............
|
||||
|
||||
testem3 produce an Ntuple which is saved as testem3.paw if ISWIT(2)=1
|
||||
|
||||
Content of this Ntuple:
|
||||
testem3 produces histograms which are saved as testem3.paw :
|
||||
histo 1 : energy deposit in absorber 1 (edep/Ebeam)
|
||||
histo 2 : energy deposit in absorber 2 (edep/Ebeam)
|
||||
...etc...........
|
||||
|
||||
EAbs0 = energy deposit in absorber(0) per event
|
||||
LAbs0 = charged track length in absorber(0) per event
|
||||
..........
|
||||
EAbsN = energy deposit in absorber(N) per event
|
||||
LAbsN = charged track length in absorber(N) per event
|
||||
One can control the binning of the histo with the data cards:
|
||||
*HISTO id1 nbin vmin vmax
|
||||
*HISTO id2 nbin vmin vmax
|
||||
...etc...........
|
||||
|
||||
@@ -15,4 +15,12 @@
|
||||
* calorX = total X-size of the calor (cm)
|
||||
* worldX = total X-size of the world (cm)
|
||||
* worldYZ = total YZ-size of the world (cm)
|
||||
*
|
||||
*
|
||||
|
||||
COMMON/PRODCUT/prodcut(4*MaxAbs)
|
||||
*
|
||||
* prodcut(k) = tracking medium number k (data card CUTPR)
|
||||
* prodcut(k+1) = bcute/m for this medium (data card CUTPR)
|
||||
* prodcut(k+2) = dcute/m for this medium (data card CUTPR)
|
||||
* prodcut(k+3) = ppcutm for this medium (data card CUTPR)
|
||||
*
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
COMMON/HISTO/iexist(MaxAbs),idhist,nbinE,Emin,Emax
|
||||
@@ -0,0 +1,27 @@
|
||||
LIST
|
||||
C
|
||||
C Iron-scintillator 20 layers
|
||||
C
|
||||
CALOR 2 (nbAbs) 20 (nbLay) 30. (calorYZ) 0. (field)
|
||||
MATE 7 (iron) 14 (Sc)
|
||||
THICK 1.4(cm) 0.3 (cm)
|
||||
C
|
||||
TRIG 20000
|
||||
KINE 5 (Itype) 180. (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz)
|
||||
DEBUG 10 5 1000
|
||||
SWIT 0 (draw) 1 (save)
|
||||
C
|
||||
ABAN 0
|
||||
LOSS 1
|
||||
HADR 0
|
||||
TIME 2=1.
|
||||
C
|
||||
CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutn/h/mu)
|
||||
CUTPR 1. (tmed) 20.5e-6 (bcute/m) 1.2e-3 (dcute/m) 1.2e-3 (ppcutm)
|
||||
2. (tmed) 10.0e-6 (bcute/m) 356.0e-6 (dcute/m) 356.0e-6 (ppcutm)
|
||||
C
|
||||
C CUTPR 1. (tmed) 10.0e+3 (bcute/m) 146.0e+0 (dcute/m) 146.0e+0 (ppcutm)
|
||||
C 2. (tmed) 842.0e-6 (bcute/m) 318.0e-3 (dcute/m) 318.0e-3 (ppcutm)
|
||||
C
|
||||
*HISTO 1 (idh) 100 (nbin) 0. (Emin/Ebeam) 1.e-2 (Emax/Ebeam)
|
||||
*HISTO 2 (idh) 100 (nbin) 0. (Emin/Ebeam) 5.e-4 (Emax/Ebeam)
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
SUBROUTINE FFUSER(ikey)
|
||||
*
|
||||
* The routine is called when a *key card is read
|
||||
*
|
||||
#include "calor.inc"
|
||||
#include "histo.inc"
|
||||
*
|
||||
CHARACTER*4 keyw
|
||||
CHARACTER*25 title
|
||||
*
|
||||
call UHTOC(ikey,4,keyw,4)
|
||||
if (keyw.eq.'HIST') then
|
||||
if (iexist(idhist).eq.1) call hdelet(idhist)
|
||||
title = 'Edep/Ebeam in absorber '//char(ichar('0')+(idhist-1))
|
||||
call hbook1(idhist,title,nbinE,Emin,Emax,0.)
|
||||
iexist(idhist) = 1
|
||||
endif
|
||||
*
|
||||
END
|
||||
@@ -4,10 +4,10 @@
|
||||
* User routine called at the end of each event
|
||||
*
|
||||
#include "geant321/gcflag.inc"
|
||||
#include "geant321/gckine.inc"
|
||||
#include "calor.inc"
|
||||
#include "celoss.inc"
|
||||
*
|
||||
DIMENSION sumevent(2*MaxAbS)
|
||||
CHARACTER*4 unit
|
||||
*
|
||||
* *** drawing
|
||||
@@ -20,12 +20,11 @@
|
||||
END IF
|
||||
#endif
|
||||
*
|
||||
* ntuple: energies and track length per event
|
||||
* histo: energy deposit per tracking medium
|
||||
do k=1,NbAbsor
|
||||
sumevent(2*k-1) = EdepAbs(k)
|
||||
sumevent(2*k ) = TrckAbs(k)
|
||||
ratio = EdepAbs(k)/pkine(1)
|
||||
call hfill (k,ratio,0.,1.)
|
||||
enddo
|
||||
CALL HFN(1,sumevent)
|
||||
*
|
||||
* cumul energy deposited and charged track length
|
||||
do k=1,NbAbsor
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
PROGRAM main
|
||||
*
|
||||
*
|
||||
PARAMETER (NGBANK=100000, NHBOOK=40000)
|
||||
PARAMETER (NGBANK=100000, NHBOOK=100000)
|
||||
COMMON/GCBANK/Q(NGBANK)
|
||||
COMMON/PAWC /H(NHBOOK)
|
||||
*
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
DIMENSION Aair(2),Zair(2),Wair(2)
|
||||
DIMENSION ACO2(2),ZCO2(2),WCO2(2)
|
||||
DIMENSION AH2O(2),ZH2O(2),WH2O(2)
|
||||
DIMENSION AG10(4),ZG10(4),WG10(4)
|
||||
DIMENSION AG10(4),ZG10(4),WG10(4)
|
||||
DIMENSION Asci(2),Zsci(2),Wsci(2)
|
||||
*
|
||||
CHARACTER*4 volnam
|
||||
CHARACTER*20 matnam
|
||||
@@ -34,7 +35,12 @@
|
||||
DATA AG10/ 1.01, 12.00, 16.00, 28.00/
|
||||
DATA ZG10/ 1. , 6. , 8. , 14. /
|
||||
DATA WG10/ 3. , 3. , 2. , 1. /
|
||||
|
||||
*
|
||||
* *** Scintillator compound parameters
|
||||
DATA Asci/12.01, 1.01/
|
||||
DATA Zsci/ 6. , 1. /
|
||||
DATA Wsci/ 9. , 10. /
|
||||
|
||||
*
|
||||
* *** Defines USER perticular materials
|
||||
CALL GSMIXT( 1,'Air' , Aair ,Zair, 1.29E-3, 2 , Wair)
|
||||
@@ -46,10 +52,11 @@
|
||||
CALL GSMATE( 7,'Iron ', 55.85, 26., 7.87 , 1.76, 17.1, 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,'Silicium ', 28.09, 14., 2.33 , 9.36, 45.5, 0,0)
|
||||
CALL GSMATE(10,'Silicon ', 28.09, 14., 2.33 , 9.36, 45.5, 0,0)
|
||||
CALL GSMATE(11,'Tungsten ',183.85, 74., 19.30 , 0.35, 9.6, 0,0)
|
||||
CALL GSMIXT(12,'NemaG10' , AG10 ,ZG10, 1.7 ,-4 , WG10)
|
||||
CALL GSMATE(13,'Copper ', 63.55, 29., 8.96 , 1.43, 15.0, 0,0)
|
||||
CALL GSMATE(13,'Copper ', 63.55, 29., 8.96 , 1.43, 15.0, 0,0)
|
||||
CALL GSMIXT(14,'Scintilla', Asci ,Zsci, 1.032 ,-2 , Wsci)
|
||||
*
|
||||
*
|
||||
* *** Defines USER tracking media parameters
|
||||
@@ -66,6 +73,18 @@
|
||||
CALL GSTMED( k,'absorber',materAbs(k), 0 ,IFIELD,FIELDM,TMAXFD,
|
||||
* STEMAX,DEEMAX,EPSIL,STMIN, 0 , 0 )
|
||||
enddo
|
||||
*
|
||||
* *** set specific bcute/dcute (if any)
|
||||
do k=1,4*NbAbsor,4
|
||||
itm = prodcut(k) + 0.01
|
||||
if(itm.ge.1) then
|
||||
call GSTPAR(itm,'BCUTE' ,prodcut(k+1))
|
||||
call GSTPAR(itm,'BCUTM' ,prodcut(k+1))
|
||||
call GSTPAR(itm,'DCUTE' ,prodcut(k+2))
|
||||
call GSTPAR(itm,'DCUTM' ,prodcut(k+2))
|
||||
call GSTPAR(itm,'PPCUTM',prodcut(k+3))
|
||||
endif
|
||||
enddo
|
||||
*
|
||||
nudef = NbAbsor+1
|
||||
CALL GSTMED( nudef,'default' , 1 , 0 ,IFIELD,FIELDM,TMAXFD,
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*
|
||||
#include "calor.inc"
|
||||
#include "celoss.inc"
|
||||
#include "histo.inc"
|
||||
#include "geant321/gckine.inc"
|
||||
*
|
||||
CHARACTER*20 filnam
|
||||
@@ -23,6 +24,10 @@
|
||||
CALL FFKEY('CALOR',NbAbsor,4,'MIXED')
|
||||
CALL FFKEY('MATE' ,materAbs(1),MaxAbs,'INTEGER')
|
||||
CALL FFKEY('THICK',thickAbs(1),MaxAbs,'REAL')
|
||||
* *** production cuts (bcute, dcute and ppcutm) for each absorber
|
||||
CALL FFKEY('CUTPR',prodcut(1) ,4*MaxAbs,'REAL')
|
||||
* *** histograms
|
||||
CALL FFKEY('HISTO',idhist,4,'MIXED')
|
||||
*
|
||||
* *** read data cards
|
||||
CALL GFFGO
|
||||
|
||||
@@ -4,14 +4,17 @@
|
||||
* To book the user's histograms
|
||||
*
|
||||
#include "calor.inc"
|
||||
#include "histo.inc"
|
||||
*
|
||||
CHARACTER*5 chtags(20)
|
||||
character*25 title
|
||||
*
|
||||
DATA chtags /'EAbs0','LAbs0','EAbs1','LAbs1','EAbs2','LAbs2',
|
||||
+ 'EAbs3','LAbs3','EAbs4','LAbs4','EAbs5','LAbs5',
|
||||
+ 'EAbs6','LAbs6','EAbs7','LAbs7','EAbs8','LAbs8',
|
||||
+ 'EAbs9','LAbs9'/
|
||||
*
|
||||
CALL HBOOKN(1,'sum per event',2*NbAbsor,' ',4000,chtags)
|
||||
* *** complete the booking of histograms
|
||||
do k=1,NbAbsor
|
||||
if (iexist(k).eq.0) then
|
||||
title = 'Edep/Ebeam in absorber '//char(ichar('0')+(k-1))
|
||||
call hbook1(k,title,100, 0.,1.,0.)
|
||||
iexist(k) = 1
|
||||
endif
|
||||
enddo
|
||||
*
|
||||
END
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3CalorHit.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3CalorimeterSD.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3DetectorConstruction.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3DetectorMessenger.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3EventAction.hh,v 1.2 1999/12/15 14:49:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3EventAction.hh,v 1.3 2001/03/26 16:01:58 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "globals.hh"
|
||||
|
||||
class Em3RunAction;
|
||||
class Em3PrimaryGeneratorAction;
|
||||
class Em3DetectorConstruction;
|
||||
class Em3EventActionMessenger;
|
||||
|
||||
@@ -29,7 +30,8 @@ class Em3EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
|
||||
Em3EventAction(Em3RunAction*,Em3DetectorConstruction*);
|
||||
Em3EventAction(Em3RunAction*,Em3PrimaryGeneratorAction*,
|
||||
Em3DetectorConstruction*);
|
||||
~Em3EventAction();
|
||||
|
||||
void BeginOfEventAction(const G4Event*);
|
||||
@@ -40,12 +42,13 @@ class Em3EventAction : public G4UserEventAction
|
||||
|
||||
private:
|
||||
|
||||
Em3RunAction* Em3Run;
|
||||
Em3DetectorConstruction* Detector;
|
||||
G4int calorimeterCollID; // Hits collection ID
|
||||
G4String drawFlag; // draw/print the event
|
||||
G4int printModulo;
|
||||
Em3EventActionMessenger* eventMessenger;
|
||||
Em3RunAction* Em3Run;
|
||||
Em3PrimaryGeneratorAction* Em3Kin;
|
||||
Em3DetectorConstruction* Detector;
|
||||
G4int calorimeterCollID; // Hits collection ID
|
||||
G4String drawFlag; // draw/print the event
|
||||
G4int printModulo;
|
||||
Em3EventActionMessenger* eventMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3EventActionMessenger.hh,v 1.2 1999/12/15 14:49:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3PhysicsList.hh,v 1.3 2000/04/17 12:06:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3PhysicsListMessenger.hh,v 1.1 2000/04/17 12:06:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3PrimaryGeneratorAction.hh,v 1.2 1999/12/15 14:49:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3PrimaryGeneratorAction.hh,v 1.3 2001/03/26 16:01:58 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#define Em3PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "G4ParticleGun.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
class Em3DetectorConstruction;
|
||||
class Em3PrimaryGeneratorMessenger;
|
||||
@@ -35,6 +35,7 @@ class Em3PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
public:
|
||||
void SetDefaultKinematic();
|
||||
void GeneratePrimaries(G4Event*);
|
||||
G4ParticleGun* GetParticleGun() {return particleGun;};
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3PrimaryGeneratorMessenger.hh,v 1.2 1999/12/15 14:49:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3RunAction.hh,v 1.4 2000/12/07 12:38:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3RunAction.hh,v 1.6 2001/03/26 16:01:58 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -26,6 +26,11 @@
|
||||
class G4Run;
|
||||
class Em3RunActionMessenger;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
#endif
|
||||
|
||||
class Em3RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
@@ -40,7 +45,13 @@ class Em3RunAction : public G4UserRunAction
|
||||
|
||||
void SetRndmFreq(G4int val) {saveRndm = val;}
|
||||
G4int GetRndmFreq() {return saveRndm;}
|
||||
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepHistogram* GetHisto(G4int id) {return histo[id];}
|
||||
#endif
|
||||
|
||||
void SetHisto (G4int id, G4int nbins, G4double vmin, G4double vmax);
|
||||
|
||||
private:
|
||||
void bookHisto();
|
||||
|
||||
@@ -52,6 +63,11 @@ class Em3RunAction : public G4UserRunAction
|
||||
Em3DetectorConstruction* Detector;
|
||||
Em3RunActionMessenger* runMessenger;
|
||||
G4int saveRndm;
|
||||
|
||||
#ifndef G4NOHIST
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram* histo[MaxAbsor];
|
||||
#endif
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3RunActionMessenger.hh,v 1.3 2000/01/21 09:11:06 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3RunActionMessenger.hh,v 1.4 2001/03/26 16:01:58 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
class Em3RunAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcommand;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
@@ -40,6 +41,8 @@ class Em3RunActionMessenger: public G4UImessenger
|
||||
G4UIdirectory* RndmDir;
|
||||
G4UIcmdWithAnInteger* RndmSaveCmd;
|
||||
G4UIcmdWithAString* RndmReadCmd;
|
||||
|
||||
G4UIcommand* HistoCmd;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3SteppingAction.hh,v 1.2 1999/12/15 14:49:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3SteppingAction.hh,v 1.3 2001/02/20 12:34:43 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#define Em3SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -27,6 +28,8 @@ class Em3SteppingAction : public G4UserSteppingAction
|
||||
~Em3SteppingAction();
|
||||
|
||||
void UserSteppingAction(const G4Step*);
|
||||
|
||||
G4double BirkAttenuation(const G4Step*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3SteppingVerbose.hh,v 1.4 2000/12/06 16:43:39 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: Em3SteppingVerbose.hh,v 1.5 2001/02/19 14:07:20 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// This class manages the verbose outputs in G4SteppingManager.
|
||||
// It inherits from G4SteppingVerbose.
|
||||
@@ -15,8 +15,6 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
class Em3SteppingVerbose;
|
||||
|
||||
#ifndef Em3SteppingVerbose_h
|
||||
#define Em3SteppingVerbose_h 1
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em3VisManager.hh,v 1.2 1999/12/15 14:49:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user