ATLAS Offline Software
L1DataDef.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <iostream>
8 #include <stdexcept>
9 #include <iomanip>
10 
11 using namespace std;
12 
13 TrigConf::L1DataDef::TypeConfigMap_t TrigConf::L1DataDef::g_typeConfigs;
14 TrigConf::L1DataDef::STypeTypeMap_t TrigConf::L1DataDef::g_sTypeType;
15 std::vector<TrigConf::L1DataDef::TriggerType> TrigConf::L1DataDef::g_Types;
16 unsigned int TrigConf::L1DataDef::g_l1Version = 0;
17 
19 registerTriggerType(TAU, 8)
23 registerTriggerType(FJET,0)
32 
33 // internal
37 
38 
39 registerTriggerType(MBTS, 2)
41 registerTriggerType(NIM, 37)
43 registerTriggerType(CALREQ, 3)
45 registerTriggerType(LUCID, 2)
47 registerTriggerType(BCM, 3)
49 // zero bias
50 registerTriggerType(ZB, 10)
51 // NEW: Topo
53 registerTriggerType(ALFA, 64)
54 
55 
56 void
57 TrigConf::L1DataDef::printMaxThresholds() {
58  cout << "L1 Version: " << g_l1Version << endl;
59  for(auto & x: g_typeConfigs) {
60  cout << "Maximum number of thresholds for type " << setw(6) << x.second.name << " : " << x.second.max << endl;
61  }
62 }
63 
64 void
66  // this has to come from L1Common/L1CommonVersion.h
67  if(l1version==0) {
68  typeConfig(EM).max = 16;
69  typeConfig(TAU).max = 8;
70  typeConfig(MUON).max = 6;
71  typeConfig(TH).max = 8;
72  typeConfig(JET).max = 8;
73  typeConfig(FJET).max = 0;
74  typeConfig(FJ).max = 8;
75  typeConfig(JF).max = 4;
76  typeConfig(JB).max = 4;
77  typeConfig(JE).max = 4;
78  typeConfig(M).max = 6;
79  typeConfig(TE).max = 8;
80  typeConfig(XE).max = 8;
81  typeConfig(XS).max = 8;
82  typeConfig(RNDM).max = 2;
83  typeConfig(PCLK).max = 2;
84  typeConfig(BGRP).max = 8;
85  typeConfig(MBTS).max = 2;
86  typeConfig(MBTSSI).max = 32;
87  typeConfig(NIM).max = 37;
88  typeConfig(BCMCMB).max = 1;
89  typeConfig(CALREQ).max = 3;
90  typeConfig(BPTX).max = 2;
91  typeConfig(LUCID).max = 2;
92  typeConfig(TRT).max = 1;
93  typeConfig(BCM).max = 3;
94  typeConfig(ZDC).max = 3;
95  typeConfig(ZB).max = 10;
96  typeConfig(TOPO).max = 0;
97  typeConfig(ALFA).max = 0;
98  } else if (l1version==1) {
99  typeConfig(EM).max = 16;
100  typeConfig(TAU).max = 16;
101  typeConfig(MUON).max = 6;
102  typeConfig(TH).max = 8;
103  typeConfig(JET).max = 25;
104  typeConfig(FJET).max = 0;
105  typeConfig(FJ).max = 0;
106  typeConfig(JF).max = 0;
107  typeConfig(JB).max = 0;
108  typeConfig(JE).max = 0;
109  typeConfig(M).max = 6;
110  typeConfig(TE).max = 16;
111  typeConfig(XE).max = 16;
112  typeConfig(XS).max = 8;
113  typeConfig(RNDM).max = 4;
114  typeConfig(PCLK).max = 0;
115  typeConfig(BGRP).max = 16;
116  typeConfig(MBTS).max = 3;
117  typeConfig(MBTSSI).max = 32;
118  typeConfig(NIM).max = 37;
119  typeConfig(BCMCMB).max = 1;
120  typeConfig(CALREQ).max = 3;
121  typeConfig(BPTX).max = 2;
122  typeConfig(LUCID).max = 6;
123  typeConfig(TRT).max = 1;
124  typeConfig(BCM).max = 6;
125  typeConfig(ZDC).max = 3;
126  typeConfig(ZB).max = 10;
127  typeConfig(TOPO).max = 128;
128  typeConfig(ALFA).max = 64;
129  } else {
130  cerr << "ERROR TrigConf::L1DataDef::setMaxThresholdsFromL1Version() L1Version not known:" << l1version << endl;
131  throw(std::runtime_error("Unknown L1 Version"));
132  }
133 
134  g_l1Version=l1version;
135 
136 }
137 
138 
139 
140 
141 
142 
143 
146  TypeConfigMap_t::iterator c = g_typeConfigs.find(tt);
147  // cout << "tt " << tt << endl;
148  if( c==g_typeConfigs.end() ) {
149  cerr << "Trigger type " << tt << " is defined in L1DataDef.h but not registered in L1DataDef.cxx" << endl;
150  throw runtime_error("TriggerType not registered");
151  }
152  return c->second;
153 }
154 
155 
156 // can enable old JEP3 cabling (SLOT8, CON0): 4TE, 8XE
157 void
159  typeConfig(TE).max = 4;
160  typeConfig(XE).max = 8;
161  typeConfig(XS).max = 0;
162 }
163 
164 // new JEP3 cabling (SLOT8, CON0): 8TE, 8XE, 8XS
165 void
167  typeConfig(TE).max = 8;
168  typeConfig(XE).max = 8;
169  typeConfig(XS).max = 8;
170 }
171 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TrigConf::L1DataDef::setMaxThresholdsFromL1Version
static void setMaxThresholdsFromL1Version(unsigned int l1version)
Definition: L1DataDef.cxx:65
TrigConf::L1DataDef::typeConfig
static TriggerTypeConfig & typeConfig(TriggerType tt)
Definition: L1DataDef.cxx:145
TrigConf::L1DataDef::setNewJEP3Cabling
static void setNewJEP3Cabling()
Definition: L1DataDef.cxx:166
x
#define x
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
TrigConf
Forward iterator to traverse the main components of the trigger configuration.
Definition: Config.h:22
TCS::JET
@ JET
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:12
TrigConf::L1DataDef::TypeConfigMap_t
std::map< TriggerType, TriggerTypeConfig > TypeConfigMap_t
Definition: L1DataDef.h:53
registerInternalTriggerType
registerInternalTriggerType(RNDM, 2) registerInternalTriggerType(PCLK
TrigConf::L1DataDef
Definition: L1DataDef.h:27
TRT
Definition: HitInfo.h:33
Ringer::EM
@ EM
Definition: CaloRingsDefs.h:19
TrigConf::L1DataDef::TriggerTypeConfig
Definition: L1DataDef.h:42
TrigConf::L1DataDef::STypeTypeMap_t
std::map< std::string, TriggerType > STypeTypeMap_t
Definition: L1DataDef.h:54
HTXS::Stage0::TH
@ TH
Definition: HiggsTemplateCrossSectionsDefs.h:46
L1DataDef.h
TrigConf::L1DataDef::setOldJEP3Cabling
static void setOldJEP3Cabling()
Definition: L1DataDef.cxx:158
TrigConf::L1DataDef::TriggerType
TriggerType
Definition: L1DataDef.h:30
ZDC
Definition: RpdSubtractCentroidTool.cxx:13
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
python.compressB64.c
def c
Definition: compressB64.py:93
registerTriggerType
registerTriggerType(EM, 16) registerTriggerType(TAU