Import Geant4 0.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:09:25 +02:00
parent b97f8d0df7
commit aaa409b6ee
2922 changed files with 55107 additions and 81674 deletions
+20 -1
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 2.1 1998/07/02 15:26:54 gunter Exp $
# $Id: GNUmakefile,v 1.4 1999/07/06 18:15:43 johna Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -15,3 +15,22 @@ endif
all: lib bin
include $(G4INSTALL)/config/binmake.gmk
CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS))
CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O))
ifeq ($(G4SYSTEM),HP-aCC)
COMPILER := $(shell aCC -V 2>&1)
ifeq ($(COMPILER), aCC: HP ANSI C++ B3910B A.01.15)
$(G4TMP)/$(G4SYSTEM)/$(name)/ExN04PhysicsList.o: src/ExN04PhysicsList.cc
$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/ExN04PhysicsList.cc
endif
endif
ifeq ($(G4SYSTEM),Linux-g++)
COMPILER := $(shell g++ -v 2>&1 | grep version | grep egcs)
ifeq ($(findstring 1.1,$(COMPILER)),1.1)
$(G4TMP)/$(G4SYSTEM)/$(name)/ExN04PhysicsList.o: src/ExN04PhysicsList.cc
$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/ExN04PhysicsList.cc
endif
endif
+14 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 2.4 1998/11/21 16:55:06 allison Exp $
$Id: History,v 1.4 1999/06/05 12:41:28 stesting Exp $
-------------------------------------------------------------------
=========================================================
@@ -15,6 +15,19 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
5th June 1999 John Allison
- GNUmakefile: Force non-optimised compliation of some files on HP with
aCC: HP ANSI C++ B3910B A.01.15.
23th April 1999 H.Kurashige
- remove ConstructLeptHad, AddParameterisation inExN04PhysicsList
16th April 1999 H.Kurashige
- modify ExN04RunAction ExN04StackingAction ExN04SteppingAction ExN04TrackingAction
- modify ExN04PhysicsList::SetCuts
- modify ExN04PhysicsList::ConstructParticle
21st November 1998 John Allison
- Made ExN04Field compatible with G4Field.
+41 -1
View File
@@ -1,4 +1,4 @@
$Id: README,v 2.0 1998/07/02 14:08:56 gunter Exp $
$Id: README,v 1.2 1999/05/31 09:16:40 asaim Exp $
-------------------------------------------------------------------
=========================================================
@@ -8,3 +8,43 @@ $Id: README,v 2.0 1998/07/02 14:08:56 gunter Exp $
ExampleN04
----------
ExampleN04 has a simplified collider detector geometry. This example
demonstrates the following features.
1. PYTHIA primary events.
ExN04PrimaryGeneratorAction has G4HEPEvtInterface as the generator.
G4HEPEvtInterface accesses to "pythia_event.data", which contains three
events of Higgs generation produced by PYTHIA. "pythia_main.f" is an
example FORTRAN code of PYTHIA for generating this event sample.
2. Readout geometry
ExN04DetectorConstruction defines a simplified collider detecor
geometry, tracker made of cylindrical tubes, calorimeter made of
cylindrical tubes, and muon trackers made of planes.
Cylindrical calorimeter is made of tubes of lead and scintirator
without cut in phi nor z direction. Energy deposition in scintirator
is accumurated by ExN04CalorimeterSD sensitive detector, which has
a readout geometry to find the phi-z cell.
3. Full set of "ordinary" physics processes
ExN04PhysicsList defines almost all of leptons and hadrons which
Geant4 has dedicated classes for. Also almost all physics processes
Geant4 has are defined.
4. Event filtering by the stacking mechanism.
Higgs events in "pythia_event.data" have two lepton pairs produced
by the Higgs decay via Z0. At the first stage of each event, only the
primary muons are tracked without tracking secondaries. then the number
of hits on the muon trackers are examined. At the next stage, only
the primary charged particles are tracked only inside the barrel
tracking area and the isolation of the primary muons are examined.
At the third stage, all particles in the RoI (Region of Interest) along
the isolated muons are tracked. All these examinations are applied in
ExN04StackingAction.
+79 -47
View File
@@ -1,100 +1,132 @@
****************************************************************
****************************************************************
** **
** G4MuPairProduction : **
** cross section/energy loss is calculated using **
** the accurate cross section formula of R.Kokoulin, **
** ( building the tables takes a lot of time, **
** PLEASE BE PATIENT ! ) **
** sampling of the energy of the pair is generated **
** according to the sampling tables. **
** **
****************************************************************
****************************************************************
ionIoni: Knock-on electron cross sections .
MeanFreePath is computed at tracking time.
delta ray energy sampled from differential Xsection.
****************************************************************
****************************************************************
** **
** G4MuPairProduction : **
** cross section/energy loss is calculated using **
** the accurate cross section formula of R.Kokoulin, **
** ( building the tables takes a lot of time, **
** PLEASE BE PATIENT ! ) **
** sampling of the energy of the pair is generated **
** according to the sampling tables. **
** **
****************************************************************
****************************************************************
ExN04PhysicsList::SetCuts:CutLength : 1 (mm)
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1.022 MeV to 100 GeV in 100 bins.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 100 GeV in 100 bins.
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all ZSandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
delta ray energy sampled from differential Xsection.
PhysicsTables from 1 keV to 100 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation. Good description from 1 KeV to 100 GeV.
log scale extrapolation above 100 GeV
Gamma energy sampled from a parametrised formula.
PhysicsTables from 1 keV to 100 TeV in 100 bins.
annihil: Total cross section from Heilter formula (annihilation into 2 photons).
gamma energies sampled according Heitler
PhysicsTables from 10 keV to 10 TeV in 100 bins.
hIoni: Knock-on electron cross sections .
Good description above the mean excitation energy.
delta ray energy sampled from differential Xsection.
PhysicsTables from 1 keV to 100 TeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
MuIoni: knock-on electron cross sections .
Good description above the mean excitation energy.
delta ray energy sampled from differential Xsection.
PhysicsTables from 1 keV to 1000 PeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1000 PeV in 100 bins.
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1000 PeV in 50 bins.
Idle> Idle> Idle> Idle> Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 0
5 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.277324 (GeV)
Total energy deposition in calorimeter : 0.582536 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 1
5 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.598772 (GeV)
Total energy deposition in calorimeter : 0.328112 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 2
24 hits are stored in ExN04TrackerHitsCollection.
6 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.768435 (GeV)
5 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.317862 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 3
5 hits are stored in ExN04TrackerHitsCollection.
15 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.260963 (GeV)
Total energy deposition in calorimeter : 0.695135 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 4
5 hits are stored in ExN04TrackerHitsCollection.
16 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.362545 (GeV)
Total energy deposition in calorimeter : 0.254739 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 5
32 hits are stored in ExN04TrackerHitsCollection.
10 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.333041 (GeV)
Total energy deposition in calorimeter : 0.399896 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 6
5 hits are stored in ExN04TrackerHitsCollection.
6 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.327284 (GeV)
23 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.258006 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 7
20 hits are stored in ExN04TrackerHitsCollection.
19 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.464026 (GeV)
Total energy deposition in calorimeter : 0.263667 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 8
15 hits are stored in ExN04TrackerHitsCollection.
27 hits are stored in ExN04TrackerHitsCollection.
4 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.322904 (GeV)
Total energy deposition in calorimeter : 0.2954 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 9
8 hits are stored in ExN04TrackerHitsCollection.
11 hits are stored in ExN04TrackerHitsCollection.
5 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.400399 (GeV)
Total energy deposition in calorimeter : 0.279685 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Idle>
+2 -2
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: exampleN04.cc,v 2.7 1998/12/08 16:37:31 allison Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: exampleN04.cc,v 1.1 1999/01/07 16:05:59 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
// --------------------------------------------------------------
+24 -22
View File
@@ -1,26 +1,29 @@
ExN04PhysicsList::SetCuts:CutLength : 1 (mm)
conv: Total cross sections from a parametrisation(L.Urban). Good description from 1.5 MeV to 100 GeV for all Z.
ionIoni: Knock-on electron cross sections .
MeanFreePath is computed at tracking time.
delta ray energy sampled from differential Xsection.
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
e+e- energies according Bethe-Heitler
PhysicsTables from 1.022 MeV to 100 GeV in 100 bins.
compt: Total cross sections from a parametrisation(L.Urban). Good description from 10 KeV to (100/Z) GeV.
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
Scattered gamma energy according Klein-Nishina.
PhysicsTables from 10 keV to 100 GeV in 100 bins.
phot: Total cross sections from a parametrisation(L.Urban). Good description from 10 KeV to 50 MeV for all Z
PhysicsTables from 10 keV to 50 MeV in 100 bins.
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all ZSandia crossSection below 50 KeV
PhysicsTables from 50 keV to 50 MeV in 100 bins.
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
delta ray energy sampled from differential Xsection.
PhysicsTables from 1 keV to 100 TeV in 100 bins.
eBrem: Total cross sections from a parametrisation(L.Urban). Good description from 1 KeV to 100 GeV.
eBrem: Total cross sections from a parametrisation. Good description from 1 KeV to 100 GeV.
log scale extrapolation above 100 GeV
Gamma energy sampled from a parametrised formula.
PhysicsTables from 1 keV to 100 TeV in 100 bins.
@@ -37,7 +40,7 @@ hIoni: Knock-on electron cross sections .
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
MuIoni: knock-on electron cross sections .
Good description above the mean excitation energy.
@@ -47,23 +50,22 @@ MuIoni: knock-on electron cross sections .
msc: Tables of transport mean free paths.
New model of MSC , computes the lateral
displacement of the particle , too.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
PhysicsTables from 100 eV to 100 TeV in 100 bins.
MuBrems: cross sections from R. Kokoulin
MuBrems: theoretical cross section
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1000 PeV in 100 bins.
MuPairProd: cross sections from R. Kokoulin
MuPairProd: theoretical cross sections
Good description up to 1000 TeV.
PhysicsTables from 1 GeV to 1000 PeV in 50 bins.
Idle> #
Idle> Idle> Idle> Idle> Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 0 isolated muon found.
++++++++ event aborted
Stage 1->2 : 1 isolated muon found.
>>> Event 0
437 hits are stored in ExN04TrackerHitsCollection.
2 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.00794845 (GeV)
140 hits are stored in ExN04TrackerHitsCollection.
53 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0.749993 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 0 hits found in the muon chamber.
++++++++ event aborted
@@ -72,12 +74,12 @@ Stage 0->1 : 0 hits found in the muon chamber.
0 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0 (GeV)
0 hits are stored in ExN04MuonHitsCollection.
Stage 0->1 : 0 hits found in the muon chamber.
++++++++ event aborted
Stage 0->1 : 1 hits found in the muon chamber.
Stage 1->2 : 1 isolated muon found.
>>> Event 2
0 hits are stored in ExN04TrackerHitsCollection.
0 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 0 (GeV)
0 hits are stored in ExN04MuonHitsCollection.
92 hits are stored in ExN04TrackerHitsCollection.
43 hits are stored in ExN04CalorimeterHitsCollection.
Total energy deposition in calorimeter : 1.02574 (GeV)
1 hits are stored in ExN04MuonHitsCollection.
Idle> #
Idle>
@@ -12,8 +12,8 @@ class ExN04EventAction : public G4UserEventAction
~ExN04EventAction();
public:
void BeginOfEventAction();
void EndOfEventAction();
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
private:
G4int trackerCollID;
@@ -16,15 +16,21 @@ protected:
virtual void ConstructProcess();
//
virtual void SetCuts(G4double aCut);
virtual void SetCuts();
protected:
// these methods Construct physics processes and register them
void AddParameterisation();
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void ConstructHad();
virtual void ConstructLeptHad();
// these methods Construct all particles in each category
virtual void ConstructAllBosons();
virtual void ConstructAllLeptons();
virtual void ConstructAllMesons();
virtual void ConstructAllBarions();
virtual void ConstructAllIons();
virtual void ConstructAllShortLiveds();
};
#endif
@@ -17,15 +17,15 @@ class ExN04StackingAction : public G4UserStackingAction
{
public:
ExN04StackingAction();
~ExN04StackingAction();
virtual ~ExN04StackingAction();
public:
G4ClassificationOfNewTrack ClassifyNewTrack(G4Track *const aTrack);
void NewStage();
void PrepareNewEvent();
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
virtual void NewStage();
virtual void PrepareNewEvent();
private:
G4bool InsideRoI(G4Track *const aTrack,G4double ang);
G4bool InsideRoI(const G4Track * aTrack,G4double ang);
G4VHitsCollection* GetCollection(G4String colName);
ExN04TrackerHitsCollection* trkHits;
@@ -9,9 +9,9 @@ class ExN04SteppingAction : public G4UserSteppingAction
{
public:
ExN04SteppingAction();
~ExN04SteppingAction();
virtual ~ExN04SteppingAction();
virtual void UserSteppingAction();
virtual void UserSteppingAction(const G4Step*);
};
#endif
@@ -9,9 +9,9 @@ class ExN04TrackingAction : public G4UserTrackingAction {
public:
ExN04TrackingAction(){};
~ExN04TrackingAction(){};
virtual ~ExN04TrackingAction(){};
void PreUserTrackingAction();
virtual void PreUserTrackingAction(const G4Track*);
};
+2 -4
View File
@@ -26,7 +26,7 @@ ExN04EventAction::ExN04EventAction()
ExN04EventAction::~ExN04EventAction()
{;}
void ExN04EventAction::BeginOfEventAction()
void ExN04EventAction::BeginOfEventAction(const G4Event*)
{
G4SDManager * SDman = G4SDManager::GetSDMpointer();
if(trackerCollID<0||calorimeterCollID<0||muonCollID<0)
@@ -43,10 +43,8 @@ void ExN04EventAction::BeginOfEventAction()
}
}
void ExN04EventAction::EndOfEventAction()
void ExN04EventAction::EndOfEventAction(const G4Event* evt)
{
const G4Event* evt = fpEventManager->GetConstCurrentEvent();
G4cout << ">>> Event " << evt->GetEventID() << endl;
if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) return;
+63 -40
View File
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: ExN04PhysicsList.cc,v 1.12 1998/12/14 21:17:58 stesting Exp $
// GEANT4 tag $Name: geant4-00 $
// $Id: ExN04PhysicsList.cc,v 1.5 1999/06/17 04:18:47 kurasige Exp $
// GEANT4 tag $Name: geant4-00-01 $
//
//
@@ -19,6 +19,12 @@
#include "G4ProcessVector.hh"
#include "G4ParticleTypes.hh"
#include "G4ParticleTable.hh"
#include "G4BosonConstructor.hh"
#include "G4LeptonConstructor.hh"
#include "G4MesonConstructor.hh"
#include "G4BarionConstructor.hh"
#include "G4IonConstructor.hh"
#include "G4ShortLivedConstructor.hh"
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4ios.hh"
@@ -29,6 +35,9 @@
ExN04PhysicsList::ExN04PhysicsList(): G4VUserPhysicsList()
{
// default cut value (1.0mm)
defaultCutValue = 1.0*mm;
SetVerboseLevel(1);
}
@@ -45,15 +54,19 @@ void ExN04PhysicsList::ConstructParticle()
// created in the program.
// create all particles
ConstructAllParticles();
ConstructAllBosons();
ConstructAllLeptons();
ConstructAllMesons();
ConstructAllBarions();
ConstructAllIons();
ConstructAllShortLiveds();
}
void ExN04PhysicsList::ConstructProcess()
{
AddTransportation();
AddParameterisation();
ConstructEM();
ConstructLeptHad();
ConstructHad();
ConstructGeneral();
}
@@ -610,9 +623,6 @@ void ExN04PhysicsList::ConstructHad()
}
void ExN04PhysicsList::ConstructLeptHad()
{;}
#include "G4Decay.hh"
void ExN04PhysicsList::ConstructGeneral()
{
@@ -630,40 +640,53 @@ void ExN04PhysicsList::ConstructGeneral()
}
}
}
void ExN04PhysicsList::AddParameterisation()
void ExN04PhysicsList::SetCuts()
{
G4FastSimulationManagerProcess*
theFastSimulationManagerProcess =
new G4FastSimulationManagerProcess();
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
pmanager->AddDiscreteProcess(theFastSimulationManagerProcess);
}
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
// the default cut value for all particle types
SetCutsWithDefault();
}
void ExN04PhysicsList::SetCuts(G4double cut)
void ExN04PhysicsList::ConstructAllBosons()
{
if (verboseLevel >0){
G4cout << "ExN04PhysicsList::SetCuts:";
G4cout << "CutLength : " << cut/mm << " (mm)" << endl;
}
// set cut values for gamma at first and for e- second and next for e+,
// because some processes for e+/e- need cut values for gamma
SetCutValue(cut, "gamma");
SetCutValue(cut, "e-");
SetCutValue(cut, "e+");
// set cut values for proton and anti_proton before all other hadrons
// because some processes for hadrons need cut values for proton/anti_proton
SetCutValue(cut, "proton");
SetCutValue(cut, "anti_proton");
SetCutValueForOthers(cut);
if (verboseLevel>1) {
DumpCutValuesTable();
}
// Construct all bosons
G4BosonConstructor pConstructor;
pConstructor.ConstructParticle();
}
void ExN04PhysicsList::ConstructAllLeptons()
{
// Construct all leptons
G4LeptonConstructor pConstructor;
pConstructor.ConstructParticle();
}
void ExN04PhysicsList::ConstructAllMesons()
{
// Construct all mesons
G4MesonConstructor pConstructor;
pConstructor.ConstructParticle();
}
void ExN04PhysicsList::ConstructAllBarions()
{
// Construct all barions
G4BarionConstructor pConstructor;
pConstructor.ConstructParticle();
}
void ExN04PhysicsList::ConstructAllIons()
{
// Construct light ions
G4IonConstructor pConstructor;
pConstructor.ConstructParticle();
}
void ExN04PhysicsList::ConstructAllShortLiveds()
{
// Construct resonaces and quarks
G4ShortLivedConstructor pConstructor;
pConstructor.ConstructParticle();
}
@@ -24,7 +24,7 @@ ExN04StackingAction::~ExN04StackingAction()
{ delete theMessenger; }
G4ClassificationOfNewTrack
ExN04StackingAction::ClassifyNewTrack(G4Track *const aTrack)
ExN04StackingAction::ClassifyNewTrack(const G4Track * aTrack)
{
G4ClassificationOfNewTrack classification = fWaiting;
switch(stage)
@@ -65,7 +65,7 @@ ExN04StackingAction::ClassifyNewTrack(G4Track *const aTrack)
return classification;
}
G4bool ExN04StackingAction::InsideRoI(G4Track *const aTrack,G4double ang)
G4bool ExN04StackingAction::InsideRoI(const G4Track * aTrack,G4double ang)
{
if(!muonHits)
{ muonHits = (ExN04MuonHitsCollection*)GetCollection("muonCollection"); }
@@ -15,10 +15,9 @@ ExN04SteppingAction::ExN04SteppingAction()
ExN04SteppingAction::~ExN04SteppingAction()
{;}
void ExN04SteppingAction::UserSteppingAction()
void ExN04SteppingAction::UserSteppingAction(const G4Step * theStep)
{
G4SteppingManager * SM = GetOmnipotentSteppingManager();
G4Step * theStep = SM->GetStep();
G4SteppingManager * SM = fpSteppingManager;
G4Track * theTrack = theStep->GetTrack();
// check if it is alive
@@ -4,16 +4,13 @@
#include "G4TrackingManager.hh"
#include "G4Track.hh"
void ExN04TrackingAction::PreUserTrackingAction()
void ExN04TrackingAction::PreUserTrackingAction(const G4Track* aTrack)
{
G4TrackingManager* trackingManager = GetOmnipotentTrackingManager();
G4Track* aTrack = trackingManager->GetTrack();
// Create trajectory only for primaries
if(aTrack->GetParentID()==0)
{ trackingManager->SetStoreTrajectory(true); }
{ fpTrackingManager->SetStoreTrajectory(true); }
else
{ trackingManager->SetStoreTrajectory(false); }
{ fpTrackingManager->SetStoreTrajectory(false); }
}