46 << m_rpcDigiLabel <<
'\n'
50 <<
"\nConfiguration file used for UseEventSetup = 0 \n" <<
m_configFile <<
'\n'
103 produces<L1GtTechnicalTriggerRecord>();
111 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger: object starts deletion" << std::endl;
130 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger: object deleted" <<
'\n';
150 edm::LogError(
"RPCTechnicalTrigger") <<
"can't find RPCDigiCollection with label: "
159 iEvent.
getByLabel(
"simMuonRPCDigis",
"RPCDigiSimLink", simIn);
162 edm::LogError(
"RPCTechnicalTrigger") <<
"can't find RPCDigiCollection with label: "
170 LogDebug(
"RPCTechnicalTrigger") <<
"signal object created" <<
'\n';
173 edm::LogError(
"RPCTechnicalTrigger") <<
"cannot read hardware configuration \n";
188 std::vector<L1GtTechnicalTrigger> ttVec(
m_ttBits.size() );
196 std::vector<TTUEmulator::TriggerResponse*>::const_iterator outItr;
217 (*outItr)->m_trigger[0],
218 (*outItr)->m_trigger[1],
219 (*outItr)->m_wedge ) );
231 std::vector<RPCTechnicalTrigger::TTUResults*>::const_iterator ttuItr;
238 << (*ttuItr)->m_ttuidx <<
'\t'
239 << (*ttuItr)->m_bx <<
'\t'
240 << (*ttuItr)->m_trigWheel1 <<
'\t'
241 << (*ttuItr)->m_trigWheel2 <<
'\n';
244 bool has_bx0 =
false;
284 << (*ttuItr)->m_ttuidx <<
'\t'
285 << (*ttuItr)->m_bx <<
'\t'
286 << (*ttuItr)->m_trigWheel1 <<
'\t'
287 << (*ttuItr)->m_trigWheel2 <<
'\t'
288 << (*ttuItr)->m_wedge <<
'\n';
293 std::bitset<8> triggerCoincidence;
294 triggerCoincidence.reset();
298 triggerCoincidence.set(0, result );
302 triggerCoincidence.set(1, result );
306 triggerCoincidence.set(2, result );
310 triggerCoincidence.set(3, result );
314 triggerCoincidence.set(4, result );
318 triggerCoincidence.set(5, result );
322 triggerCoincidence.set(6, result );
326 triggerCoincidence.set(7, result );
328 bool five_wheels_OR = triggerCoincidence.any();
330 if (
m_verbosity )
std::cout <<
"RPCTechnicalTrigger> pointing trigger: " << five_wheels_OR <<
'\n';
334 triggerCoincidence.reset();
342 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger> end of event loop" << std::endl;
347 output->setGtTechnicalTrigger(ttVec);
354 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger> end of event loop" << std::endl;
363 std::vector<TTUResults*>::iterator itrRes;
387 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger::beginRun> starts" << std::endl;
404 edm::LogError(
"RPCTechnicalTrigger") <<
"can't find RBC/TTU BoardSpecsRcd" <<
'\n';
455 std::vector<TTUResults*>::const_iterator itr = ttuResults.begin();
457 while ( itr != ttuResults.end() ) {
459 if ( (*itr)->m_bx != 0 ) {
465 key = 1000 * ( (*itr)->m_ttuidx + 1 ) + 1*(*itr)->m_wedge;
479 std::map<int, TTUResults*>::iterator itr;
480 bool topRight(
false);
488 bool finalTrigger(
false);
489 int maxTopQuadrants = 4;
499 topRight = (*itr).second->getTriggerForWheel(wheel1);
508 botLeft = (*itr).second->getTriggerForWheel(wheel2);
512 finalTrigger |= ( topRight && botLeft );
516 if ( k > maxTopQuadrants)
531 topRight = (*itr).second->getTriggerForWheel(wheel1);
540 botLeft = (*itr).second->getTriggerForWheel(wheel2);
544 finalTrigger |= ( topRight && botLeft );
548 if ( k > maxTopQuadrants)
562 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger::endJob>" << std::endl;
569 LogDebug(
"RPCTechnicalTrigger") <<
"RPCTechnicalTrigger::Printing TTU emulators info>" << std::endl;
edm::InputTag m_rpcSimLinkInstance
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::map< int, int > m_WheelTtu
std::vector< TTUResults * > m_serializedInfoLine1
#define DEFINE_FWK_MODULE(type)
edm::ESHandle< RPCGeometry > m_rpcGeometry
TTUBoardSpecs * getTtuSpecs()
std::vector< int > m_quadrants
std::bitset< 5 > m_triggerbits
RBCBoardSpecs * getRbcSpecs()
std::vector< TriggerResponse * > m_triggerBxVec
ProcessInputSignal * m_signal
void clearTriggerResponse()
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::map< int, TTUResults * > m_ttuResultsByQuadrant
std::vector< TTUResults * > m_serializedInfoLine2
RPCTechnicalTrigger(const edm::ParameterSet &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< unsigned > m_ttBits
TTUConfigurator * m_readConfig
const TTUBoardSpecs * m_ttuspecs
void processTtu(RPCInputSignal *)
std::vector< std::string > m_ttNames
std::vector< int >::iterator m_firstSector
T const * product() const
virtual void produce(edm::Event &, const edm::EventSetup &)
TTUEmulator * m_ttuRbcLine[3]
edm::InputTag m_rpcDigiLabel
const RBCBoardSpecs * m_rbcspecs
int convertToMap(const std::vector< TTUResults * > &)
virtual void beginRun(edm::Run &, const edm::EventSetup &)
bool searchCoincidence(int, int)
void setSpecifications(const TTUBoardSpecs *, const RBCBoardSpecs *)