Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
/**
 * \class L1GlobalTriggerObjectMapRecord
 * 
 * 
 * Description: see header file.  
 *
 * Implementation:
 *    <TODO: enter implementation details>
 *   
 * \author: Vasile Mihai Ghete - HEPHY Vienna
 * 
 *
 */

// this class header
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapRecord.h"

// system include files

#include <algorithm>

// user include files

#include "DataFormats/L1GlobalTrigger/interface/L1GtLogicParser.h"

#include "FWCore/MessageLogger/interface/MessageLogger.h"

// forward declarations

// methods

/// return the object map for the algorithm algoNameVal
const L1GlobalTriggerObjectMap* L1GlobalTriggerObjectMapRecord::getObjectMap(const std::string& algoNameVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoName() == algoNameVal) {
      return &((*itObj));
    }
  }

  // no algoName found, return zero pointer!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested algorithm name = " << algoNameVal << " does not exist in the trigger menu."
      << " Returning zero pointer for getObjectMap." << std::endl;

  return nullptr;
}

/// return the object map for the algorithm with bit number const int algoBitNumberVal
const L1GlobalTriggerObjectMap* L1GlobalTriggerObjectMapRecord::getObjectMap(const int algoBitNumberVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoBitNumber() == algoBitNumberVal) {
      return &((*itObj));
    }
  }

  // no algoBitNumberVal found, return zero pointer!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested algorithm with bit number = " << algoBitNumberVal
      << " does not exist in the trigger menu."
      << " Returning zero pointer for getObjectMap." << std::endl;

  return nullptr;
}

// return all the combinations passing the requirements imposed in condition condNameVal
// from algorithm algoNameVal
const CombinationsInCond* L1GlobalTriggerObjectMapRecord::getCombinationsInCond(const std::string& algoNameVal,
                                                                                const std::string& condNameVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoName() == algoNameVal) {
      return itObj->getCombinationsInCond(condNameVal);
    }
  }

  // no (algoName, condName) found, return zero pointer!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested (algorithm name, condition name) = (" << algoNameVal << ", " << condNameVal
      << ") does not exist in the trigger menu."
      << " Returning zero pointer for getCombinationsInCond." << std::endl;

  return nullptr;
}

// return all the combinations passing the requirements imposed in condition condNameVal
// from algorithm with bit number algoBitNumberVal
const CombinationsInCond* L1GlobalTriggerObjectMapRecord::getCombinationsInCond(const int algoBitNumberVal,
                                                                                const std::string& condNameVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoBitNumber() == algoBitNumberVal) {
      return itObj->getCombinationsInCond(condNameVal);
    }
  }

  // no (algoBitNumber, condName) found, return zero pointer!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested (algorithm bit number, condition name) = (" << algoBitNumberVal << ", " << condNameVal
      << ") does not exist in the trigger menu."
      << " Returning zero pointer for getCombinationsInCond." << std::endl;

  return nullptr;
}

// return the result for the condition condNameVal
// from algorithm with name algoNameVal
bool L1GlobalTriggerObjectMapRecord::getConditionResult(const std::string& algoNameVal,
                                                        const std::string& condNameVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoName() == algoNameVal) {
      return itObj->getConditionResult(condNameVal);
    }
  }

  // no (algoName, condName) found, return false!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested (algorithm name, condition name) = (" << algoNameVal << ", " << condNameVal
      << ") does not exist in the trigger menu."
      << " Returning false for condition result! Unknown result, in fact!" << std::endl;

  return false;
}

// return the result for the condition condNameVal
// from algorithm with bit number algoBitNumberVal
bool L1GlobalTriggerObjectMapRecord::getConditionResult(const int algoBitNumberVal,
                                                        const std::string& condNameVal) const {
  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itObj = m_gtObjectMap.begin();
       itObj != m_gtObjectMap.end();
       ++itObj) {
    if (itObj->algoBitNumber() == algoBitNumberVal) {
      return itObj->getConditionResult(condNameVal);
    }
  }

  // no (algoBitNumber, condName) found, return false!
  edm::LogError("L1GlobalTriggerObjectMapRecord")
      << " ERROR: The requested (algorithm bit number, condition name) = (" << algoBitNumberVal << ", " << condNameVal
      << ") does not exist in the trigger menu."
      << " Returning false for condition result! Unknown result, in fact!" << std::endl;

  return false;
}