Belle II Software  release-08-01-10
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 
33 using namespace std;
34 using namespace Belle2;
35 using namespace Belle2::Simulation;
36 
37 ExtPhysicsList::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.