 |
Belle II Software
release-05-01-25
|
Go to the documentation of this file.
14 #include <klm/eklm/simulation/EKLMSensitiveDetector.h>
15 #include <klm/eklm/geometry/GeometryData.h>
16 #include <klm/eklm/geometry/TransformData.h>
19 #include <framework/gearbox/GearDir.h>
20 #include <geometry/CreatorBase.h>
27 #include <G4LogicalVolume.hh>
28 #include <G4Material.hh>
29 #include <G4SubtractionSolid.hh>
30 #include <G4Transform3D.hh>
235 void create(
const GearDir& content, G4LogicalVolume& topVolume,
244 void createFromDB(
const std::string& name, G4LogicalVolume& topVolume,
378 const char* name, G4VSolid* solid, G4Box* subtractionBox,
379 HepGeom::Transform3D& transf,
bool largerAngles,
380 double x1,
double y1,
double x2,
double y2);
394 const char* name, G4VSolid* solid, G4Box* subtractionBox,
395 HepGeom::Transform3D& transf,
bool largerAngles,
396 double x,
double y,
double ang);
418 G4VSolid*
unifySolids(G4VSolid** solids, HepGeom::Transform3D* transf,
419 int nSolids,
const std::string& name);
495 G4LogicalVolume*
createSection(G4LogicalVolume* topVolume)
const;
507 G4LogicalVolume*
createLayer(G4LogicalVolume* section,
508 G4LogicalVolume* layer)
const;
521 G4LogicalVolume* sector)
const;
565 G4LogicalVolume*
createPlane(G4LogicalVolume* sector)
const;
573 G4LogicalVolume* plane)
const;
648 void create(G4LogicalVolume& topVolume);
A class that describes the interval of experiments/runs for which an object in the database is valid.
G4LogicalVolume ** stripSegment
G4LogicalVolume *** segmentsup
void deleteSensitive()
Delete sensitive detectors.
G4LogicalVolume * supp
Support.
G4Material * polystyrene
Polystyrene.
void createSectorSupportLogicalVolume()
Create sector support logical volume.
void createSectorSupportCorner4LogicalVolume()
Create sector support corner 4 logical volume.
G4LogicalVolume * createSection(G4LogicalVolume *topVolume) const
Create section.
G4SubtractionSolid * cutSolidCorner(const char *name, G4VSolid *solid, G4Box *subtractionBox, HepGeom::Transform3D &transf, bool largerAngles, double x1, double y1, double x2, double y2)
Cut corner of a solid.
void createSegmentSupport(int iSegmentSupport, G4LogicalVolume *plane) const
Create segment support.
void createShieldDetailALogicalVolume()
Create shield detail A logical volume.
G4VSolid ** plasticSheetElement
void createStripGroove(int iStrip) const
Create strip groove.
G4VSolid * otube
Outer tube.
struct SectorSupportSolids sectorsup
G4LogicalVolume * createLayerLogicalVolume(const char *name) const
Create layer logical volume.
void createSubtractionBoxSolid()
Create subtraction box solid.
bool detectorLayer(int section, int layer) const
Check if a given layer is a detector layer.
void createShieldDetailCLogicalVolume()
Create shield detail C logical volume.
void createSegmentSupportLogicalVolume(int iPlane, int iSegmentSupport)
Create segment support logical volume.
G4Material * silicon
Silicon.
G4LogicalVolume * detailA
Detail A.
void create(const GearDir &content, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creation of the detector geometry from Gearbox (XML).
void createSectorSupportCorner4(G4LogicalVolume *sector) const
Create sector support corner 4.
G4LogicalVolume * detailC
Detail C.
EKLMSensitiveDetector * m_Sensitive
Sensitive detector.
G4Box * createSectorSupportBoxX(G4Transform3D &t)
Create X side of sector support structure.
void deleteVolumes()
Delete volumes.
void createSolids()
Create solids (or logical volumes which must be created only once).
void createSegment(G4LogicalVolume *plane) const
Create segment (strips + plastic sheets).
void createStripGrooveLogicalVolume(int iStrip)
Create strip groove logical volume.
void createSectorCoverLogicalVolume()
Create sector cover solid.
struct Solids m_Solids
Solids.
void createSectorSupportCorner3(G4LogicalVolume *sector) const
Create sector support corner 3.
void createShieldDetailBLogicalVolume()
Create shield detail B logical volume.
void newSensitive()
Create new sensitive detectors.
void createSectorSupportCorner1LogicalVolume()
Create sector support corner 1 logical volume.
void readXMLDataStrips()
Read strip parameters from XML database.
G4Tubs * createSectorSupportInnerTube()
Create inner tube of sector support structure.
void createSectorSupportCorner2(G4LogicalVolume *sector) const
Create sector support corner 2.
G4Box * createSectorSupportBoxY(G4Transform3D &t)
Create Y side of sector support structure.
void createPlasticSheet(int iSheetPlane, int iSheet) const
Create plastic sheet.
struct ShieldLogicalVolumes shield
G4LogicalVolume * corn2
Corner 2.
void createShield(G4LogicalVolume *sector) const
Create shield.
void createFromDB(const std::string &name, G4LogicalVolume &topVolume, geometry::GeometryTypes type) override
Creation of the detector geometry from database.
void createLayerSolid()
Create layer solid.
void createSectorSupportCorner1(G4LogicalVolume *sector) const
Create sector support corner 1.
G4LogicalVolume * corn4
Corner 4.
G4LogicalVolume * corn1
Corner 1.
void createPlaneSolid(int n)
Create plane solid.
Abstract base class for different kinds of events.
const EKLMElementNumbers * m_ElementNumbers
Element numbers.
void createScintillator(int iStrip) const
Create scintillator.
G4Tubs * createSectorSupportOuterTube()
Create outer tube of sector support structure.
void createStrip(G4LogicalVolume *segment) const
Create strip.
GearDir is the basic class used for accessing the parameter store.
G4LogicalVolume * detailB
Detail B.
void createScintillatorLogicalVolume(int iStrip)
Create scintillator logical volume.
G4VSolid * itube
Inner tube.
G4Material * polystyrol
Polystyrol.
G4Material * duralumin
Duralumin.
void createShieldDetailDLogicalVolume()
Create shield detail D logical volume.
G4Material * polyethylene
Polyethylene.
void createPlasticSheetLogicalVolume(int iSegment)
Create plastic sheet logical volume.
G4LogicalVolume * detailD
Detail D.
void createSegmentLogicalVolume(int iSegment)
Create segment logical volume (strips + plastic sheets).
void createMaterials()
Creation of materials.
void createSectorCover(int iCover, G4LogicalVolume *sector) const
Create sector cover.
const GeometryData * m_GeoDat
Geometry data.
G4Box * createSectorSupportBoxTop(G4Transform3D &t)
Create box in the cutted corner of sector support structure.
G4LogicalVolume * createSectorLogicalVolume(const char *name) const
Create sector logical volume.
struct VolumeNumbers m_CurVol
Current volumes.
G4VSolid * unifySolids(G4VSolid **solids, HepGeom::Transform3D *transf, int nSolids, const std::string &name)
Unify a group of solids.
GeoEKLMCreator()
Constructor.
G4LogicalVolume * shieldLayerSector
G4LogicalVolume ** segment
struct SectorSupportLogicalVolumes sectorsup
TransformData * m_TransformData
Transformation data.
void createPayloads(const GearDir &content, const IntervalOfValidity &iov) override
Creation of payloads.
void createStripLogicalVolume(int iStrip)
Create strip logical volume.
double getSectorSupportCornerAngle()
Get cutted corner angle.
void createStripSegment(int iSegment) const
Create strip segment.
G4LogicalVolume * createLayer(G4LogicalVolume *section, G4LogicalVolume *layer) const
Create layer.
struct Materials m_Materials
Materials.
Pure virtual base class for all geometry creators.
void createSectionSolid()
Create section solid.
void newVolumes()
Create new volumes.
G4LogicalVolume * createSector(G4LogicalVolume *layer, G4LogicalVolume *sector) const
Create sector.
void createSectorSupportCorner2LogicalVolume()
Create sector support corner 2 logical volume.
G4LogicalVolume ** groove
The Class for EKLM Sensitive Detector.
void createStripSegmentLogicalVolume(int iSegment)
Create strip segment logical volume.
G4LogicalVolume * corn3
Corner 3.
Sector support logical volumes.
G4LogicalVolume ** psheet
void createSectorSupportCorner3LogicalVolume()
Create sector support corner 3 logical volume.
G4LogicalVolume * shieldLayer
GeometryTypes
Flag indiciating the type of geometry to be used.
struct LogicalVolumes m_LogVol
Logical volumes.
G4LogicalVolume * createPlane(G4LogicalVolume *sector) const
Create plane.
~GeoEKLMCreator()
Destructor.
void createSectorSolid()
Create sector solid.
void createSectorSupport(G4LogicalVolume *sector) const
Create sector support structure (main part without corners).