ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::MuonCalibSimpleHoleSearch Class Reference

#include <MuonCalibSimpleHoleSearch.h>

Collaboration diagram for MuonCalib::MuonCalibSimpleHoleSearch:

Classes

struct  Result

Public Types

typedef std::vector< ResultResultVec
typedef ResultVec::iterator ResultIt

Public Member Functions

 MuonCalibSimpleHoleSearch ()
ResultVec intersectsWithGeometry (const Amg::Vector3D &parPos, const Amg::Vector3D &parDir, double tolerance=1e9)

Private Types

typedef std::vector< std::pair< const MuonCalibSurface *, MuonFixedId > > SurfaceIdVec
typedef SurfaceIdVec::iterator SurfaceIdIt

Private Member Functions

void searchForSurfaceIntersect (const Amg::Vector3D &parPos, const Amg::Vector3D &parDir, const MuonCalibSurface &surf, const MuonFixedId &stLayerId, ResultVec &intersects, double tolerance=1e9) const
 search for intersect with the give surface
void init ()
 init static members

Static Private Attributes

static MuonCalibSimpleGeometry m_geometry
static MuonCalibSLPropagator m_propagator
static MuonFixedIdManipulator m_idManipulator
static SurfaceIdVec m_surfaceIdList

Detailed Description

Definition at line 19 of file MuonCalibSimpleHoleSearch.h.

Member Typedef Documentation

◆ ResultIt

Definition at line 28 of file MuonCalibSimpleHoleSearch.h.

◆ ResultVec

◆ SurfaceIdIt

typedef SurfaceIdVec::iterator MuonCalib::MuonCalibSimpleHoleSearch::SurfaceIdIt
private

Definition at line 47 of file MuonCalibSimpleHoleSearch.h.

◆ SurfaceIdVec

typedef std::vector<std::pair<const MuonCalibSurface*, MuonFixedId> > MuonCalib::MuonCalibSimpleHoleSearch::SurfaceIdVec
private

Definition at line 46 of file MuonCalibSimpleHoleSearch.h.

Constructor & Destructor Documentation

◆ MuonCalibSimpleHoleSearch()

MuonCalib::MuonCalibSimpleHoleSearch::MuonCalibSimpleHoleSearch ( )
inline

Definition at line 31 of file MuonCalibSimpleHoleSearch.h.

31{ init(); }

Member Function Documentation

◆ init()

void MuonCalib::MuonCalibSimpleHoleSearch::init ( )
private

init static members

Definition at line 19 of file MuonCalibSimpleHoleSearch.cxx.

19 {
20 if (!m_surfaceIdList.empty()) return;
21 m_surfaceIdList.push_back(
22 std::make_pair(&m_geometry.endcapInnerDiskASide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EIA)));
23 m_surfaceIdList.push_back(
24 std::make_pair(&m_geometry.endcapMiddleDiskASide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EMA)));
25 m_surfaceIdList.push_back(
26 std::make_pair(&m_geometry.endcapOuterDiskASide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EOA)));
27
28 m_surfaceIdList.push_back(
29 std::make_pair(&m_geometry.endcapInnerDiskCSide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EIC)));
30 m_surfaceIdList.push_back(
31 std::make_pair(&m_geometry.endcapMiddleDiskCSide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EMC)));
32 m_surfaceIdList.push_back(
33 std::make_pair(&m_geometry.endcapOuterDiskCSide, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::EOC)));
34
35 m_surfaceIdList.push_back(
36 std::make_pair(&m_geometry.barrelInnerCylinder, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::BI)));
37 m_surfaceIdList.push_back(
38 std::make_pair(&m_geometry.barrelMiddleCylinder, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::BM)));
39 m_surfaceIdList.push_back(
40 std::make_pair(&m_geometry.barrelOuterCylinder, m_idManipulator.stationLayerIdentifier(MuonFixedIdManipulator::BO)));
41 }
static MuonCalibSimpleGeometry m_geometry
static MuonFixedIdManipulator m_idManipulator

◆ intersectsWithGeometry()

MuonCalibSimpleHoleSearch::ResultVec MuonCalib::MuonCalibSimpleHoleSearch::intersectsWithGeometry ( const Amg::Vector3D & parPos,
const Amg::Vector3D & parDir,
double tolerance = 1e9 )

Definition at line 43 of file MuonCalibSimpleHoleSearch.cxx.

44 {
45 ResultVec intersectedLayers;
47 SurfaceIdIt it_end = m_surfaceIdList.end();
48 for (; it != it_end; ++it) { searchForSurfaceIntersect(parPos, parDir, *it->first, it->second, intersectedLayers, tolerance); }
49
50 return intersectedLayers;
51 }
void searchForSurfaceIntersect(const Amg::Vector3D &parPos, const Amg::Vector3D &parDir, const MuonCalibSurface &surf, const MuonFixedId &stLayerId, ResultVec &intersects, double tolerance=1e9) const
search for intersect with the give surface
constexpr double tolerance

◆ searchForSurfaceIntersect()

void MuonCalib::MuonCalibSimpleHoleSearch::searchForSurfaceIntersect ( const Amg::Vector3D & parPos,
const Amg::Vector3D & parDir,
const MuonCalibSurface & surf,
const MuonFixedId & stLayerId,
ResultVec & intersects,
double tolerance = 1e9 ) const
private

search for intersect with the give surface

Definition at line 53 of file MuonCalibSimpleHoleSearch.cxx.

55 {
56 // propagate to layer
57 Amg::Vector3D pos = m_propagator.propagate(parPos, parDir, surf);
58
59 // check if position is within bounds, if so add intersect
60 if (surf.inBounds(pos, tolerance)) {
61 bool add = true;
62 if (m_idManipulator.isEndcap(stLayerId)) {
63 // for the endcap only take intersects on the same side as the track
64 double sideTrack = parPos.z() < 0. ? -1. : 1.;
65 double sideInter = pos.z() < 0. ? -1. : 1.;
66 if (sideTrack != sideInter) add = false;
67 }
68 if (add) intersects.push_back(Result(stLayerId, pos));
69 }
70 }
ICscStripFitter::Result Result
bool add(const std::string &hname, TKey *tobj)
Definition fastadd.cxx:55
Eigen::Matrix< double, 3, 1 > Vector3D

Member Data Documentation

◆ m_geometry

MuonCalibSimpleGeometry MuonCalib::MuonCalibSimpleHoleSearch::m_geometry
staticprivate

Definition at line 43 of file MuonCalibSimpleHoleSearch.h.

◆ m_idManipulator

MuonFixedIdManipulator MuonCalib::MuonCalibSimpleHoleSearch::m_idManipulator
staticprivate

Definition at line 45 of file MuonCalibSimpleHoleSearch.h.

◆ m_propagator

MuonCalibSLPropagator MuonCalib::MuonCalibSimpleHoleSearch::m_propagator
staticprivate

Definition at line 44 of file MuonCalibSimpleHoleSearch.h.

◆ m_surfaceIdList

MuonCalibSimpleHoleSearch::SurfaceIdVec MuonCalib::MuonCalibSimpleHoleSearch::m_surfaceIdList
staticprivate

Definition at line 48 of file MuonCalibSimpleHoleSearch.h.


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