ATLAS Offline Software
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
NSWL1 Namespace Reference

PadEmulatorCoincidences. More...

Namespaces

 MM
 
 PAD
 

Classes

class  IMMTriggerTool
 
class  IPadEmulatorTool
 
class  IPadTdsTool
 interface for the PadTDS tools More...
 
class  IPadTriggerLogicTool
 interface for the PadTriggerLogic tools More...
 
class  IStripClusterTool
 interface for the Strip Cluster Tools More...
 
class  IStripSegmentTool
 interface for the Strip Cluster Tools More...
 
class  IStripTdsTool
 interface for the StripTDS tools More...
 
class  ITriggerProcessorTool
 
class  L1TdrStgcTriggerLogic
 Initial version of the stgc pad trigger logic. More...
 
class  MMTriggerTool
 
class  NSWL1Simulation
 NSW L1 simulation algorithm. More...
 
class  PadData
 abstract class to interface the data hit fragment output from the Pad TDS More...
 
class  PadEmulatorTool
 
class  PadEmulatorTrigger
 
class  PadHits
 
class  PadOfflineData
 class modeling the pad hit fragment for the NSW L1 offline simulation More...
 
class  PadPattern
 
class  PadTdsOfflineTool
 
class  PadTrigger
 Holder of the pad trigger information. More...
 
class  PadTriggerLogicOfflineTool
 
class  SectorTriggerCandidate
 
class  SingleWedgePadTrigger
 
class  StripClusterData
 abstract class to interface the data hit fragment output from the Strip TDS More...
 
class  StripClusterOfflineData
 class modeling the strip hit fragment for the NSW L1 offline simulation More...
 
class  StripClusterTool
 interface for the StripTDS tools More...
 
class  StripData
 abstract class to interface the data hit fragment output from the Strip TDS More...
 
class  StripHits
 
class  StripOfflineData
 class modeling the strip hit fragment for the NSW L1 offline simulation More...
 
class  StripSegmentTool
 interface for the StripTDS tools More...
 
class  StripTdsOfflineTool
 
class  TriggerProcessorTool
 
struct  TrigIsSubsetOf
 whether all pad indices of one trigger are a subset of another one A functor used to remove redundancies 3/4 from 4/4 More...
 

Typedefs

using PAD_MAP = std::map< Identifier, std::vector< PadHits > >
 
using PAD_MAP_IT = std::map< Identifier, std::vector< PadHits > >::iterator
 
using PAD_MAP_ITEM = std::pair< Identifier, std::vector< PadHits > >
 
using STRIP_MAP = std::map< Identifier, std::vector< StripHits > >
 
using STRIP_MAP_IT = std::map< Identifier, std::vector< StripHits > >::iterator
 
using STRIP_MAP_ITEM = std::pair< Identifier, std::vector< StripHits > >
 
using Vertex = boost::geometry::model::d2::point_xy< double >
 
using Polygon = boost::geometry::model::polygon< Vertex >
 
using Vertices = std::vector< Vertex >
 

Enumerations

enum  SECTYPE { SMALL, LARGE }
 

Functions

float eta (float x, float y, float z)
 
float phi (float x, float y, float z)
 
Polygon Project (const Polygon &p, float Zinit, float Zfin)
 
int nVertices (const Polygon &p)
 
Vertex getVertex (const Polygon &p, unsigned int i)
 
Polygon buildPolygon (const Vertices &pts)
 
float area (const Polygon &p)
 
Vertex centroid (const Polygon &p)
 
std::vector< PolygonallIntersections (const Polygon &p1, const Polygon &p2)
 
Polygon firstIntersection (const Polygon &p1, const Polygon &p2)
 
Polygon largestIntersection (const Polygon &p1, const Polygon &p2)
 
Polygon intersectionRegion (const std::vector< Polygon > &polygons)
 
Polygon globalToLocal (const Polygon &pol, float z, const Trk::PlaneSurface &surf)
 
Polygon NilPolygon ()
 
void remove3of4Redundant4of4 (const std::vector< SingleWedgePadTrigger > &trigs4of4, std::vector< SingleWedgePadTrigger > &trigs3of4)
 
bool trigger_1over4 (const bool in0, const bool in1, const bool in2, const bool in3)
 
bool trigger_2over4 (const bool in0, const bool in1, const bool in2, const bool in3)
 
bool trigger_specific2over4 (const bool in0, const bool in1, const bool in2, const bool in3)
 
bool trigger_3over4 (const bool in0, const bool in1, const bool in2, const bool in3)
 
bool trigger_4over4 (const bool in0, const bool in1, const bool in2, const bool in3)
 
bool trigger_3and1 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_2and2 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_4over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_specific4over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_5over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_specific5over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_superspecific5over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_6over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_2X_3over4 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool trigger_8over8 (const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
 
bool order_padHits_with_increasing_time (const PadHits &i, const PadHits &j)
 
std::vector< std::shared_ptr< PadData > > filterByMultiplet (const std::vector< std::shared_ptr< PadData >> &pads_in, const int multiplet)
 ! helper function: copy pads with a given multiplet More...
 
std::vector< std::shared_ptr< PadData > > filterByGasGap (const std::vector< std::shared_ptr< PadData >> &pads_in, const int gasgap)
 ! helper function: copy pads with a given gas gap More...
 
bool sortByLayer (const std::shared_ptr< PadOfflineData > &p0, const std::shared_ptr< PadOfflineData > &p1)
 
std::string sectorName (const std::string &wheel, const uint32_t sec)
 
int getSignedPhiID (const uint32_t phiid)
 
bool isA (const uint32_t sourceid)
 
template<class T >
void print (const T &t)
 
template<int XY>
float coordinate (const Vertex &v)
 
template<int XY>
std::pair< float, float > coordinateRange (const Polygon &p)
 

Variables

const std::string SPACE {" "}
 
const std::string UNDERSCORE {"_"}
 
const std::string COMMA {","}
 
const std::string SEMICOLON {";"}
 
const std::string VHDLCOMMENT {"--"}
 
const std::vector< std::string > WHEELS {"A", "C"}
 
constexpr uint32_t NLAYERS {8}
 
constexpr uint32_t NSECTORS {16}
 
const std::vector< float > BandsInEtaLargeSector
 
const std::vector< float > BandsInEtaSmallSector
 
const double c_inverse = 3.33564095198e-3
 
const int STGC_LAYER_1 =1
 
const int STGC_LAYER_2 =2
 
const int STGC_LAYER_3 =3
 
const int STGC_LAYER_4 =4
 
const int SMALL_PIVOT =0
 
const int SMALL_CONFIRM =1
 
const int LARGE_PIVOT =2
 
const int LARGE_CONFIRM =3
 
const int MAXLAYERSHIT =4
 
const std::vector< size_t > SECTORS ={0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
 
const std::vector< size_t > SIDES ={0,1}
 
const int nullPadNumber =-9999
 

Detailed Description

PadEmulatorCoincidences.

A trigger with coincident hits in at least 3 out of 4 layers within a wedge.

A trigger trigger candidate for a stgc sector.

TrigT1NSWSimExtras.

List of functions to evaluate sTGC Pad Trigger coincidences

A basic lists of booleand functions to check trigger coincidences, according to the chosen trigger logic

List of common functions, shared between sTGC and MM codes

A list of common functions, mainly used by sTGC Pad Trigger code. They will be extended to MicroMegas code and sTGC Strip Trigger, when available

david.nosp@m.e.ge.nosp@m.rbaud.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om, April 2013

Typedef Documentation

◆ PAD_MAP

using NSWL1::PAD_MAP = typedef std::map < Identifier,std::vector<PadHits> >

Definition at line 27 of file PadTdsOfflineTool.cxx.

◆ PAD_MAP_IT

using NSWL1::PAD_MAP_IT = typedef std::map < Identifier,std::vector<PadHits> >::iterator

Definition at line 28 of file PadTdsOfflineTool.cxx.

◆ PAD_MAP_ITEM

using NSWL1::PAD_MAP_ITEM = typedef std::pair< Identifier,std::vector<PadHits> >

Definition at line 29 of file PadTdsOfflineTool.cxx.

◆ Polygon

using NSWL1::Polygon = typedef boost::geometry::model::polygon<Vertex>

Definition at line 18 of file GeoUtils.h.

◆ STRIP_MAP

using NSWL1::STRIP_MAP = typedef std::map < Identifier,std::vector<StripHits> >

Definition at line 23 of file StripTdsOfflineTool.cxx.

◆ STRIP_MAP_IT

using NSWL1::STRIP_MAP_IT = typedef std::map < Identifier,std::vector<StripHits> >::iterator

Definition at line 24 of file StripTdsOfflineTool.cxx.

◆ STRIP_MAP_ITEM

using NSWL1::STRIP_MAP_ITEM = typedef std::pair< Identifier,std::vector<StripHits> >

Definition at line 25 of file StripTdsOfflineTool.cxx.

◆ Vertex

using NSWL1::Vertex = typedef boost::geometry::model::d2::point_xy<double>

Definition at line 17 of file GeoUtils.h.

◆ Vertices

using NSWL1::Vertices = typedef std::vector<Vertex>

Definition at line 19 of file GeoUtils.h.

Enumeration Type Documentation

◆ SECTYPE

Enumerator
SMALL 
LARGE 

Definition at line 17 of file tdr_compat_enum.h.

17 {SMALL,LARGE};

Function Documentation

◆ allIntersections()

std::vector< Polygon > NSWL1::allIntersections ( const Polygon p1,
const Polygon p2 
)

Definition at line 65 of file GeoUtils.cxx.

65  {
66  std::vector<Polygon> out;
68  return out;
69 
70 }

◆ area()

float NSWL1::area ( const Polygon p)

Definition at line 55 of file GeoUtils.cxx.

55  {
56  return boost::geometry::area(p);
57 }

◆ buildPolygon()

Polygon NSWL1::buildPolygon ( const Vertices pts)

Definition at line 44 of file GeoUtils.cxx.

44  {//hm
45  Polygon shape;
46  Vertices vts=pts;
47  //to complete the loop...
48  vts.push_back(vts[0]);
49 
50  boost::geometry::assign_points(shape, pts);
51  boost::geometry::correct(shape);
52  return shape;
53 }

◆ centroid()

Vertex NSWL1::centroid ( const Polygon p)

Definition at line 59 of file GeoUtils.cxx.

59  {
60  Vertex v;
62  return v;
63 }

◆ coordinate()

template<int XY>
float NSWL1::coordinate ( const Vertex v)

Definition at line 56 of file GeoUtils.h.

56  {
57  return boost::geometry::get<XY>(v);
58  }

◆ coordinateRange()

template<int XY>
std::pair<float,float> NSWL1::coordinateRange ( const Polygon p)

Definition at line 67 of file GeoUtils.h.

67  {
68  std::vector<float> values;
69  for(auto vertex : boost::geometry::exterior_ring(p)){
70  float currVal=boost::geometry::get<XY>(vertex);
71  values.push_back(currVal);
72  }
73  std::sort(values.begin(),values.end() );
74  return std::make_pair(values[0],values.back());
75  }

◆ eta()

float NSWL1::eta ( float  x,
float  y,
float  z 
)

Definition at line 9 of file GeoUtils.cxx.

9  {
10  ROOT::Math::XYZVector V(x,y,z);
11  return V.Eta();
12 }

◆ filterByGasGap()

std::vector<std::shared_ptr<PadData> > NSWL1::filterByGasGap ( const std::vector< std::shared_ptr< PadData >> &  pads_in,
const int  gasgap 
)

! helper function: copy pads with a given gas gap

Definition at line 58 of file PadTriggerLogicOfflineTool.cxx.

58  {
59  std::vector<std::shared_ptr<PadData>> pads_out;
60  pads_out.reserve(0.25*pads_in.size()); // educated guess (4 gas gaps)
61  for(const auto& p : pads_in)
62  if(p->gasGapId()==gasgap)
63  pads_out.push_back(p);
64  return pads_out;
65 }

◆ filterByMultiplet()

std::vector<std::shared_ptr<PadData> > NSWL1::filterByMultiplet ( const std::vector< std::shared_ptr< PadData >> &  pads_in,
const int  multiplet 
)

! helper function: copy pads with a given multiplet

Definition at line 49 of file PadTriggerLogicOfflineTool.cxx.

49  {
50  std::vector<std::shared_ptr<PadData>> pads_out;
51  pads_out.reserve(0.5*pads_in.size()); // educated guess (half inner multiplet, half outer multiplet)
52  for(const auto& p : pads_in)
53  if(p->multipletId()==multiplet)
54  pads_out.push_back(p);
55  return pads_out;
56 }

◆ firstIntersection()

Polygon NSWL1::firstIntersection ( const Polygon p1,
const Polygon p2 
)

Definition at line 73 of file GeoUtils.cxx.

73  {
74  std::vector<Polygon> pols=allIntersections(p1,p2);
75  //we have to return something
76  if(pols.empty()) return NilPolygon();
77  return allIntersections(p1,p2).at(0);
78 }

◆ getSignedPhiID()

int NSWL1::getSignedPhiID ( const uint32_t  phiid)
inline

Definition at line 59 of file TrigT1NSWSimExtras.h.

59  {
60  // 1 bit of sign (0 = positive) followed by 5 bits of phiid
61  constexpr size_t nbitsPhi{5};
62  constexpr size_t mask{(1 << nbitsPhi) - 1};
63  return std::pow(-1, phiid >> nbitsPhi) * (phiid & mask);
64  }

◆ getVertex()

Vertex NSWL1::getVertex ( const Polygon p,
unsigned int  i 
)

Definition at line 39 of file GeoUtils.cxx.

39  {
40  return boost::geometry::exterior_ring(p)[i];
41 }

◆ globalToLocal()

Polygon NSWL1::globalToLocal ( const Polygon pol,
float  z,
const Trk::PlaneSurface surf 
)

Definition at line 103 of file GeoUtils.cxx.

103  {
104 
105  Vertices local_vertices;
106  for(const auto& v : boost::geometry::exterior_ring(pol)){
107  float x=coordinate<0>(v);
108  float y=coordinate<1>(v);
109  Amg::Vector2D local_corner;
110  surf.globalToLocal(Amg::Vector3D(x,y,z),Amg::Vector3D(),local_corner);
111  local_vertices.emplace_back(Vertex(local_corner.x(),local_corner.y()));
112  }
113  return buildPolygon(local_vertices);
114 }

◆ intersectionRegion()

Polygon NSWL1::intersectionRegion ( const std::vector< Polygon > &  polygons)

Definition at line 91 of file GeoUtils.cxx.

91  {
92  Polygon ovl=polygons[0];
93  for(unsigned int i=1;i<polygons.size();i++){
94  Polygon curr=polygons[i];
95  Polygon overlap=largestIntersection(curr,ovl);
96  ovl=overlap;
97  }
98  return ovl;
99 }

◆ isA()

bool NSWL1::isA ( const uint32_t  sourceid)
inline

Definition at line 307 of file TrigT1NSWSimExtras.h.

307  {
308  return ( ((sourceid >> 16) & 0xff) == PAD::MUON_STGC_ENDCAP_A_SIDE || ((sourceid >> 16) & 0xff) == MM::MUON_MM_ENDCAP_A_SIDE );
309  }

◆ largestIntersection()

Polygon NSWL1::largestIntersection ( const Polygon p1,
const Polygon p2 
)

Definition at line 80 of file GeoUtils.cxx.

80  {
81  std::vector<Polygon> pols=allIntersections(p1,p2);
82  if(pols.empty()) return NilPolygon();
83 
84  std::sort(pols.begin(),pols.end(),[](const Polygon& a,const Polygon& b){return area(a)>area(b);});
85  return pols[0];
86 
87 }

◆ NilPolygon()

Polygon NSWL1::NilPolygon ( )

Definition at line 118 of file GeoUtils.cxx.

118  {
119  Vertices nil={
120  Vertex(0,0),
121  Vertex(0,0),
122  Vertex(0,0),
123  Vertex(0,0),
124  Vertex(0,0)
125  };
126  return buildPolygon(nil);
127 }

◆ nVertices()

int NSWL1::nVertices ( const Polygon p)

Definition at line 35 of file GeoUtils.cxx.

35  {
36  return boost::geometry::num_points(p);
37 }

◆ order_padHits_with_increasing_time()

bool NSWL1::order_padHits_with_increasing_time ( const PadHits i,
const PadHits j 
)

Definition at line 25 of file PadTdsOfflineTool.cxx.

25 { return i.t_pad->time() < j.t_pad->time(); }

◆ phi()

float NSWL1::phi ( float  x,
float  y,
float  z 
)

Definition at line 14 of file GeoUtils.cxx.

14  {
15  ROOT::Math::XYZVector V(x,y,z);
16  return V.Phi();
17 }

◆ print()

template<class T >
void NSWL1::print ( const T &  t)

Definition at line 32 of file GeoUtils.h.

32 {std::cout<<boost::geometry::wkt(t)<<std::endl;}

◆ Project()

Polygon NSWL1::Project ( const Polygon p,
float  Zinit,
float  Zfin 
)

Definition at line 19 of file GeoUtils.cxx.

19  {
20  //loop over vertices
21  Vertices vt;
22  for(const auto& v : boost::geometry::exterior_ring(p)){
23  float x=coordinate<0>(v);
24  float y=coordinate<1>(v);
25  ROOT::Math::XYZVector vec(x, y, Zinit);
26  float phi=vec.Phi();
27  float theta=vec.Theta();
28  vec.SetZ(Zfin);
29  ROOT::Math::Polar3DVector projectedVec(vec.R(), theta, phi);
30  vt.push_back(Vertex(projectedVec.X(), projectedVec.Y()));
31  }
32  return buildPolygon(vt);
33 }

◆ remove3of4Redundant4of4()

void NSWL1::remove3of4Redundant4of4 ( const std::vector< SingleWedgePadTrigger > &  trigs4of4,
std::vector< SingleWedgePadTrigger > &  trigs3of4 
)

Definition at line 336 of file L1TdrStgcTriggerLogic.cxx.

336  {//haha :)
337  for (std::vector< SingleWedgePadTrigger >::const_iterator t4 = trigs4of4.begin(); t4 != trigs4of4.end();++t4) {
338  trigs3of4.erase(std::remove_if(trigs3of4.begin(), trigs3of4.end(),TrigIsSubsetOf(*t4)),trigs3of4.end());
339  }
340  }

◆ sectorName()

std::string NSWL1::sectorName ( const std::string &  wheel,
const uint32_t  sec 
)
inline

Definition at line 51 of file TrigT1NSWSimExtras.h.

51  {
52  std::stringstream ss;
53  ss << wheel;
54  ss << std::setfill('0') << std::setw(2) << (sec + 1);
55  return ss.str();
56  }

◆ sortByLayer()

bool NSWL1::sortByLayer ( const std::shared_ptr< PadOfflineData > &  p0,
const std::shared_ptr< PadOfflineData > &  p1 
)

Definition at line 16 of file SingleWedgePadTrigger.cxx.

16  {
17  return p0->gasGapId()<p1->gasGapId();
18  }

◆ trigger_1over4()

bool NSWL1::trigger_1over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3 
)
inline

Definition at line 20 of file PadEmulatorCoincidences.h.

20  {
21  return (in0 or in1 or in2 or in3);
22  }

◆ trigger_2and2()

bool NSWL1::trigger_2and2 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 47 of file PadEmulatorCoincidences.h.

48  {
49  return (trigger_2over4(in0, in1, in2, in3) and trigger_2over4(in4, in5, in6, in7));
50  }

◆ trigger_2over4()

bool NSWL1::trigger_2over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3 
)
inline

Definition at line 24 of file PadEmulatorCoincidences.h.

24  {
25  return (in0 + in1 + in2 + in3 >= 2);
26  }

◆ trigger_2X_3over4()

bool NSWL1::trigger_2X_3over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 89 of file PadEmulatorCoincidences.h.

90  {
91  return trigger_3over4(in0, in1, in2, in3) and trigger_3over4(in4, in5, in6, in7);
92  }

◆ trigger_3and1()

bool NSWL1::trigger_3and1 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 40 of file PadEmulatorCoincidences.h.

41  {
42  if(trigger_1over4(in0, in1, in2, in3) and trigger_3over4(in4, in5, in6, in7)) return true;
43  if(trigger_3over4(in0, in1, in2, in3) and trigger_1over4(in4, in5, in6, in7)) return true;
44  return false;
45  }

◆ trigger_3over4()

bool NSWL1::trigger_3over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3 
)
inline

Definition at line 32 of file PadEmulatorCoincidences.h.

32  {
33  return (in0 + in1 + in2 + in3 >= 3);
34  }

◆ trigger_4over4()

bool NSWL1::trigger_4over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3 
)
inline

Definition at line 36 of file PadEmulatorCoincidences.h.

36  {
37  return (in0 and in1 and in2 and in3);
38  }

◆ trigger_4over8()

bool NSWL1::trigger_4over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 52 of file PadEmulatorCoincidences.h.

53  {
54  if(trigger_2and2(in0, in1, in2, in3, in4, in5, in6, in7)) return true;
55  if(trigger_3and1(in0, in1, in2, in3, in4, in5, in6, in7)) return true;
56  return false;
57  }

◆ trigger_5over8()

bool NSWL1::trigger_5over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 64 of file PadEmulatorCoincidences.h.

65  {
66  return (in0 + in1 + in2 + in3 + in4 + in5 + in6 + in7 >= 5);
67  }

◆ trigger_6over8()

bool NSWL1::trigger_6over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 84 of file PadEmulatorCoincidences.h.

85  {
86  return (in0 + in1 + in2 + in3 + in4 + in5 + in6 + in7 >= 6);
87  }

◆ trigger_8over8()

bool NSWL1::trigger_8over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 94 of file PadEmulatorCoincidences.h.

95  {
96  return trigger_4over4(in0, in1, in2, in3) and trigger_4over4(in4, in5, in6, in7);
97  }

◆ trigger_specific2over4()

bool NSWL1::trigger_specific2over4 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3 
)
inline

Definition at line 28 of file PadEmulatorCoincidences.h.

28  {
29  return (in0 or in1) and (in2 or in3);
30  }

◆ trigger_specific4over8()

bool NSWL1::trigger_specific4over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 59 of file PadEmulatorCoincidences.h.

60  {
61  return trigger_specific2over4(in0, in1, in2, in3) and trigger_specific2over4(in4, in5, in6, in7);
62  }

◆ trigger_specific5over8()

bool NSWL1::trigger_specific5over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 69 of file PadEmulatorCoincidences.h.

70  {
71  if(not trigger_3over4(in0, in1, in2, in3) and not trigger_3over4(in4, in5, in6, in7)) return false;
72 
73  return (in0 + in1 + in2 + in3 >= 2) and (in4 + in5 + in6 + in7 >= 2) and ((in0 + in1 + in2 + in3 >= 3) or (in4 + in5 + in6 + in7 >= 3));
74  }

◆ trigger_superspecific5over8()

bool NSWL1::trigger_superspecific5over8 ( const bool  in0,
const bool  in1,
const bool  in2,
const bool  in3,
const bool  in4,
const bool  in5,
const bool  in6,
const bool  in7 
)
inline

Definition at line 76 of file PadEmulatorCoincidences.h.

77  {
78  bool IP3over4 = trigger_3over4(in0, in1, in2, in3);
79  bool HO3over4 = trigger_3over4(in4, in5, in6, in7);
80  if(not IP3over4 and not HO3over4) return false;
81  return ((IP3over4 and trigger_specific2over4(in4, in5, in6, in7)) or (HO3over4 and trigger_specific2over4(in0, in1, in2, in3)));
82  }

Variable Documentation

◆ BandsInEtaLargeSector

const std::vector<float> NSWL1::BandsInEtaLargeSector

Definition at line 16 of file sTGCTriggerBandsInEta.h.

◆ BandsInEtaSmallSector

const std::vector<float> NSWL1::BandsInEtaSmallSector

Definition at line 111 of file sTGCTriggerBandsInEta.h.

◆ c_inverse

const double NSWL1::c_inverse = 3.33564095198e-3

Definition at line 13 of file tdr_compat_enum.h.

◆ COMMA

const std::string NSWL1::COMMA {","}

Definition at line 35 of file TrigT1NSWSimExtras.h.

◆ LARGE_CONFIRM

const int NSWL1::LARGE_CONFIRM =3

Definition at line 15 of file tdr_compat_enum.h.

◆ LARGE_PIVOT

const int NSWL1::LARGE_PIVOT =2

Definition at line 15 of file tdr_compat_enum.h.

◆ MAXLAYERSHIT

const int NSWL1::MAXLAYERSHIT =4

Definition at line 16 of file tdr_compat_enum.h.

◆ NLAYERS

constexpr uint32_t NSWL1::NLAYERS {8}
constexpr

Definition at line 47 of file TrigT1NSWSimExtras.h.

◆ NSECTORS

constexpr uint32_t NSWL1::NSECTORS {16}
constexpr

Definition at line 48 of file TrigT1NSWSimExtras.h.

◆ nullPadNumber

const int NSWL1::nullPadNumber =-9999

Definition at line 21 of file tdr_compat_enum.h.

◆ SECTORS

const std::vector<size_t> NSWL1::SECTORS ={0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}

Definition at line 19 of file tdr_compat_enum.h.

◆ SEMICOLON

const std::string NSWL1::SEMICOLON {";"}

Definition at line 38 of file TrigT1NSWSimExtras.h.

◆ SIDES

const std::vector<size_t> NSWL1::SIDES ={0,1}

Definition at line 20 of file tdr_compat_enum.h.

◆ SMALL_CONFIRM

const int NSWL1::SMALL_CONFIRM =1

Definition at line 15 of file tdr_compat_enum.h.

◆ SMALL_PIVOT

const int NSWL1::SMALL_PIVOT =0

Definition at line 15 of file tdr_compat_enum.h.

◆ SPACE

const std::string NSWL1::SPACE {" "}

Definition at line 29 of file TrigT1NSWSimExtras.h.

◆ STGC_LAYER_1

const int NSWL1::STGC_LAYER_1 =1

Definition at line 14 of file tdr_compat_enum.h.

◆ STGC_LAYER_2

const int NSWL1::STGC_LAYER_2 =2

Definition at line 14 of file tdr_compat_enum.h.

◆ STGC_LAYER_3

const int NSWL1::STGC_LAYER_3 =3

Definition at line 14 of file tdr_compat_enum.h.

◆ STGC_LAYER_4

const int NSWL1::STGC_LAYER_4 =4

Definition at line 14 of file tdr_compat_enum.h.

◆ UNDERSCORE

const std::string NSWL1::UNDERSCORE {"_"}

Definition at line 32 of file TrigT1NSWSimExtras.h.

◆ VHDLCOMMENT

const std::string NSWL1::VHDLCOMMENT {"--"}

Definition at line 41 of file TrigT1NSWSimExtras.h.

◆ WHEELS

const std::vector<std::string> NSWL1::WHEELS {"A", "C"}

Definition at line 44 of file TrigT1NSWSimExtras.h.

Trk::PlaneSurface::globalToLocal
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specified for PlaneSurface: GlobalToLocal method without dynamic memory allocation - boolean checks i...
Definition: PlaneSurface.cxx:209
EgEfficiencyCorr_testFixedInput.pts
list pts
Definition: EgEfficiencyCorr_testFixedInput.py:10
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
NSWL1::trigger_3and1
bool trigger_3and1(const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
Definition: PadEmulatorCoincidences.h:40
NSWL1::Polygon
boost::geometry::model::polygon< Vertex > Polygon
Definition: GeoUtils.h:18
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
NSWL1::trigger_specific2over4
bool trigger_specific2over4(const bool in0, const bool in1, const bool in2, const bool in3)
Definition: PadEmulatorCoincidences.h:28
NSWL1::largestIntersection
Polygon largestIntersection(const Polygon &p1, const Polygon &p2)
Definition: GeoUtils.cxx:80
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
NSWL1::allIntersections
std::vector< Polygon > allIntersections(const Polygon &p1, const Polygon &p2)
Definition: GeoUtils.cxx:65
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
NSWL1::NilPolygon
Polygon NilPolygon()
Definition: GeoUtils.cxx:118
x
#define x
intersection
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:25
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:459
NSWL1::PAD::MUON_STGC_ENDCAP_A_SIDE
constexpr uint32_t MUON_STGC_ENDCAP_A_SIDE
Definition: TrigT1NSWSimExtras.h:186
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:808
NSWL1::trigger_4over4
bool trigger_4over4(const bool in0, const bool in1, const bool in2, const bool in3)
Definition: PadEmulatorCoincidences.h:36
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
NSWL1::trigger_2and2
bool trigger_2and2(const bool in0, const bool in1, const bool in2, const bool in3, const bool in4, const bool in5, const bool in6, const bool in7)
Definition: PadEmulatorCoincidences.h:47
SMALL
@ SMALL
Definition: sTGCenumeration.h:39
LUCID_EventTPCnv_Dict::t4
std::vector< LUCID_RawDataContainer_p1 > t4
Definition: LUCID_EventTPCnvDict.h:29
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
NSWL1::trigger_2over4
bool trigger_2over4(const bool in0, const bool in1, const bool in2, const bool in3)
Definition: PadEmulatorCoincidences.h:24
validateBDTTau.vt
vt
Definition: validateBDTTau.py:43
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Vertex
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
Definition: FPGATrackSimGNNRoadMakerTool.h:35
python.PyAthena.v
v
Definition: PyAthena.py:154
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
LARGE
@ LARGE
Definition: sTGCenumeration.h:40
NSWL1::MM::MUON_MM_ENDCAP_A_SIDE
constexpr uint32_t MUON_MM_ENDCAP_A_SIDE
Definition: TrigT1NSWSimExtras.h:302
area
double area(double R)
Definition: ConvertStaveServices.cxx:42
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
NSWL1::Vertices
std::vector< Vertex > Vertices
Definition: GeoUtils.h:19
NSWL1::trigger_1over4
bool trigger_1over4(const bool in0, const bool in1, const bool in2, const bool in3)
Definition: PadEmulatorCoincidences.h:20
NSWL1::centroid
Vertex centroid(const Polygon &p)
Definition: GeoUtils.cxx:59
TRTCalib_cfilter.p0
p0
Definition: TRTCalib_cfilter.py:129
NSWL1::buildPolygon
Polygon buildPolygon(const Vertices &pts)
Definition: GeoUtils.cxx:44
NSWL1::trigger_3over4
bool trigger_3over4(const bool in0, const bool in1, const bool in2, const bool in3)
Definition: PadEmulatorCoincidences.h:32