File indexing completed on 2024-04-06 12:21:32
0001 #include "L1Trigger/Phase2L1ParticleFlow/interface/pf/pfalgo_dummy_ref.h"
0002 #include "L1Trigger/Phase2L1ParticleFlow/interface/dbgPrintf.h"
0003
0004 #include <cmath>
0005 #include <cstdio>
0006 #include <algorithm>
0007 #include <memory>
0008
0009 #ifdef CMSSW_GIT_HASH
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0012
0013 l1ct::PFAlgoDummyEmulator::PFAlgoDummyEmulator(const edm::ParameterSet& iConfig)
0014 : PFAlgoEmulatorBase(
0015 0, iConfig.getParameter<uint32_t>("nCalo"), iConfig.getParameter<uint32_t>("nMu"), 0, 0, 0, 0, 0) {
0016 debug_ = iConfig.getUntrackedParameter<bool>("debug", false);
0017 }
0018
0019 edm::ParameterSetDescription l1ct::PFAlgoDummyEmulator::getParameterSetDescription() {
0020 edm::ParameterSetDescription description;
0021 description.add<unsigned int>("nCalo");
0022 description.add<unsigned int>("nMu");
0023 description.addUntracked<bool>("debug", false);
0024 return description;
0025 }
0026 #endif
0027
0028 void l1ct::PFAlgoDummyEmulator::run(const PFInputRegion& in, OutputRegion& out) const {
0029 unsigned int nCALO = std::min<unsigned>(nCALO_, in.hadcalo.size());
0030 unsigned int nMU = std::min<unsigned>(nMU_, in.muon.size());
0031
0032 if (debug_) {
0033 for (unsigned int i = 0; i < nCALO; ++i) {
0034 if (in.hadcalo[i].hwPt == 0)
0035 continue;
0036 dbgPrintf(
0037 "FW \t calo %3d: pt %8.2f [ %8d ] calo eta %+5.2f [ %+7d ] calo phi %+5.2f [ %+7d ] calo emPt %8.2f [ "
0038 "%6d ] emID %2d \n",
0039 i,
0040 in.hadcalo[i].floatPt(),
0041 in.hadcalo[i].intPt(),
0042 in.hadcalo[i].floatEta(),
0043 in.hadcalo[i].intEta(),
0044 in.hadcalo[i].floatPhi(),
0045 in.hadcalo[i].intPhi(),
0046 in.hadcalo[i].floatEmPt(),
0047 in.hadcalo[i].intEmPt(),
0048 in.hadcalo[i].hwEmID.to_int());
0049 }
0050 for (unsigned int i = 0; i < nMU; ++i) {
0051 if (in.muon[i].hwPt == 0)
0052 continue;
0053 dbgPrintf("FW \t muon %3d: pt %8.2f [ %8d ] calo eta %+5.2f [ %+7d ] calo phi %+5.2f [ %+7d ] \n",
0054 i,
0055 in.muon[i].floatPt(),
0056 in.muon[i].intPt(),
0057 in.muon[i].floatEta(),
0058 in.muon[i].intEta(),
0059 in.muon[i].floatPhi(),
0060 in.muon[i].intPhi());
0061 }
0062 }
0063
0064 out.pfneutral.resize(nCALO);
0065 for (unsigned int ic = 0; ic < nCALO; ++ic) {
0066 if (in.hadcalo[ic].hwPt > 0) {
0067 fillPFCand(in.hadcalo[ic], out.pfneutral[ic], in.hadcalo[ic].hwIsEM());
0068 } else {
0069 out.pfneutral[ic].clear();
0070 }
0071 }
0072
0073 if (debug_) {
0074 for (unsigned int i = 0; i < nCALO; ++i) {
0075 if (out.pfneutral[i].hwPt == 0)
0076 continue;
0077 dbgPrintf("FW \t outne %3d: pt %8.2f [ %8d ] calo eta %+5.2f [ %+7d ] calo phi %+5.2f [ %+7d ] pid %d\n",
0078 i,
0079 out.pfneutral[i].floatPt(),
0080 out.pfneutral[i].intPt(),
0081 out.pfneutral[i].floatEta(),
0082 out.pfneutral[i].intEta(),
0083 out.pfneutral[i].floatPhi(),
0084 out.pfneutral[i].intPhi(),
0085 out.pfneutral[i].intId());
0086 }
0087 }
0088 }