Belle II Software  release-05-02-19
AlignmentChecker Class Reference

Class for EKLM alignment checking. More...

#include <AlignmentChecker.h>

Collaboration diagram for AlignmentChecker:

Public Member Functions

 AlignmentChecker (bool printOverlaps)
 Constructor. More...
 
 AlignmentChecker (const AlignmentChecker &)=delete
 Copy constructor (disabled).
 
AlignmentCheckeroperator= (const AlignmentChecker &)=delete
 Operator = (disabled).
 
 ~AlignmentChecker ()
 Destructor.
 
bool checkSectorAlignment (int section, int layer, int sector, const KLMAlignmentData *sectorAlignment) const
 Check sector alignment. More...
 
bool checkSegmentAlignment (int section, int layer, int sector, int plane, int segment, const KLMAlignmentData *sectorAlignment, const KLMAlignmentData *segmentAlignment, bool calledFromSectorCheck) const
 Check segment alignment. More...
 
bool checkAlignment (const EKLMAlignment *alignment, const EKLMSegmentAlignment *segmentAlignment) const
 Check alignment. More...
 

Private Attributes

bool m_PrintOverlaps
 Print information about overlaps or not.
 
const GeometryDatam_GeoDat
 Geometry data.
 
const EKLMElementNumbersm_ElementNumbers
 Element numbers.
 
LineSegment2Dm_LineCorner1
 Sector support edge: corner 1 line.
 
Arc2Dm_ArcOuter
 Sector support edge: outer arc.
 
LineSegment2Dm_Line23
 Sector support edge: line between corners 2 and 3.
 
Arc2Dm_ArcInner
 Sector support edge: inner arc.
 
LineSegment2Dm_Line41
 Sector support edge: line between corners 4 and 1.
 
Polygon2D *** m_SegmentSupport
 Segment support.
 

Detailed Description

Class for EKLM alignment checking.

Note that this class internally works in CLHEP units.

Definition at line 38 of file AlignmentChecker.h.

Constructor & Destructor Documentation

◆ AlignmentChecker()

AlignmentChecker ( bool  printOverlaps)
explicit

Constructor.

Parameters
[in]printOverlapsPrint information about overlaps or not.

Definition at line 24 of file AlignmentChecker.cc.

24  :
25  m_PrintOverlaps(printOverlaps),
28 {
29  int iPlane, iSegmentSupport;
30  const EKLMGeometry::SectorSupportGeometry* sectorSupportGeometry =
32  const EKLMGeometry::ElementPosition* sectorSupportPosition =
34  m_LineCorner1 = new LineSegment2D(sectorSupportGeometry->getCorner1AInner(),
35  sectorSupportGeometry->getCorner1BInner());
36  m_ArcOuter = new Arc2D(
37  0, 0, sectorSupportPosition->getOuterR() -
38  sectorSupportGeometry->getThickness(),
39  atan2(sectorSupportGeometry->getCorner2Inner().y(),
40  sectorSupportGeometry->getCorner2Inner().x()),
41  atan2(sectorSupportGeometry->getCorner1BInner().y(),
42  sectorSupportGeometry->getCorner1BInner().x()));
43  m_Line23 = new LineSegment2D(sectorSupportGeometry->getCorner2Inner(),
44  sectorSupportGeometry->getCorner3Inner());
45  m_ArcInner = new Arc2D(
46  0, 0, sectorSupportPosition->getInnerR() +
47  sectorSupportGeometry->getThickness(),
48  atan2(sectorSupportGeometry->getCorner3Inner().y(),
49  sectorSupportGeometry->getCorner3Inner().x()),
50  atan2(sectorSupportGeometry->getCorner4Inner().y(),
51  sectorSupportGeometry->getCorner4Inner().x()));
52  m_Line41 = new LineSegment2D(sectorSupportGeometry->getCorner4Inner(),
53  sectorSupportGeometry->getCorner1AInner());
54  m_SegmentSupport = new Polygon2D** [m_GeoDat->getNPlanes()];
55  for (iPlane = 1; iPlane <= m_GeoDat->getNPlanes(); iPlane++) {
56  m_SegmentSupport[iPlane - 1] =
57  new Polygon2D*[m_GeoDat->getNSegments() + 1];
58  for (iSegmentSupport = 1; iSegmentSupport <= m_GeoDat->getNSegments() + 1;
59  iSegmentSupport++)
60  m_SegmentSupport[iPlane - 1][iSegmentSupport - 1] = nullptr;
61  }
62 }

Member Function Documentation

◆ checkAlignment()

bool checkAlignment ( const EKLMAlignment alignment,
const EKLMSegmentAlignment segmentAlignment 
) const

Check alignment.

Parameters
[in]alignmentAlignment data.
[in]segmentAlignmentSegment alignment data.
Returns
true Alignment is correct (no overlaps).

Definition at line 310 of file AlignmentChecker.cc.

◆ checkSectorAlignment()

bool checkSectorAlignment ( int  section,
int  layer,
int  sector,
const KLMAlignmentData sectorAlignment 
) const

Check sector alignment.

Parameters
[in]sectionSection.
[in]layerLayer.
[in]sectorSector.
[in]sectorAlignmentSector alignment.
Returns
true Alignment is correct (no overlaps).

Definition at line 84 of file AlignmentChecker.cc.

◆ checkSegmentAlignment()

bool checkSegmentAlignment ( int  section,
int  layer,
int  sector,
int  plane,
int  segment,
const KLMAlignmentData sectorAlignment,
const KLMAlignmentData segmentAlignment,
bool  calledFromSectorCheck 
) const

Check segment alignment.

Parameters
[in]sectionSection.
[in]layerLayer.
[in]sectorSector.
[in]planePlane number.
[in]segmentSegment number.
[in]sectorAlignmentSector alignment.
[in]segmentAlignmentSegment alignment.
[in]calledFromSectorCheckCalled from checkSectorAlignment() or not.
Returns
true Alignment is correct (no overlaps).

Definition at line 197 of file AlignmentChecker.cc.


The documentation for this class was generated from the following files:
Belle2::EKLMGeometry::getNSegments
int getNSegments() const
Get number of segments.
Definition: EKLMGeometry.h:1725
Belle2::EKLMGeometry::getNPlanes
int getNPlanes() const
Get number of planes.
Definition: EKLMGeometry.h:1717
Belle2::EKLMGeometry::SectorSupportGeometry
Sector support geometry data.
Definition: EKLMGeometry.h:249
Belle2::EKLMGeometry::SectorSupportGeometry::getCorner4Inner
const HepGeom::Point3D< double > & getCorner4Inner() const
Get corner 4 coordinates (inner side).
Definition: EKLMGeometry.h:754
Belle2::EKLMGeometry::ElementPosition
Position information for the elements of detector.
Definition: EKLMGeometry.h:110
Belle2::EKLMGeometry::ElementPosition::getInnerR
double getInnerR() const
Get inner radius.
Definition: EKLMGeometry.h:122
Belle2::EKLMGeometry::SectorSupportGeometry::getCorner1AInner
const HepGeom::Point3D< double > & getCorner1AInner() const
Get corner 1A coordinates (inner side).
Definition: EKLMGeometry.h:618
Belle2::EKLM::AlignmentChecker::m_SegmentSupport
Polygon2D *** m_SegmentSupport
Segment support.
Definition: AlignmentChecker.h:129
Belle2::EKLM::AlignmentChecker::m_ArcOuter
Arc2D * m_ArcOuter
Sector support edge: outer arc.
Definition: AlignmentChecker.h:117
Belle2::EKLMGeometry::SectorSupportGeometry::getThickness
double getThickness() const
Get thickness.
Definition: EKLMGeometry.h:261
Belle2::EKLM::AlignmentChecker::m_LineCorner1
LineSegment2D * m_LineCorner1
Sector support edge: corner 1 line.
Definition: AlignmentChecker.h:114
Belle2::EKLM::AlignmentChecker::m_Line41
LineSegment2D * m_Line41
Sector support edge: line between corners 4 and 1.
Definition: AlignmentChecker.h:126
Belle2::EKLM::AlignmentChecker::m_ArcInner
Arc2D * m_ArcInner
Sector support edge: inner arc.
Definition: AlignmentChecker.h:123
Belle2::EKLM::AlignmentChecker::m_ElementNumbers
const EKLMElementNumbers * m_ElementNumbers
Element numbers.
Definition: AlignmentChecker.h:111
Belle2::EKLMElementNumbers::Instance
static const EKLMElementNumbers & Instance()
Instantiation.
Definition: EKLMElementNumbers.cc:20
Belle2::EKLMGeometry::SectorSupportGeometry::getCorner3Inner
const HepGeom::Point3D< double > & getCorner3Inner() const
Get corner 3 coordinates (inner side).
Definition: EKLMGeometry.h:703
Belle2::EKLMGeometry::getSectorSupportPosition
const ElementPosition * getSectorSupportPosition() const
Get position data for sector support structure.
Definition: EKLMGeometry.h:1825
Belle2::EKLM::AlignmentChecker::m_PrintOverlaps
bool m_PrintOverlaps
Print information about overlaps or not.
Definition: AlignmentChecker.h:105
Belle2::EKLMGeometry::getSectorSupportGeometry
const SectorSupportGeometry * getSectorSupportGeometry() const
Get sector support geometry data.
Definition: EKLMGeometry.h:1833
Belle2::EKLM::AlignmentChecker::m_Line23
LineSegment2D * m_Line23
Sector support edge: line between corners 2 and 3.
Definition: AlignmentChecker.h:120
Belle2::EKLMGeometry::ElementPosition::getOuterR
double getOuterR() const
Get outer radius.
Definition: EKLMGeometry.h:139
Belle2::EKLM::AlignmentChecker::m_GeoDat
const GeometryData * m_GeoDat
Geometry data.
Definition: AlignmentChecker.h:108
Belle2::EKLMGeometry::SectorSupportGeometry::getCorner1BInner
const HepGeom::Point3D< double > & getCorner1BInner() const
Get corner 1B coordinates (inner side).
Definition: EKLMGeometry.h:652
Belle2::EKLMGeometry::SectorSupportGeometry::getCorner2Inner
const HepGeom::Point3D< double > & getCorner2Inner() const
Get corner 2 coordinates (inner side).
Definition: EKLMGeometry.h:669
Belle2::EKLM::GeometryData::Instance
static const GeometryData & Instance(enum DataSource dataSource=c_Database, const GearDir *gearDir=nullptr)
Instantiation.
Definition: GeometryData.cc:35