11 #include "Math/VectorUtil.h" 14 : edmCfg(edmCfg), omtfConfig(omtfConfig), simMuon(nullptr) {}
22 const std::shared_ptr<OMTFinput>&
input,
25 const std::vector<l1t::RegionalMuonCand>& candMuons) {
29 for (
auto& gbCandidate : gbCandidates) {
30 if (gbCandidate->getGoldenPatern() !=
nullptr &&
31 gbCandidate->getGpResultConstr().getFiredLayerCnt() >
omtfCand->getGpResultConstr().getFiredLayerCnt()) {
84 for (std::vector<SimTrack>::const_iterator
it = simTks->begin();
it < simTks->end();
it++) {
86 if (!(aTrack.
type() == 13 || aTrack.
type() == -13))
97 std::vector<const reco::GenParticle*>
muons;
107 float etaCutFrom = 0.8;
108 float etaCutTo = 1.24;
119 LogTrace(
"l1tOmtfEventPrint") << __FUNCTION__ <<
":" << __LINE__ <<
" genParticle: pdgId " <<
genPart.pdgId()
122 <<
" vz " <<
genPart.vz() <<
" eta " <<
genPart.momentum().eta() << endl;
124 LogTrace(
"l1tOmtfEventPrint") << __FUNCTION__ <<
":" << __LINE__ <<
" genParticle: pdgId " <<
genPart.pdgId()
T getParameter(std::string const &) const
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
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
const math::XYZTLorentzVectorD & momentum() const
static std::string const input
int type() const
particle type (HEP PDT convension)
l1t::RegionalMuonCand regionalMuonCand
const SimTrack * findSimMuon(const edm::Event &event, const SimTrack *previous=nullptr)
Abs< T >::type abs(const T &t)
void observeEventBegin(const edm::Event &iEvent) override
unsigned int candProcIndx
std::vector< AlgoMuonPtr > AlgoMuons
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 ...
const OMTFConfiguration * omtfConfig
const std::vector< const reco::GenParticle * > findGenMuon(const edm::Event &event)