Belle II Software  release-08-01-10
TransformDataGlobalAligned Class Reference

Transformation data (global, aligned): singleton version. More...

#include <TransformDataGlobalAligned.h>

Inheritance diagram for TransformDataGlobalAligned:
Collaboration diagram for TransformDataGlobalAligned:

Public Types

enum  Displacement {
  c_None ,
  c_Displacement ,
  c_Alignment
}
 Source of displacement (alignment) data. More...
 

Public Member Functions

const HepGeom::Transform3D * getSectionTransform (int section) const
 Get section transformation. More...
 
const HepGeom::Transform3D * getLayerTransform (int section, int layer) const
 Get layer transformation. More...
 
const HepGeom::Transform3D * getSectorTransform (int section, int layer, int sector) const
 Get sector transformation. More...
 
const HepGeom::Transform3D * getPlaneTransform (int section, int layer, int sector, int plane) const
 Get plane transformation. More...
 
const HepGeom::Transform3D * getPlaneDisplacement (int section, int layer, int sector, int plane) const
 Get additional displacement for plane internal volumes. More...
 
const HepGeom::Transform3D * getSegmentTransform (int section, int layer, int sector, int plane, int segment) const
 Get segment transformation. More...
 
const HepGeom::Transform3D * getStripLocalToGlobal (KLMDigit *hit) const
 Get strip local to global transformation by hit. More...
 
const HepGeom::Transform3D * getStripGlobalToLocal (KLMDigit *hit) const
 Get strip global to local transformation by hit. More...
 
const HepGeom::Transform3D * getStripGlobalToLocal (int section, int layer, int sector, int plane, int strip) const
 Get strip global to local transformation by hit. More...
 
const HepGeom::Transform3D * getStripTransform (int section, int layer, int sector, int plane, int strip) const
 Get strip transformation. More...
 
bool intersection (KLMDigit *hit1, KLMDigit *hit2, HepGeom::Point3D< double > *cross, double *d1, double *d2, double *sd, bool segments=true) const
 Check if strips intersect, and find intersection point if yes. More...
 
int getSectorByPosition (int section, const HepGeom::Point3D< double > &position) const
 Get sector by position. More...
 
int getStripsByIntersection (const HepGeom::Point3D< double > &intersection, int *strip1, int *strip2) const
 Find strips by intersection. More...
 

Static Public Member Functions

static const TransformDataGlobalAlignedInstance ()
 Instantiation.
 

Private Member Functions

 TransformDataGlobalAligned ()
 Constructor.
 
 ~TransformDataGlobalAligned ()
 Destructor.
 
void transformsToGlobal ()
 Make transformations global from local. More...
 

Private Attributes

const EKLMElementNumbersm_ElementNumbers
 Element numbers.
 
const GeometryDatam_GeoDat
 Geometry data.
 
HepGeom::Transform3D * m_Section
 Section transformations.
 
HepGeom::Transform3D ** m_Layer
 Layer transformations.
 
HepGeom::Transform3D *** m_Sector
 Sector transformations.
 
HepGeom::Transform3D **** m_Plane
 Plane transformations.
 
HepGeom::Transform3D **** m_PlaneDisplacement
 Plane internal volumes displacements.
 
HepGeom::Transform3D ***** m_Segment
 Segment transformations.
 
HepGeom::Transform3D ***** m_Strip
 Strip transformations.
 
HepGeom::Transform3D ***** m_StripInverse
 Inverse strip transformations.
 

Detailed Description

Transformation data (global, aligned): singleton version.

Definition at line 25 of file TransformDataGlobalAligned.h.

Member Enumeration Documentation

◆ Displacement

enum Displacement
inherited

Source of displacement (alignment) data.

Enumerator
c_None 

Displacement is not used.

c_Displacement 

Use displacement data (for geometry).

c_Alignment 

Use alignment data (for everything else).

Definition at line 42 of file TransformData.h.

Member Function Documentation

◆ getLayerTransform()

const HepGeom::Transform3D * getLayerTransform ( int  section,
int  layer 
) const
inherited

Get layer transformation.

Parameters
[in]sectionSection number.
[in]layerLayer number.

Definition at line 290 of file TransformData.cc.

◆ getPlaneDisplacement()

const HepGeom::Transform3D * getPlaneDisplacement ( int  section,
int  layer,
int  sector,
int  plane 
) const
inherited

Get additional displacement for plane internal volumes.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.
[in]planePlane number.

Definition at line 307 of file TransformData.cc.

◆ getPlaneTransform()

const HepGeom::Transform3D * getPlaneTransform ( int  section,
int  layer,
int  sector,
int  plane 
) const
inherited

Get plane transformation.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.
[in]planePlane number.

Definition at line 301 of file TransformData.cc.

◆ getSectionTransform()

const HepGeom::Transform3D * getSectionTransform ( int  section) const
inherited

Get section transformation.

Parameters
[in]sectionSection number.

Definition at line 284 of file TransformData.cc.

◆ getSectorByPosition()

int getSectorByPosition ( int  section,
const HepGeom::Point3D< double > &  position 
) const
inherited

Get sector by position.

Parameters
[in]sectionSection number.
[in]positionPosition.

Definition at line 416 of file TransformData.cc.

◆ getSectorTransform()

const HepGeom::Transform3D * getSectorTransform ( int  section,
int  layer,
int  sector 
) const
inherited

Get sector transformation.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.

Definition at line 295 of file TransformData.cc.

◆ getSegmentTransform()

const HepGeom::Transform3D * getSegmentTransform ( int  section,
int  layer,
int  sector,
int  plane,
int  segment 
) const
inherited

Get segment transformation.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.
[in]planePlane number.
[in]segmentSegment number.

Definition at line 313 of file TransformData.cc.

◆ getStripGlobalToLocal() [1/2]

const HepGeom::Transform3D * getStripGlobalToLocal ( int  section,
int  layer,
int  sector,
int  plane,
int  strip 
) const
inherited

Get strip global to local transformation by hit.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.
[in]planePlane number.
[in]stripStrip number.
Returns
Transformation.

Definition at line 341 of file TransformData.cc.

◆ getStripGlobalToLocal() [2/2]

const HepGeom::Transform3D * getStripGlobalToLocal ( KLMDigit hit) const
inherited

Get strip global to local transformation by hit.

Parameters
[in]hitHit.
Returns
Transformation.

Definition at line 334 of file TransformData.cc.

◆ getStripLocalToGlobal()

const HepGeom::Transform3D * getStripLocalToGlobal ( KLMDigit hit) const
inherited

Get strip local to global transformation by hit.

Parameters
[in]hitHit.
Returns
Transformation.

Definition at line 327 of file TransformData.cc.

◆ getStripsByIntersection()

int getStripsByIntersection ( const HepGeom::Point3D< double > &  intersection,
int *  strip1,
int *  strip2 
) const
inherited

Find strips by intersection.

Parameters
[in]intersectionIntersection point.
[out]strip1Strip 1 global number.
[out]strip2Strip 2 global number.
Returns
0 on success, -1 on error.

Definition at line 440 of file TransformData.cc.

◆ getStripTransform()

const HepGeom::Transform3D * getStripTransform ( int  section,
int  layer,
int  sector,
int  plane,
int  strip 
) const
inherited

Get strip transformation.

Parameters
[in]sectionSection number.
[in]layerLayer number.
[in]sectorSector number.
[in]planePlane number.
[in]stripStrip number.

Definition at line 320 of file TransformData.cc.

◆ intersection()

bool intersection ( KLMDigit hit1,
KLMDigit hit2,
HepGeom::Point3D< double > *  cross,
double *  d1,
double *  d2,
double *  sd,
bool  segments = true 
) const
inherited

Check if strips intersect, and find intersection point if yes.

Parameters
[in]hit1First hit.
[in]hit2Second hit.
[out]crossCrossing point (coordinate unit is cm).
[out]d1Distance from hit to SiPM of strip 1, cm.
[out]d2Distance from hit to SiPM of strip 2, cm.
[out]sdShortest distance between strips, cm. Or if second strip is closer to interaction point, then (- shortest distance).
[in]segmentsCheck if segments intersect (may need to turn this check off for debugging).
Returns
True if strips intersect.

Line parametric equations: (s1_1g) + (s1_2g - s1_1g) * t1 = a1 + v1 * t1, (s2_1g) + (s2_2g - s2_1g) * t2 = a2 + v2 * t2. Points of closest approach: t1 = ((v1,v2)*(d,v2) - v2^2*(d,v1)) / (v1^2*v2^2 - (v1,v2)^2) t2 = - ((v1,v2)*(d,v1) - v1^2*(d,v2)) / (v1^2*v2^2 - (v1,v2)^2) where d = a1 - a2.

Definition at line 348 of file TransformData.cc.

◆ transformsToGlobal()

void transformsToGlobal ( )
privateinherited

Make transformations global from local.

Parameters
[in,out]datTransformation data.

Definition at line 239 of file TransformData.cc.


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