Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }