CMS 3D CMS Logo

HLTRecHitInAllL1RegionsProducer.cc
Go to the documentation of this file.
1 #include <memory>
2 
10 
12 
13 // Reco candidates (might not need)
16 
17 // Geometry and topology
23 
24 // Level 1 Trigger
31 
35 
38 
41 
43 
45 
46 //this is a re-write of HLTRechitInRegionsProducer to be able to handle arbitary L1 collections as inputs
47 //in the process, some of the cruft was cleaned up but it mantains almost all the old behaviour
48 //think the only difference now is that it wont throw if its not ECALBarrel, ECALEndcap or ECAL PS rec-hit type
50 public:
51  virtual ~L1RegionDataBase() {}
52  virtual void getEtaPhiRegions(const edm::Event&,
53  std::vector<RectangularEtaPhiRegion>&,
54  const L1CaloGeometry&) const = 0;
55 };
56 
57 template <typename T1>
59 private:
60  double minEt_;
61  double maxEt_;
65 
66 public:
68  : minEt_(para.getParameter<double>("minEt")),
69  maxEt_(para.getParameter<double>("maxEt")),
70  regionEtaMargin_(para.getParameter<double>("regionEtaMargin")),
71  regionPhiMargin_(para.getParameter<double>("regionPhiMargin")),
72  token_(consumesColl.consumes<T1>(para.getParameter<edm::InputTag>("inputColl"))) {}
73 
74  void getEtaPhiRegions(const edm::Event&, std::vector<RectangularEtaPhiRegion>&, const L1CaloGeometry&) const override;
75  template <typename T2>
76  static typename T2::const_iterator beginIt(const T2& coll) {
77  return coll.begin();
78  }
79  template <typename T2>
80  static typename T2::const_iterator endIt(const T2& coll) {
81  return coll.end();
82  }
83  template <typename T2>
84  static typename BXVector<T2>::const_iterator beginIt(const BXVector<T2>& coll) {
85  return coll.begin(0);
86  }
87  template <typename T2>
88  static typename BXVector<T2>::const_iterator endIt(const BXVector<T2>& coll) {
89  return coll.end(0);
90  }
91 };
92 
93 template <typename RecHitType>
96 
97 public:
100 
101  void produce(edm::Event&, const edm::EventSetup&) override;
102  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
103 
104 private:
106  const edm::ParameterSet&,
107  edm::ConsumesCollector&&); //calling function owns this
108 
109  std::vector<std::unique_ptr<L1RegionDataBase>> l1RegionData_;
110 
111  std::vector<edm::InputTag> recHitLabels_;
112  std::vector<std::string> productLabels_;
113 
114  std::vector<edm::EDGetTokenT<RecHitCollectionType>> recHitTokens_;
115 
118 };
119 
120 template <typename RecHitType>
122  : caloGeometryToken_{esConsumes()}, l1CaloGeometryToken_{esConsumes()} {
123  const std::vector<edm::ParameterSet> l1InputRegions =
124  para.getParameter<std::vector<edm::ParameterSet>>("l1InputRegions");
125  for (auto& pset : l1InputRegions) {
126  const std::string type = pset.getParameter<std::string>("type");
127  l1RegionData_.emplace_back(createL1RegionData(
128  type,
129  pset,
130  consumesCollector())); //meh I was going to use a factory but it was going to be overly complex for my needs
131  }
132  recHitLabels_ = para.getParameter<std::vector<edm::InputTag>>("recHitLabels");
133  productLabels_ = para.getParameter<std::vector<std::string>>("productLabels");
134 
135  for (unsigned int collNr = 0; collNr < recHitLabels_.size(); collNr++) {
136  recHitTokens_.push_back(consumes<RecHitCollectionType>(recHitLabels_[collNr]));
137  produces<RecHitCollectionType>(productLabels_[collNr]);
138  }
139 }
140 template <typename RecHitType>
143  std::vector<std::string> productTags;
144  productTags.push_back("EcalRegionalRecHitsEB");
145  productTags.push_back("EcalRegionalRecHitsEE");
146  desc.add<std::vector<std::string>>("productLabels", productTags);
147  std::vector<edm::InputTag> recHitLabels;
148  recHitLabels.push_back(edm::InputTag("hltEcalRegionalEgammaRecHit:EcalRecHitsEB"));
149  recHitLabels.push_back(edm::InputTag("hltEcalRegionalEgammaRecHit:EcalRecHitsEE"));
150  recHitLabels.push_back(edm::InputTag("hltESRegionalEgammaRecHit:EcalRecHitsES"));
151  desc.add<std::vector<edm::InputTag>>("recHitLabels", recHitLabels);
152  std::vector<edm::ParameterSet> l1InputRegions;
153 
154  edm::ParameterSet emIsoPSet;
155  emIsoPSet.addParameter<std::string>("type", "L1EmParticle");
156  emIsoPSet.addParameter<double>("minEt", 5);
157  emIsoPSet.addParameter<double>("maxEt", 999);
158  emIsoPSet.addParameter<double>("regionEtaMargin", 0.14);
159  emIsoPSet.addParameter<double>("regionPhiMargin", 0.4);
160  emIsoPSet.addParameter<edm::InputTag>("inputColl", edm::InputTag("hltL1extraParticles:NonIsolated"));
161  l1InputRegions.push_back(emIsoPSet);
162  edm::ParameterSet emNonIsoPSet;
163  emNonIsoPSet.addParameter<std::string>("type", "L1EmParticle");
164  emNonIsoPSet.addParameter<double>("minEt", 5);
165  emNonIsoPSet.addParameter<double>("maxEt", 999);
166  emNonIsoPSet.addParameter<double>("regionEtaMargin", 0.14);
167  emNonIsoPSet.addParameter<double>("regionPhiMargin", 0.4);
168  emNonIsoPSet.addParameter<edm::InputTag>("inputColl", edm::InputTag("hltL1extraParticles:Isolated"));
169  l1InputRegions.push_back(emNonIsoPSet);
170 
171  // Why no Central Jets here? They are present in the python config, e.g. OnLine_HLT_GRun.py
172  // SHarper: because these are the default parameters designed to reproduce the original (no jets) behaviour
173  //
174  edm::ParameterSet egPSet;
175  egPSet.addParameter<std::string>("type", "EGamma");
176  egPSet.addParameter<double>("minEt", 5);
177  egPSet.addParameter<double>("maxEt", 999);
178  egPSet.addParameter<double>("regionEtaMargin", 0.4);
179  egPSet.addParameter<double>("regionPhiMargin", 0.5);
180  egPSet.addParameter<edm::InputTag>("inputColl", edm::InputTag("hltCaloStage2Digis"));
181  l1InputRegions.push_back(egPSet);
182 
184  jetPSet.addParameter<std::string>("type", "EGamma");
185  jetPSet.addParameter<double>("minEt", 200);
186  jetPSet.addParameter<double>("maxEt", 999);
187  jetPSet.addParameter<double>("regionEtaMargin", 0.4);
188  jetPSet.addParameter<double>("regionPhiMargin", 0.5);
189  jetPSet.addParameter<edm::InputTag>("inputColl", edm::InputTag("hltCaloStage2Digis"));
190  l1InputRegions.push_back(jetPSet);
191 
192  edm::ParameterSetDescription l1InputRegionDesc;
193  l1InputRegionDesc.add<std::string>("type");
194  l1InputRegionDesc.add<double>("minEt");
195  l1InputRegionDesc.add<double>("maxEt");
196  l1InputRegionDesc.add<double>("regionEtaMargin");
197  l1InputRegionDesc.add<double>("regionPhiMargin");
198  l1InputRegionDesc.add<edm::InputTag>("inputColl");
199  desc.addVPSet("l1InputRegions", l1InputRegionDesc, l1InputRegions);
200 
202 }
203 
204 template <typename RecHitType>
206  // get the collection geometry:
207  auto const& caloGeom = setup.getData(caloGeometryToken_);
208 
209  // Get the CaloGeometry
210  auto const& l1CaloGeom = setup.getData(l1CaloGeometryToken_);
211 
212  std::vector<RectangularEtaPhiRegion> regions;
213  std::for_each(l1RegionData_.begin(),
214  l1RegionData_.end(),
215  [&event, &regions, l1CaloGeom](const std::unique_ptr<L1RegionDataBase>& input) {
216  input->getEtaPhiRegions(event, regions, l1CaloGeom);
217  });
218 
219  for (size_t recHitCollNr = 0; recHitCollNr < recHitTokens_.size(); recHitCollNr++) {
221  event.getByToken(recHitTokens_[recHitCollNr], recHits);
222 
223  if (!(recHits.isValid())) {
224  edm::LogError("ProductNotFound") << "could not get a handle on the " << typeid(RecHitCollectionType).name()
225  << " named " << recHitLabels_[recHitCollNr].encode() << std::endl;
226  continue;
227  }
228 
229  auto filteredRecHits = std::make_unique<RecHitCollectionType>();
230 
231  if (!recHits->empty()) {
232  const CaloSubdetectorGeometry* subDetGeom = caloGeom.getSubdetectorGeometry(recHits->front().id());
233  if (!regions.empty()) {
234  for (const RecHitType& recHit : *recHits) {
235  auto this_cell = subDetGeom->getGeometry(recHit.id());
236  for (const auto& region : regions) {
237  if (region.inRegion(this_cell->etaPos(), this_cell->phiPos())) {
238  filteredRecHits->push_back(recHit);
239  break;
240  }
241  }
242  }
243  } //end check of empty regions
244  } //end check of empty rec-hits
245  // std::cout <<"putting fileter coll in "<<filteredRecHits->size()<<std::endl;
246  event.put(std::move(filteredRecHits), productLabels_[recHitCollNr]);
247  } //end loop over all rec hit collections
248 }
249 
250 template <typename RecHitType>
252  const std::string& type, const edm::ParameterSet& para, edm::ConsumesCollector&& consumesColl) {
253  if (type == "L1EmParticle") {
254  return new L1RegionData<l1extra::L1EmParticleCollection>(para, consumesColl);
255  } else if (type == "L1JetParticle") {
256  return new L1RegionData<l1extra::L1JetParticleCollection>(para, consumesColl);
257  } else if (type == "L1MuonParticle") {
258  return new L1RegionData<l1extra::L1MuonParticleCollection>(para, consumesColl);
259  } else if (type == "EGamma") {
260  return new L1RegionData<l1t::EGammaBxCollection>(para, consumesColl);
261  } else if (type == "Jet") {
262  return new L1RegionData<l1t::JetBxCollection>(para, consumesColl);
263  } else if (type == "Muon") {
264  return new L1RegionData<l1t::MuonBxCollection>(para, consumesColl);
265  } else if (type == "Tau") {
266  return new L1RegionData<l1t::TauBxCollection>(para, consumesColl);
267  } else {
268  //this is a major issue and could lead to rather subtle efficiency losses, so if its incorrectly configured, we're aborting the job!
269  throw cms::Exception("InvalidConfig")
270  << " type " << type
271  << " is not recognised, this means the rec-hit you think you are keeping may not be and you should fix this "
272  "error as it can lead to hard to find efficiency loses"
273  << std::endl;
274  }
275 }
276 
277 template <typename L1CollType>
279  std::vector<RectangularEtaPhiRegion>& regions,
280  const L1CaloGeometry&) const {
281  edm::Handle<L1CollType> l1Cands;
282  event.getByToken(token_, l1Cands);
283 
284  for (auto l1CandIt = beginIt(*l1Cands); l1CandIt != endIt(*l1Cands); ++l1CandIt) {
285  if (l1CandIt->et() >= minEt_ && l1CandIt->et() < maxEt_) {
286  double etaLow = l1CandIt->eta() - regionEtaMargin_;
287  double etaHigh = l1CandIt->eta() + regionEtaMargin_;
288  double phiLow = l1CandIt->phi() - regionPhiMargin_;
289  double phiHigh = l1CandIt->phi() + regionPhiMargin_;
290 
291  regions.push_back(RectangularEtaPhiRegion(etaLow, etaHigh, phiLow, phiHigh));
292  }
293  }
294 }
295 
296 template <>
298  std::vector<RectangularEtaPhiRegion>& regions,
299  const L1CaloGeometry& l1CaloGeom) const {
301  event.getByToken(token_, l1Cands);
302 
303  for (const auto& l1Cand : *l1Cands) {
304  if (l1Cand.et() >= minEt_ && l1Cand.et() < maxEt_) {
305  // Access the GCT hardware object corresponding to the L1Extra EM object.
306  int etaIndex = l1Cand.gctJetCand()->etaIndex();
307  int phiIndex = l1Cand.gctJetCand()->phiIndex();
308 
309  // Use the L1CaloGeometry to find the eta, phi bin boundaries.
310  double etaLow = l1CaloGeom.etaBinLowEdge(etaIndex);
311  double etaHigh = l1CaloGeom.etaBinHighEdge(etaIndex);
312  double phiLow = l1CaloGeom.emJetPhiBinLowEdge(phiIndex);
313  double phiHigh = l1CaloGeom.emJetPhiBinHighEdge(phiIndex);
314 
315  etaLow -= regionEtaMargin_;
316  etaHigh += regionEtaMargin_;
317  phiLow -= regionPhiMargin_;
318  phiHigh += regionPhiMargin_;
319 
320  regions.push_back(RectangularEtaPhiRegion(etaLow, etaHigh, phiLow, phiHigh));
321  }
322  }
323 }
324 
325 template <>
327  std::vector<RectangularEtaPhiRegion>& regions,
328  const L1CaloGeometry& l1CaloGeom) const {
330  event.getByToken(token_, l1Cands);
331 
332  for (const auto& l1Cand : *l1Cands) {
333  if (l1Cand.et() >= minEt_ && l1Cand.et() < maxEt_) {
334  // Access the GCT hardware object corresponding to the L1Extra EM object.
335  int etaIndex = l1Cand.gctEmCand()->etaIndex();
336  int phiIndex = l1Cand.gctEmCand()->phiIndex();
337 
338  // Use the L1CaloGeometry to find the eta, phi bin boundaries.
339  double etaLow = l1CaloGeom.etaBinLowEdge(etaIndex);
340  double etaHigh = l1CaloGeom.etaBinHighEdge(etaIndex);
341  double phiLow = l1CaloGeom.emJetPhiBinLowEdge(phiIndex);
342  double phiHigh = l1CaloGeom.emJetPhiBinHighEdge(phiIndex);
343 
344  etaLow -= regionEtaMargin_;
345  etaHigh += regionEtaMargin_;
346  phiLow -= regionPhiMargin_;
347  phiHigh += regionPhiMargin_;
348 
349  regions.push_back(RectangularEtaPhiRegion(etaLow, etaHigh, phiLow, phiHigh));
350  }
351  }
352 }
353 
defaultModuleLabel.h
L1CaloGeometry::emJetPhiBinHighEdge
double emJetPhiBinHighEdge(unsigned int phiIndex) const
Definition: L1CaloGeometry.cc:232
HLTRecHitInAllL1RegionsProducer::l1RegionData_
std::vector< std::unique_ptr< L1RegionDataBase > > l1RegionData_
Definition: HLTRecHitInAllL1RegionsProducer.cc:109
HLTRecHitInAllL1RegionsProducer::l1CaloGeometryToken_
const edm::ESGetToken< L1CaloGeometry, L1CaloGeometryRecord > l1CaloGeometryToken_
Definition: HLTRecHitInAllL1RegionsProducer.cc:117
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
CaloTools.h
input
static const std::string input
Definition: EdmProvDump.cc:48
L1MuonParticleFwd.h
ESHandle.h
RectangularEtaPhiRegion.h
edm::EDGetTokenT< T1 >
HLT_FULL_cff.l1InputRegions
l1InputRegions
Definition: HLT_FULL_cff.py:14592
edm
HLT enums.
Definition: AlignableModifier.h:19
L1CaloGeometry::etaBinHighEdge
double etaBinHighEdge(unsigned int etaIndex, bool central=true) const
Definition: L1CaloGeometry.cc:205
Muon.h
JetMonitor_cfi.jetPSet
jetPSet
Definition: JetMonitor_cfi.py:12
HLTRecHitInAllL1RegionsProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: HLTRecHitInAllL1RegionsProducer.cc:205
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
EDProducer.h
Jet.h
edm::SortedCollection
Definition: SortedCollection.h:49
EcalUncalibratedRecHit.h
HLT_FULL_cff.recHitLabels
recHitLabels
Definition: HLT_FULL_cff.py:14615
L1RegionData::endIt
static BXVector< T2 >::const_iterator endIt(const BXVector< T2 > &coll)
Definition: HLTRecHitInAllL1RegionsProducer.cc:88
edm::Handle
Definition: AssociativeIterator.h:50
RecoCandidate.h
RectangularEtaPhiRegion
Definition: RectangularEtaPhiRegion.h:6
HLTRecHitInAllL1RegionsProducer::createL1RegionData
L1RegionDataBase * createL1RegionData(const std::string &, const edm::ParameterSet &, edm::ConsumesCollector &&)
Definition: HLTRecHitInAllL1RegionsProducer.cc:251
L1RegionDataBase
Definition: HLTRecHitInAllL1RegionsProducer.cc:49
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
reco::RecHitType
RecHitType
Definition: TrackInfoEnum.h:16
BXVector
Definition: BXVector.h:15
HLTRecHitInAllL1RegionsProducer::recHitTokens_
std::vector< edm::EDGetTokenT< RecHitCollectionType > > recHitTokens_
Definition: HLTRecHitInAllL1RegionsProducer.cc:114
MakerMacros.h
L1RegionDataBase::~L1RegionDataBase
virtual ~L1RegionDataBase()
Definition: HLTRecHitInAllL1RegionsProducer.cc:51
HLTRecHitInAllL1RegionsProducer::recHitLabels_
std::vector< edm::InputTag > recHitLabels_
Definition: HLTRecHitInAllL1RegionsProducer.cc:111
L1RegionDataBase::getEtaPhiRegions
virtual void getEtaPhiRegions(const edm::Event &, std::vector< RectangularEtaPhiRegion > &, const L1CaloGeometry &) const =0
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
L1RegionData::token_
edm::EDGetTokenT< T1 > token_
Definition: HLTRecHitInAllL1RegionsProducer.cc:64
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
L1RegionData::beginIt
static BXVector< T2 >::const_iterator beginIt(const BXVector< T2 > &coll)
Definition: HLTRecHitInAllL1RegionsProducer.cc:84
EGamma.h
BXVector::begin
const_iterator begin(int bx) const
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
L1EmParticleFwd.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
Phase1L1TJetProducer_cfi.phiLow
phiLow
Definition: Phase1L1TJetProducer_cfi.py:21
HLTEcalUncalibratedRecHitInAllL1RegionsProducer
HLTRecHitInAllL1RegionsProducer< EcalUncalibratedRecHit > HLTEcalUncalibratedRecHitInAllL1RegionsProducer
Definition: HLTRecHitInAllL1RegionsProducer.cc:356
L1RegionData::minEt_
double minEt_
Definition: HLTRecHitInAllL1RegionsProducer.cc:60
HLTRecHitInAllL1RegionsProducer::HLTRecHitInAllL1RegionsProducer
HLTRecHitInAllL1RegionsProducer(const edm::ParameterSet &ps)
Definition: HLTRecHitInAllL1RegionsProducer.cc:121
CaloSubdetectorGeometry.h
L1JetParticleFwd.h
BXVector::end
const_iterator end(int bx) const
edm::ParameterSet
Definition: ParameterSet.h:47
defaultModuleLabel
std::string defaultModuleLabel()
Definition: defaultModuleLabel.h:16
HLTRecHitInAllL1RegionsProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HLTRecHitInAllL1RegionsProducer.cc:141
Event.h
L1CaloGeometry
Definition: L1CaloGeometry.h:33
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
L1CaloGeometryRecord.h
L1RegionData::beginIt
static T2::const_iterator beginIt(const T2 &coll)
Definition: HLTRecHitInAllL1RegionsProducer.cc:76
edmPickEvents.event
event
Definition: edmPickEvents.py:273
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:135
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88272
edm::stream::EDProducer
Definition: EDProducer.h:38
edm::EventSetup
Definition: EventSetup.h:57
HLTRecHitInAllL1RegionsProducer::productLabels_
std::vector< std::string > productLabels_
Definition: HLTRecHitInAllL1RegionsProducer.cc:112
L1EmParticle.h
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
HLTRecHitInAllL1RegionsProducer::caloGeometryToken_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
Definition: HLTRecHitInAllL1RegionsProducer.cc:116
edm::ESGetToken< CaloGeometry, CaloGeometryRecord >
EcalRecHit.h
L1RegionData
Definition: HLTRecHitInAllL1RegionsProducer.cc:58
L1CaloGeometry::emJetPhiBinLowEdge
double emJetPhiBinLowEdge(unsigned int phiIndex) const
Definition: L1CaloGeometry.cc:228
L1RegionData::endIt
static T2::const_iterator endIt(const T2 &coll)
Definition: HLTRecHitInAllL1RegionsProducer.cc:80
CaloCellGeometry.h
L1RegionData::regionPhiMargin_
double regionPhiMargin_
Definition: HLTRecHitInAllL1RegionsProducer.cc:63
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1MuonParticle.h
RecoChargedCandidate.h
GeomDetEnumerators::subDetGeom
constexpr SubDetector subDetGeom[21]
Definition: GeomDetEnumerators.h:40
L1RegionData::regionEtaMargin_
double regionEtaMargin_
Definition: HLTRecHitInAllL1RegionsProducer.cc:62
Frameworkfwd.h
Exception
Definition: hltDiff.cc:246
CaloGeometry.h
L1RegionData::L1RegionData
L1RegionData(const edm::ParameterSet &para, edm::ConsumesCollector &consumesColl)
Definition: HLTRecHitInAllL1RegionsProducer.cc:67
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
L1RegionData::maxEt_
double maxEt_
Definition: HLTRecHitInAllL1RegionsProducer.cc:61
AlignmentPI::regions
regions
Definition: AlignmentPayloadInspectorHelper.h:76
ConsumesCollector.h
ParameterSet.h
HLTRecHitInAllL1RegionsProducer::~HLTRecHitInAllL1RegionsProducer
~HLTRecHitInAllL1RegionsProducer() override
Definition: HLTRecHitInAllL1RegionsProducer.cc:99
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
HLTEcalRecHitInAllL1RegionsProducer
HLTRecHitInAllL1RegionsProducer< EcalRecHit > HLTEcalRecHitInAllL1RegionsProducer
Definition: HLTRecHitInAllL1RegionsProducer.cc:354
L1JetParticle.h
L1CaloGeometry.h
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
L1CaloGeometry::etaBinLowEdge
double etaBinLowEdge(unsigned int etaIndex, bool central=true) const
Definition: L1CaloGeometry.cc:186
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
L1RegionData::getEtaPhiRegions
void getEtaPhiRegions(const edm::Event &, std::vector< RectangularEtaPhiRegion > &, const L1CaloGeometry &) const override
Definition: HLTRecHitInAllL1RegionsProducer.cc:278
HLTRecHitInAllL1RegionsProducer
Definition: HLTRecHitInAllL1RegionsProducer.cc:94