22 : m_Config(theConfig),
23 l1TMuonOverlapParamsToken_(
25 m_OMTFConfig(nullptr),
26 m_InputMaker(iC,
false),
29 m_OMTFConfigMaker(nullptr),
67 edm::LogError(
"L1TMuonOverlapTrackProducer") <<
"Could not retrieve parameters from Event Setup" << std::endl;
148 std::vector<AlgoMuon> algoCandidates;
153 std::vector<AlgoMuon> gbCandidates =
m_GhostBuster->select(algoCandidates);
156 std::vector<l1t::RegionalMuonCand> candMuons =
m_Sorter.
candidates(iProcessor, mtfType, gbCandidates);
159 for (
auto& candMuon : candMuons) {
160 candMuon.setHwQual(candMuon.hwQual() |
flag);
173 const std::vector<OMTFProcessor::resultsMap>&
results,
174 const std::vector<l1t::RegionalMuonCand>& candMuons) {
184 if (algoMuon.
getPt()) {
187 for (
auto& itKey :
results[iRefHit])
192 for (
auto& candMuon : candMuons)
edm::ESGetToken< L1TMuonOverlapParams, L1TMuonOverlapParamsRcd > l1TMuonOverlapParamsToken_
T getParameter(std::string const &) const
void getProcessorCandidates(unsigned int iProcessor, l1t::tftype mtfType, int bx, l1t::RegionalMuonCandBxCollection &myCandidates)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
OMTFConfiguration * m_OMTFConfig
OMTF objects.
void initialiseXMLDocument(const std::string &docName)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
T const * product() const
xercesc::DOMElement * aTopElement
xercesc::DOMElement * writeEventData(xercesc::DOMElement *aTopElement, const OmtfName &board, const OMTFinput &aInput)
Log< level::Error, false > LogError
std::unique_ptr< IGhostBuster > m_GhostBuster
static std::string const input
void loadAndFilterDigis(const edm::Event &)
void setNphiBins(unsigned int phiBins)
unsigned int fwVersion() const
unsigned int nPhiBins() const
std::unique_ptr< l1t::RegionalMuonCandBxCollection > reconstruct(const edm::Event &, const edm::EventSetup &)
void writeResultsData(xercesc::DOMElement *aTopElement, unsigned int iRegion, const Key &aKey, const OMTFResult &aResult)
void beginRun(edm::Run const &, edm::EventSetup const &)
void writeResultToXML(unsigned int iProcessor, l1t::tftype mtfType, const OMTFinput &myInput, const std::vector< OMTFProcessor::resultsMap > &myResults, const std::vector< l1t::RegionalMuonCand > &candMuons)
const std::vector< OMTFProcessor::resultsMap > & processInput(unsigned int iProcessor, const OMTFinput &aInput)
void writeCandMuon(xercesc::DOMElement *aTopElement, const l1t::RegionalMuonCand &aCand)
bool dumpDetailedResultToXML
edm::Handle< RPCDigiCollection > rpcDigis
XMLConfigWriter * m_Writer
OMTFReconstruction(const edm::ParameterSet &, edm::ConsumesCollector &&)
void configure(const L1TMuonOverlapParams *omtfParams)
unsigned int nTestRefHits() const
Log< level::Info, false > LogInfo
std::vector< l1t::RegionalMuonCand > candidates(unsigned int iProcessor, l1t::tftype mtfType, const std::vector< AlgoMuon > &algoCands)
edm::Handle< L1MuDTChambThContainer > dtThDigis
OMTFinputMaker m_InputMaker
edm::Handle< L1MuDTChambPhContainer > dtPhDigis
bool configure(const OMTFConfiguration *omtfParams, const L1TMuonOverlapParams *omtfPatterns)
Fill GP map with patterns from CondFormats object.
unique_ptr< L1TMuonOverlapParams > omtfParams
OMTF objects.
void finaliseXMLDocument(const std::string &fName)
void writeAlgoMuon(xercesc::DOMElement *aTopElement, unsigned int iRefHit, const AlgoMuon &aMuon)
xercesc::DOMElement * writeEventHeader(unsigned int eventId, unsigned int mixedEventId=0)
unsigned int nProcessors() const
void sortRefHitResults(const std::vector< OMTFProcessor::resultsMap > &procResults, std::vector< AlgoMuon > &refHitCleanCands, int charge=0)
edm::ParameterSet m_Config
edm::Handle< CSCCorrelatedLCTDigiCollection > cscDigis
void push_back(int bx, T object)
void initialize(const OMTFConfiguration *cfg)