CMS 3D CMS Logo

List of all members | Public Member Functions
PerpendicularBoundPlaneBuilder Class Reference

#include <PerpendicularBoundPlaneBuilder.h>

Public Member Functions

BoundPlaneoperator() (const Surface::GlobalPoint &origin, const Surface::GlobalVector &perp) const
 

Detailed Description

Constructs a plane perpendicular to an axis, and oriented in a special way. Must be updated for reference counting.

Definition at line 11 of file PerpendicularBoundPlaneBuilder.h.

Member Function Documentation

◆ operator()()

BoundPlane * PerpendicularBoundPlaneBuilder::operator() ( const Surface::GlobalPoint origin,
const Surface::GlobalVector perp 
) const

Definition at line 5 of file PerpendicularBoundPlaneBuilder.cc.

References perp(), makeMuonMisalignmentScenario::rot, unit(), HLT_2022v15_cff::xAxis, HLT_2022v15_cff::yAxis, and HLT_2022v15_cff::zAxis.

6  {
7  // z axis coincides with perp
8  GlobalVector zAxis = perp.unit();
9 
10  // x axis has no global Z component
12  if (zAxis.x() != 0 || zAxis.y() != 0) {
13  // precision is not an issue here, just protect against divizion by zero
14  xAxis = GlobalVector(-zAxis.y(), zAxis.x(), 0).unit();
15  } else { // perp coincides with global Z
16  xAxis = GlobalVector(1, 0, 0);
17  }
18 
19  // y axis obtained by cross product
20  GlobalVector yAxis(zAxis.cross(xAxis));
21 
23  xAxis.x(), xAxis.y(), xAxis.z(), yAxis.x(), yAxis.y(), yAxis.z(), zAxis.x(), zAxis.y(), zAxis.z());
24 
25  return new BoundPlane(origin, rot);
26 }
Plane BoundPlane
Definition: Plane.h:94
T perp() const
Magnitude of transverse component.
Basic3DVector unit() const
Global3DVector GlobalVector
Definition: GlobalVector.h:10