|
|
template<typename T1>
class HLTRechitInRegionsProducer< T1 >
Definition at line 72 of file HLTRechitInRegionsProducer.cc.
◆ T1Collection
◆ T1iterator
◆ HLTRechitInRegionsProducer()
◆ ~HLTRechitInRegionsProducer()
◆ fillDescriptions()
Definition at line 137 of file HLTRechitInRegionsProducer.cc.
139 std::vector<std::string> productTags;
140 productTags.push_back(
"EcalRegionalRecHitsEB");
141 productTags.push_back(
"EcalRegionalRecHitsEE");
142 desc.
add<std::vector<std::string>>(
"productLabels", productTags);
147 desc.
add<std::vector<edm::InputTag>>(
"ecalhitLabels",
inputTags);
150 desc.
add<
bool>(
"useUncalib",
true);
151 desc.
add<
bool>(
"doIsolated",
true);
152 desc.
add<
double>(
"l1LowerThr", 5.0);
153 desc.
add<
double>(
"l1UpperThr", 999.);
154 desc.
add<
double>(
"l1LowerThrIgnoreIsolation", 0.0);
155 desc.
add<
double>(
"regionEtaMargin", 0.14);
156 desc.
add<
double>(
"regionPhiMargin", 0.4);
References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, and HLTMuonOfflineAnalyzer_cfi::inputTags.
◆ getEtaPhiRegions() [1/2]
◆ getEtaPhiRegions() [2/2]
Definition at line 282 of file HLTRechitInRegionsProducer.cc.
287 for (
unsigned int candItr = 0; candItr < theCandidateCollection.size(); candItr++) {
References L1CaloGeometry::emJetPhiBinHighEdge(), L1CaloGeometry::emJetPhiBinLowEdge(), reco::LeafCandidate::et(), L1CaloGeometry::etaBinHighEdge(), L1CaloGeometry::etaBinLowEdge(), gemEfficiencyAnalyzer_cfi::etaHigh, L1GctEmCand::etaIndex(), gemEfficiencyAnalyzer_cfi::etaLow, l1extra::L1EmParticle::gctEmCand(), L1GctEmCand::phiIndex(), and l1tSlwPFPuppiJets_cfi::phiLow.
◆ produce()
Definition at line 161 of file HLTRechitInRegionsProducer.cc.
167 std::unique_ptr<const CaloSubdetectorTopology>
topology;
183 std::vector<RectangularEtaPhiRegion>
regions;
193 auto uhits = std::make_unique<EcalUncalibratedRecHitCollection>();
196 if (!(urhcH[
i].isValid())) {
197 edm::LogError(
"ProductNotFound") <<
"could not get a handle on the EcalRecHitCollection! ("
203 if (!uncalibRecHits->
empty()) {
204 if ((*uncalibRecHits)[0].id().subdetId() ==
EcalBarrel) {
206 topology = std::make_unique<EcalBarrelTopology>(*geoHandle);
207 }
else if ((*uncalibRecHits)[0].
id().subdetId() ==
EcalEndcap) {
209 topology = std::make_unique<EcalEndcapTopology>(*geoHandle);
210 }
else if ((*uncalibRecHits)[0].
id().subdetId() ==
EcalPreshower) {
212 topology = std::make_unique<EcalPreshowerTopology>();
214 throw(std::runtime_error(
"\n\nProducer encountered invalied ecalhitcollection type.\n\n"));
219 for (it = uncalibRecHits->
begin(); it != uncalibRecHits->
end(); it++) {
220 auto this_cell = geometry_p->
getGeometry(it->id());
222 std::vector<RectangularEtaPhiRegion>::const_iterator
region;
224 if (
region->inRegion(this_cell->etaPos(), this_cell->phiPos())) {
225 uhits->push_back(*it);
238 auto hits = std::make_unique<EcalRecHitCollection>();
241 if (!(rhcH[
i].isValid())) {
242 edm::LogError(
"ProductNotFound") <<
"could not get a handle on the EcalRecHitCollection! ("
251 topology = std::make_unique<EcalBarrelTopology>(*geoHandle);
254 topology = std::make_unique<EcalEndcapTopology>(*geoHandle);
257 topology = std::make_unique<EcalPreshowerTopology>();
259 throw(std::runtime_error(
"\n\nProducer encountered invalied ecalhitcollection type.\n\n"));
264 auto this_cell = geometry_p->
getGeometry(it->id());
266 std::vector<RectangularEtaPhiRegion>::const_iterator
region;
268 if (
region->inRegion(this_cell->etaPos(), this_cell->phiPos())) {
269 hits->push_back(*it);
References edm::SortedCollection< T, SORT >::begin(), DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, edm::SortedCollection< T, SORT >::empty(), edm::SortedCollection< T, SORT >::end(), edm::EventSetup::get(), get, edm::Event::getByToken(), CaloSubdetectorGeometry::getGeometry(), hfClusterShapes_cfi::hits, mps_fire::i, eostools::move(), or, edm::Handle< T >::product(), HLT_2018_cff::productLabels, edm::Event::put(), FastTrackerRecHitMaskProducer_cfi::recHits, HLT_2018_cff::region, and ecaldqm::topology().
◆ doIsolated_
◆ hitLabels
◆ hitTokens
◆ l1LowerThr_
◆ l1LowerThrIgnoreIsolation_
◆ l1TokenIsolated_
◆ l1TokenNonIsolated_
◆ l1UpperThr_
◆ productLabels
◆ regionEtaMargin_
◆ regionPhiMargin_
◆ uncalibHitTokens
◆ useUncalib_
double emJetPhiBinHighEdge(unsigned int phiIndex) const
const double regionPhiMargin_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< T >::const_iterator const_iterator
T const * product() const
std::vector< edm::EDGetTokenT< EcalRecHitCollection > > hitTokens
double etaBinHighEdge(unsigned int etaIndex, bool central=true) const
const edm::EDGetTokenT< T1Collection > l1TokenNonIsolated_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const CaloTopology * topology(nullptr)
const_iterator begin() const
inputTags
All input tags are specified in this pset for convenience.
const double regionEtaMargin_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const std::vector< edm::InputTag > hitLabels
std::string defaultModuleLabel()
const_iterator end() const
const double l1LowerThrIgnoreIsolation_
const L1GctEmCand * gctEmCand() const
std::vector< edm::EDGetTokenT< EcalUncalibratedRecHitCollection > > uncalibHitTokens
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
const edm::EDGetTokenT< T1Collection > l1TokenIsolated_
double emJetPhiBinLowEdge(unsigned int phiIndex) const
T getParameter(std::string const &) const
double et() const final
transverse energy
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const std::vector< std::string > productLabels
unsigned etaIndex() const override
get eta index -6 to -0, +0 to +6 (bit 3 is sign, 1 for -ve Z, 0 for +ve Z)
void getEtaPhiRegions(std::vector< RectangularEtaPhiRegion > *, T1Collection, const L1CaloGeometry &, bool)
unsigned phiIndex() const override
get phi index (0-17)
double etaBinLowEdge(unsigned int etaIndex, bool central=true) const