Skip to content

Commit

Permalink
Merge pull request #34709 from bsunanda/Run3-alca190
Browse files Browse the repository at this point in the history
Run3-alca190 Modify the AlCaRecoProducer for HBHEMuon
  • Loading branch information
cmsbuild committed Aug 2, 2021
2 parents 8106773 + a8db517 commit e43392f
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 67 deletions.
1 change: 1 addition & 0 deletions Calibration/HcalAlCaRecoProducers/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<use name="TrackPropagation/SteppingHelixPropagator"/>
<use name="DataFormats/Scalers"/>
<use name="boost"/>
<use name="hls"/>
<use name="clhep"/>
<use name="root"/>
<flags EDM_PLUGIN="1"/>
118 changes: 66 additions & 52 deletions Calibration/HcalAlCaRecoProducers/plugins/AlCaHBHEMuonFilter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -135,68 +135,72 @@ bool AlCaHBHEMuonFilter::filter(edm::Event& iEvent, edm::EventSetup const& iSetu
<< std::endl;
#endif
//Step1: Find if the event passes one of the chosen triggers
bool ok(false);
/////////////////////////////TriggerResults
edm::Handle<edm::TriggerResults> triggerResults;
iEvent.getByToken(tok_trigRes_, triggerResults);
if (triggerResults.isValid()) {
bool ok(false);
std::vector<std::string> modules;
const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
const std::vector<std::string>& triggerNames_ = triggerNames.triggerNames();
for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
int hlt = triggerResults->accept(iHLT);
for (unsigned int i = 0; i < trigNames_.size(); ++i) {
if (triggerNames_[iHLT].find(trigNames_[i]) != std::string::npos) {
if (hlt > 0) {
ok = true;
}
if (trigNames_.empty()) {
ok = true;
} else {
edm::Handle<edm::TriggerResults> triggerResults;
iEvent.getByToken(tok_trigRes_, triggerResults);
if (triggerResults.isValid()) {
std::vector<std::string> modules;
const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
const std::vector<std::string>& triggerNames_ = triggerNames.triggerNames();
for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
int hlt = triggerResults->accept(iHLT);
for (unsigned int i = 0; i < trigNames_.size(); ++i) {
if (triggerNames_[iHLT].find(trigNames_[i]) != std::string::npos) {
if (hlt > 0) {
ok = true;
}
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Trigger " << triggerNames_[iHLT] << " Flag " << hlt
<< ":" << ok << std::endl;
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Trigger " << triggerNames_[iHLT] << " Flag " << hlt
<< ":" << ok << std::endl;
#endif
}
}
}
}
if (ok) {
//Step2: Get geometry/B-field information
const MagneticField* bField = &(iSetup.getData(tok_magField_));
const CaloGeometry* geo = &(iSetup.getData(tok_geom_));

// Relevant blocks from iEvent
edm::Handle<reco::MuonCollection> _Muon;
iEvent.getByToken(tok_Muon_, _Muon);
}
if (ok) {
//Step2: Get geometry/B-field information
const MagneticField* bField = &(iSetup.getData(tok_magField_));
const CaloGeometry* geo = &(iSetup.getData(tok_geom_));

// Relevant blocks from iEvent
edm::Handle<reco::MuonCollection> _Muon;
iEvent.getByToken(tok_Muon_, _Muon);
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Muon Handle " << _Muon.isValid() << std::endl;
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Muon Handle " << _Muon.isValid() << std::endl;
#endif
if (_Muon.isValid()) {
for (reco::MuonCollection::const_iterator RecMuon = _Muon->begin(); RecMuon != _Muon->end(); ++RecMuon) {
if (_Muon.isValid()) {
for (reco::MuonCollection::const_iterator RecMuon = _Muon->begin(); RecMuon != _Muon->end(); ++RecMuon) {
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Muon:Track " << RecMuon->track().isNonnull()
<< " innerTrack " << RecMuon->innerTrack().isNonnull() << " outerTrack "
<< RecMuon->outerTrack().isNonnull() << " globalTrack "
<< RecMuon->globalTrack().isNonnull() << std::endl;
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Muon:Track " << RecMuon->track().isNonnull()
<< " innerTrack " << RecMuon->innerTrack().isNonnull() << " outerTrack "
<< RecMuon->outerTrack().isNonnull() << " globalTrack "
<< RecMuon->globalTrack().isNonnull() << std::endl;
#endif
if ((RecMuon->track().isNonnull()) && (RecMuon->innerTrack().isNonnull()) &&
(RecMuon->outerTrack().isNonnull()) && (RecMuon->globalTrack().isNonnull())) {
const reco::Track* pTrack = (RecMuon->innerTrack()).get();
spr::propagatedTrackID trackID = spr::propagateCALO(pTrack, geo, bField, false);
if ((RecMuon->track().isNonnull()) && (RecMuon->innerTrack().isNonnull()) &&
(RecMuon->outerTrack().isNonnull()) && (RecMuon->globalTrack().isNonnull())) {
const reco::Track* pTrack = (RecMuon->innerTrack()).get();
spr::propagatedTrackID trackID = spr::propagateCALO(pTrack, geo, bField, false);
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Propagate: ECAL " << trackID.okECAL << " to HCAL "
<< trackID.okHCAL << std::endl;
edm::LogVerbatim("HBHEMuon") << "AlCaHBHEMuonFilter::Propagate: ECAL " << trackID.okECAL << " to HCAL "
<< trackID.okHCAL << std::endl;
#endif
double trackIso = RecMuon->isolationR03().sumPt;
double caloIso = RecMuon->isolationR03().emEt + RecMuon->isolationR03().hadEt;
double isolR04 =
((RecMuon->pfIsolationR04().sumChargedHadronPt +
std::max(0.,
RecMuon->pfIsolationR04().sumNeutralHadronEt + RecMuon->pfIsolationR04().sumPhotonEt -
(0.5 * RecMuon->pfIsolationR04().sumPUPt))) /
RecMuon->pt());
bool isoCut = (pfCut_) ? (isolR04 < pfIsoCut_) : ((trackIso < trackIsoCut_) && (caloIso < caloIsoCut_));
if ((trackID.okECAL) && (trackID.okHCAL) && isoCut) {
accept = true;
break;
}
double trackIso = RecMuon->isolationR03().sumPt;
double caloIso = RecMuon->isolationR03().emEt + RecMuon->isolationR03().hadEt;
double isolR04 =
((RecMuon->pfIsolationR04().sumChargedHadronPt +
std::max(0.,
RecMuon->pfIsolationR04().sumNeutralHadronEt + RecMuon->pfIsolationR04().sumPhotonEt -
(0.5 * RecMuon->pfIsolationR04().sumPUPt))) /
RecMuon->pt());
bool isoCut = (pfCut_) ? (isolR04 < pfIsoCut_) : ((trackIso < trackIsoCut_) && (caloIso < caloIsoCut_));
if ((trackID.okECAL) && (trackID.okHCAL) && isoCut) {
accept = true;
break;
}
}
}
Expand Down Expand Up @@ -245,8 +249,18 @@ void AlCaHBHEMuonFilter::fillDescriptions(edm::ConfigurationDescriptions& descri
//The following says we do not know what parameters are allowed so do no validation
// Please change this to state exactly what you do use, even if it is no parameters
edm::ParameterSetDescription desc;
desc.setUnknown();
descriptions.addDefault(desc);
std::vector<std::string> triggers = {"HLT_IsoMu", "HLT_Mu"};
desc.add<std::string>("ProcessName", "HLT");
desc.add<edm::InputTag>("TriggerResultLabel", edm::InputTag("TriggerResults", "", "HLT"));
desc.add<edm::InputTag>("MuonLabel", edm::InputTag("muons"));
desc.add<double>("MinimumMuonP", 10.0);
desc.add<std::vector<std::string> >("Triggers", triggers);
desc.add<bool>("PFCut", true);
desc.add<double>("PFIsolationCut", 0.12);
desc.add<double>("TrackIsolationCut", 3.0);
desc.add<double>("CaloIsolationCut", 5.0);
desc.add<int>("PreScale", 2);
descriptions.add("AlcaHBHEMuonFilter", desc);
}

//define this as a plug-in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
throw = False #dont throw except on unknown path name
)

from Calibration.HcalAlCaRecoProducers.alcaHBHEMuonFilter_cfi import *
from Calibration.HcalAlCaRecoProducers.AlcaHBHEMuonFilter_cfi import *

seqALCARECOHcalCalHBHEMuonFilter = cms.Sequence(ALCARECOHcalCalHBHEMuonFilterHLT *
AlcaHBHEMuonFilter)
14 changes: 0 additions & 14 deletions Calibration/HcalAlCaRecoProducers/python/alcaHBHEMuonFilter_cfi.py

This file was deleted.

0 comments on commit e43392f

Please sign in to comment.