10 #include "Math/VectorUtil.h"
13 : edmCfg(edmCfg), omtfConfig(omtfConfig), simMuon(nullptr) {}
21 const std::shared_ptr<OMTFinput>&
input,
24 const std::vector<l1t::RegionalMuonCand>& candMuons) {
28 for (
auto& gbCandidate : gbCandidates) {
29 if (gbCandidate->getGoldenPatern() !=
nullptr &&
30 gbCandidate->getGpResult().getFiredLayerCnt() >
omtfCand->getGpResult().getFiredLayerCnt()) {
83 for (std::vector<SimTrack>::const_iterator it = simTks->begin(); it < simTks->end(); it++) {
85 if (!(aTrack.
type() == 13 || aTrack.
type() == -13))
AlgoMuons::value_type omtfCand
~EmulationObserverBase() override
EmulationObserverBase(const edm::ParameterSet &edmCfg, const OMTFConfiguration *omtfConfig)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
void observeProcesorEmulation(unsigned int iProcessor, l1t::tftype mtfType, const std::shared_ptr< OMTFinput > &input, const AlgoMuons &algoCandidates, const AlgoMuons &gbCandidates, const std::vector< l1t::RegionalMuonCand > &candMuons) override
static std::string const input
l1t::RegionalMuonCand regionalMuonCand
const SimTrack * findSimMuon(const edm::Event &event, const SimTrack *previous=nullptr)
void observeEventBegin(const edm::Event &iEvent) override
unsigned int getProcIndx(unsigned int iProcessor, l1t::tftype mtfType) const
input phi should be in the hardware scale (nPhiBins units for 2pi), can be in range -nPhiBins ...
unsigned int candProcIndx
T getParameter(std::string const &) const
int type() const
particle type (HEP PDT convension)
std::vector< AlgoMuonPtr > AlgoMuons
const math::XYZTLorentzVectorD & momentum() const
const OMTFConfiguration * omtfConfig