Belle II Software development
Belle2PhysicsList.h
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#ifndef BELLE2PHYSICSLIST_H
10#define BELLE2PHYSICSLIST_H
11
12#include "G4VModularPhysicsList.hh"
13
14namespace Belle2 {
20 namespace Simulation {
21
27 class Belle2PhysicsList: public G4VModularPhysicsList {
28
29 public:
31 explicit Belle2PhysicsList(const G4String& physicsListName, const G4int hadronicVerbosityLevel = 0);
34
36 virtual void ConstructParticle();
37
39 virtual void SetCuts();
40
42 void SetVerbosity(G4int verb);
43
45 void SetProductionCutValue(G4double);
46
48 void SetPXDProductionCutValue(G4double);
49
51 void SetSVDProductionCutValue(G4double);
52
54 void SetCDCProductionCutValue(G4double);
55
57 void SetARICHTOPProductionCutValue(G4double);
58
60 void SetECLProductionCutValue(G4double);
61
63 void SetKLMProductionCutValue(G4double);
64
66 void UseStandardEMPhysics(G4bool);
67
69 void UseOpticalPhysics(G4bool);
70
72 void UseHighPrecisionNeutrons(G4bool);
73
76
77 private:
83 void setRegionCuts(const std::string& name, const std::vector<std::string>& regions, double cutValue);
84
87
90
91 G4double m_pxdCutValue;
92 G4double m_svdCutValue;
93 G4double m_cdcCutValue;
95 G4double m_eclCutValue;
96 G4double m_klmCutValue;
97 G4ProductionCuts*
99 };
100
101 } // end of namespace Simulation
102
104} // end of namespace Belle2
105
106#endif // BELLE2PHYSICSLIST_H
Custom Geant4 physics list for Belle II with options to add optical physics, standard EM physics and ...
void SetSVDProductionCutValue(G4double)
Set cut value for SVD envelope.
void SetProductionCutValue(G4double)
Use parameter to set global cut value.
void SetARICHTOPProductionCutValue(G4double)
Set cut value for ARICH and TOP envelopes.
G4ProductionCuts * m_regionCuts
Global pointer for the region cuts to avoid memory leak and side effects when deleting the pointer.
void ConstructG4eParticles()
Construct parallel particle types needed for reco.
G4double m_klmCutValue
threshold for BKLM and EKLM
void setRegionCuts(const std::string &name, const std::vector< std::string > &regions, double cutValue)
Set the produciton cuts to the given value for a list of regions belonging to a sub detector.
void SetECLProductionCutValue(G4double)
Set cut value for ECL barrel, forward and backward envelopes.
G4double m_globalCutValue
Secondary production thresholds.
virtual void SetCuts()
Set the secondary particle production thresholds.
void UseHighPrecisionNeutrons(G4bool)
Use high precision neutron models below 20 MeV.
void SetPXDProductionCutValue(G4double)
Set cut value for PXD envelope.
void UseLongLivedNeutralParticles()
Simulate neutral long-lived particles with given pdg and mass value.
void UseOpticalPhysics(G4bool)
Add optical photon physics.
G4double m_pxdCutValue
threshold for PXD
G4double m_svdCutValue
threshold for SVD
G4double m_arichtopCutValue
threshold for ARICH and TOP
void SetVerbosity(G4int verb)
Run/event verbosity level.
void SetCDCProductionCutValue(G4double)
Set cut value for CDC envelope.
virtual void ConstructParticle()
Build all particle types used in physics list.
void SetKLMProductionCutValue(G4double)
Set cut value for BKLM and EKLM envelopes.
void UseStandardEMPhysics(G4bool)
Use standard EM physics instead of EM option1.
G4double m_eclCutValue
threshold for ECL
G4double m_cdcCutValue
threshold for CDC
Abstract base class for different kinds of events.