-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RecHit-based rho producer for HLT #36157
Changes from 3 commits
9710cd0
0a95f54
da552c9
e4ae3d2
73db4a6
f10d161
97d4ff2
b4d3d4f
503d8b4
3d014b7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,180 @@ | ||||||||||||||||||||||||||||||||
/* | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
Author: Swagata Mukherjee | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
Date: November 2021 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
This producer computes rho from ECAL and HCAL recHits. | ||||||||||||||||||||||||||||||||
The current plan is to use it in egamma and muon HLT, who currently use | ||||||||||||||||||||||||||||||||
the other producer called FixedGridRhoProducerFastjet. | ||||||||||||||||||||||||||||||||
At HLT, FixedGridRhoProducerFastjet takes calotowers as input and computes rho. | ||||||||||||||||||||||||||||||||
But calotowers are expected to be phased out sometime in Run3. | ||||||||||||||||||||||||||||||||
So this recHit-based rho producer, FixedGridRhoProducerFastjetFromRecHit, can be used as an alternative. | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
#include "FWCore/Framework/interface/stream/EDProducer.h" | ||||||||||||||||||||||||||||||||
#include "FWCore/Framework/interface/Frameworkfwd.h" | ||||||||||||||||||||||||||||||||
#include "FWCore/ParameterSet/interface/ParameterSet.h" | ||||||||||||||||||||||||||||||||
#include "fastjet/tools/GridMedianBackgroundEstimator.hh" | ||||||||||||||||||||||||||||||||
#include "FWCore/Framework/interface/Event.h" | ||||||||||||||||||||||||||||||||
#include "DataFormats/Common/interface/View.h" | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
#include "FWCore/Framework/interface/MakerMacros.h" | ||||||||||||||||||||||||||||||||
#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" | ||||||||||||||||||||||||||||||||
#include "TLorentzVector.h" | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
General comment: I was wondering if using |
||||||||||||||||||||||||||||||||
#include "Geometry/CaloGeometry/interface/CaloGeometry.h" | ||||||||||||||||||||||||||||||||
#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" | ||||||||||||||||||||||||||||||||
#include "Geometry/Records/interface/CaloGeometryRecord.h" | ||||||||||||||||||||||||||||||||
#include "DataFormats/Math/interface/Vector3D.h" | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" | ||||||||||||||||||||||||||||||||
#include "RecoEgamma/EgammaIsolationAlgos/interface/EgammaHcalIsolation.h" | ||||||||||||||||||||||||||||||||
#include "CondFormats/EcalObjects/interface/EcalPFRecHitThresholds.h" | ||||||||||||||||||||||||||||||||
#include "CondFormats/DataRecord/interface/EcalPFRecHitThresholdsRcd.h" | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
class FixedGridRhoProducerFastjetFromRecHit : public edm::stream::EDProducer<> { | ||||||||||||||||||||||||||||||||
public: | ||||||||||||||||||||||||||||||||
explicit FixedGridRhoProducerFastjetFromRecHit(const edm::ParameterSet &iConfig); | ||||||||||||||||||||||||||||||||
~FixedGridRhoProducerFastjetFromRecHit() override; | ||||||||||||||||||||||||||||||||
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
private: | ||||||||||||||||||||||||||||||||
void produce(edm::Event &, const edm::EventSetup &) override; | ||||||||||||||||||||||||||||||||
void getHitP4(const DetId &detId, float hitE, TLorentzVector &hitp4, const CaloGeometry &caloGeometry); | ||||||||||||||||||||||||||||||||
bool passedHcalNoiseCut(const HBHERecHit &hit); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
bool passedEcalNoiseCut(const EcalRecHit &hit, const EcalPFRecHitThresholds *thresholds); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
fastjet::GridMedianBackgroundEstimator bge_; | ||||||||||||||||||||||||||||||||
edm::EDGetTokenT<HBHERecHitCollection> hbheRecHitsTag_; | ||||||||||||||||||||||||||||||||
edm::EDGetTokenT<EcalRecHitCollection> ebRecHitsTag_; | ||||||||||||||||||||||||||||||||
edm::EDGetTokenT<EcalRecHitCollection> eeRecHitsTag_; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const EgammaHcalIsolation::arrayHB eThresHB_; | ||||||||||||||||||||||||||||||||
const EgammaHcalIsolation::arrayHE eThresHE_; | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
//Muon HLT currently use ECAL-only rho for ECAL isolation, | ||||||||||||||||||||||||||||||||
//and HCAL-only rho for HCAL isolation. So, this skipping option is needed. | ||||||||||||||||||||||||||||||||
bool skipHCAL_; | ||||||||||||||||||||||||||||||||
bool skipECAL_; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const edm::ESGetToken<EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd> ecalPFRechitThresholdsToken_; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Consistent naming (RecHit). |
||||||||||||||||||||||||||||||||
const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeometryToken_; | ||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
FixedGridRhoProducerFastjetFromRecHit::FixedGridRhoProducerFastjetFromRecHit(const edm::ParameterSet &iConfig) | ||||||||||||||||||||||||||||||||
: bge_(iConfig.getParameter<double>("maxRapidity"), iConfig.getParameter<double>("gridSpacing")), | ||||||||||||||||||||||||||||||||
hbheRecHitsTag_(consumes(iConfig.getParameter<edm::InputTag>("hbheRecHitsTag"))), | ||||||||||||||||||||||||||||||||
ebRecHitsTag_(consumes(iConfig.getParameter<edm::InputTag>("ebRecHitsTag"))), | ||||||||||||||||||||||||||||||||
eeRecHitsTag_(consumes(iConfig.getParameter<edm::InputTag>("eeRecHitsTag"))), | ||||||||||||||||||||||||||||||||
eThresHB_(iConfig.getParameter<EgammaHcalIsolation::arrayHB>("eThresHB")), | ||||||||||||||||||||||||||||||||
eThresHE_(iConfig.getParameter<EgammaHcalIsolation::arrayHE>("eThresHE")), | ||||||||||||||||||||||||||||||||
Comment on lines
+65
to
+66
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was wondering what happens if the input vector from the PSet does not have the size expected by There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is a good point, I am now checking what happens if I provide 2 elements instead for 4 for HB. It raise the following error and does not run; so I'm not adding any explicit check on size.
|
||||||||||||||||||||||||||||||||
skipHCAL_(iConfig.getParameter<bool>("skipHCAL")), | ||||||||||||||||||||||||||||||||
skipECAL_(iConfig.getParameter<bool>("skipECAL")), | ||||||||||||||||||||||||||||||||
ecalPFRechitThresholdsToken_{esConsumes()}, | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Consistent naming (RecHit). |
||||||||||||||||||||||||||||||||
caloGeometryToken_{esConsumes()} { | ||||||||||||||||||||||||||||||||
produces<double>(); | ||||||||||||||||||||||||||||||||
This comment was marked as resolved.
Sorry, something went wrong. |
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
void FixedGridRhoProducerFastjetFromRecHit::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { | ||||||||||||||||||||||||||||||||
edm::ParameterSetDescription desc; | ||||||||||||||||||||||||||||||||
//We use raw recHits and not the PF recHits, because in Phase1 muon and egamma HLT, | ||||||||||||||||||||||||||||||||
//PF recHit collection is regional, while the full raw recHit collection is available. | ||||||||||||||||||||||||||||||||
desc.add<edm::InputTag>("hbheRecHitsTag", edm::InputTag("hltHbhereco")); | ||||||||||||||||||||||||||||||||
desc.add<edm::InputTag>("ebRecHitsTag", edm::InputTag("hltEcalRecHit", "EcalRecHitsEB")); | ||||||||||||||||||||||||||||||||
desc.add<edm::InputTag>("eeRecHitsTag", edm::InputTag("hltEcalRecHit", "EcalRecHitsEE")); | ||||||||||||||||||||||||||||||||
desc.add<bool>("skipHCAL", false); | ||||||||||||||||||||||||||||||||
desc.add<bool>("skipECAL", false); | ||||||||||||||||||||||||||||||||
//eThresHB/HE are from RecoParticleFlow/PFClusterProducer/python/particleFlowRecHitHBHE_cfi.py | ||||||||||||||||||||||||||||||||
desc.add<std::vector<double> >("eThresHB", {0.1, 0.2, 0.3, 0.3}); | ||||||||||||||||||||||||||||||||
desc.add<std::vector<double> >("eThresHE", {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}); | ||||||||||||||||||||||||||||||||
desc.add<double>("maxRapidity", 2.5); | ||||||||||||||||||||||||||||||||
desc.add<double>("gridSpacing", 0.55); | ||||||||||||||||||||||||||||||||
descriptions.add("hltFixedGridRhoProducerFastjetFromRecHit", desc); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
FixedGridRhoProducerFastjetFromRecHit::~FixedGridRhoProducerFastjetFromRecHit() {} | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
void FixedGridRhoProducerFastjetFromRecHit::produce(edm::Event &iEvent, const edm::EventSetup &iSetup) { | ||||||||||||||||||||||||||||||||
std::vector<fastjet::PseudoJet> inputs; | ||||||||||||||||||||||||||||||||
auto const &thresholds = iSetup.getData(ecalPFRechitThresholdsToken_); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Consistent naming (RecHit). |
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (skipHCAL_ && skipECAL_) { | ||||||||||||||||||||||||||||||||
throw cms::Exception("FixedGridRhoProducerFastjetFromRecHit") | ||||||||||||||||||||||||||||||||
<< "skipHCAL and skipECAL both can't be True. Make at least one of them False."; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This can be moved to the ctor. |
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
This comment was marked as resolved.
Sorry, something went wrong. |
||||||||||||||||||||||||||||||||
if (!skipHCAL_) { | ||||||||||||||||||||||||||||||||
for (const auto &hit : iEvent.get(hbheRecHitsTag_)) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
if (passedHcalNoiseCut(hit)) { | ||||||||||||||||||||||||||||||||
TLorentzVector hitp4(0, 0, 0, 0); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above on use of |
||||||||||||||||||||||||||||||||
getHitP4(hit.id(), hit.energy(), hitp4, iSetup.getData(caloGeometryToken_)); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
inputs.push_back(fastjet::PseudoJet(hitp4.Px(), hitp4.Py(), hitp4.Pz(), hitp4.E())); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggested change There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. there is no need of a LorentzVector or similar. |
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (!skipECAL_) { | ||||||||||||||||||||||||||||||||
for (const auto &hit : iEvent.get(ebRecHitsTag_)) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
if (passedEcalNoiseCut(hit, &thresholds)) { | ||||||||||||||||||||||||||||||||
TLorentzVector hitp4(0, 0, 0, 0); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above on use of |
||||||||||||||||||||||||||||||||
getHitP4(hit.id(), hit.energy(), hitp4, iSetup.getData(caloGeometryToken_)); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
inputs.push_back(fastjet::PseudoJet(hitp4.Px(), hitp4.Py(), hitp4.Pz(), hitp4.E())); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
for (const auto &hit : iEvent.get(eeRecHitsTag_)) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
if (passedEcalNoiseCut(hit, &thresholds)) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
TLorentzVector hitp4(0, 0, 0, 0); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above on use of |
||||||||||||||||||||||||||||||||
getHitP4(hit.id(), hit.energy(), hitp4, iSetup.getData(caloGeometryToken_)); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
inputs.push_back(fastjet::PseudoJet(hitp4.Px(), hitp4.Py(), hitp4.Pz(), hitp4.E())); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
bge_.set_particles(inputs); | ||||||||||||||||||||||||||||||||
iEvent.put(std::make_unique<double>(bge_.rho())); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
void FixedGridRhoProducerFastjetFromRecHit::getHitP4(const DetId &detId, | ||||||||||||||||||||||||||||||||
float hitE, | ||||||||||||||||||||||||||||||||
TLorentzVector &hitp4, | ||||||||||||||||||||||||||||||||
const CaloGeometry &caloGeometry) { | ||||||||||||||||||||||||||||||||
const CaloSubdetectorGeometry *subDetGeom = caloGeometry.getSubdetectorGeometry(detId); | ||||||||||||||||||||||||||||||||
std::shared_ptr<const CaloCellGeometry> cellGeom = | ||||||||||||||||||||||||||||||||
subDetGeom != nullptr ? subDetGeom->getGeometry(detId) : std::shared_ptr<const CaloCellGeometry>(); | ||||||||||||||||||||||||||||||||
if (cellGeom != nullptr) { | ||||||||||||||||||||||||||||||||
const auto &gpPos = cellGeom->repPos(); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This is a guess, just to highlight that maybe things could be simplified (..but maybe I'm missing something). Mainly, I didn't get why |
||||||||||||||||||||||||||||||||
double thispt = hitE / cosh(gpPos.eta()); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. these could all be const |
||||||||||||||||||||||||||||||||
double thispx = thispt * cos(gpPos.phi()); | ||||||||||||||||||||||||||||||||
double thispy = thispt * sin(gpPos.phi()); | ||||||||||||||||||||||||||||||||
double thispz = thispt * sinh(gpPos.eta()); | ||||||||||||||||||||||||||||||||
hitp4.SetPxPyPzE(thispx, thispy, thispz, hitE); | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. should it not be corrected for beam spot (or identified signal vertex) position? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For this rho producer, we are just aiming for a proxy of pile-up. As long as we can construct a variable whose value increases with pile-up, we are fine. So I think it's okay to not correct the recHit positions for beamspot. I have addressed the other comments. |
||||||||||||||||||||||||||||||||
} else { | ||||||||||||||||||||||||||||||||
if (detId.rawId() != 0) | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. again: is this really something that can happen? |
||||||||||||||||||||||||||||||||
edm::LogInfo("FixedGridRhoProducerFastjetFromRecHit") | ||||||||||||||||||||||||||||||||
<< "Warning : Geometry not found for a calo hit, setting p4 as (0,0,0,0)" << std::endl; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Unclear to me if this should be a warning, or an "info". |
||||||||||||||||||||||||||||||||
hitp4.SetPxPyPzE(0, 0, 0, 0); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
//HCAL noise cleaning cuts. | ||||||||||||||||||||||||||||||||
bool FixedGridRhoProducerFastjetFromRecHit::passedHcalNoiseCut(const HBHERecHit &hit) { | ||||||||||||||||||||||||||||||||
bool passed = false; | ||||||||||||||||||||||||||||||||
const HcalDetId thisDetId(hit.detid()); | ||||||||||||||||||||||||||||||||
const int thisDepth = thisDetId.depth(); | ||||||||||||||||||||||||||||||||
if ((thisDetId.subdet() == HcalBarrel) && (hit.energy() > eThresHB_[thisDepth - 1])) | ||||||||||||||||||||||||||||||||
passed = true; | ||||||||||||||||||||||||||||||||
else if ((thisDetId.subdet() == HcalEndcap) && (hit.energy() > eThresHE_[thisDepth - 1])) | ||||||||||||||||||||||||||||||||
passed = true; | ||||||||||||||||||||||||||||||||
return passed; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I have now changed it as you suggested; just one minor thing is that, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure, no problem. Just FYI, it looks like you could use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. right, and all other comments are also addressed now. Will push the updated version soon. |
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
//ECAL noise cleaning cuts using per-crystal PF-recHit thresholds. | ||||||||||||||||||||||||||||||||
bool FixedGridRhoProducerFastjetFromRecHit::passedEcalNoiseCut(const EcalRecHit &hit, | ||||||||||||||||||||||||||||||||
const EcalPFRecHitThresholds *thresholds) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
bool passed = false; | ||||||||||||||||||||||||||||||||
if (hit.energy() > (*thresholds)[hit.detid()]) | ||||||||||||||||||||||||||||||||
passed = true; | ||||||||||||||||||||||||||||||||
return passed; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
DEFINE_FWK_MODULE(FixedGridRhoProducerFastjetFromRecHit); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this should go to
RecoJets/JetProducers/plugins/BuildFile.xml
instead.