Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-08 03:36:30

0001 // -*- C++ -*-
0002 //
0003 // Package:    MuonIdentification
0004 // Class:      MuonLinksProducer
0005 //
0006 //
0007 // Original Author:  Dmytro Kovalskyi
0008 //
0009 //
0010 
0011 // system include files
0012 #include <algorithm>
0013 #include <memory>
0014 
0015 // user include files
0016 #include "DataFormats/Common/interface/Handle.h"
0017 #include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
0018 #include "DataFormats/TrackReco/interface/Track.h"
0019 #include "FWCore/Framework/interface/Event.h"
0020 #include "FWCore/Framework/interface/EventSetup.h"
0021 #include "FWCore/Framework/interface/Frameworkfwd.h"
0022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0023 #include "RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h"
0024 
0025 MuonLinksProducer::MuonLinksProducer(const edm::ParameterSet& iConfig)
0026     : m_inputCollection{iConfig.getParameter<edm::InputTag>("inputCollection")},
0027       muonToken_{consumes<reco::MuonCollection>(m_inputCollection)} {
0028   produces<reco::MuonTrackLinksCollection>();
0029 }
0030 
0031 void MuonLinksProducer::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
0032   auto output = std::make_unique<reco::MuonTrackLinksCollection>();
0033   edm::Handle<reco::MuonCollection> muons;
0034   iEvent.getByToken(muonToken_, muons);
0035 
0036   for (reco::MuonCollection::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) {
0037     if (!muon->isGlobalMuon())
0038       continue;
0039     output->push_back(reco::MuonTrackLinks(muon->track(), muon->standAloneMuon(), muon->combinedMuon()));
0040   }
0041   iEvent.put(std::move(output));
0042 }
0043 
0044 void MuonLinksProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0045   edm::ParameterSetDescription desc;
0046   desc.add<edm::InputTag>("inputCollection", edm::InputTag("muons", "", "@skipCurrentProcess"));
0047   descriptions.addWithDefaultLabel(desc);
0048 }