Belle II Software development
ExtPhysicsList.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <globals.hh>
10
11#include <simulation/kernel/ExtPhysicsList.h>
12#include <simulation/kernel/ExtPhysicsConstructor.h>
13
14#include <CLHEP/Units/SystemOfUnits.h>
15
16#include <G4ParticleDefinition.hh>
17#include <G4ParticleTable.hh>
18#include <G4Gamma.hh>
19#include <G4Electron.hh>
20#include <G4Positron.hh>
21#include <G4MuonMinus.hh>
22#include <G4MuonPlus.hh>
23#include <G4PionPlus.hh>
24#include <G4PionMinus.hh>
25#include <G4KaonPlus.hh>
26#include <G4KaonMinus.hh>
27#include <G4Proton.hh>
28#include <G4AntiProton.hh>
29#include <G4Deuteron.hh>
30#include <G4AntiDeuteron.hh>
31#include <G4GenericIon.hh>
32
33using namespace std;
34using namespace Belle2;
35using namespace Belle2::Simulation;
36
37ExtPhysicsList::ExtPhysicsList() : G4VModularPhysicsList()
38{
39 defaultCutValue = 0.7 * CLHEP::mm; //Default production cut value. Unit given in Geant4 units.
40 //defaultCutValue = 1.0E+9 * CLHEP::cm; // set big step so that AlongStep computes all the energy
41
42 // Instead of calling G4EmStandardPhysics to create process tables for standard particles that
43 // will never be used, we just define the standard particles that are in Const::ChargedStable but
44 // don't assign any processes to them. Note that G4PhysicsListHelper::CheckParticleList requires
45 // G4Gamma and G4GenericIon. G4EmStandardPhysics() defines Gamma, Electron, Positron, MuonPlus,
46 // MuonMinus, PionPlus, PionMinus, KaonPlus, KaonMinus, Proton, AntiProton, Deuteron, Triton, He3,
47 // Alpha, and GenericIon -- but not AntiDeuteron.
48 //- G4AntiDeuteron::AntiDeuteron();
49 //- RegisterPhysics(new G4EmStandardPhysics);
50 G4Gamma::Gamma();
51 G4Electron::Electron();
52 G4Positron::Positron();
53 G4MuonMinus::MuonMinus();
54 G4MuonPlus::MuonPlus();
55 G4PionPlus::PionPlus();
56 G4PionMinus::PionMinus();
57 G4KaonPlus::KaonPlus();
58 G4KaonMinus::KaonMinus();
59 G4Proton::Proton();
60 G4AntiProton::AntiProton();
61 G4Deuteron::Deuteron();
62 G4AntiDeuteron::AntiDeuteron();
63 G4GenericIon::GenericIon();
64 RegisterPhysics(new ExtPhysicsConstructor);
65 if (false) SetCuts();
66}
67
69{
70}
71
73{
74 // Set cuts to the defaultCutValue.
75 SetCutsWithDefault();
76 // // LEP: For geant4e-specific particles, set a big step so that AlongStep computes
77 // // all the energy (as is done in G4ErrorPhysicsList)
78 // G4ParticleTable* myParticleTable = G4ParticleTable::GetParticleTable();
79 // G4ParticleTable::G4PTblDicIterator* myParticleIterator = myParticleTable->GetIterator();
80 // myParticleIterator->reset();
81 // while ((*myParticleIterator)()) {
82 // G4ParticleDefinition* particle = myParticleIterator->value();
83 // if (particle->GetParticleName().substr(0, 4) == "g4e_") {
84 // SetParticleCuts(1.0E+9 * CLHEP::cm, particle);
85 // }
86 // }
87
88}
virtual ~ExtPhysicsList()
Destructor.
void SetCuts()
Required method: sets cutoff values for propagation.
Abstract base class for different kinds of events.
STL namespace.