Belle II Software development
|
Class GeoEKLMCreator. More...
#include <GeoEKLMCreator.h>
Public Member Functions | |
GeoEKLMCreator () | |
Constructor. | |
~GeoEKLMCreator () | |
Destructor. | |
void | create (const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override |
Creation of the detector geometry from Gearbox (XML). | |
void | createFromDB (const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override |
Creation of the detector geometry from database. | |
void | createPayloads (const GearDir &content, const IntervalOfValidity &iov) override |
Creation of payloads. | |
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 | |
void | createMaterials () |
Creation of materials. | |
void | readXMLDataStrips () |
Read strip parameters from XML database. | |
void | createSectionSolid () |
Create section solid. | |
G4LogicalVolume * | createLayerLogicalVolume (const char *name) const |
Create layer logical volume. | |
void | createLayerSolid () |
Create layer solid. | |
G4LogicalVolume * | createSectorLogicalVolume (const char *name) const |
Create sector logical volume. | |
void | createSectorSolid () |
Create sector solid. | |
void | createSectorCoverLogicalVolume () |
Create sector cover solid. | |
G4Tubs * | createSectorSupportInnerTube () |
Create inner tube of sector support structure. | |
G4Tubs * | createSectorSupportOuterTube () |
Create outer tube of sector support structure. | |
G4Box * | createSectorSupportBoxX (G4Transform3D &t) |
Create X side of sector support structure. | |
G4Box * | createSectorSupportBoxY (G4Transform3D &t) |
Create Y side of sector support structure. | |
G4Box * | createSectorSupportBoxTop (G4Transform3D &t) |
Create box in the cutted corner of sector support structure. | |
void | createSectorSupportLogicalVolume () |
Create sector support logical volume. | |
void | createSectorSupportCorner1LogicalVolume () |
Create sector support corner 1 logical volume. | |
void | createSectorSupportCorner2LogicalVolume () |
Create sector support corner 2 logical volume. | |
void | createSectorSupportCorner3LogicalVolume () |
Create sector support corner 3 logical volume. | |
void | createSectorSupportCorner4LogicalVolume () |
Create sector support corner 4 logical volume. | |
void | createSubtractionBoxSolid () |
Create subtraction box solid. | |
G4SubtractionSolid * | cutSolidCorner (const char *name, G4VSolid *solid, G4Box *subtractionBox, const HepGeom::Transform3D &transf, bool largerAngles, double x1, double y1, double x2, double y2) |
Cut corner of a solid. | |
G4SubtractionSolid * | cutSolidCorner (const char *name, G4VSolid *solid, G4Box *subtractionBox, const HepGeom::Transform3D &transf, bool largerAngles, double x, double y, double ang) |
Cut corner of a solid. | |
void | createPlaneSolid (int n) |
Create plane solid. | |
void | createSegmentSupportLogicalVolume (int iPlane, int iSegmentSupport) |
Create segment support logical volume. | |
G4VSolid * | unifySolids (G4VSolid **solids, HepGeom::Transform3D *transf, int nSolids, const std::string &name) |
Unify a group of solids. | |
void | createPlasticSheetLogicalVolume (int iSegment) |
Create plastic sheet logical volume. | |
void | createStripSegmentLogicalVolume (int iSegment) |
Create strip segment logical volume. | |
void | createSegmentLogicalVolume (int iSegment) |
Create segment logical volume (strips + plastic sheets). | |
void | createStripLogicalVolume (int iStrip) |
Create strip logical volume. | |
void | createStripGrooveLogicalVolume (int iStrip) |
Create strip groove logical volume. | |
void | createScintillatorLogicalVolume (int iStrip) |
Create scintillator logical volume. | |
void | createShieldDetailALogicalVolume () |
Create shield detail A logical volume. | |
void | createShieldDetailBLogicalVolume () |
Create shield detail B logical volume. | |
void | createShieldDetailCLogicalVolume () |
Create shield detail C logical volume. | |
void | createShieldDetailDLogicalVolume () |
Create shield detail D logical volume. | |
void | createSolids () |
Create solids (or logical volumes which must be created only once). | |
bool | detectorLayer (int section, int layer) const |
Check if a given layer is a detector layer. | |
G4LogicalVolume * | createSection (G4LogicalVolume *topVolume) const |
Create section. | |
G4LogicalVolume * | createLayer (G4LogicalVolume *section) const |
Create layer. | |
G4LogicalVolume * | createSector (G4LogicalVolume *layer) const |
Create sector. | |
void | createSectorCover (int iCover, G4LogicalVolume *sector) const |
Create sector cover. | |
void | createSectorSupport (G4LogicalVolume *sector) const |
Create sector support structure (main part without corners). | |
void | createSectorSupportCorner1 (G4LogicalVolume *sector) const |
Create sector support corner 1. | |
void | createSectorSupportCorner2 (G4LogicalVolume *sector) const |
Create sector support corner 2. | |
void | createSectorSupportCorner3 (G4LogicalVolume *sector) const |
Create sector support corner 3. | |
void | createSectorSupportCorner4 (G4LogicalVolume *sector) const |
Create sector support corner 4. | |
G4LogicalVolume * | createPlane (G4LogicalVolume *sector) const |
Create plane. | |
void | createSegmentSupport (int iSegmentSupport, G4LogicalVolume *plane) const |
Create segment support. | |
void | createPlasticSheet (int iSheetPlane, int iSheet) const |
Create plastic sheet. | |
void | createStripSegment (int iSegment) const |
Create strip segment. | |
void | createSegment (G4LogicalVolume *plane) const |
Create segment (strips + plastic sheets). | |
void | createStrip (G4LogicalVolume *segment) const |
Create strip. | |
void | createStripGroove (int iStrip) const |
Create strip groove. | |
void | createScintillator (int iStrip) const |
Create scintillator. | |
void | createShield (G4LogicalVolume *sector) const |
Create shield. | |
void | newVolumes () |
Create new volumes. | |
void | newSensitive () |
Create new sensitive detectors. | |
void | deleteVolumes () |
Delete volumes. | |
void | deleteSensitive () |
Delete sensitive detectors. | |
double | getSectorSupportCornerAngle () |
Get cutted corner angle. | |
void | create (G4LogicalVolume &topVolume) |
Creation of the detector geometry. | |
Private Attributes | |
struct Solids | m_Solids |
Solids. | |
struct LogicalVolumes | m_LogVol |
Logical volumes. | |
struct Materials | m_Materials |
Materials. | |
struct VolumeNumbers | m_CurVol |
Current volumes. | |
const EKLMElementNumbers * | m_ElementNumbers |
Element numbers. | |
TransformData * | m_TransformData |
Transformation data. | |
const GeometryData * | m_GeoDat |
Geometry data. | |
KLM::SensitiveDetector * | m_Sensitive |
Sensitive detector. | |
Class GeoEKLMCreator.
The creator for the EKLM geometry of the Belle II detector.
Definition at line 205 of file GeoEKLMCreator.h.
GeoEKLMCreator | ( | ) |
Constructor.
Definition at line 45 of file GeoEKLMCreator.cc.
~GeoEKLMCreator | ( | ) |
Destructor.
Definition at line 63 of file GeoEKLMCreator.cc.
|
overridevirtual |
Creation of the detector geometry from Gearbox (XML).
[in] | content | XML data directory. |
[in] | topVolume | Geant world volume. |
[in] | type | Geometry type. |
Implements CreatorBase.
Definition at line 1928 of file GeoEKLMCreator.cc.
|
private |
Creation of the detector geometry.
[in] | topVolume | Geant world volume. |
Definition at line 1860 of file GeoEKLMCreator.cc.
|
overridevirtual |
Creation of the detector geometry from database.
[in] | name | Name of the component in the database. |
[in] | topVolume | Geant world volume. |
[in] | type | Geometry type. |
Reimplemented from CreatorBase.
Definition at line 1946 of file GeoEKLMCreator.cc.
|
private |
Create layer.
[in] | section | Section logical volume. |
Definition at line 1495 of file GeoEKLMCreator.cc.
|
private |
Create layer logical volume.
[in] | name | Layer logical volume name. |
Definition at line 228 of file GeoEKLMCreator.cc.
|
private |
Create layer solid.
Definition at line 240 of file GeoEKLMCreator.cc.
|
private |
Creation of materials.
Definition at line 176 of file GeoEKLMCreator.cc.
|
overridevirtual |
Creation of payloads.
content | XML data directory. |
iov | Interval of validity. |
Reimplemented from CreatorBase.
Definition at line 1964 of file GeoEKLMCreator.cc.
|
private |
Create plane.
[in] | sector | Sector logical volume. |
Definition at line 1641 of file GeoEKLMCreator.cc.
|
private |
Create plane solid.
[in] | n | Number of plane, from 0 to 1. |
Definition at line 794 of file GeoEKLMCreator.cc.
|
private |
Create plastic sheet.
[in] | iSheetPlane | Number of sheet plane. |
[in] | iSheet | Number of sheet (segment). |
Definition at line 1689 of file GeoEKLMCreator.cc.
|
private |
Create plastic sheet logical volume.
[in] | iSegment | Number of segment (0-based). |
Definition at line 1026 of file GeoEKLMCreator.cc.
|
private |
Create scintillator.
[in] | iStrip | Number of strip in the length-based array. |
Definition at line 1779 of file GeoEKLMCreator.cc.
|
private |
Create scintillator logical volume.
[in] | iStrip | Number of strip in length-based array. |
Definition at line 1201 of file GeoEKLMCreator.cc.
|
private |
Create section.
[in] | topVolume | Geant world volume. |
Definition at line 1472 of file GeoEKLMCreator.cc.
|
private |
Create section solid.
Definition at line 190 of file GeoEKLMCreator.cc.
|
private |
Create sector.
[in] | layer | Layer logical volume. |
Definition at line 1513 of file GeoEKLMCreator.cc.
|
private |
Create sector cover.
[in] | iCover | Number of cover. |
[in] | sector | Sector logical volume. |
Definition at line 1532 of file GeoEKLMCreator.cc.
|
private |
Create sector cover solid.
Definition at line 278 of file GeoEKLMCreator.cc.
|
private |
Create sector logical volume.
[in] | name | Sector logical volume name. |
Definition at line 253 of file GeoEKLMCreator.cc.
|
private |
Create sector solid.
Definition at line 265 of file GeoEKLMCreator.cc.
|
private |
Create sector support structure (main part without corners).
[in] | sector | Sector logical volume. |
Definition at line 1624 of file GeoEKLMCreator.cc.
|
private |
Create box in the cutted corner of sector support structure.
[out] | t | Transformation. |
Sets t to the transformation of the box.
Definition at line 397 of file GeoEKLMCreator.cc.
|
private |
Create X side of sector support structure.
[out] | t | Transformation. |
Sets t to the transformation of the box.
Definition at line 349 of file GeoEKLMCreator.cc.
|
private |
Create Y side of sector support structure.
[out] | t | Transformation. |
Sets t to the transformation of the box.
Definition at line 373 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 1.
[in] | sector | Sector logical volume. |
Definition at line 1554 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 1 logical volume.
Definition at line 482 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 2.
[in] | sector | Sector logical volume. |
Definition at line 1570 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 2 logical volume.
Definition at line 560 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 3.
[in] | sector | Sector logical volume. |
Definition at line 1588 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 3 logical volume.
Definition at line 598 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 4.
[in] | sector | Sector logical volume. |
Definition at line 1606 of file GeoEKLMCreator.cc.
|
private |
Create sector support corner 4 logical volume.
Definition at line 635 of file GeoEKLMCreator.cc.
|
private |
Create inner tube of sector support structure.
Definition at line 430 of file GeoEKLMCreator.cc.
|
private |
Create sector support logical volume.
Definition at line 672 of file GeoEKLMCreator.cc.
|
private |
Create outer tube of sector support structure.
Definition at line 455 of file GeoEKLMCreator.cc.
|
private |
Create segment (strips + plastic sheets).
[in] | plane | Plane logical volume. |
Definition at line 1726 of file GeoEKLMCreator.cc.
|
private |
Create segment logical volume (strips + plastic sheets).
[in] | iSegment | Number of segment (0-based). |
Definition at line 1110 of file GeoEKLMCreator.cc.
|
private |
Create segment support.
[in] | iSegmentSupport | Number of segment support. |
[in] | plane | Plane logical volume. |
Definition at line 1665 of file GeoEKLMCreator.cc.
|
private |
Create segment support logical volume.
[in] | iPlane | Number of plane. |
[in] | iSegmentSupport | Number of segment support. |
Definition at line 874 of file GeoEKLMCreator.cc.
|
private |
Create shield.
[in] | sector | Sector logical volume. |
Definition at line 1794 of file GeoEKLMCreator.cc.
|
private |
Create shield detail A logical volume.
Definition at line 1245 of file GeoEKLMCreator.cc.
|
private |
Create shield detail B logical volume.
Definition at line 1298 of file GeoEKLMCreator.cc.
|
private |
Create shield detail C logical volume.
Definition at line 1339 of file GeoEKLMCreator.cc.
|
private |
Create shield detail D logical volume.
Definition at line 1392 of file GeoEKLMCreator.cc.
|
private |
Create solids (or logical volumes which must be created only once).
createSectorSupportCornerXSolid() must be called after createSectorSupportSolid()
Definition at line 1420 of file GeoEKLMCreator.cc.
|
private |
Create strip.
[in] | segment | Segment logical volume. |
Definition at line 1744 of file GeoEKLMCreator.cc.
|
private |
Create strip groove.
[in] | iStrip | Number of strip in the length-based array. |
Definition at line 1761 of file GeoEKLMCreator.cc.
|
private |
Create strip groove logical volume.
[in] | iStrip | Number of strip in length-based array. |
Definition at line 1174 of file GeoEKLMCreator.cc.
|
private |
Create strip logical volume.
[in] | iStrip | Number of strip in length-based array. |
Definition at line 1146 of file GeoEKLMCreator.cc.
|
private |
Create strip segment.
[in] | iSegment | Number of segment. |
Definition at line 1713 of file GeoEKLMCreator.cc.
|
private |
Create strip segment logical volume.
[in] | iSegment | Number of segment (0-based). |
Definition at line 1080 of file GeoEKLMCreator.cc.
|
private |
Create subtraction box solid.
Definition at line 743 of file GeoEKLMCreator.cc.
|
private |
Cut corner of a solid.
[in] | name | Name of resulting solid. |
[in] | solid | Solid. |
[in] | subtractionBox | Box used for subtractions. |
[in] | transf | Additional transformation of subtraction box. |
[in] | largerAngles | If true then cut larger angles. |
[in] | x | Initial point x coordinate. |
[in] | y | Initial point y coordinate. |
[in] | ang | Angle. |
Definition at line 768 of file GeoEKLMCreator.cc.
|
private |
Cut corner of a solid.
[in] | name | Name of resulting solid. |
[in] | solid | Solid. |
[in] | subtractionBox | Box used for subtractions. |
[in] | transf | Additional transformation of subtraction box. |
[in] | largerAngles | If true then cut larger angles. |
[in] | x1 | First point x coordinate. |
[in] | y1 | First point y coordinate. |
[in] | x2 | Second point x coordinate. |
[in] | y2 | Second point y coordinate. |
Definition at line 757 of file GeoEKLMCreator.cc.
|
private |
Delete sensitive detectors.
Definition at line 169 of file GeoEKLMCreator.cc.
|
private |
|
private |
Check if a given layer is a detector layer.
[in] | section | Section number. |
[in] | layer | Layer number. |
Definition at line 1854 of file GeoEKLMCreator.cc.
|
private |
Get cutted corner angle.
|
private |
Create new sensitive detectors.
Definition at line 139 of file GeoEKLMCreator.cc.
|
private |
Create new volumes.
Definition at line 74 of file GeoEKLMCreator.cc.
|
private |
Unify a group of solids.
[in] | solids | Solids. |
[in] | transf | Transformations. |
[in] | nSolids | Number of solids. |
[in] | name | First part of solid names. |
Definition at line 949 of file GeoEKLMCreator.cc.
|
private |
Current volumes.
Definition at line 638 of file GeoEKLMCreator.h.
|
private |
Element numbers.
Definition at line 641 of file GeoEKLMCreator.h.
|
private |
Geometry data.
Definition at line 647 of file GeoEKLMCreator.h.
|
private |
Logical volumes.
Definition at line 632 of file GeoEKLMCreator.h.
|
private |
Definition at line 635 of file GeoEKLMCreator.h.
|
private |
Sensitive detector.
Definition at line 650 of file GeoEKLMCreator.h.
|
private |
Definition at line 629 of file GeoEKLMCreator.h.
|
private |
Transformation data.
Definition at line 644 of file GeoEKLMCreator.h.