File indexing completed on 2023-10-25 09:34:08
0001
0002
0003
0004
0005
0006 #include "CalibMuon/DTCalibration/interface/DTCalibMuonSelection.h"
0007
0008 #include "FWCore/Framework/interface/Event.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "FWCore/Utilities/interface/InputTag.h"
0011
0012 #include "DataFormats/MuonReco/interface/Muon.h"
0013
0014 #include "DataFormats/TrackReco/interface/Track.h"
0015 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0016
0017 using namespace edm;
0018 using namespace reco;
0019
0020 DTCalibMuonSelection::DTCalibMuonSelection(const edm::ParameterSet& iConfig) {
0021 muonList = consumes<MuonCollection>(iConfig.getParameter<edm::InputTag>("src"));
0022 etaMin = iConfig.getParameter<double>("etaMin");
0023 etaMax = iConfig.getParameter<double>("etaMax");
0024 ptMin = iConfig.getParameter<double>("ptMin");
0025 }
0026
0027 DTCalibMuonSelection::~DTCalibMuonSelection() {}
0028
0029 bool DTCalibMuonSelection::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) {
0030 bool result = false;
0031
0032
0033 Handle<MuonCollection> MuHandle;
0034 iEvent.getByToken(muonList, MuHandle);
0035
0036 for (MuonCollection::const_iterator nmuon = MuHandle->begin(); nmuon != MuHandle->end(); ++nmuon) {
0037 double ptMuon(0.);
0038 double etaMuon(-999.);
0039
0040 if (nmuon->isGlobalMuon()) {
0041 ptMuon = nmuon->globalTrack()->pt();
0042 etaMuon = nmuon->globalTrack()->eta();
0043 } else
0044 continue;
0045
0046 if (ptMuon > ptMin && etaMuon > etaMin && etaMuon < etaMax) {
0047 result = true;
0048 break;
0049 }
0050 }
0051
0052 return result;
0053 }
0054
0055
0056 void DTCalibMuonSelection::beginStream(edm::StreamID) {}
0057
0058
0059 void DTCalibMuonSelection::endStream() {}