Belle II Software development
|
This class creates the BKLM geometry of the Belle II detector. More...
#include <GeoBKLMCreator.h>
Public Member Functions | |
GeoBKLMCreator () | |
Constructor of the GeoBKLMCreator class. | |
GeoBKLMCreator (GeoBKLMCreator &)=delete | |
Copy constructor is disabled. | |
GeoBKLMCreator & | operator= (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. | |
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 ¶m) |
Create a parameter object from the Gearbox XML parameters. | |
void | createGeometry (const BKLMGeometryPar ¶meters, 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 | |
GeometryPar * | m_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) | |
This class creates the BKLM geometry of the Belle II detector.
Definition at line 43 of file GeoBKLMCreator.h.
GeoBKLMCreator | ( | ) |
Constructor of the GeoBKLMCreator class.
Definition at line 41 of file GeoBKLMCreator.cc.
~GeoBKLMCreator | ( | ) |
Destructor of the GeoBKLMCreator class.
Definition at line 81 of file GeoBKLMCreator.cc.
|
inlineoverridevirtual |
Creates the objects for the BKLM geometry virtual void create(const GearDir&, G4LogicalVolume&, geometry::GeometryTypes type);.
Implements CreatorBase.
Definition at line 61 of file GeoBKLMCreator.h.
|
inlineprivate |
Create a parameter object from the Gearbox XML parameters.
Definition at line 91 of file GeoBKLMCreator.h.
|
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.
|
private |
Create the geometry from a parameter object.
Definition at line 95 of file GeoBKLMCreator.cc.
|
inlineoverridevirtual |
Create the configuration objects and save them in the Database.
Reimplemented from CreatorBase.
Definition at line 68 of file GeoBKLMCreator.h.
|
private |
Get pointer to MPPC-container logical volume.
Definition at line 1074 of file GeoBKLMCreator.cc.
|
private |
Get pointer to readout-container logical volume.
Definition at line 1119 of file GeoBKLMCreator.cc.
|
private |
Get pointer to scintillator logical volume.
Definition at line 986 of file GeoBKLMCreator.cc.
|
private |
Get shape corresponding to the solenoid (for subtraction)
Definition at line 1203 of file GeoBKLMCreator.cc.
|
private |
convert G4VSolid's name to corresponding G4LogicalVolume name
Definition at line 1219 of file GeoBKLMCreator.cc.
|
private |
convert G4LogicalVolume's name to corresponding G4PhysicalVolume name
Definition at line 1226 of file GeoBKLMCreator.cc.
|
private |
Put the cap (at maximum |z|) into each sector.
Definition at line 216 of file GeoBKLMCreator.cc.
|
private |
Put the solenoid's cooling chimney into the backward top sector.
Definition at line 560 of file GeoBKLMCreator.cc.
|
private |
Put the forward and backward ends into the BKLM envelope.
Definition at line 135 of file GeoBKLMCreator.cc.
|
private |
Put the inner-radius region into each sector.
Definition at line 283 of file GeoBKLMCreator.cc.
|
private |
Put the layer-0 support plate's brackets into the inner region's air void (sectors 1..5 only)
Definition at line 403 of file GeoBKLMCreator.cc.
|
private |
Put the layer-0 support plate into the inner region's air void (sectors 1..5 only)
Definition at line 372 of file GeoBKLMCreator.cc.
|
private |
Put the layers into each sector.
Definition at line 501 of file GeoBKLMCreator.cc.
|
private |
Put the module (and enclosing air gap) into each layer.
Definition at line 697 of file GeoBKLMCreator.cc.
|
private |
Put the RPCs into each detector module's interior (module is itself in an air gap)
Definition at line 798 of file GeoBKLMCreator.cc.
|
private |
Put the scintillators into each detector module's interior (module is itself in an air gap)
Definition at line 859 of file GeoBKLMCreator.cc.
|
private |
Put each sector into the forward or backward end.
Definition at line 178 of file GeoBKLMCreator.cc.
|
private |
Put the air void into the inner-radius region.
Definition at line 325 of file GeoBKLMCreator.cc.
|
private |
Pointer to logical volume for bracket.
Definition at line 193 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volumes for cap [hasChimney].
Definition at line 175 of file GeoBKLMCreator.h.
|
private |
Pointer to solid for cap.
Definition at line 172 of file GeoBKLMCreator.h.
|
private |
Pointer to the BKLM geometry accessor.
Definition at line 157 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volumes for inner air [hasInnerSupport | hasChimney].
Definition at line 187 of file GeoBKLMCreator.h.
|
private |
Pointer to solid for inner air.
Definition at line 184 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volumes for inner iron [hasInnerSupport | hasChimney].
Definition at line 181 of file GeoBKLMCreator.h.
|
private |
Pointer to solid for inner iron [hasInnerSupport | hasChimney].
Definition at line 178 of file GeoBKLMCreator.h.
|
private |
Pointers to logical volumes for air gap in each layer [side/bottom/top | isFlipped | hasChimney | layer-1].
Definition at line 205 of file GeoBKLMCreator.h.
|
private |
Pointers to solids for air gap in each layer [hasChimney | layer-1].
Definition at line 202 of file GeoBKLMCreator.h.
|
private |
Pointers to logical volumes for iron in each layer [side/bottom/top | isFlipped | hasChimney | layer-1].
Definition at line 199 of file GeoBKLMCreator.h.
|
private |
Pointers to solids for iron in each layer [layer-1].
Definition at line 196 of file GeoBKLMCreator.h.
|
private |
Pointers to logical volumes for detector modules in each layer's air gap [hasChimney | layer-1].
Definition at line 208 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volume for MPPC housing.
Definition at line 217 of file GeoBKLMCreator.h.
|
private |
Vector of pointers to G4String objects (volume names)
Definition at line 232 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volume for scint preamplifier/carrier container.
Definition at line 220 of file GeoBKLMCreator.h.
|
private |
Radial displacement of polygon to create an azimuthal iron rib.
Definition at line 169 of file GeoBKLMCreator.h.
|
private |
Pointers to logical volumes for scintillator strips.
Definition at line 226 of file GeoBKLMCreator.h.
|
private |
Angular extent of one sector.
Definition at line 163 of file GeoBKLMCreator.h.
|
private |
Half-length of one sector.
Definition at line 166 of file GeoBKLMCreator.h.
|
private |
Pointers to logical volumes for each sector [fb-1][sector-1].
Definition at line 214 of file GeoBKLMCreator.h.
|
private |
Pointer to solid for sector's enclosing tube.
Definition at line 211 of file GeoBKLMCreator.h.
|
private |
Pointer to the BKLM SensitiveDetector processor.
Definition at line 160 of file GeoBKLMCreator.h.
|
private |
Pointer to solid for solenoid.
Definition at line 223 of file GeoBKLMCreator.h.
|
private |
Pointer to logical volumes for support structure [hasChimney].
Definition at line 190 of file GeoBKLMCreator.h.
|
private |
Vector of pointers to G4VisAttributes objects.
Definition at line 229 of file GeoBKLMCreator.h.