 |
Belle II Software
release-05-02-19
|
12 #include <klm/dbobjects/eklm/EKLMGeometry.h>
15 #include <framework/logging/Logger.h>
99 if (&geometry ==
this)
101 m_LengthX = geometry.getLengthX();
102 m_LengthY = geometry.getLengthY();
103 m_NPoints = geometry.getNPoints();
104 if (m_Points !=
nullptr)
107 m_Points =
new Point[m_NPoints];
108 for (i = 0; i < m_NPoints; i++)
109 m_Points[i] = *geometry.getPoint(i);
117 if (m_Points !=
nullptr)
124 B2FATAL(
"Number of points must be nonnegative.");
126 if (m_Points !=
nullptr)
129 m_Points =
new Point[m_NPoints];
137 if (i < 0 || i >= m_NPoints)
138 B2FATAL(
"Number of point must be from 0 to " << m_NPoints - 1 <<
".");
144 if (i < 0 || i >= m_NPoints)
145 B2FATAL(
"Number of point must be from 0 to " << m_NPoints - 1 <<
".");
157 m_DetailACenter.setX(x);
158 m_DetailACenter.setY(y);
163 m_DetailBCenter.setX(x);
164 m_DetailBCenter.setY(y);
169 m_DetailCCenter.setX(x);
170 m_DetailCCenter.setY(y);
195 m_EndcapStructureGeometry(*geometry.getEndcapStructureGeometry()),
196 m_SectionPosition(*geometry.getSectionPosition()),
197 m_LayerPosition(*geometry.getLayerPosition()),
198 m_SectorPosition(*geometry.getSectorPosition()),
199 m_SectorSupportPosition(*geometry.getSectorSupportPosition()),
200 m_SectorSupportGeometry(*geometry.getSectorSupportGeometry()),
201 m_PlanePosition(*geometry.getPlanePosition()),
202 m_PlasticSheetGeometry(*geometry.getPlasticSheetGeometry()),
203 m_SegmentSupportGeometry(*geometry.getSegmentSupportGeometry()),
204 m_StripGeometry(*geometry.getStripGeometry()),
205 m_ShieldGeometry(*geometry.getShieldGeometry())
226 *geometry.getSegmentSupportPosition(i + 1, j + 1);
247 if (&geometry ==
this)
280 *geometry.getSegmentSupportPosition(i + 1, j + 1);
306 const char* sectionName[2] = {
"backward",
"forward"};
309 B2FATAL(
"Number of detector layers in the " << sectionName[section - 1] <<
310 " section must be from 0 to the number of layers ( " <<
317 const char* sectionName[2] = {
"backward",
"forward"};
319 B2FATAL(
"Number of layer must be less from 1 to the number of "
320 "detector layers in the " << sectionName[section - 1] <<
" section ("
327 B2FATAL(
"Number of segment support element must be from 1 to " <<
334 B2FATAL(
"Number of strip in a segment must be from 1 to " <<
static constexpr int getMaximalSegmentNumber()
Get maximal segment number.
SectorSupportGeometry m_SectorSupportGeometry
Sector support geometry data.
Class to store EKLM geometry data in the database.
const ElementPosition * getStripPosition(int strip) const
Get position data for strips.
PlasticSheetGeometry m_PlasticSheetGeometry
Plastic sheet geometry data.
SegmentSupportGeometry m_SegmentSupportGeometry
Segment support geometry data.
void setPoint(int i, const Point &point)
Set point.
int m_NLayers
Number of layers in one section.
EKLMGeometry()
Constructor.
bool checkStrip(int strip, bool fatalError=true) const
Check if strip number is correct (fatal error if not).
~EndcapStructureGeometry()
Destructor.
EndcapStructureGeometry()
Constructor.
void checkDetectorLayerNumber(int section, int layer) const
Check if number of detector layers is correct (fatal error if not).
int * m_NDetectorLayers
Number of detector layers.
EndcapStructureGeometry m_EndcapStructureGeometry
Section structure geometry data.
ShieldGeometry m_ShieldGeometry
Shield layer details geometry data.
const SegmentSupportPosition * getSegmentSupportPosition(int plane, int support) const
Get position data for segment support structure.
SegmentSupportGeometry()
Constructor.
void checkDetectorLayer(int section, int layer) const
Check if detector layer number is correct (fatal error if not).
Shield layer detail geometry data.
Position information for the elements of detector.
void setDetailCCenter(double x, double y)
Set detail C center.
void setDetailBCenter(double x, double y)
Set detail B center.
ShieldDetailGeometry & operator=(const ShieldDetailGeometry &geometry)
Operator =.
const EKLMElementNumbers * m_ElementNumbers
Element numbers.
ElementPosition m_SectorPosition
Position data for sectors.
int m_NSegments
Number of segments in one plane.
double m_SolenoidZ
Solenoid center Z coordinate.
ElementPosition m_LayerPosition
Position data for layers.
EKLMGeometry & operator=(const EKLMGeometry &geometry)
Operator =.
Segment support position.
ElementPosition()
Constructor.
SectorSupportGeometry()
Constructor.
int m_NSections
ROOT streamer.
ElementPosition * m_StripPosition
Position data for strips.
StripGeometry()
Constructor.
Abstract base class for different kinds of events.
PlasticSheetGeometry()
Constructor.
const Point * getPoint(int i) const
Get point.
bool checkSection(int section, bool fatalError=true) const
Check if section number is correct.
int m_NStrips
Number of strips in one plane.
bool checkPlane(int plane, bool fatalError=true) const
Check if plane number is correct (fatal error if not).
int getNDetectorLayers(int section) const
Get number of detector layers.
SegmentSupportPosition()
Constructor.
ShieldGeometry()
Constructor.
SegmentSupportPosition * m_SegmentSupportPosition
Position data for segment support structure.
double m_LengthY
Y length.
StripGeometry m_StripGeometry
Strip geometry data.
int m_NSectors
Number of sectors in one layer.
double m_LayerShiftZ
Z distance between two layers.
int m_NPoints
Number of points.
static constexpr int getNStripsSegment()
Get number of strips in a segment.
void setNPoints(int nPoints)
Set number of points.
ElementPosition m_PlanePosition
Position data for planes.
ShieldDetailGeometry()
Constructor.
double m_LengthX
X length.
void setDetailACenter(double x, double y)
Set detail A center.
ElementPosition m_SectionPosition
Position data for sections.
virtual ~EKLMGeometry()
Destructor.
int m_NPlanes
Number of planes in one sector.
void checkSegmentSupport(int support) const
Check if segment support number is correct (fatal error if not).
int m_NSegmentSupportElementsSector
Number of segment support elements in one sector.
int getMaximalDetectorLayerNumber(int section) const
Get maximal detector layer number.
~ShieldDetailGeometry()
Destructor.
ElementPosition m_SectorSupportPosition
Position data for sector support structure.
void checkStripSegment(int strip) const
Check if number of strip in a segment is correct (fatal error if not).