Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:30

0001 /**
0002  * \class L1GtTechnicalTriggerRecord
0003  * 
0004  * 
0005  * Description: technical trigger input record for L1 Global Trigger.  
0006  *
0007  * Implementation:
0008  *    <TODO: enter implementation details>
0009  *   
0010  * \author: Vasile Mihai Ghete - HEPHY Vienna
0011  * 
0012  *
0013  */
0014 
0015 // this class header
0016 #include "DataFormats/L1GlobalTrigger/interface/L1GtTechnicalTriggerRecord.h"
0017 
0018 // system include files
0019 
0020 // user include files
0021 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0022 
0023 // forward declarations
0024 
0025 // constructor(s)
0026 L1GtTechnicalTriggerRecord::L1GtTechnicalTriggerRecord() {
0027   // empty
0028 }
0029 
0030 // destructor
0031 L1GtTechnicalTriggerRecord::~L1GtTechnicalTriggerRecord() {
0032   // empty
0033 }
0034 
0035 // methods
0036 
0037 // return the technical trigger with ttName and bxInEvent
0038 const L1GtTechnicalTrigger* L1GtTechnicalTriggerRecord::getTechnicalTrigger(const std::string& ttName,
0039                                                                             const int bxInEventVal) const {
0040   for (std::vector<L1GtTechnicalTrigger>::const_iterator itObj = m_gtTechnicalTrigger.begin();
0041        itObj != m_gtTechnicalTrigger.end();
0042        ++itObj) {
0043     if ((itObj->gtTechnicalTriggerName() == ttName) && (itObj->bxInEvent() == bxInEventVal)) {
0044       return &((*itObj));
0045     }
0046   }
0047 
0048   // no ttName found, return zero pointer!
0049   edm::LogError("L1GtTechnicalTriggerRecord") << "\n\n  ERROR: The requested technical trigger name = " << ttName
0050                                               << " with bxInEvent = " << bxInEventVal << "\n  does not exist."
0051                                               << "\n  Returning zero pointer for getTechnicalTrigger\n\n"
0052                                               << std::endl;
0053 
0054   return nullptr;
0055 }
0056 
0057 /// return the technical trigger for ttBitNumber and bxInEvent
0058 const L1GtTechnicalTrigger* L1GtTechnicalTriggerRecord::getTechnicalTrigger(const unsigned int ttBitNumber,
0059                                                                             const int bxInEventVal) const {
0060   for (std::vector<L1GtTechnicalTrigger>::const_iterator itObj = m_gtTechnicalTrigger.begin();
0061        itObj != m_gtTechnicalTrigger.end();
0062        ++itObj) {
0063     if ((itObj->gtTechnicalTriggerBitNumber() == ttBitNumber) && (itObj->bxInEvent() == bxInEventVal)) {
0064       return &((*itObj));
0065     }
0066   }
0067 
0068   // no ttBitNumber && bxInEventVal found, return zero pointer!
0069   edm::LogError("L1GtTechnicalTriggerRecord")
0070       << "\n\n  ERROR: The requested technical trigger with bit number = " << ttBitNumber
0071       << " and with bxInEvent = " << bxInEventVal << "\n  does not exist."
0072       << "\n  Returning zero pointer for getTechnicalTrigger\n\n"
0073       << std::endl;
0074 
0075   return nullptr;
0076 }