Hi all:
I have some problem when setting production cuts.
I want to set generation cut to disable the generation of electron with energy less than 0.25 MeV (which correspongs to the Cherenkov generation threshold in water). So I use following physics list, which mainly copy from FTFP_BERT.
#include "PhysicsList.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmStandardPhysics_option2.hh"
#include "G4RadioactiveDecayPhysics.hh"
#include "G4OpticalPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4HadronPhysicsFTFP_BERT.hh"
#include "G4StoppingPhysics.hh"
#include "G4NeutronTrackingCut.hh"
#include "G4IonPhysics.hh"
#include "G4NeutronTrackingCut.hh"
#include "G4UnitsTable.hh"
#include "G4SystemOfUnits.hh"
PhysicsList::PhysicsList()
: G4VModularPhysicsList()
{
SetVerboseLevel(1);
// Default physics
RegisterPhysics(new G4DecayPhysics());
// EM physics
RegisterPhysics(new G4EmStandardPhysics_option2);
// Synchroton Radiation & GN Physics
RegisterPhysics(new G4EmExtraPhysics());
// Hadron Elastic scattering
RegisterPhysics(new G4HadronElasticPhysics());
// Hadron Physics
RegisterPhysics(new G4HadronPhysicsFTFP_BERT());
// Stopping Physics
RegisterPhysics(new G4StoppingPhysics());
// Ion Physics
RegisterPhysics(new G4IonPhysics());
// Neutron tracking cut
RegisterPhysics(new G4NeutronTrackingCut());
// Radioactive decay
RegisterPhysics(new G4RadioactiveDecayPhysics());
// optical physics
G4OpticalPhysics *opticalPhysics = new G4OpticalPhysics();
opticalPhysics->SetMaxNumPhotonsPerStep(400);
opticalPhysics->SetTrackSecondariesFirst(kCerenkov, true);
// RegisterPhysics(opticalPhysics);
DumpCutValuesTable();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::~PhysicsList()
{
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCuts()
{
// fixe lower limit for cut
G4double lowlimit = 0.25 * keV;
G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowlimit, 100. * TeV);
// call base class method to set cuts which default value can be
// modified via /run/setCut/* commands
G4VUserPhysicsList::SetCuts();
DumpCutValuesTable();
}
And I am using following macro to set the production cut
# run initialization
/run/initialize
# set verbose
/control/verbose 2
/run/verbose 2
/event/verbose 2
/tracking/verbose 2
/analysis/verbose 2
# set hist
/analysis/h1/set 0 100 0 1000 keV
/analysis/h1/setXaxis 0 "Energy [keV]"
/analysis/h1/setYaxis 0 "Number of electrons"
/analysis/h1/set 1 35 1.5 5 eV
/analysis/h1/setXaxis 1 "Energy [eV]"
/analysis/h1/setYaxis 1 "Number of photons"
/analysis/h1/set 2 100 0 100 m
/analysis/h1/setXaxis 2 "Propagation Length [m]"
/analysis/h1/setYaxis 2 "Number of photons"
# set cut in run
/run/setCut 0.1 cm
/run/setCutForAGivenParticle gamma 50 cm
# set particle gun
/gun/particle pi+
/gun/energy 1 GeV
/run/beamOn 1
In my simulation result, I find the ionization process no longer produce low energy electrons. However, the Compron scattering of gamma still produce low energy electrons.
*********************************************************************************************************
* G4Track Information: Particle = gamma, Track ID = 401, Parent ID = 356
*********************************************************************************************************
Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
0 3.19e+03 -2.74e+03 1.74e+03 3.89 0 0 0 World_PV initStep
1 3.25e+03 -2.79e+03 1.61e+03 0.536 0 152 152 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 1 ---------------
: 3.25e+03 -2.79e+03 1.61e+03 3.35 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
2 3.29e+03 -2.68e+03 1.57e+03 0.213 0 124 276 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 2 ---------------
: 3.29e+03 -2.68e+03 1.57e+03 0.323 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
3 3.28e+03 -2.68e+03 1.6e+03 0.202 0 33.8 310 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 3 ---------------
: 3.28e+03 -2.68e+03 1.6e+03 0.0112 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
4 3.29e+03 -2.68e+03 1.62e+03 0.137 0 26.4 337 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 4 ---------------
: 3.29e+03 -2.68e+03 1.62e+03 0.0641 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
5 3.29e+03 -2.69e+03 1.62e+03 0.119 0 13.9 350 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 5 ---------------
: 3.29e+03 -2.69e+03 1.62e+03 0.0183 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
6 3.26e+03 -2.74e+03 1.61e+03 0.102 0 65.7 416 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 6 ---------------
: 3.26e+03 -2.74e+03 1.61e+03 0.0173 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
7 3.25e+03 -2.74e+03 1.57e+03 0.0852 0 44.5 461 World_PV compt
:----- List of 2ndaries - #SpawnInStep= 1(Rest= 0,Along= 0,Post= 1), #SpawnTotal= 7 ---------------
: 3.25e+03 -2.74e+03 1.57e+03 0.0166 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
8 3.21e+03 -2.81e+03 1.58e+03 0 2.83e-05 76 537 World_PV phot
:----- List of 2ndaries - #SpawnInStep= 2(Rest= 0,Along= 0,Post= 2), #SpawnTotal= 9 ---------------
: 3.21e+03 -2.81e+03 1.58e+03 0.0847 e-
: 3.21e+03 -2.81e+03 1.58e+03 0.000509 e-
:----------------------------------------------------------------- EndOf2ndaries Info ---------------
How should I disable this process?
Thanks
Fan