Belle II Software  release-05-02-19
Belle2PhysicsList Class Reference

Custom Geant4 physics list for Belle II with options to add optical physics, standard EM physics and high precision neutrons. More...

#include <Belle2PhysicsList.h>

Inheritance diagram for Belle2PhysicsList:
Collaboration diagram for Belle2PhysicsList:

Public Member Functions

 Belle2PhysicsList (const G4String &physicsListName)
 Constructor.
 
 ~Belle2PhysicsList ()
 destructor
 
virtual void ConstructParticle ()
 Build all particle types used in physics list.
 
virtual void SetCuts ()
 Set the secondary particle production thresholds.
 
void SetVerbosity (G4int verb)
 Run/event verbosity level.
 
void SetProductionCutValue (G4double)
 Use parameter to set global cut value.
 
void SetPXDProductionCutValue (G4double)
 Set cut value for PXD envelope.
 
void SetSVDProductionCutValue (G4double)
 Set cut value for SVD envelope.
 
void SetCDCProductionCutValue (G4double)
 Set cut value for CDC envelope.
 
void SetARICHTOPProductionCutValue (G4double)
 Set cut value for ARICH and TOP envelopes.
 
void SetECLProductionCutValue (G4double)
 Set cut value for ECL barrel, forward and backward envelopes.
 
void SetKLMProductionCutValue (G4double)
 Set cut value for BKLM and EKLM envelopes.
 
void UseStandardEMPhysics (G4bool)
 Use standard EM physics instead of EM option1.
 
void UseOpticalPhysics (G4bool)
 Add optical photon physics.
 
void UseHighPrecisionNeutrons (G4bool)
 Use high precision neutron models below 20 MeV.
 
void UseLongLivedNeutralParticles ()
 Simulate neutral long-lived particles with given pdg and mass value.
 

Private Member Functions

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. More...
 
void ConstructG4eParticles ()
 Construct parallel particle types needed for reco.
 

Private Attributes

G4double m_globalCutValue
 Secondary production thresholds.
 
G4double m_pxdCutValue
 threshold for PXD
 
G4double m_svdCutValue
 threshold for SVD
 
G4double m_cdcCutValue
 threshold for CDC
 
G4double m_arichtopCutValue
 threshold for ARICH and TOP
 
G4double m_eclCutValue
 threshold for ECL
 
G4double m_klmCutValue
 threshold for BKLM and EKLM
 

Detailed Description

Custom Geant4 physics list for Belle II with options to add optical physics, standard EM physics and high precision neutrons.

Definition at line 37 of file Belle2PhysicsList.h.

Member Function Documentation

◆ setRegionCuts()

void setRegionCuts ( const std::string &  name,
const std::vector< std::string > &  regions,
double  cutValue 
)
private

Set the produciton cuts to the given value for a list of regions belonging to a sub detector.

Parameters
namename of the sub detector to print in messages
regionslist of region names to set the cut value
cutValueproduction cut in cm, if 0 the global cut value will be used

Definition at line 236 of file Belle2PhysicsList.cc.

237 {
238  G4RegionStore* theRegionStore = G4RegionStore::GetInstance();
239  if (cutValue == 0) {
240  cutValue = m_globalCutValue;
241  } else {
242  B2INFO("Set production cut for detector region" << LogVar("detector", name) << LogVar("production_cut", cutValue));
243  }
244  auto* regionCuts = new G4ProductionCuts;
245  regionCuts->SetProductionCut(cutValue * cm);
246  bool foundOne{false};
247  for (const auto& regionName : regions) {
248  auto* region = theRegionStore->GetRegion(regionName, false);
249  if (!region) {
250  B2WARNING("Cannot find Geant4 region for sub detector. Probably detector not present?"
251  << LogVar("detector", name) << LogVar("region", regionName));
252  continue;
253  }
254  region->SetProductionCuts(regionCuts);
255  foundOne = true;
256  }
257  if (!foundOne) delete regionCuts;
258 }

The documentation for this class was generated from the following files:
Belle2::Simulation::Belle2PhysicsList::m_globalCutValue
G4double m_globalCutValue
Secondary production thresholds.
Definition: Belle2PhysicsList.h:99
LogVar
Class to store variables with their name which were sent to the logging service.
Definition: LogVariableStream.h:24