ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
NSWL1::SectorTriggerCandidate Class Reference

#include <SectorTriggerCandidate.h>

Collaboration diagram for NSWL1::SectorTriggerCandidate:

Public Member Functions

 SectorTriggerCandidate (const SingleWedgePadTrigger &inner, const SingleWedgePadTrigger &outer)
 
 SectorTriggerCandidate (const SingleWedgePadTrigger &innerOrOuterInTransition)
 
const std::vector< SingleWedgePadTrigger > & wedgeTrigs () const
 
Polygon triggerRegion3 () const
 

Private Attributes

std::vector< SingleWedgePadTriggerm_wedgeTrigs
 

Detailed Description

Definition at line 26 of file SectorTriggerCandidate.h.

Constructor & Destructor Documentation

◆ SectorTriggerCandidate() [1/2]

NSWL1::SectorTriggerCandidate::SectorTriggerCandidate ( const SingleWedgePadTrigger inner,
const SingleWedgePadTrigger outer 
)

Definition at line 13 of file SectorTriggerCandidate.cxx.

14  {
15  m_wedgeTrigs.push_back(inner);
16  m_wedgeTrigs.push_back(outer);
17  }

◆ SectorTriggerCandidate() [2/2]

NSWL1::SectorTriggerCandidate::SectorTriggerCandidate ( const SingleWedgePadTrigger innerOrOuterInTransition)

Definition at line 19 of file SectorTriggerCandidate.cxx.

19  {
20  m_wedgeTrigs.push_back(innerOrOuterInTransition);
21  }

Member Function Documentation

◆ triggerRegion3()

Polygon NSWL1::SectorTriggerCandidate::triggerRegion3 ( ) const

Definition at line 23 of file SectorTriggerCandidate.cxx.

23  {
24  assert(m_wedgeTrigs.size()>0); // cannot have any trig with any wedge
25  bool hasBothInnerOuter(m_wedgeTrigs.size()>1);
26  if(hasBothInnerOuter){
27  const SingleWedgePadTrigger &inner = m_wedgeTrigs[0];
28  const SingleWedgePadTrigger &outer = m_wedgeTrigs[1];
29  Polygon inner_overlap=SingleWedgePadTrigger::padOverlap3(inner.pads());
30  Polygon outer_overlap=SingleWedgePadTrigger::padOverlap3(outer.pads());
31  //project the outer overlap into first one's plane
32  float Z1=outer.pads()[0]->m_cornerXyz[1][2];
33  float Z0=inner.pads()[0]->m_cornerXyz[1][2];
34 
35  return largestIntersection(inner_overlap,Project(outer_overlap,Z1,Z0));
36  }
37  else{
39  }
40  }

◆ wedgeTrigs()

const std::vector< SingleWedgePadTrigger >& NSWL1::SectorTriggerCandidate::wedgeTrigs ( ) const
inline

Definition at line 31 of file SectorTriggerCandidate.h.

31 { return m_wedgeTrigs;}

Member Data Documentation

◆ m_wedgeTrigs

std::vector< SingleWedgePadTrigger > NSWL1::SectorTriggerCandidate::m_wedgeTrigs
private

Definition at line 35 of file SectorTriggerCandidate.h.


The documentation for this class was generated from the following files:
NSWL1::Polygon
boost::geometry::model::polygon< Vertex > Polygon
Definition: GeoUtils.h:18
NSWL1::largestIntersection
Polygon largestIntersection(const Polygon &p1, const Polygon &p2)
Definition: GeoUtils.cxx:80
NSWL1::Project
Polygon Project(const Polygon &p, float Zinit, float Zfin)
Definition: GeoUtils.cxx:19
Trk::Z0
@ Z0
Definition: ParameterType.h:18
NSWL1::SectorTriggerCandidate::m_wedgeTrigs
std::vector< SingleWedgePadTrigger > m_wedgeTrigs
Definition: SectorTriggerCandidate.h:35
NSWL1::SingleWedgePadTrigger::padOverlap3
static Polygon padOverlap3(const std::vector< std::shared_ptr< PadOfflineData >> &pads)
area that is overlapping between the pads that cause the trigger (pads are staggered)
Definition: SingleWedgePadTrigger.cxx:113