File indexing completed on 2025-05-27 01:56:22
0001 #include "L1Trigger/L1TGlobal/interface/CICADACondition.h"
0002
0003 #include <iostream>
0004 #include <iomanip>
0005
0006 #include <string>
0007 #include <vector>
0008 #include <algorithm>
0009
0010 #include "L1Trigger/L1TGlobal/interface/CICADATemplate.h"
0011 #include "L1Trigger/L1TGlobal/interface/ConditionEvaluation.h"
0012 #include "L1Trigger/L1TGlobal/interface/GlobalBoard.h"
0013
0014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0015 #include "FWCore/MessageLogger/interface/MessageDrop.h"
0016
0017 l1t::CICADACondition::CICADACondition() : ConditionEvaluation() {}
0018
0019 l1t::CICADACondition::CICADACondition(const GlobalCondition* cicadaTemplate, const GlobalBoard* ptrGTB)
0020 : ConditionEvaluation(), m_gtCICADATemplate(static_cast<const CICADATemplate*>(cicadaTemplate)), m_uGtB(ptrGTB) {
0021 m_condMaxNumberObjects = 1;
0022 }
0023
0024 void l1t::CICADACondition::copy(const l1t::CICADACondition& cp) {
0025 m_gtCICADATemplate = cp.gtCICADATemplate();
0026 m_uGtB = cp.getuGtB();
0027
0028 m_condMaxNumberObjects = cp.condMaxNumberObjects();
0029 m_condLastResult = cp.condLastResult();
0030 m_combinationsInCond = cp.getCombinationsInCond();
0031
0032 m_verbosity = cp.m_verbosity;
0033 }
0034
0035 l1t::CICADACondition::CICADACondition(const l1t::CICADACondition& cp) : ConditionEvaluation() { copy(cp); }
0036
0037 l1t::CICADACondition& l1t::CICADACondition::operator=(const l1t::CICADACondition& cp) {
0038 copy(cp);
0039 return *this;
0040 }
0041
0042 const bool l1t::CICADACondition::evaluateCondition(const int bxEval) const {
0043 auto const* cicadaScoreBXVec = m_uGtB->getCandL1CICADAScore();
0044
0045 int const useBx = bxEval + m_gtCICADATemplate->condRelativeBx();
0046
0047 if (cicadaScoreBXVec->isEmpty(useBx)) {
0048 return false;
0049 }
0050
0051 float const cicadaScore = cicadaScoreBXVec->at(useBx, 0);
0052
0053
0054
0055
0056 const CICADATemplate::ObjectParameter objPar = (*(m_gtCICADATemplate->objectParameter()))[0];
0057
0058 bool const condGEqVal = m_gtCICADATemplate->condGEq();
0059
0060 return checkCut(objPar.minCICADAThreshold, cicadaScore, condGEqVal);
0061 }
0062
0063 void l1t::CICADACondition::print(std::ostream& myCout) const {
0064 myCout << "CICADA Condition Print: " << std::endl;
0065 m_gtCICADATemplate->print(myCout);
0066 ConditionEvaluation::print(myCout);
0067 }