55 return std::make_unique<AlCaLowPUHBHEMuons::Counters>();
59 void endStream()
override;
72 double trackIsoCut_, caloIsoCut_, pfIsoCut_, minimumMuonpT_, minimumMuoneta_;
106 edm::LogInfo(
"LowPUHBHEMuon") <<
"Parameters read from config file \n" 107 <<
"Process " << processName_ <<
" PF Isolation Cuts " << pfIsoCut_
108 <<
" minimum Muon pT cut " << minimumMuonpT_ <<
" minimum Muon eta cut " 125 edm::LogInfo(
"LowPUHBHEMuon") <<
"AlCaLowPUHBHEMuonFilter::Run " << iEvent.
id().
run() <<
" Event " 133 if (triggerResults.
isValid()) {
135 std::vector<std::string>
modules;
137 const std::vector<std::string>& triggerNames_ = triggerNames.
triggerNames();
138 for (
unsigned int iHLT = 0; iHLT < triggerResults->
size(); iHLT++) {
142 if (triggerNames_[iHLT].
find(trigName) != std::string::npos) {
147 edm::LogInfo(
"LowPUHBHEMuon") <<
"AlCaLowPUHBHEMuonFilter::Trigger " << triggerNames_[iHLT] <<
" Flag " << hlt
168 edm::LogInfo(
"LowPUHBHEMuon") <<
"AlCaLowPUHBHEMuonFilter::Muon Handle " << _Muon.
isValid();
171 for (reco::MuonCollection::const_iterator RecMuon = _Muon->begin(); RecMuon != _Muon->end(); ++RecMuon) {
173 edm::LogInfo(
"LowPUHBHEMuon") <<
"AlCaLowPUHBHEMuonFilter::Muon:Track " << RecMuon->track().isNonnull()
174 <<
" innerTrack " << RecMuon->innerTrack().isNonnull() <<
" outerTrack " 175 << RecMuon->outerTrack().isNonnull() <<
" globalTrack " 176 << RecMuon->globalTrack().isNonnull();
180 if ((RecMuon->track().isNonnull()) && (RecMuon->innerTrack().isNonnull()) &&
181 (RecMuon->outerTrack().isNonnull()) && (RecMuon->globalTrack().isNonnull())) {
182 const reco::Track* pTrack = (RecMuon->innerTrack()).
get();
186 <<
"AlCaLowPUHBHEMuonFilter::Propagate: ECAL " << trackID.
okECAL <<
" to HCAL " << trackID.
okHCAL;
189 ((RecMuon->pfIsolationR04().sumChargedHadronPt +
191 RecMuon->pfIsolationR04().sumNeutralHadronEt + RecMuon->pfIsolationR04().sumPhotonEt -
192 (0.5 * RecMuon->pfIsolationR04().sumPUPt))) /
214 globalCache()->nAll_ +=
nAll_;
215 globalCache()->nGood_ +=
nGood_;
220 <<
" total # of events";
239 std::vector<std::string> triggers = {
"HLT_L1DoubleMu",
"HLT_L1SingleMu"};
243 desc.
add<
double>(
"minimumMuonpT", 10.0);
244 desc.
add<
double>(
"minimumMuoneta", 1.305);
245 desc.
add<std::vector<std::string> >(
"triggers", triggers);
246 desc.
add<
double>(
"pfIsolationCut", 0.15);
247 descriptions.
add(
"alcaLowPUHBHEMuonFilter", desc);
T getParameter(std::string const &) const
EventNumber_t event() const
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
edm::InputTag triggerResults_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
bool filter(edm::Event &, edm::EventSetup const &) override
bool accept() const
Has at least one path accepted the event?
int bunchCrossing() const
edm::LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
void beginRun(edm::Run const &, edm::EventSetup const &) override
Strings const & triggerNames() const
AlCaLowPUHBHEMuonFilter(edm::ParameterSet const &, const AlCaLowPUHBHEMuons::Counters *count)
void endStream() override
#define DEFINE_FWK_MODULE(type)
static void globalEndJob(const AlCaLowPUHBHEMuons::Counters *counters)
HLTConfigProvider hltConfig_
unsigned int size() const
Get number of paths stored.
std::vector< std::string > trigNames_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
static std::string const triggerResults
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
static std::unique_ptr< AlCaLowPUHBHEMuons::Counters > initializeGlobalCache(edm::ParameterSet const &)
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
~AlCaLowPUHBHEMuonFilter() override
std::atomic< unsigned int > nAll_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt
std::atomic< unsigned int > nGood_
T const * product() const
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
void endRun(edm::Run const &, edm::EventSetup const &) override