ATLAS Offline Software
Loading...
Searching...
No Matches
TrkDriftCircleMath::IsSubsetSegment< CDC > Struct Template Reference

#include <IsSubsetSegment.h>

Collaboration diagram for TrkDriftCircleMath::IsSubsetSegment< CDC >:

Public Member Functions

 IsSubsetSegment ()=default
 IsSubsetSegment (double phiCut, double y0Cut)
int operator() (const Segment &seg1, const Segment &seg2) const

Private Attributes

double m_phiCut {0.05}
double m_y0Cut {0.5}

Detailed Description

template<class CDC>
struct TrkDriftCircleMath::IsSubsetSegment< CDC >

Definition at line 18 of file IsSubsetSegment.h.

Constructor & Destructor Documentation

◆ IsSubsetSegment() [1/2]

template<class CDC>
TrkDriftCircleMath::IsSubsetSegment< CDC >::IsSubsetSegment ( )
default

◆ IsSubsetSegment() [2/2]

template<class CDC>
TrkDriftCircleMath::IsSubsetSegment< CDC >::IsSubsetSegment ( double phiCut,
double y0Cut )
inline

Member Function Documentation

◆ operator()()

template<class CDC>
int TrkDriftCircleMath::IsSubsetSegment< CDC >::operator() ( const Segment & seg1,
const Segment & seg2 ) const
inline

Definition at line 23 of file IsSubsetSegment.h.

23 {
24 // check angular distance between segments and distance from origine
25 // only segments that have similar angles and offsets are considered subsets
26 if (std::abs(xAOD::P4Helpers::deltaPhi(seg1.line().phi(), seg2.line().phi())) < m_phiCut &&
27 std::abs(seg1.line().y0() - seg2.line().y0()) < m_y0Cut) {
30
31 unsigned int onlyInSeg1 = sharedHitsSegments.onlyInSeg1();
32 unsigned int onlyInSeg2 = sharedHitsSegments.onlyInSeg2();
33 // segment 1 contains no hits that are not in segment 2
34 if (onlyInSeg1 == 0) {
35 // check is segment 1 is a single ml segment that should be kept for the curved segment finder
36 if (seg1.hitsMl1() == 0 || seg1.hitsMl2() == 0) {
37 if (seg2.hitsMl2() < 3 || seg2.hitsMl1() < 3) { return ResolvedCollection<SegVec, IsSubsetSegment>::Different; }
38 if (seg2.hitsOutOfTime() > 0) { return ResolvedCollection<SegVec, IsSubsetSegment>::Different; }
39 }
40 // segment 1 contains the same hits as segment 2
41 if (onlyInSeg2 == 0) {
42 // chose segment with best chi2
43 if (seg1.chi2() < seg2.chi2())
45 else
47 }
49 } else {
51 }
52 }
54 }

Member Data Documentation

◆ m_phiCut

template<class CDC>
double TrkDriftCircleMath::IsSubsetSegment< CDC >::m_phiCut {0.05}
private

Definition at line 57 of file IsSubsetSegment.h.

57{0.05};

◆ m_y0Cut

template<class CDC>
double TrkDriftCircleMath::IsSubsetSegment< CDC >::m_y0Cut {0.5}
private

Definition at line 58 of file IsSubsetSegment.h.

58{0.5};

The documentation for this struct was generated from the following file: