12#include <klm/dataobjects/eklm/EKLMElementNumbers.h>
18#include <CLHEP/Geometry/Point3D.h>
1865 const SegmentSupportPosition*
Position information for the elements of detector.
void setInnerR(double innerR)
Set inner radius.
void setOuterR(double outerR)
Set outer radius.
double getX() const
Get X coordinate.
void setZ(double z)
Set Z coordinate.
void setLength(double length)
Set length.
double getOuterR() const
Get outer radius.
double getInnerR() const
Get inner radius.
void setY(double y)
Set Y coordinate.
double m_OuterR
Outer radius.
double getZ() const
Get Z coordinate.
void setX(double x)
Set X coordinate.
ClassDef(ElementPosition, 1)
Class version.
double getY() const
Get Y coordinate.
ElementPosition()
Constructor.
double m_InnerR
Inner radius.
double getLength() const
Get length.
Endcap srtucture geometry parameters.
void setPhi(double phi)
Set starting angle of the octagonal endcap structure shape.
ClassDef(EndcapStructureGeometry, 1)
Class version.
double getPhi() const
Get starting angle of the octagonal endcap structure shape.
int getNSides() const
Get number of sides.
EndcapStructureGeometry()
Constructor.
~EndcapStructureGeometry()
Destructor.
int m_NSides
The number of sides (=8 : octagonal).
double m_Phi
The starting angle of the octagonal endcap structure shape.
void setNSides(int nSides)
Set number of sides.
Plastic sheet geometry data.
double getWidth() const
Get width.
ClassDef(PlasticSheetGeometry, 1)
Class version.
double m_DeltaL
Distance from edge of last strip to edge of plastic sheet.
void setDeltaL(double deltaL)
Set Delta L (edge of last strip - edge of plastic sheet distance).
double getDeltaL() const
Get Delta L (edge of last strip - edge of plastic sheet distance).
void setWidth(double width)
Set width.
PlasticSheetGeometry()
Constructor.
ClassDef(Point, 1)
Class version.
double getX() const
Get X coordinate.
void setY(double y)
Set Y coordinate.
void setX(double x)
Set X coordinate.
double getY() const
Get Y coordinate.
Sector support geometry data.
double getCorner2Thickness() const
Get corner 2 thickness.
void setCornerX(double cornerX)
Set coordinate X of corner 1.
double getCorner2LY() const
Get corner 2 Y length.
void setCorner1LX(double corner1LX)
Set corner 1 X length.
void setCorner3Prism(const HepGeom::Point3D< double > &corner3Prism)
Set coordinates of the corner of corner 3 prism.
double getCorner4Thickness() const
Get corner 4 thickness.
double m_CornerAngle
Corner 1 angle.
double m_Corner1Thickness
Corner 1 thickness.
HepGeom::Point3D< double > m_Corner3Prism
Coordinates of the corner of corner 3 prism.
double m_Corner2Z
Corner 2 Z coordinate.
HepGeom::Point3D< double > m_Corner3
Corner 3 coordinates.
double getCorner1Z() const
Get corner 1 Z coordinate.
void setCorner1A(const HepGeom::Point3D< double > &corner1A)
Set corner 1A coordinates.
double getCornerX() const
Get coordinate X of corner 1.
const HepGeom::Point3D< double > & getCorner3Inner() const
Get corner 3 coordinates (inner side).
void setCorner2LY(double corner2LY)
Set corner 2 Y length.
void setCorner4Thickness(double corner4Thickness)
Set corner 4 thickness.
double getCorner4LX() const
Get corner 4 X length.
HepGeom::Point3D< double > m_Corner3Inner
Corner 3 coordinates (inner side).
double m_Corner2Thickness
Corner 2 thickness.
void setCorner1AInner(const HepGeom::Point3D< double > &corner1AInner)
Set corner 1A coordinates (inner side).
void setThickness(double thickness)
Set thickness.
void setCorner1Z(double corner1Z)
Set corner 1 Z coordinate.
void setCorner3Inner(const HepGeom::Point3D< double > &corner3Inner)
Set corner 3 coordinates (inner side).
void setCornerAngle(double cornerAngle)
Set corner 1 angle.
void setCorner1BInner(const HepGeom::Point3D< double > &corner1BInner)
Set corner 1B coordinates (inner side).
double getCorner1LX() const
Get corner 1 X length.
double m_Corner4Z
Corner 4 Z coordinate.
double getCorner3LX() const
Get corner 3 X length.
const HepGeom::Point3D< double > & getCorner1B() const
Get corner 1B coordinates.
void setCorner1Thickness(double corner1Thickness)
Set corner 1 thickness.
double m_Corner4LX
Corner 4 X length.
double m_Corner2LY
Corner 2 Y length.
double m_Corner1LX
Corner 1 X length.
double m_Corner1Z
Corner 1 Z coordinate.
double getCornerAngle() const
Get corner 1 angle.
double m_Corner4Thickness
Corner 4 thickness.
void setCorner1B(const HepGeom::Point3D< double > &corner1B)
Set corner 1B coordinates.
double m_DeltaLY
outerR - Y of upper edge of BoxY.
double getCorner4LY() const
Get corner 4 Y length.
double m_Corner3LY
Corner 3 Y length.
const HepGeom::Point3D< double > & getCorner3Prism() const
Get coordinates of the corner of corner 3 prism.
const HepGeom::Point3D< double > & getCorner4() const
Get corner 4 coordinates.
void setCorner2Thickness(double corner2Thickness)
Set corner 2 thickness.
HepGeom::Point3D< double > m_Corner4Prism
Coordinates of the corner of corner 4 prism.
double getCorner2LX() const
Get corner 2 X length.
HepGeom::Point3D< double > m_Corner1BInner
Corner 1B coordinates (inner side).
void setCorner4(const HepGeom::Point3D< double > &corner4)
Set corner 4 coordinates.
const HepGeom::Point3D< double > & getCorner4Inner() const
Get corner 4 coordinates (inner side).
void setCorner3LY(double corner3LY)
Set corner 3 Y length.
const HepGeom::Point3D< double > & getCorner4Prism() const
Get coordinates of the corner of corner 4 prism.
void setDeltaLY(double deltaLY)
Set outerR - Y of upper edge of BoxY.
void setCorner4LY(double corner4LY)
Set corner 4 Y length.
double getThickness() const
Get thickness.
HepGeom::Point3D< double > m_Corner4
Corner 4 coordinates.
HepGeom::Point3D< double > m_Corner4Inner
Corner 4 coordinates (inner side).
void setCorner3LX(double corner3LX)
Set corner 3 X length.
const HepGeom::Point3D< double > & getCorner3() const
Get corner 3 coordinates.
double getCorner4Z() const
Get corner 4 Z coordinate.
void setCorner4Z(double corner4Z)
Set corner 4 Z coordinate.
double m_CornerX
Coordinate X of corner 1.
const HepGeom::Point3D< double > & getCorner1BInner() const
Get corner 1B coordinates (inner side).
HepGeom::Point3D< double > m_Corner1B
Corner 1B coordinates.
void setCorner3(const HepGeom::Point3D< double > &corner3)
Set corner 3 coordinates.
double getCorner3Z() const
Get corner 3 Z coordinate.
const HepGeom::Point3D< double > & getCorner1A() const
Get corner 1A coordinates.
double getCorner3Thickness() const
Get corner 3 thickness.
void setCorner4Inner(const HepGeom::Point3D< double > &corner4Inner)
Set corner 4 coordinates (inner side).
void setCorner2Inner(const HepGeom::Point3D< double > &corner2Inner)
Set corner 2 coordinates (inner side).
SectorSupportGeometry()
Constructor.
void setCorner3Thickness(double corner3Thickness)
Set corner 3 thickness.
HepGeom::Point3D< double > m_Corner1A
Corner 1A coordinates.
void setCorner4Prism(const HepGeom::Point3D< double > &corner4Prism)
Set coordinates of the corner of corner 4 prism.
double getDeltaLY() const
Get outerR - Y of upper edge of BoxY.
HepGeom::Point3D< double > m_Corner2Inner
Corner 2 coordinates (inner side) (corner of prism, too).
const HepGeom::Point3D< double > & getCorner1AInner() const
Get corner 1A coordinates (inner side).
double m_Corner3Z
Corner 3 Z coordinate.
double m_Corner1Width
Corner 1 width.
const HepGeom::Point3D< double > & getCorner2Inner() const
Get corner 2 coordinates (inner side).
void setCorner3Z(double corner3Z)
Set corner 3 Z coordinate.
double getCorner3LY() const
Get corner 3 Y length.
double m_Thickness
Thickness.
double m_Corner4LY
Corner 4 Y length.
double m_Corner2LX
Corner 2 X length.
ClassDef(SectorSupportGeometry, 1)
Class version.
void setCorner2LX(double corner2LX)
Set corner 2 X length.
double getCorner1Width() const
Get corner 1 width.
void setCorner2Z(double corner2Z)
Set corner 2 Z coordinate.
double m_Corner3Thickness
Corner 3 thickness.
double getCorner1Thickness() const
Get corner 1 thickness.
void setCorner1Width(double corner1Width)
Set corner 1 width.
void setCorner4LX(double corner4LX)
Set corner 4 X length.
double getCorner2Z() const
Get corner 2 Z coordinate.
double m_Corner3LX
Corner 3 X length.
HepGeom::Point3D< double > m_Corner1AInner
Corner 1A coordinates (inner side).
Segment support geometry data.
double getMiddleWidth() const
Get middle part width.
double getTopThickness() const
Get top part thickness.
double m_MiddleWidth
Middle box width.
void setMiddleWidth(double middleWidth)
Set middle part width.
double m_MiddleThickness
Middle box thickness.
double m_TopThickness
Top box thickness.
void setMiddleThickness(double middleThickness)
Set middle part thickness.
double m_TopWidth
Top box width.
void setTopWidth(double topWidth)
Set top part width.
double getTopWidth() const
Get top part width.
void setTopThickness(double topThickness)
Set top part thickness.
double getMiddleThickness() const
Get middle part thickness.
SegmentSupportGeometry()
Constructor.
ClassDef(SegmentSupportGeometry, 1)
Class version.
Segment support position.
ClassDef(SegmentSupportPosition, 1)
Class version.
double getX() const
Get X coordinate.
void setZ(double z)
Set Z coordinate.
void setDeltaLLeft(double deltaLLeft)
Set left DeltaL.
void setDeltaLRight(double deltaLRight)
Set right Delta L.
void setLength(double length)
Set length.
void setY(double y)
Set Y coordinate.
double m_DeltaLRight
Right (X-plane) delta L.
double getZ() const
Get Z coordinate.
void setX(double x)
Set X coordinate.
double getY() const
Get Y coordinate.
double m_DeltaLLeft
Left (X-plane) delta L.
double getDeltaLRight() const
Get right Delta L.
SegmentSupportPosition()
Constructor.
double getDeltaLLeft() const
Get left Delta L.
double getLength() const
Get length.
Shield layer detail geometry data.
void setPoint(int i, const Point &point)
Set point.
ShieldDetailGeometry()
Constructor.
void setLengthY(double lengthY)
Set Y length.
double m_LengthX
X length.
ClassDef(ShieldDetailGeometry, 1)
Class version.
~ShieldDetailGeometry()
Destructor.
const Point * getPoint(int i) const
Get point.
double getLengthY() const
Get Y length.
int getNPoints() const
Get number of points.
double getLengthX() const
Get X length.
double m_LengthY
Y length.
void setLengthX(double lengthX)
Set X length.
ShieldDetailGeometry & operator=(const ShieldDetailGeometry &geometry)
Operator =.
void setNPoints(int nPoints)
Set number of points.
int m_NPoints
Number of points.
Shield layer geometry data.
const ShieldDetailGeometry * getDetailA() const
Get detail A geometry.
const ShieldDetailGeometry * getDetailB() const
Get detail B geometry.
Point m_DetailACenter
Detail A center.
void setDetailA(const ShieldDetailGeometry &geometry)
Set detail A geometry.
void setDetailB(const ShieldDetailGeometry &geometry)
Set detail B geometry.
void setThickness(double thickness)
Set thickness.
void setDetailACenter(double x, double y)
Set detail A center.
void setDetailCCenter(double x, double y)
Set detail C center.
const Point * getDetailCCenter() const
Get detail C center.
ShieldDetailGeometry m_DetailC
Detail C.
ShieldDetailGeometry m_DetailB
Detail B.
Point m_DetailCCenter
Detail C center.
double getThickness() const
Get thickness.
ShieldGeometry()
Constructor.
const ShieldDetailGeometry * getDetailD() const
Get detail D geometry.
Point m_DetailBCenter
Detail B center.
void setDetailD(const ShieldDetailGeometry &geometry)
Set detail D geometry.
const Point * getDetailACenter() const
Get detail A center.
const Point * getDetailBCenter() const
Get detail B center.
void setDetailBCenter(double x, double y)
Set detail B center.
const ShieldDetailGeometry * getDetailC() const
Get detail C geometry.
double m_Thickness
Thickness.
ShieldDetailGeometry m_DetailD
Detail D.
ShieldDetailGeometry m_DetailA
Detail A.
void setDetailC(const ShieldDetailGeometry &geometry)
Set detail C geometry.
ClassDef(ShieldGeometry, 1)
Class version.
double getWidth() const
Get width.
void setNoScintillationThickness(double thickness)
Set nonscintillating layer thickness.
double m_GrooveWidth
Groove width.
double m_NoScintillationThickness
Non-scintillating layer thickness.
void setThickness(double thickness)
Set thickness.
ClassDef(StripGeometry, 1)
Class version.
void setRSSSize(double rssSize)
Set "SiPM" size.
double m_RSSSize
Radiation study SiPM size.
double getNoScintillationThickness() const
Get nonscintillating layer thickness.
double getGrooveDepth() const
Get groove depth.
double getThickness() const
Get thickness.
double m_GrooveDepth
Groove depth.
void setWidth(double width)
Set width.
double getRSSSize() const
Get "SiPM" size.
void setGrooveDepth(double grooveDepth)
Set groove depth.
double getGrooveWidth() const
Get groove width.
double m_Thickness
Thickness.
StripGeometry()
Constructor.
void setGrooveWidth(double grooveWidth)
Set groove width.
Class to store EKLM geometry data in the database.
const EndcapStructureGeometry * getEndcapStructureGeometry() const
Get endcap structure geometry data.
const ElementPosition * getLayerPosition() const
Get position data for layers.
int m_NSegments
Number of segments in one plane.
EKLMGeometry()
Constructor.
const PlasticSheetGeometry * getPlasticSheetGeometry() const
Get plastic sheet geometry data.
ShieldGeometry m_ShieldGeometry
Shield layer details geometry data.
const ShieldGeometry * getShieldGeometry() const
Get shield layer details geometry data.
int getNPlanes() const
Get number of planes.
int getNSections() const
Get number of sections.
int m_NLayers
Number of layers in one section.
const SegmentSupportPosition * getSegmentSupportPosition(int plane, int support) const
Get position data for segment support structure.
bool m_BeamBackgroundStudy
ROOT streamer.
SectorSupportGeometry m_SectorSupportGeometry
Sector support geometry data.
double getLayerShiftZ() const
Get Z distance between two layers.
int getNLayers() const
Get number of layers.
const ElementPosition * getPlanePosition() const
Get position data for planes.
void checkDetectorLayer(int section, int layer) const
Check if detector layer number is correct (fatal error if not).
const ElementPosition * getStripPosition(int strip) const
Get position data for strips.
const SegmentSupportGeometry * getSegmentSupportGeometry() const
Get segment support geometry data.
const SectorSupportGeometry * getSectorSupportGeometry() const
Get sector support geometry data.
const ElementPosition * getSectorPosition() const
Get position data for sectors.
ElementPosition m_SectionPosition
Position data for sections.
int m_NPlanes
Number of planes in one sector.
ElementPosition m_SectorSupportPosition
Position data for sector support structure.
int getNDetectorLayers(int section) const
Get number of detector layers.
void checkSegmentSupport(int support) const
Check if segment support number is correct (fatal error if not).
double m_SolenoidZ
Solenoid center Z coordinate.
int getNSegments() const
Get number of segments.
ElementPosition m_PlanePosition
Position data for planes.
ElementPosition m_LayerPosition
Position data for layers.
int m_NStrips
Number of strips in one plane.
bool beamBackgroundStudy() const
Whether to perform beam-background study.
int getNStrips() const
Get number of strips.
double m_LayerShiftZ
Z distance between two layers.
int m_NSectors
Number of sectors in one layer.
const EKLMElementNumbers * m_ElementNumbers
Element numbers.
double getSolenoidZ() const
Get solenoid center Z coordinate.
int * m_NDetectorLayers
Number of detector layers.
int m_NSections
Number of sections.
~EKLMGeometry()
Destructor.
const ElementPosition * getSectorSupportPosition() const
Get position data for sector support structure.
PlasticSheetGeometry m_PlasticSheetGeometry
Plastic sheet geometry data.
int getNSectors() const
Get number of sectors.
ClassDef(Belle2::EKLMGeometry, 6)
Class version.
ElementPosition m_SectorPosition
Position data for sectors.
SegmentSupportPosition * m_SegmentSupportPosition
Position data for segment support structure.
const StripGeometry * getStripGeometry() const
Get strip geometry data.
int getNSegmentSupportElementsSector() const
Get number of segment support elements *in one sector).
ElementPosition * m_StripPosition
Position data for strips.
const ElementPosition * getSectionPosition() const
Get position data for sections.
StripGeometry m_StripGeometry
Strip geometry data.
EndcapStructureGeometry m_EndcapStructureGeometry
Section structure geometry data.
EKLMGeometry & operator=(const EKLMGeometry &geometry)
Operator =.
SegmentSupportGeometry m_SegmentSupportGeometry
Segment support geometry data.
void checkStripSegment(int strip) const
Check if number of strip in a segment is correct (fatal error if not).
void checkDetectorLayerNumber(int section, int layer) const
Check if number of detector layers is correct (fatal error if not).
int m_NSegmentSupportElementsSector
Number of segment support elements in one sector.
Abstract base class for different kinds of events.