Class to describe overlaps in the TRT detector, it extends the Trk::OverlapDescriptor base class.
More...
#include <TRT_OverlapDescriptor.h>
◆ TRT_OverlapDescriptor() [1/2]
| InDet::TRT_OverlapDescriptor::TRT_OverlapDescriptor |
( |
const TRT_ID * | helper, |
|
|
double | bTolerance = 0.9, |
|
|
double | oTolerance = 1.1 ) |
|
inline |
Constructor.
Definition at line 34 of file TRT_OverlapDescriptor.h.
34 :
38 {}
double m_outsideTolerance
accept even if it outside the bounds by this tolerance
double m_breakTolerance
if the straight line intersection is within this fraction of the bounds - don't look for neighbours
const TRT_ID * m_trtIdHelper
the Id helper
◆ TRT_OverlapDescriptor() [2/2]
◆ ~TRT_OverlapDescriptor()
| virtual InDet::TRT_OverlapDescriptor::~TRT_OverlapDescriptor |
( |
| ) |
|
|
inlinevirtual |
◆ checkAndFill()
Definition at line 63 of file TRT_OverlapDescriptor.cxx.
68{
69 Trk::Intersection sfIntersection =
70 sf.straightLineIntersection(pos, dir,
false,
false);
71
72 if (sfIntersection.
valid) {
73
74 double rSurface2 =
sf.bounds().r() *
sf.bounds().r();
75
78
80 (sDirection.cross((sfIntersection.
position - sCenter))).squaredNorm();
81
82 bool acceptSurface =
84 if (acceptSurface)
85 cSurfaces.emplace_back(sfIntersection, &sf);
86
88 ? 0
89 : (sfIntersection.
position.phi() >
sf.center().phi() ? 1 : -1));
90 }
91
92 return (
pos.phi() >
sf.center().phi() ? 1 : -1);
93}
Eigen::Matrix< double, 3, 1 > Vector3D
◆ clone()
◆ operator=()
◆ reachableSurfaces()
get the compatible surfaces
Implements Trk::OverlapDescriptor.
Definition at line 18 of file TRT_OverlapDescriptor.cxx.
24{
26
27 int nextInt =
checkAndFill(cSurfaces, tsf, position, dir);
28 if (!nextInt)
29 return true;
30
31
32 const auto*
tmp = tsf.associatedDetectorElement();
33 const InDetDD::TRT_BaseElement* trtBaseElement =
35 ?
static_cast<const InDetDD::TRT_BaseElement*
>(
tmp)
36 : nullptr;
37
38
39 if (trtBaseElement) {
40
41 Identifier strawID = tsf.associatedDetectorElementIdentifier();
42
43
44 int strawMax = trtBaseElement->
nStraws() - 1;
46
47 if (strawInt != 0 && strawInt < strawMax && strawMax != -999) {
48
49 Identifier nextID =
51 const Trk::Surface* nextStraw = (strawInt > 1 && strawInt < strawMax)
52 ? (&(trtBaseElement->
surface(nextID)))
53 : nullptr;
54 if (nextStraw)
55 nextInt =
checkAndFill(cSurfaces, *nextStraw, position, dir);
56 }
57 }
58
59 return true;
60}
unsigned int nStraws() const
Number of straws in the element.
virtual Identifier identify() const override final
identifier of this detector element:
virtual const Trk::Surface & surface() const override final
Element Surface: access to the Surface (straw layer)
int checkAndFill(std::vector< Trk::SurfaceIntersection > &cSurfaces, const Trk::Surface &sf, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
◆ m_breakTolerance
| double InDet::TRT_OverlapDescriptor::m_breakTolerance |
|
private |
if the straight line intersection is within this fraction of the bounds - don't look for neighbours
Definition at line 70 of file TRT_OverlapDescriptor.h.
◆ m_outsideTolerance
| double InDet::TRT_OverlapDescriptor::m_outsideTolerance |
|
private |
◆ m_trtIdHelper
| const TRT_ID* InDet::TRT_OverlapDescriptor::m_trtIdHelper |
|
private |
The documentation for this class was generated from the following files: