CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
RPCTechnicalTrigger Class Reference

#include <L1Trigger/RPCTechnicalTrigger/interface/RPCTechnicalTrigger.cc>

Inheritance diagram for RPCTechnicalTrigger:
edm::stream::EDProducer<>

Classes

class  TTUResults
 

Public Member Functions

 RPCTechnicalTrigger (const edm::ParameterSet &)
 
 ~RPCTechnicalTrigger () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void beginRun (edm::Run const &, const edm::EventSetup &) final
 
std::map< int, TTUResults * > convertToMap (const std::vector< std::unique_ptr< TTUResults >> &) const
 
void printinfo () const
 
void produce (edm::Event &, const edm::EventSetup &) override
 
bool searchCoincidence (int, int, std::map< int, TTUResults * > const &ttuResultsByQuandrant) const
 

Private Attributes

std::string m_configFile
 
bool m_hasConfig
 
edm::ESGetToken< RBCBoardSpecs, RBCBoardSpecsRcdm_pRBCSpecsToken
 
edm::ESGetToken< TTUBoardSpecs, TTUBoardSpecsRcdm_pTTUSpecsToken
 
const RBCBoardSpecsm_rbcspecs
 
std::unique_ptr< TTUConfiguratorm_readConfig
 
const edm::InputTag m_rpcDigiLabel
 
const edm::EDGetTokenT< RPCDigiCollectionm_rpcDigiToken
 
edm::ESGetToken< RPCGeometry, MuonGeometryRecordm_rpcGeometryToken
 
const std::vector< unsigned > m_ttBits
 
const std::vector< std::string > m_ttNames
 
std::array< TTUEmulator, kMaxTtuBoardsm_ttu
 
std::array< TTUEmulator, kMaxTtuBoardsm_ttuRbcLine
 
const TTUBoardSpecsm_ttuspecs
 
const int m_useEventSetup
 
const int m_useRPCSimLink
 
const int m_verbosity
 

Static Private Attributes

static constexpr int kMaxTtuBoards = 3
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Description: Implementation of the RPC Technical Trigger Emulator

Implementation:

Definition at line 69 of file RPCTechnicalTrigger.h.

Constructor & Destructor Documentation

◆ RPCTechnicalTrigger()

RPCTechnicalTrigger::RPCTechnicalTrigger ( const edm::ParameterSet iConfig)
explicit

Definition at line 39 of file RPCTechnicalTrigger.cc.

40  : m_verbosity{iConfig.getUntrackedParameter<int>("Verbosity", 0)},
41  m_useEventSetup{iConfig.getUntrackedParameter<int>("UseEventSetup", 0)},
42  m_ttBits{iConfig.getParameter<std::vector<unsigned>>("BitNumbers")},
43  m_ttNames{iConfig.getParameter<std::vector<std::string>>("BitNames")},
44  m_rpcDigiLabel{iConfig.getParameter<edm::InputTag>("RPCDigiLabel")},
45  m_rpcDigiToken{consumes<RPCDigiCollection>(m_rpcDigiLabel)},
46  m_useRPCSimLink{iConfig.getUntrackedParameter<int>("UseRPCSimLink", 0)},
47  m_rpcGeometryToken(esConsumes<RPCGeometry, MuonGeometryRecord>()) {
48  std::string configFile = iConfig.getParameter<std::string>("ConfigFile");
49 
50  edm::FileInPath f1("L1Trigger/RPCTechnicalTrigger/data/" + configFile);
51  m_configFile = f1.fullPath();
52 
53  if (m_verbosity) {
54  LogTrace("RPCTechnicalTrigger") << m_rpcDigiLabel << '\n' << std::endl;
55 
56  LogTrace("RPCTechnicalTrigger") << "\nConfiguration file used for UseEventSetup = 0 \n"
57  << m_configFile << '\n'
58  << std::endl;
59  }
60 
61  //...........................................................................
62  //... There are three Technical Trigger Units Boards: 1 can handle 2 Wheels
63  //... n_Wheels sets the number of wheels attached to board with index boardIndex
64 
65  constexpr std::array<int, 3> boardIndex = {{1, 2, 3}};
66  constexpr std::array<int, 3> nWheels = {{2, 1, 2}};
67 
68  m_ttu[0] = TTUEmulator(boardIndex[0], nWheels[0]);
69  m_ttu[1] = TTUEmulator(boardIndex[1], nWheels[1]);
70  m_ttu[2] = TTUEmulator(boardIndex[2], nWheels[2]);
71 
72  //... This is second line that delivers in parallel a second trigger
73  m_ttuRbcLine[0] = TTUEmulator(boardIndex[0], nWheels[0]);
74  m_ttuRbcLine[1] = TTUEmulator(boardIndex[1], nWheels[1]);
75  m_ttuRbcLine[2] = TTUEmulator(boardIndex[2], nWheels[2]);
76 
77  //...........................................................................
78 
79  m_hasConfig = false;
80  produces<L1GtTechnicalTriggerRecord>();
81  consumes<edm::DetSetVector<RPCDigiSimLink>>(edm::InputTag("simMuonRPCDigis", "RPCDigiSimLink", ""));
82  if (m_useEventSetup >= 1) {
83  m_pRBCSpecsToken = esConsumes<RBCBoardSpecs, RBCBoardSpecsRcd, edm::Transition::BeginRun>();
84  m_pTTUSpecsToken = esConsumes<TTUBoardSpecs, TTUBoardSpecsRcd, edm::Transition::BeginRun>();
85  }
86 }

References edm::ParameterSet::getUntrackedParameter().

◆ ~RPCTechnicalTrigger()

RPCTechnicalTrigger::~RPCTechnicalTrigger ( )
override

Definition at line 88 of file RPCTechnicalTrigger.cc.

88 {}

Member Function Documentation

◆ beginRun()

void RPCTechnicalTrigger::beginRun ( edm::Run const &  iRun,
const edm::EventSetup evtSetup 
)
finalprivate

Definition at line 294 of file RPCTechnicalTrigger.cc.

294  {
295  LogDebug("RPCTechnicalTrigger") << "RPCTechnicalTrigger::beginRun> starts" << std::endl;
296 
297  //.. Get Board Specifications (hardware configuration)
298 
299  if (m_useEventSetup >= 1) {
301  evtSetup.get<RBCBoardSpecsRcd>().get(pRBCSpecs);
302 
304 
305  if (!pRBCSpecs.isValid() || !pTTUSpecs.isValid()) {
306  edm::LogError("RPCTechnicalTrigger") << "can't find RBC/TTU BoardSpecsRcd" << '\n';
307  m_hasConfig = false;
308  } else {
309  m_rbcspecs = pRBCSpecs.product();
310  m_ttuspecs = pTTUSpecs.product();
311  m_hasConfig = true;
312  }
313 
314  } else {
315  // read hardware configuration from file
316  m_readConfig = std::make_unique<TTUConfigurator>(m_configFile);
317 
318  if (m_readConfig->m_hasConfig) {
319  m_readConfig->process();
320  m_rbcspecs = m_readConfig->getRbcSpecs();
321  m_ttuspecs = m_readConfig->getTtuSpecs();
322  m_hasConfig = true;
323  }
324 
325  else
326  m_hasConfig = false;
327  }
328 
329  if (m_hasConfig) {
330  //... Initialize all
331 
332  for (int k = 0; k < kMaxTtuBoards; ++k) {
333  m_ttu[k].SetLineId(1);
334  m_ttuRbcLine[k].SetLineId(2);
335 
336  m_ttu[k].setSpecifications(m_ttuspecs, m_rbcspecs);
337  m_ttuRbcLine[k].setSpecifications(m_ttuspecs, m_rbcspecs);
338 
339  m_ttu[k].initialise();
340  m_ttuRbcLine[k].initialise();
341  }
342  }
343 }

References edm::EventSetup::get(), get, edm::EventSetup::getHandle(), edm::ESHandleBase::isValid(), dqmdumpme::k, kMaxTtuBoards, LogDebug, m_configFile, m_hasConfig, m_pRBCSpecsToken, m_pTTUSpecsToken, m_rbcspecs, m_readConfig, m_ttu, m_ttuRbcLine, m_ttuspecs, m_useEventSetup, and edm::ESHandle< T >::product().

◆ convertToMap()

std::map< int, RPCTechnicalTrigger::TTUResults * > RPCTechnicalTrigger::convertToMap ( const std::vector< std::unique_ptr< TTUResults >> &  ttuResults) const
private

Definition at line 346 of file RPCTechnicalTrigger.cc.

347  {
348  std::map<int, TTUResults*> returnValue;
349  auto itr = ttuResults.begin();
350 
351  while (itr != ttuResults.end()) {
352  if ((*itr)->m_bx != 0) {
353  ++itr;
354  continue;
355  }
356 
357  int key(0);
358  key = 1000 * ((*itr)->m_ttuidx + 1) + 1 * (*itr)->m_wedge;
359  returnValue[key] = itr->get();
360  ++itr;
361  }
362 
363  return returnValue;
364 }

References crabWrapper::key.

Referenced by produce().

◆ printinfo()

void RPCTechnicalTrigger::printinfo ( ) const
private

Definition at line 445 of file RPCTechnicalTrigger.cc.

445  {
446  LogDebug("RPCTechnicalTrigger") << "RPCTechnicalTrigger::Printing TTU emulators info>" << std::endl;
447 
448  for (int k = 0; k < kMaxTtuBoards; ++k) {
449  m_ttu[k].printinfo();
450  m_ttuRbcLine[k].printinfo();
451  }
452 }

References dqmdumpme::k, kMaxTtuBoards, LogDebug, m_ttu, and m_ttuRbcLine.

◆ produce()

void RPCTechnicalTrigger::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 91 of file RPCTechnicalTrigger.cc.

91  {
92  bool status(false);
93 
95 
97 
98  std::unique_ptr<L1GtTechnicalTriggerRecord> output(new L1GtTechnicalTriggerRecord());
99 
100  //. Set up RPC geometry
102 
103  std::unique_ptr<ProcessInputSignal> signal;
104  if (m_useRPCSimLink == 0) {
105  iEvent.getByToken(m_rpcDigiToken, pIn);
106  if (!pIn.isValid()) {
107  edm::LogError("RPCTechnicalTrigger") << "can't find RPCDigiCollection with label: " << m_rpcDigiLabel << '\n';
108  iEvent.put(std::move(output));
109  return;
110  }
111 
112  signal = std::make_unique<RBCProcessRPCDigis>(rpcGeometry, pIn);
113 
114  } else {
115  iEvent.getByLabel("simMuonRPCDigis", "RPCDigiSimLink", simIn);
116 
117  if (!simIn.isValid()) {
118  edm::LogError("RPCTechnicalTrigger") << "can't find RPCDigiCollection with label: " << m_rpcDigiLabel << '\n';
119  iEvent.put(std::move(output));
120  return;
121  }
122  signal = std::make_unique<RBCProcessRPCSimDigis>(rpcGeometry, simIn);
123  }
124 
125  LogDebug("RPCTechnicalTrigger") << "signal object created" << '\n';
126 
127  if (!m_hasConfig) {
128  edm::LogError("RPCTechnicalTrigger") << "cannot read hardware configuration \n";
129  iEvent.put(std::move(output));
130  return;
131  }
132 
133  status = signal->next();
134 
135  if (!status) {
136  iEvent.put(std::move(output));
137  return;
138  }
139 
140  auto* input = signal->retrievedata();
141 
142  std::vector<L1GtTechnicalTrigger> ttVec(m_ttBits.size());
143 
144  //. distribute data to different TTU emulator instances and process it
145  std::bitset<5> triggerbits;
146 
147  std::vector<std::unique_ptr<TTUResults>> serializedInfoLine1;
148  std::vector<std::unique_ptr<TTUResults>> serializedInfoLine2;
149 
150  for (int k = 0; k < kMaxTtuBoards; ++k) {
151  m_ttu[k].processTtu(input);
152 
153  //work out Pointing Logic to Tracker
154  for (auto firstSector : s_quadrants)
155  m_ttuRbcLine[k].processTtu(input, firstSector);
156 
157  //...for trigger 1
158  for (auto const& out : m_ttu[k].m_triggerBxVec)
159  serializedInfoLine1.emplace_back(std::make_unique<TTUResults>(k, out.m_bx, out.m_trigger[0], out.m_trigger[1]));
160  m_ttu[k].clearTriggerResponse();
161 
162  //...for trigger 2
163  for (auto const& out : m_ttuRbcLine[k].m_triggerBxVec)
164  serializedInfoLine2.push_back(
165  std::make_unique<TTUResults>(k, out.m_bx, out.m_trigger[0], out.m_trigger[1], out.m_wedge));
166 
167  m_ttuRbcLine[k].clearTriggerResponse();
168  }
169 
170  //.. write results to technical trigger bits
171  int bx(0);
172  int infoSize(0);
173 
174  infoSize = serializedInfoLine1.size();
175 
176  auto sortByBx = [](auto& iLHS, auto& iRHS) { return iLHS->m_bx < iRHS->m_bx; };
177  std::sort(serializedInfoLine1.begin(), serializedInfoLine1.end(), sortByBx);
178 
179  if (m_verbosity) {
180  for (auto& ttu : serializedInfoLine1) {
181  if (abs(ttu->m_bx) <= 1)
182  std::cout << "RPCTechnicalTrigger> " << ttu->m_ttuidx << '\t' << ttu->m_bx << '\t' << ttu->m_trigWheel1 << '\t'
183  << ttu->m_trigWheel2 << '\n';
184  }
185  }
186 
187  bool has_bx0 = false;
188 
189  for (int k = 0; k < infoSize; k += kMaxTtuBoards) {
190  bx = serializedInfoLine1[k]->m_bx;
191 
192  if (bx == 0) {
193  triggerbits.set(0, serializedInfoLine1[k]->m_trigWheel2);
194  triggerbits.set(1, serializedInfoLine1[k]->m_trigWheel1);
195  triggerbits.set(2, serializedInfoLine1[k + 1]->m_trigWheel1);
196  triggerbits.set(3, serializedInfoLine1[k + 2]->m_trigWheel1);
197  triggerbits.set(4, serializedInfoLine1[k + 2]->m_trigWheel2);
198 
199  bool five_wheels_OR = triggerbits.any();
200 
201  ttVec.at(0) = L1GtTechnicalTrigger(
202  m_ttNames.at(0), m_ttBits.at(0), bx, five_wheels_OR); // bit 24 = Or 5 wheels in TTU mode
203  ttVec.at(2) = L1GtTechnicalTrigger(m_ttNames.at(2), m_ttBits.at(2), bx, triggerbits[0]); // bit 26
204  ttVec.at(3) = L1GtTechnicalTrigger(m_ttNames.at(3), m_ttBits.at(3), bx, triggerbits[1]); // bit 27
205  ttVec.at(4) = L1GtTechnicalTrigger(m_ttNames.at(4), m_ttBits.at(4), bx, triggerbits[2]); // bit 28
206  ttVec.at(5) = L1GtTechnicalTrigger(m_ttNames.at(5), m_ttBits.at(5), bx, triggerbits[3]); // bit 29
207  ttVec.at(6) = L1GtTechnicalTrigger(m_ttNames.at(6), m_ttBits.at(6), bx, triggerbits[4]); // bit 30
208 
209  triggerbits.reset();
210 
211  has_bx0 = true;
212 
213  break;
214 
215  } else
216  continue;
217  }
218 
219  infoSize = serializedInfoLine2.size();
220 
221  std::sort(serializedInfoLine2.begin(), serializedInfoLine2.end(), sortByBx);
222 
223  if (m_verbosity) {
224  for (auto& ttu : serializedInfoLine2) {
225  if (abs(ttu->m_bx) <= 1)
226  std::cout << "RPCTechnicalTrigger> " << ttu->m_ttuidx << '\t' << ttu->m_bx << '\t' << ttu->m_trigWheel1 << '\t'
227  << ttu->m_trigWheel2 << '\t' << ttu->m_wedge << '\n';
228  }
229  }
230 
231  auto ttuResultsByQuadrant = convertToMap(serializedInfoLine2);
232 
233  std::bitset<8> triggerCoincidence;
234  triggerCoincidence.reset();
235 
236  // searchCoincidence( W-2 , W0 )
237  bool result = searchCoincidence(-2, 0, ttuResultsByQuadrant);
238  triggerCoincidence.set(0, result);
239 
240  // searchCoincidence( W-2 , W+1 )
241  result = searchCoincidence(-2, 1, ttuResultsByQuadrant);
242  triggerCoincidence.set(1, result);
243 
244  // searchCoincidence( W-1 , W0 )
245  result = searchCoincidence(-1, 0, ttuResultsByQuadrant);
246  triggerCoincidence.set(2, result);
247 
248  // searchCoincidence( W-1 , W+1 )
249  result = searchCoincidence(-1, 1, ttuResultsByQuadrant);
250  triggerCoincidence.set(3, result);
251 
252  // searchCoincidence( W-1 , W+2 )
253  result = searchCoincidence(-1, 2, ttuResultsByQuadrant);
254  triggerCoincidence.set(4, result);
255 
256  // searchCoincidence( W0 , W0 )
257  result = searchCoincidence(0, 0, ttuResultsByQuadrant);
258  triggerCoincidence.set(5, result);
259 
260  // searchCoincidence( W+1 , W0 )
261  result = searchCoincidence(1, 0, ttuResultsByQuadrant);
262  triggerCoincidence.set(6, result);
263 
264  // searchCoincidence( W+2 , W0 )
265  result = searchCoincidence(2, 0, ttuResultsByQuadrant);
266  triggerCoincidence.set(7, result);
267 
268  bool five_wheels_OR = triggerCoincidence.any();
269 
270  if (m_verbosity)
271  std::cout << "RPCTechnicalTrigger> pointing trigger: " << five_wheels_OR << '\n';
272 
273  ttVec.at(1) =
274  L1GtTechnicalTrigger(m_ttNames.at(1), m_ttBits.at(1), bx, five_wheels_OR); // bit 25 = Or 5 wheels in RBC mode
275 
276  triggerCoincidence.reset();
277 
278  //...check that data appeared at bx=0
279 
280  if (!has_bx0) {
281  iEvent.put(std::move(output));
282  LogDebug("RPCTechnicalTrigger") << "RPCTechnicalTrigger> end of event loop" << std::endl;
283  return;
284  }
285 
286  output->setGtTechnicalTrigger(ttVec);
287  iEvent.put(std::move(output));
288 
289  //.... all done
290 
291  LogDebug("RPCTechnicalTrigger") << "RPCTechnicalTrigger> end of event loop" << std::endl;
292 }

References funct::abs(), l1GtPatternGenerator_cfi::bx, convertToMap(), gather_cfg::cout, edm::EventSetup::getHandle(), iEvent, input, edm::HandleBase::isValid(), dqmdumpme::k, kMaxTtuBoards, LogDebug, m_hasConfig, m_rpcDigiLabel, m_rpcDigiToken, m_rpcGeometryToken, m_ttBits, m_ttNames, m_ttu, m_ttuRbcLine, m_useRPCSimLink, m_verbosity, eostools::move(), MillePedeFileConverter_cfg::out, convertSQLitetoXML_cfg::output, mps_fire::result, searchCoincidence(), and mps_update::status.

◆ searchCoincidence()

bool RPCTechnicalTrigger::searchCoincidence ( int  wheel1,
int  wheel2,
std::map< int, TTUResults * > const &  ttuResultsByQuandrant 
) const
private

Definition at line 367 of file RPCTechnicalTrigger.cc.

369  {
370  std::map<int, TTUResults*>::const_iterator itr;
371  bool topRight(false);
372  bool botLeft(false);
373 
374  int indxW1 = wheelTtu[wheel1 + kWheelOffset];
375  int indxW2 = wheelTtu[wheel2 + kWheelOffset];
376 
377  int k(0);
378  int key(0);
379  bool finalTrigger(false);
380  int maxTopQuadrants = 4;
381 
382  //work out Pointing Logic to Tracker
383 
384  for (auto firstSector : s_quadrants) {
385  key = 1000 * (indxW1) + firstSector;
386 
387  itr = ttuResultsByQuadrant.find(key);
388  if (itr != ttuResultsByQuadrant.end())
389  topRight = (*itr).second->getTriggerForWheel(wheel1);
390 
391  //std::cout << "W1: " << wheel1 << " " << "sec: " << firstSector << " dec: " << topRight << '\n';
392 
393  key = 1000 * (indxW2) + firstSector + 5;
394 
395  itr = ttuResultsByQuadrant.find(key);
396 
397  if (itr != ttuResultsByQuadrant.end())
398  botLeft = (*itr).second->getTriggerForWheel(wheel2);
399 
400  //std::cout << "W2: " << wheel2 << " " << "sec: " << firstSector + 5 << " dec: " << botLeft << '\n';
401 
402  finalTrigger |= (topRight && botLeft);
403 
404  ++k;
405 
406  if (k > maxTopQuadrants)
407  break;
408  }
409 
410  //Try the opposite now
411 
412  k = 0;
413 
414  for (auto firstSector : s_quadrants) {
415  key = 1000 * (indxW2) + firstSector;
416 
417  itr = ttuResultsByQuadrant.find(key);
418  if (itr != ttuResultsByQuadrant.end())
419  topRight = (*itr).second->getTriggerForWheel(wheel1);
420 
421  //std::cout << "W1: " << wheel1 << " " << "sec: " << firstSector << " dec: " << topRight << '\n';
422 
423  key = 1000 * (indxW1) + firstSector + 5;
424 
425  itr = ttuResultsByQuadrant.find(key);
426 
427  if (itr != ttuResultsByQuadrant.end())
428  botLeft = (*itr).second->getTriggerForWheel(wheel2);
429 
430  //std::cout << "W2: " << wheel2 << " " << "sec: " << firstSector + 5 << " dec: " << botLeft << '\n';
431 
432  finalTrigger |= (topRight && botLeft);
433 
434  ++k;
435 
436  if (k > maxTopQuadrants)
437  break;
438  }
439 
440  return finalTrigger;
441 }

References dqmdumpme::k, and crabWrapper::key.

Referenced by produce().

Member Data Documentation

◆ kMaxTtuBoards

constexpr int RPCTechnicalTrigger::kMaxTtuBoards = 3
staticconstexprprivate

Definition at line 83 of file RPCTechnicalTrigger.h.

Referenced by beginRun(), printinfo(), and produce().

◆ m_configFile

std::string RPCTechnicalTrigger::m_configFile
private

Definition at line 90 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_hasConfig

bool RPCTechnicalTrigger::m_hasConfig
private

Definition at line 102 of file RPCTechnicalTrigger.h.

Referenced by beginRun(), and produce().

◆ m_pRBCSpecsToken

edm::ESGetToken<RBCBoardSpecs, RBCBoardSpecsRcd> RPCTechnicalTrigger::m_pRBCSpecsToken
private

Definition at line 138 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_pTTUSpecsToken

edm::ESGetToken<TTUBoardSpecs, TTUBoardSpecsRcd> RPCTechnicalTrigger::m_pTTUSpecsToken
private

Definition at line 139 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_rbcspecs

const RBCBoardSpecs* RPCTechnicalTrigger::m_rbcspecs
private

Definition at line 100 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_readConfig

std::unique_ptr<TTUConfigurator> RPCTechnicalTrigger::m_readConfig
private

Definition at line 98 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_rpcDigiLabel

const edm::InputTag RPCTechnicalTrigger::m_rpcDigiLabel
private

Definition at line 93 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_rpcDigiToken

const edm::EDGetTokenT<RPCDigiCollection> RPCTechnicalTrigger::m_rpcDigiToken
private

Definition at line 94 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_rpcGeometryToken

edm::ESGetToken<RPCGeometry, MuonGeometryRecord> RPCTechnicalTrigger::m_rpcGeometryToken
private

Definition at line 137 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_ttBits

const std::vector<unsigned> RPCTechnicalTrigger::m_ttBits
private

Definition at line 91 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_ttNames

const std::vector<std::string> RPCTechnicalTrigger::m_ttNames
private

Definition at line 92 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_ttu

std::array<TTUEmulator, kMaxTtuBoards> RPCTechnicalTrigger::m_ttu
private

Definition at line 84 of file RPCTechnicalTrigger.h.

Referenced by beginRun(), printinfo(), and produce().

◆ m_ttuRbcLine

std::array<TTUEmulator, kMaxTtuBoards> RPCTechnicalTrigger::m_ttuRbcLine
private

Definition at line 86 of file RPCTechnicalTrigger.h.

Referenced by beginRun(), printinfo(), and produce().

◆ m_ttuspecs

const TTUBoardSpecs* RPCTechnicalTrigger::m_ttuspecs
private

Definition at line 99 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_useEventSetup

const int RPCTechnicalTrigger::m_useEventSetup
private

Definition at line 89 of file RPCTechnicalTrigger.h.

Referenced by beginRun().

◆ m_useRPCSimLink

const int RPCTechnicalTrigger::m_useRPCSimLink
private

Definition at line 96 of file RPCTechnicalTrigger.h.

Referenced by produce().

◆ m_verbosity

const int RPCTechnicalTrigger::m_verbosity
private

Definition at line 88 of file RPCTechnicalTrigger.h.

Referenced by produce().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
RPCTechnicalTrigger::m_ttuRbcLine
std::array< TTUEmulator, kMaxTtuBoards > m_ttuRbcLine
Definition: RPCTechnicalTrigger.h:86
RPCTechnicalTrigger::m_ttu
std::array< TTUEmulator, kMaxTtuBoards > m_ttu
Definition: RPCTechnicalTrigger.h:84
RPCTechnicalTrigger::searchCoincidence
bool searchCoincidence(int, int, std::map< int, TTUResults * > const &ttuResultsByQuandrant) const
Definition: RPCTechnicalTrigger.cc:367
input
static const std::string input
Definition: EdmProvDump.cc:48
RPCTechnicalTrigger::m_hasConfig
bool m_hasConfig
Definition: RPCTechnicalTrigger.h:102
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
RPCTechnicalTrigger::m_ttuspecs
const TTUBoardSpecs * m_ttuspecs
Definition: RPCTechnicalTrigger.h:99
mps_update.status
status
Definition: mps_update.py:69
RPCTechnicalTrigger::convertToMap
std::map< int, TTUResults * > convertToMap(const std::vector< std::unique_ptr< TTUResults >> &) const
Definition: RPCTechnicalTrigger.cc:346
RPCTechnicalTrigger::m_pTTUSpecsToken
edm::ESGetToken< TTUBoardSpecs, TTUBoardSpecsRcd > m_pTTUSpecsToken
Definition: RPCTechnicalTrigger.h:139
RBCBoardSpecsRcd
Definition: RBCBoardSpecsRcd.h:24
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
L1GtTechnicalTrigger
Definition: L1GtTechnicalTrigger.h:33
RPCTechnicalTrigger::m_ttNames
const std::vector< std::string > m_ttNames
Definition: RPCTechnicalTrigger.h:92
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::Handle< RPCDigiCollection >
edm::FileInPath
Definition: FileInPath.h:64
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
RPCTechnicalTrigger::m_configFile
std::string m_configFile
Definition: RPCTechnicalTrigger.h:90
edm::ESHandle
Definition: DTSurvey.h:22
RPCTechnicalTrigger::m_rpcDigiToken
const edm::EDGetTokenT< RPCDigiCollection > m_rpcDigiToken
Definition: RPCTechnicalTrigger.h:94
RPCTechnicalTrigger::m_ttBits
const std::vector< unsigned > m_ttBits
Definition: RPCTechnicalTrigger.h:91
RPCTechnicalTrigger::m_useRPCSimLink
const int m_useRPCSimLink
Definition: RPCTechnicalTrigger.h:96
dqmdumpme.k
k
Definition: dqmdumpme.py:60
RPCTechnicalTrigger::kMaxTtuBoards
static constexpr int kMaxTtuBoards
Definition: RPCTechnicalTrigger.h:83
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
RPCTechnicalTrigger::m_rpcDigiLabel
const edm::InputTag m_rpcDigiLabel
Definition: RPCTechnicalTrigger.h:93
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
RPCTechnicalTrigger::m_useEventSetup
const int m_useEventSetup
Definition: RPCTechnicalTrigger.h:89
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
RPCTechnicalTrigger::m_pRBCSpecsToken
edm::ESGetToken< RBCBoardSpecs, RBCBoardSpecsRcd > m_pRBCSpecsToken
Definition: RPCTechnicalTrigger.h:138
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:29
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1GtTechnicalTriggerRecord
Definition: L1GtTechnicalTriggerRecord.h:28
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
RPCTechnicalTrigger::m_readConfig
std::unique_ptr< TTUConfigurator > m_readConfig
Definition: RPCTechnicalTrigger.h:98
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
TTUEmulator
Definition: TTUEmulator.h:39
mps_fire.result
result
Definition: mps_fire.py:311
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
RPCTechnicalTrigger::m_verbosity
const int m_verbosity
Definition: RPCTechnicalTrigger.h:88
DeadROC_duringRun.f1
f1
Definition: DeadROC_duringRun.py:219
crabWrapper.key
key
Definition: crabWrapper.py:19
edm::InputTag
Definition: InputTag.h:15
RPCTechnicalTrigger::m_rbcspecs
const RBCBoardSpecs * m_rbcspecs
Definition: RPCTechnicalTrigger.h:100
RPCTechnicalTrigger::m_rpcGeometryToken
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > m_rpcGeometryToken
Definition: RPCTechnicalTrigger.h:137