Belle II Software  release-08-01-10
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 36 of file AlignmentChecker.h.

Constructor & Destructor Documentation

◆ AlignmentChecker()

AlignmentChecker ( bool  printOverlaps)
explicit

Constructor.

Parameters
[in]printOverlapsPrint information about overlaps or not.

Definition at line 22 of file AlignmentChecker.cc.

22  :
23  m_PrintOverlaps(printOverlaps),
26 {
27  int iPlane, iSegmentSupport;
28  const EKLMGeometry::SectorSupportGeometry* sectorSupportGeometry =
30  const EKLMGeometry::ElementPosition* sectorSupportPosition =
32  m_LineCorner1 = new LineSegment2D(sectorSupportGeometry->getCorner1AInner(),
33  sectorSupportGeometry->getCorner1BInner());
34  m_ArcOuter = new Arc2D(
35  0, 0, sectorSupportPosition->getOuterR() -
36  sectorSupportGeometry->getThickness(),
37  atan2(sectorSupportGeometry->getCorner2Inner().y(),
38  sectorSupportGeometry->getCorner2Inner().x()),
39  atan2(sectorSupportGeometry->getCorner1BInner().y(),
40  sectorSupportGeometry->getCorner1BInner().x()));
41  m_Line23 = new LineSegment2D(sectorSupportGeometry->getCorner2Inner(),
42  sectorSupportGeometry->getCorner3Inner());
43  m_ArcInner = new Arc2D(
44  0, 0, sectorSupportPosition->getInnerR() +
45  sectorSupportGeometry->getThickness(),
46  atan2(sectorSupportGeometry->getCorner3Inner().y(),
47  sectorSupportGeometry->getCorner3Inner().x()),
48  atan2(sectorSupportGeometry->getCorner4Inner().y(),
49  sectorSupportGeometry->getCorner4Inner().x()));
50  m_Line41 = new LineSegment2D(sectorSupportGeometry->getCorner4Inner(),
51  sectorSupportGeometry->getCorner1AInner());
52  m_SegmentSupport = new Polygon2D** [m_GeoDat->getNPlanes()];
53  for (iPlane = 1; iPlane <= m_GeoDat->getNPlanes(); iPlane++) {
54  m_SegmentSupport[iPlane - 1] =
55  new Polygon2D*[m_GeoDat->getNSegments() + 1];
56  for (iSegmentSupport = 1; iSegmentSupport <= m_GeoDat->getNSegments() + 1;
57  iSegmentSupport++)
58  m_SegmentSupport[iPlane - 1][iSegmentSupport - 1] = nullptr;
59  }
60 }
static const EKLMElementNumbers & Instance()
Instantiation.
Position information for the elements of detector.
Definition: EKLMGeometry.h:100
double getOuterR() const
Get outer radius.
Definition: EKLMGeometry.h:129
double getInnerR() const
Get inner radius.
Definition: EKLMGeometry.h:112
Sector support geometry data.
Definition: EKLMGeometry.h:239
const HepGeom::Point3D< double > & getCorner2Inner() const
Get corner 2 coordinates (inner side).
Definition: EKLMGeometry.h:659
double getThickness() const
Get thickness.
Definition: EKLMGeometry.h:251
const HepGeom::Point3D< double > & getCorner1AInner() const
Get corner 1A coordinates (inner side).
Definition: EKLMGeometry.h:608
const HepGeom::Point3D< double > & getCorner4Inner() const
Get corner 4 coordinates (inner side).
Definition: EKLMGeometry.h:744
const HepGeom::Point3D< double > & getCorner1BInner() const
Get corner 1B coordinates (inner side).
Definition: EKLMGeometry.h:642
const HepGeom::Point3D< double > & getCorner3Inner() const
Get corner 3 coordinates (inner side).
Definition: EKLMGeometry.h:693
const ElementPosition * getSectorSupportPosition() const
Get position data for sector support structure.
int getNPlanes() const
Get number of planes.
int getNSegments() const
Get number of segments.
const SectorSupportGeometry * getSectorSupportGeometry() const
Get sector support geometry data.
bool m_PrintOverlaps
Print information about overlaps or not.
LineSegment2D * m_Line23
Sector support edge: line between corners 2 and 3.
Arc2D * m_ArcOuter
Sector support edge: outer arc.
LineSegment2D * m_Line41
Sector support edge: line between corners 4 and 1.
const EKLMElementNumbers * m_ElementNumbers
Element numbers.
Polygon2D *** m_SegmentSupport
Segment support.
LineSegment2D * m_LineCorner1
Sector support edge: corner 1 line.
Arc2D * m_ArcInner
Sector support edge: inner arc.
const GeometryData * m_GeoDat
Geometry data.
static const GeometryData & Instance(enum DataSource dataSource=c_Database, const GearDir *gearDir=nullptr)
Instantiation.
Definition: GeometryData.cc:33

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 308 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 81 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 194 of file AlignmentChecker.cc.


The documentation for this class was generated from the following files: