Belle II Software  release-08-01-10
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, const G4int hadronicVerbosityLevel=0)
 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
 
G4ProductionCuts * m_regionCuts
 Global pointer for the region cuts to avoid memory leak and side effects when deleting the pointer.
 

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 27 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 238 of file Belle2PhysicsList.cc.

239 {
240  G4RegionStore* theRegionStore = G4RegionStore::GetInstance();
241  if (cutValue == 0) {
242  cutValue = m_globalCutValue;
243  } else {
244  B2INFO("Set production cut for detector region" << LogVar("detector", name) << LogVar("production_cut", cutValue));
245  }
246  m_regionCuts->SetProductionCut(cutValue * cm);
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(m_regionCuts);
255  }
256 }
G4ProductionCuts * m_regionCuts
Global pointer for the region cuts to avoid memory leak and side effects when deleting the pointer.
G4double m_globalCutValue
Secondary production thresholds.
Class to store variables with their name which were sent to the logging service.

The documentation for this class was generated from the following files: