Skip to content

Commit

Permalink
code checks
Browse files Browse the repository at this point in the history
  • Loading branch information
mcitron committed Oct 27, 2021
1 parent 0e2a454 commit a61f130
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 55 deletions.
32 changes: 17 additions & 15 deletions HLTrigger/JetMET/plugins/HLTCaloJetTimingFilter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,19 @@ class HLTCaloJetTimingFilter : public HLTFilter {
};

//Constructor
HLTCaloJetTimingFilter::HLTCaloJetTimingFilter(const edm::ParameterSet& iConfig) :
HLTFilter(iConfig),
jetInputToken_{consumes<std::vector<reco::CaloJet>>(iConfig.getParameter<edm::InputTag>("jets"))},
jetTimesInputToken_{consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("jetTimes"))},
jetCellsForTimingInputToken_{consumes<edm::ValueMap<unsigned int>>(iConfig.getParameter<edm::InputTag>("jetCellsForTiming"))},
jetEcalEtForTimingInputToken_{consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("jetEcalEtForTiming"))},
minJets_{iConfig.getParameter<unsigned int>("minJets")},
jetTimeThresh_{iConfig.getParameter<double>("jetTimeThresh")},
jetEcalEtForTimingThresh_{iConfig.getParameter<double>("jetEcalEtForTimingThresh")},
jetCellsForTimingThresh_{iConfig.getParameter<unsigned int>("jetCellsForTimingThresh")},
minPt_{iConfig.getParameter<double>("minJetPt")}
{
}
HLTCaloJetTimingFilter::HLTCaloJetTimingFilter(const edm::ParameterSet& iConfig)
: HLTFilter(iConfig),
jetInputToken_{consumes<std::vector<reco::CaloJet>>(iConfig.getParameter<edm::InputTag>("jets"))},
jetTimesInputToken_{consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("jetTimes"))},
jetCellsForTimingInputToken_{
consumes<edm::ValueMap<unsigned int>>(iConfig.getParameter<edm::InputTag>("jetCellsForTiming"))},
jetEcalEtForTimingInputToken_{
consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("jetEcalEtForTiming"))},
minJets_{iConfig.getParameter<unsigned int>("minJets")},
jetTimeThresh_{iConfig.getParameter<double>("jetTimeThresh")},
jetEcalEtForTimingThresh_{iConfig.getParameter<double>("jetEcalEtForTimingThresh")},
jetCellsForTimingThresh_{iConfig.getParameter<unsigned int>("jetCellsForTimingThresh")},
minPt_{iConfig.getParameter<double>("minJetPt")} {}

//Filter
bool HLTCaloJetTimingFilter::hltFilter(edm::Event& iEvent,
Expand All @@ -77,10 +77,12 @@ bool HLTCaloJetTimingFilter::hltFilter(edm::Event& iEvent,
auto const& jetEcalEtForTiming = iEvent.get(jetEcalEtForTimingInputToken_);

uint njets = 0;
for (size_t ijet=0; ijet<jets->size(); ++ijet) {
for (size_t ijet = 0; ijet < jets->size(); ++ijet) {
auto const& jet = jets->at(ijet);
reco::CaloJetRef const calojetref(jets, ijet);
if (jet.pt() > minPt_ and jetTimes[calojetref] > jetTimeThresh_ and jetEcalEtForTiming[calojetref] > jetEcalEtForTimingThresh_ and jetCellsForTiming[calojetref] > jetCellsForTimingThresh_)
if (jet.pt() > minPt_ and jetTimes[calojetref] > jetTimeThresh_ and
jetEcalEtForTiming[calojetref] > jetEcalEtForTimingThresh_ and
jetCellsForTiming[calojetref] > jetCellsForTimingThresh_)
++njets;
}

Expand Down
91 changes: 52 additions & 39 deletions HLTrigger/JetMET/plugins/HLTCaloJetTimingProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
* \brief This produces timing and associated ecal cell information for calo jets
* \author Matthew Citron
*
*
*/

// system include files
Expand Down Expand Up @@ -37,7 +36,11 @@ class HLTCaloJetTimingProducer : public edm::stream::EDProducer<> {

private:
void produce(edm::Event&, const edm::EventSetup&) override;
void jetTimeFromEcalCells(const reco::CaloJet&, const edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>&,float& ,float& ,uint& );
void jetTimeFromEcalCells(const reco::CaloJet&,
const edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>&,
float&,
float&,
uint&);

// Input collections
const edm::EDGetTokenT<reco::CaloJetCollection> jetInputToken_;
Expand All @@ -56,42 +59,51 @@ class HLTCaloJetTimingProducer : public edm::stream::EDProducer<> {
};

//Constructor
HLTCaloJetTimingProducer::HLTCaloJetTimingProducer(const edm::ParameterSet& iConfig) :
jetInputToken_{consumes<std::vector<reco::CaloJet>>(iConfig.getParameter<edm::InputTag>("jets"))},
ecalRecHitsEBToken_{consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>>(iConfig.getParameter<edm::InputTag>("ebRecHitsColl"))},
ecalRecHitsEEToken_{consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>>(iConfig.getParameter<edm::InputTag>("eeRecHitsColl"))},
barrelJets_{iConfig.getParameter<bool>("barrelJets")},
endcapJets_{iConfig.getParameter<bool>("endcapJets")},
ecalCellEnergyThresh_{iConfig.getParameter<double>("ecalCellEnergyThresh")},
ecalCellTimeThresh_{iConfig.getParameter<double>("ecalCellTimeThresh")},
ecalCellTimeErrorThresh_{iConfig.getParameter<double>("ecalCellTimeErrorThresh")},
matchingRadius2_{iConfig.getParameter<double>("matchingRadius2")}{
HLTCaloJetTimingProducer::HLTCaloJetTimingProducer(const edm::ParameterSet& iConfig)
: jetInputToken_{consumes<std::vector<reco::CaloJet>>(iConfig.getParameter<edm::InputTag>("jets"))},
ecalRecHitsEBToken_{consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>>(
iConfig.getParameter<edm::InputTag>("ebRecHitsColl"))},
ecalRecHitsEEToken_{consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>>(
iConfig.getParameter<edm::InputTag>("eeRecHitsColl"))},
barrelJets_{iConfig.getParameter<bool>("barrelJets")},
endcapJets_{iConfig.getParameter<bool>("endcapJets")},
ecalCellEnergyThresh_{iConfig.getParameter<double>("ecalCellEnergyThresh")},
ecalCellTimeThresh_{iConfig.getParameter<double>("ecalCellTimeThresh")},
ecalCellTimeErrorThresh_{iConfig.getParameter<double>("ecalCellTimeErrorThresh")},
matchingRadius2_{iConfig.getParameter<double>("matchingRadius2")} {
produces<edm::ValueMap<float>>("");
produces<edm::ValueMap<unsigned int>>("jetCellsForTiming");
produces<edm::ValueMap<float>>("jetEcalEtForTiming");
}

//calculateJetTime
void HLTCaloJetTimingProducer::jetTimeFromEcalCells(const reco::CaloJet& jet, const edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>& ecalRecHits,float& weightedTimeCell,float& totalEmEnergyCell,uint& nCells){
for (auto const& ecalRH : ecalRecHits) {
if (ecalRH.checkFlag(EcalRecHit::kSaturated) || ecalRH.checkFlag(EcalRecHit::kLeadingEdgeRecovered) ||
ecalRH.checkFlag(EcalRecHit::kPoorReco) || ecalRH.checkFlag(EcalRecHit::kWeird) ||
ecalRH.checkFlag(EcalRecHit::kDiWeird))
continue;
if (ecalRH.energy() < ecalCellEnergyThresh_)
continue;
if (ecalRH.timeError() <= 0. || ecalRH.timeError() > ecalCellTimeErrorThresh_)
continue;
if (fabs(ecalRH.time()) > ecalCellTimeThresh_)
continue;
auto const pos = _pG->getPosition(ecalRH.detid());
if (reco::deltaR2(jet, pos) > matchingRadius2_)
continue;
weightedTimeCell += ecalRH.time() * ecalRH.energy() * sin(pos.theta());
totalEmEnergyCell += ecalRH.energy() * sin(pos.theta());
nCells++;
}
if (totalEmEnergyCell > 0){weightedTimeCell /= totalEmEnergyCell;}
void HLTCaloJetTimingProducer::jetTimeFromEcalCells(
const reco::CaloJet& jet,
const edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit>>& ecalRecHits,
float& weightedTimeCell,
float& totalEmEnergyCell,
uint& nCells) {
for (auto const& ecalRH : ecalRecHits) {
if (ecalRH.checkFlag(EcalRecHit::kSaturated) || ecalRH.checkFlag(EcalRecHit::kLeadingEdgeRecovered) ||
ecalRH.checkFlag(EcalRecHit::kPoorReco) || ecalRH.checkFlag(EcalRecHit::kWeird) ||
ecalRH.checkFlag(EcalRecHit::kDiWeird))
continue;
if (ecalRH.energy() < ecalCellEnergyThresh_)
continue;
if (ecalRH.timeError() <= 0. || ecalRH.timeError() > ecalCellTimeErrorThresh_)
continue;
if (fabs(ecalRH.time()) > ecalCellTimeThresh_)
continue;
auto const pos = _pG->getPosition(ecalRH.detid());
if (reco::deltaR2(jet, pos) > matchingRadius2_)
continue;
weightedTimeCell += ecalRH.time() * ecalRH.energy() * sin(pos.theta());
totalEmEnergyCell += ecalRH.energy() * sin(pos.theta());
nCells++;
}
if (totalEmEnergyCell > 0) {
weightedTimeCell /= totalEmEnergyCell;
}
}

//Producer
Expand All @@ -114,10 +126,11 @@ void HLTCaloJetTimingProducer::produce(edm::Event& iEvent, const edm::EventSetup
float weightedTimeCell = 0;
float totalEmEnergyCell = 0;
unsigned int nCells = 0;
if (barrelJets_) jetTimeFromEcalCells(jet,ecalRecHitsEB, weightedTimeCell, totalEmEnergyCell, nCells);
if (barrelJets_)
jetTimeFromEcalCells(jet, ecalRecHitsEB, weightedTimeCell, totalEmEnergyCell, nCells);
if (endcapJets_) {
weightedTimeCell *= totalEmEnergyCell;
jetTimeFromEcalCells(jet,ecalRecHitsEE, weightedTimeCell, totalEmEnergyCell, nCells);
weightedTimeCell *= totalEmEnergyCell;
jetTimeFromEcalCells(jet, ecalRecHitsEE, weightedTimeCell, totalEmEnergyCell, nCells);
}

// If there is at least one ecal cell passing selection, calculate timing
Expand Down Expand Up @@ -151,10 +164,10 @@ void HLTCaloJetTimingProducer::fillDescriptions(edm::ConfigurationDescriptions&
desc.add<edm::InputTag>("jets", edm::InputTag(""));
desc.add<bool>("barrelJets", false);
desc.add<bool>("endcapJets", false);
desc.add<double>("ecalCellEnergyThresh",0.5);
desc.add<double>("ecalCellTimeThresh",12.5);
desc.add<double>("ecalCellTimeErrorThresh",100.);
desc.add<double>("matchingRadius2",0.16);
desc.add<double>("ecalCellEnergyThresh", 0.5);
desc.add<double>("ecalCellTimeThresh", 12.5);
desc.add<double>("ecalCellTimeErrorThresh", 100.);
desc.add<double>("matchingRadius2", 0.16);
desc.add<edm::InputTag>("ebRecHitsColl", edm::InputTag("hltEcalRecHit", "EcalRecHitsEB"));
desc.add<edm::InputTag>("eeRecHitsColl", edm::InputTag("hltEcalRecHit", "EcalRecHitsEE"));
descriptions.addWithDefaultLabel(desc);
Expand Down
2 changes: 1 addition & 1 deletion HLTrigger/JetMET/test/hltCaloJetTimingFilter_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
ecalCellEnergyThresh =cms.double(0.5),
ecalCellTimeThresh = cms.double(12.5),
ecalCellTimeErrorThresh = cms.double(100.),
matchingRadius2 = cms.double(0.16),
matchingRadius = cms.double(0.4),
)

process.hltTimingFilter = cms.EDFilter('HLTCaloJetTimingFilter',
Expand Down

0 comments on commit a61f130

Please sign in to comment.