Belle II Software  release-08-01-10
GeoBKLMCreator Class Reference

This class creates the BKLM geometry of the Belle II detector. More...

#include <GeoBKLMCreator.h>

Inheritance diagram for GeoBKLMCreator:
Collaboration diagram for GeoBKLMCreator:

Public Member Functions

 GeoBKLMCreator ()
 Constructor of the GeoBKLMCreator class.
 
 GeoBKLMCreator (GeoBKLMCreator &)=delete
 Copy constructor is disabled.
 
GeoBKLMCreatoroperator= (GeoBKLMCreator &)=delete
 Assignment operator is disabled.
 
 ~GeoBKLMCreator ()
 Destructor of the GeoBKLMCreator class.
 
void create (const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
 Creates the objects for the BKLM geometry virtual void create(const GearDir&, G4LogicalVolume&, geometry::GeometryTypes type);.
 
void createPayloads (const GearDir &content, const IntervalOfValidity &iov) override
 Create the configuration objects and save them in the Database.
 
void createFromDB (const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
 Create the geometry from the Database. More...
 
 BELLE2_DEFINE_EXCEPTION (DBNotImplemented, "Cannot create geometry from Database.")
 Exception that will be thrown in createFromDB if member is not yet implemented by creator.
 

Private Member Functions

BKLMGeometryPar createConfiguration (const GearDir &param)
 Create a parameter object from the Gearbox XML parameters.
 
void createGeometry (const BKLMGeometryPar &parameters, G4LogicalVolume &topVolume, geometry::GeometryTypes type)
 Create the geometry from a parameter object.
 
void putEndsInEnvelope (G4LogicalVolume *)
 Put the forward and backward ends into the BKLM envelope.
 
void putSectorsInEnd (G4LogicalVolume *, int)
 Put each sector into the forward or backward end.
 
void putCapInSector (G4LogicalVolume *, bool)
 Put the cap (at maximum |z|) into each sector.
 
void putInnerRegionInSector (G4LogicalVolume *, bool, bool)
 Put the inner-radius region into each sector.
 
void putVoidInInnerRegion (G4LogicalVolume *, bool, bool)
 Put the air void into the inner-radius region.
 
void putLayer1SupportInInnerVoid (G4LogicalVolume *, bool)
 Put the layer-0 support plate into the inner region's air void (sectors 1..5 only)
 
void putLayer1BracketsInInnerVoid (G4LogicalVolume *, bool)
 Put the layer-0 support plate's brackets into the inner region's air void (sectors 1..5 only)
 
void putLayersInSector (G4LogicalVolume *, int, int, bool)
 Put the layers into each sector.
 
void putChimneyInLayer (G4LogicalVolume *, int)
 Put the solenoid's cooling chimney into the backward top sector.
 
void putModuleInLayer (G4LogicalVolume *, int, int, int, bool, bool, int)
 Put the module (and enclosing air gap) into each layer.
 
void putRPCsInInterior (G4LogicalVolume *, int, bool)
 Put the RPCs into each detector module's interior (module is itself in an air gap)
 
void putScintsInInterior (G4LogicalVolume *, int, int, int, bool)
 Put the scintillators into each detector module's interior (module is itself in an air gap)
 
G4LogicalVolume * getScintLogical (double, double, double, double)
 Get pointer to scintillator logical volume.
 
G4LogicalVolume * getMPPCHousingLogical (void)
 Get pointer to MPPC-container logical volume.
 
G4LogicalVolume * getReadoutContainerLogical (void)
 Get pointer to readout-container logical volume.
 
G4Tubs * getSolenoidTube (void)
 Get shape corresponding to the solenoid (for subtraction)
 
G4String logicalName (G4VSolid *)
 convert G4VSolid's name to corresponding G4LogicalVolume name
 
G4String physicalName (G4LogicalVolume *)
 convert G4LogicalVolume's name to corresponding G4PhysicalVolume name
 

Private Attributes

GeometryParm_GeoPar
 Pointer to the BKLM geometry accessor.
 
G4VSensitiveDetector * m_Sensitive
 Pointer to the BKLM SensitiveDetector processor.
 
double m_SectorDphi
 Angular extent of one sector.
 
double m_SectorDz
 Half-length of one sector.
 
double m_RibShift
 Radial displacement of polygon to create an azimuthal iron rib.
 
G4Polyhedra * m_CapSolid
 Pointer to solid for cap.
 
G4LogicalVolume * m_CapLogical [2]
 Pointer to logical volumes for cap [hasChimney].
 
G4VSolid * m_InnerIronSolid
 Pointer to solid for inner iron [hasInnerSupport | hasChimney].
 
G4LogicalVolume * m_InnerIronLogical [4]
 Pointer to logical volumes for inner iron [hasInnerSupport | hasChimney].
 
G4VSolid * m_InnerAirSolid
 Pointer to solid for inner air.
 
G4LogicalVolume * m_InnerAirLogical [4]
 Pointer to logical volumes for inner air [hasInnerSupport | hasChimney].
 
G4LogicalVolume * m_SupportLogical [2]
 Pointer to logical volumes for support structure [hasChimney].
 
G4LogicalVolume * m_BracketLogical
 Pointer to logical volume for bracket.
 
G4Polyhedra * m_LayerIronSolid [BKLMElementNumbers::getMaximalLayerNumber()]
 Pointers to solids for iron in each layer [layer-1].
 
G4LogicalVolume * m_LayerIronLogical [12 *BKLMElementNumbers::getMaximalLayerNumber()]
 Pointers to logical volumes for iron in each layer [side/bottom/top | isFlipped | hasChimney | layer-1].
 
G4Box * m_LayerGapSolid [2 *BKLMElementNumbers::getMaximalLayerNumber()]
 Pointers to solids for air gap in each layer [hasChimney | layer-1].
 
G4LogicalVolume * m_LayerGapLogical [12 *BKLMElementNumbers::getMaximalLayerNumber()]
 Pointers to logical volumes for air gap in each layer [side/bottom/top | isFlipped | hasChimney | layer-1].
 
G4LogicalVolume * m_LayerModuleLogical [2 *BKLMElementNumbers::getMaximalLayerNumber()]
 Pointers to logical volumes for detector modules in each layer's air gap [hasChimney | layer-1].
 
G4Tubs * m_SectorTube
 Pointer to solid for sector's enclosing tube.
 
G4LogicalVolume * m_SectorLogical [2][BKLMElementNumbers::getMaximalSectorNumber()]
 Pointers to logical volumes for each sector [fb-1][sector-1].
 
G4LogicalVolume * m_MPPCHousingLogical
 Pointer to logical volume for MPPC housing.
 
G4LogicalVolume * m_ReadoutContainerLogical
 Pointer to logical volume for scint preamplifier/carrier container.
 
G4Tubs * m_SolenoidTube
 Pointer to solid for solenoid.
 
std::vector< G4LogicalVolume * > m_ScintLogicals
 Pointers to logical volumes for scintillator strips.
 
std::vector< G4VisAttributes * > m_VisAttributes
 Vector of pointers to G4VisAttributes objects.
 
std::vector< G4String * > m_Names
 Vector of pointers to G4String objects (volume names)
 

Detailed Description

This class creates the BKLM geometry of the Belle II detector.

Definition at line 43 of file GeoBKLMCreator.h.

Member Function Documentation

◆ createFromDB()

void createFromDB ( const std::string &  name,
G4LogicalVolume &  topVolume,
geometry::GeometryTypes  type 
)
inlineoverridevirtual

Create the geometry from the Database.

Check that we found the object and if not report the problem

Reimplemented from CreatorBase.

Definition at line 76 of file GeoBKLMCreator.h.

77  {
78  DBObjPtr<BKLMGeometryPar> dbObj;
79  if (!dbObj) {
81  B2FATAL("No configuration for " << name << " found.");
82  }
83  createGeometry(*dbObj, topVolume, type);
84  }
void createGeometry(const BKLMGeometryPar &parameters, G4LogicalVolume &topVolume, geometry::GeometryTypes type)
Create the geometry from a parameter object.

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