CMS 3D CMS Logo

HGCalHitCalibration.cc
Go to the documentation of this file.
1 // user include files
2 
6 
10 
12 
14 
17 
24 
29 
35 
37 
38 #include <map>
39 #include <array>
40 #include <string>
41 #include <numeric>
42 
44 public:
45  explicit HGCalHitCalibration(const edm::ParameterSet&);
46  ~HGCalHitCalibration() override;
47 
48  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
49 
50 private:
51  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
52  void analyze(const edm::Event&, const edm::EventSetup&) override;
53 
54  void fillWithRecHits(std::map<DetId, const HGCRecHit*>&, DetId, unsigned int, float, int&, float&);
55 
63 
66  int debug_;
68  static constexpr int depletion1_ = 200;
69  static constexpr int depletion2_ = 300;
70  static constexpr int scint_ = 400;
71 
72  std::map<int, MonitorElement*> h_EoP_CPene_calib_fraction_;
73  std::map<int, MonitorElement*> hgcal_EoP_CPene_calib_fraction_;
74  std::map<int, MonitorElement*> hgcal_ele_EoP_CPene_calib_fraction_;
75  std::map<int, MonitorElement*> hgcal_photon_EoP_CPene_calib_fraction_;
77 
78  static constexpr int layers_ = 60;
79  std::array<float, layers_> Energy_layer_calib_;
80  std::array<float, layers_> Energy_layer_calib_fraction_;
81 };
82 
84  : rawRecHits_(iConfig.getParameter<bool>("rawRecHits")), debug_(iConfig.getParameter<int>("debug")) {
85  auto detector = iConfig.getParameter<std::string>("detector");
86  auto recHitsEE = iConfig.getParameter<edm::InputTag>("recHitsEE");
87  auto recHitsFH = iConfig.getParameter<edm::InputTag>("recHitsFH");
88  auto recHitsBH = iConfig.getParameter<edm::InputTag>("recHitsBH");
89  auto caloParticles = iConfig.getParameter<edm::InputTag>("caloParticles");
90  auto hgcalMultiClusters = iConfig.getParameter<edm::InputTag>("hgcalMultiClusters");
91  auto electrons = iConfig.getParameter<edm::InputTag>("electrons");
92  auto photons = iConfig.getParameter<edm::InputTag>("photons");
93  if (detector == "all") {
94  recHitsEE_ = consumes<HGCRecHitCollection>(recHitsEE);
95  recHitsFH_ = consumes<HGCRecHitCollection>(recHitsFH);
96  recHitsBH_ = consumes<HGCRecHitCollection>(recHitsBH);
97  algo_ = 1;
98  } else if (detector == "EM") {
99  recHitsEE_ = consumes<HGCRecHitCollection>(recHitsEE);
100  algo_ = 2;
101  } else if (detector == "HAD") {
102  recHitsFH_ = consumes<HGCRecHitCollection>(recHitsFH);
103  recHitsBH_ = consumes<HGCRecHitCollection>(recHitsBH);
104  algo_ = 3;
105  }
106  depletion0_ = iConfig.getParameter<int>("depletionFine");
107  caloParticles_ = consumes<std::vector<CaloParticle> >(caloParticles);
108  hgcalMultiClusters_ = consumes<std::vector<reco::PFCluster> >(hgcalMultiClusters);
109  electrons_ = consumes<std::vector<reco::GsfElectron> >(electrons);
110  photons_ = consumes<std::vector<reco::Photon> >(photons);
111 
112  // size should be HGC layers 52 is enough
113  Energy_layer_calib_.fill(0.);
115 }
116 
118  // do anything here that needs to be done at desctruction time
119  // (e.g. close files, deallocate resources etc.)
120 }
121 
123  edm::Run const& iRun,
124  edm::EventSetup const& /* iSetup */) {
125  ibooker.cd();
126  ibooker.setCurrentFolder("HGCalHitCalibration");
127  h_EoP_CPene_calib_fraction_[depletion0_] = ibooker.book1D("h_EoP_CPene_100_calib_fraction", "", 1000, -0.5, 2.5);
128  h_EoP_CPene_calib_fraction_[depletion1_] = ibooker.book1D("h_EoP_CPene_200_calib_fraction", "", 1000, -0.5, 2.5);
129  h_EoP_CPene_calib_fraction_[depletion2_] = ibooker.book1D("h_EoP_CPene_300_calib_fraction", "", 1000, -0.5, 2.5);
130  h_EoP_CPene_calib_fraction_[scint_] = ibooker.book1D("h_EoP_CPene_scint_calib_fraction", "", 1000, -0.5, 2.5);
132  ibooker.book1D("hgcal_EoP_CPene_100_calib_fraction", "", 1000, -0.5, 2.5);
134  ibooker.book1D("hgcal_EoP_CPene_200_calib_fraction", "", 1000, -0.5, 2.5);
136  ibooker.book1D("hgcal_EoP_CPene_300_calib_fraction", "", 1000, -0.5, 2.5);
137  hgcal_EoP_CPene_calib_fraction_[scint_] = ibooker.book1D("hgcal_EoP_CPene_scint_calib_fraction", "", 1000, -0.5, 2.5);
139  ibooker.book1D("hgcal_ele_EoP_CPene_100_calib_fraction", "", 1000, -0.5, 2.5);
141  ibooker.book1D("hgcal_ele_EoP_CPene_200_calib_fraction", "", 1000, -0.5, 2.5);
143  ibooker.book1D("hgcal_ele_EoP_CPene_300_calib_fraction", "", 1000, -0.5, 2.5);
145  ibooker.book1D("hgcal_ele_EoP_CPene_scint_calib_fraction", "", 1000, -0.5, 2.5);
147  ibooker.book1D("hgcal_photon_EoP_CPene_100_calib_fraction", "", 1000, -0.5, 2.5);
149  ibooker.book1D("hgcal_photon_EoP_CPene_200_calib_fraction", "", 1000, -0.5, 2.5);
151  ibooker.book1D("hgcal_photon_EoP_CPene_300_calib_fraction", "", 1000, -0.5, 2.5);
153  ibooker.book1D("hgcal_photon_EoP_CPene_scint_calib_fraction", "", 1000, -0.5, 2.5);
154  LayerOccupancy_ = ibooker.book1D("LayerOccupancy", "", layers_, 0., (float)layers_);
155 }
156 
157 void HGCalHitCalibration::fillWithRecHits(std::map<DetId, const HGCRecHit*>& hitmap,
158  const DetId hitid,
159  const unsigned int hitlayer,
160  const float fraction,
161  int& seedDet,
162  float& seedEnergy) {
163  if (hitmap.find(hitid) == hitmap.end()) {
164  // Hit was not reconstructed
165  IfLogTrace(debug_ > 0, "HGCalHitCalibration")
166  << ">>> Failed to find detid " << std::hex << hitid.rawId() << std::dec << " Det " << hitid.det() << " Subdet "
167  << hitid.subdetId() << std::endl;
168  return;
169  }
170  if ((hitid.det() != DetId::Forward) && (hitid.det() != DetId::HGCalEE) && (hitid.det() != DetId::HGCalHSi) &&
171  (hitid.det() != DetId::HGCalHSc)) {
172  IfLogTrace(debug_ > 0, "HGCalHitCalibration")
173  << ">>> Wrong type of detid " << std::hex << hitid.rawId() << std::dec << " Det " << hitid.det() << " Subdet "
174  << hitid.subdetId() << std::endl;
175  return;
176  }
177 
178  unsigned int layer = recHitTools_.getLayerWithOffset(hitid);
179  assert(hitlayer == layer);
180  Energy_layer_calib_fraction_[layer] += hitmap[hitid]->energy() * fraction;
182  if (seedEnergy < hitmap[hitid]->energy()) {
183  seedEnergy = hitmap[hitid]->energy();
184  seedDet = recHitTools_.getSiThickness(hitid);
185  if (hitid.det() == DetId::HGCalHSc) {
186  seedDet = scint_;
187  }
188  }
189 }
190 
192  using namespace edm;
193 
195  iSetup.get<CaloGeometryRecord>().get(geom);
197 
198  Handle<HGCRecHitCollection> recHitHandleEE;
199  Handle<HGCRecHitCollection> recHitHandleFH;
200  Handle<HGCRecHitCollection> recHitHandleBH;
201 
202  Handle<std::vector<CaloParticle> > caloParticleHandle;
203  iEvent.getByToken(caloParticles_, caloParticleHandle);
204  const std::vector<CaloParticle>& caloParticles = *caloParticleHandle;
205 
206  Handle<std::vector<reco::PFCluster> > hgcalMultiClustersHandle;
207  iEvent.getByToken(hgcalMultiClusters_, hgcalMultiClustersHandle);
208 
209  Handle<std::vector<reco::GsfElectron> > PFElectronHandle;
210  iEvent.getByToken(electrons_, PFElectronHandle);
211 
212  Handle<std::vector<reco::Photon> > PFPhotonHandle;
213  iEvent.getByToken(photons_, PFPhotonHandle);
214 
215  // make a map detid-rechit
216  std::map<DetId, const HGCRecHit*> hitmap;
217  switch (algo_) {
218  case 1: {
219  iEvent.getByToken(recHitsEE_, recHitHandleEE);
220  iEvent.getByToken(recHitsFH_, recHitHandleFH);
221  iEvent.getByToken(recHitsBH_, recHitHandleBH);
222  const auto& rechitsEE = *recHitHandleEE;
223  const auto& rechitsFH = *recHitHandleFH;
224  const auto& rechitsBH = *recHitHandleBH;
225  for (unsigned int i = 0; i < rechitsEE.size(); ++i) {
226  hitmap[rechitsEE[i].detid()] = &rechitsEE[i];
227  }
228  for (unsigned int i = 0; i < rechitsFH.size(); ++i) {
229  hitmap[rechitsFH[i].detid()] = &rechitsFH[i];
230  }
231  for (unsigned int i = 0; i < rechitsBH.size(); ++i) {
232  hitmap[rechitsBH[i].detid()] = &rechitsBH[i];
233  }
234  break;
235  }
236  case 2: {
237  iEvent.getByToken(recHitsEE_, recHitHandleEE);
238  const HGCRecHitCollection& rechitsEE = *recHitHandleEE;
239  for (unsigned int i = 0; i < rechitsEE.size(); i++) {
240  hitmap[rechitsEE[i].detid()] = &rechitsEE[i];
241  }
242  break;
243  }
244  case 3: {
245  iEvent.getByToken(recHitsFH_, recHitHandleFH);
246  iEvent.getByToken(recHitsBH_, recHitHandleBH);
247  const auto& rechitsFH = *recHitHandleFH;
248  const auto& rechitsBH = *recHitHandleBH;
249  for (unsigned int i = 0; i < rechitsFH.size(); i++) {
250  hitmap[rechitsFH[i].detid()] = &rechitsFH[i];
251  }
252  for (unsigned int i = 0; i < rechitsBH.size(); i++) {
253  hitmap[rechitsBH[i].detid()] = &rechitsBH[i];
254  }
255  break;
256  }
257  default:
258  assert(false);
259  break;
260  }
261 
262  // loop over caloParticles
263  int seedDet = 0;
264  float seedEnergy = 0.;
265  IfLogTrace(debug_ > 0, "HGCalHitCalibration") << "Number of caloParticles: " << caloParticles.size() << std::endl;
266  for (const auto& it_caloPart : caloParticles) {
267  if (it_caloPart.g4Tracks()[0].eventId().event() != 0 or it_caloPart.g4Tracks()[0].eventId().bunchCrossing() != 0) {
268  LogDebug("HGCalHitCalibration") << "Excluding CaloParticles from event: "
269  << it_caloPart.g4Tracks()[0].eventId().event()
270  << " with BX: " << it_caloPart.g4Tracks()[0].eventId().bunchCrossing()
271  << std::endl;
272  continue;
273  }
274 
275  const SimClusterRefVector& simClusterRefVector = it_caloPart.simClusters();
276  Energy_layer_calib_.fill(0.);
278 
279  seedDet = 0;
280  seedEnergy = 0.;
281  for (const auto& it_sc : simClusterRefVector) {
282  const SimCluster& simCluster = (*(it_sc));
283  IfLogTrace(debug_ > 1, "HGCalHitCalibration")
284  << ">>> SC.energy(): " << simCluster.energy() << " SC.simEnergy(): " << simCluster.simEnergy() << std::endl;
285  const std::vector<std::pair<uint32_t, float> >& hits_and_fractions = simCluster.hits_and_fractions();
286 
287  // loop over hits
288  for (const auto& it_haf : hits_and_fractions) {
289  unsigned int hitlayer = recHitTools_.getLayerWithOffset(it_haf.first);
290  DetId hitid = (it_haf.first);
291  // dump raw RecHits and match
292  if (rawRecHits_) {
293  if ((hitid.det() == DetId::Forward &&
294  (hitid.subdetId() == HGCEE || hitid.subdetId() == HGCHEF || hitid.subdetId() == HGCHEB)) ||
295  (hitid.det() == DetId::HGCalEE) || (hitid.det() == DetId::HGCalHSi) || (hitid.det() == DetId::HGCalHSc) ||
296  (hitid.det() == DetId::Hcal && hitid.subdetId() == HcalEndcap))
297  fillWithRecHits(hitmap, hitid, hitlayer, it_haf.second, seedDet, seedEnergy);
298  }
299  } // end simHit
300  } // end simCluster
301 
302  auto sumCalibRecHitCalib_fraction =
303  std::accumulate(Energy_layer_calib_fraction_.begin(), Energy_layer_calib_fraction_.end(), 0.);
304  IfLogTrace(debug_ > 0, "HGCalHitCalibration")
305  << ">>> MC Energy: " << it_caloPart.energy() << " reco energy: " << sumCalibRecHitCalib_fraction << std::endl;
306  if (h_EoP_CPene_calib_fraction_.count(seedDet))
307  h_EoP_CPene_calib_fraction_[seedDet]->Fill(sumCalibRecHitCalib_fraction / it_caloPart.energy());
308 
309  // Loop on reconstructed SC.
310  const auto& clusters = *hgcalMultiClustersHandle;
311  float total_energy = 0.;
312  float max_dR2 = 0.0025;
313  auto closest =
314  std::min_element(clusters.begin(), clusters.end(), [&](const reco::PFCluster& a, const reco::PFCluster& b) {
315  auto dR2_a = reco::deltaR2(it_caloPart, a);
316  auto dR2_b = reco::deltaR2(it_caloPart, b);
317  auto ERatio_a = a.correctedEnergy() / it_caloPart.energy();
318  auto ERatio_b = b.correctedEnergy() / it_caloPart.energy();
319  // If both clusters are within 0.0025, mark as first (min) the
320  // element with the highest ratio against the SimCluster
321  if (dR2_a < max_dR2 && dR2_b < max_dR2)
322  return ERatio_a > ERatio_b;
323  return dR2_a < dR2_b;
324  });
325  if (closest != clusters.end() && reco::deltaR2(*closest, it_caloPart) < 0.01) {
326  total_energy = closest->correctedEnergy();
327  seedDet = recHitTools_.getSiThickness(closest->seed());
328  if (closest->seed().det() == DetId::HGCalHSc) {
329  seedDet = scint_;
330  }
331  if (hgcal_EoP_CPene_calib_fraction_.count(seedDet)) {
332  hgcal_EoP_CPene_calib_fraction_[seedDet]->Fill(total_energy / it_caloPart.energy());
333  }
334  }
335 
336  auto closest_fcn = [&](auto const& a, auto const& b) {
337  auto dR2_a = reco::deltaR2(it_caloPart, a);
338  auto dR2_b = reco::deltaR2(it_caloPart, b);
339  auto ERatio_a = a.energy() / it_caloPart.energy();
340  auto ERatio_b = b.energy() / it_caloPart.energy();
341  // If both clusters are within 0.0025, mark as first (min) the
342  // element with the highest ratio against the SimCluster
343  if (dR2_a < max_dR2 && dR2_b < max_dR2)
344  return ERatio_a > ERatio_b;
345  return dR2_a < dR2_b;
346  };
347  // ELECTRONS in HGCAL
348  if (PFElectronHandle.isValid()) {
349  auto const& ele = (*PFElectronHandle);
350  auto closest = std::min_element(ele.begin(), ele.end(), closest_fcn);
351  if (closest != ele.end() &&
352  (closest->superCluster()->seed()->seed().det() == DetId::Forward ||
353  closest->superCluster()->seed()->seed().det() == DetId::HGCalEE) &&
354  reco::deltaR2(*closest, it_caloPart) < 0.01) {
355  seedDet = recHitTools_.getSiThickness(closest->superCluster()->seed()->seed());
356  if (closest->superCluster()->seed()->seed().det() == DetId::HGCalHSc) {
357  seedDet = scint_;
358  }
359  if (hgcal_ele_EoP_CPene_calib_fraction_.count(seedDet)) {
360  hgcal_ele_EoP_CPene_calib_fraction_[seedDet]->Fill(closest->energy() / it_caloPart.energy());
361  }
362  }
363  }
364 
365  // PHOTONS in HGCAL
366  if (PFPhotonHandle.isValid()) {
367  auto const& photon = (*PFPhotonHandle);
368  auto closest = std::min_element(photon.begin(), photon.end(), closest_fcn);
369  if (closest != photon.end() &&
370  (closest->superCluster()->seed()->seed().det() == DetId::Forward ||
371  closest->superCluster()->seed()->seed().det() == DetId::HGCalEE) &&
372  reco::deltaR2(*closest, it_caloPart) < 0.01) {
373  seedDet = recHitTools_.getSiThickness(closest->superCluster()->seed()->seed());
374  if (hgcal_photon_EoP_CPene_calib_fraction_.count(seedDet)) {
375  hgcal_photon_EoP_CPene_calib_fraction_[seedDet]->Fill(closest->energy() / it_caloPart.energy());
376  }
377  }
378  }
379  } // end caloparticle
380 }
381 
382 // ------------ method fills 'descriptions' with the allowed parameters for the
383 // module ------------
386  desc.add<int>("debug", 0);
387  desc.add<bool>("rawRecHits", true);
388  desc.add<std::string>("detector", "all");
389  desc.add<int>("depletionFine", 120);
390  desc.add<edm::InputTag>("caloParticles", edm::InputTag("mix", "MergedCaloTruth"));
391  desc.add<edm::InputTag>("recHitsEE", edm::InputTag("HGCalRecHit", "HGCEERecHits"));
392  desc.add<edm::InputTag>("recHitsFH", edm::InputTag("HGCalRecHit", "HGCHEFRecHits"));
393  desc.add<edm::InputTag>("recHitsBH", edm::InputTag("HGCalRecHit", "HGCHEBRecHits"));
394  desc.add<edm::InputTag>("hgcalMultiClusters", edm::InputTag("particleFlowClusterHGCalFromMultiCl"));
395  desc.add<edm::InputTag>("electrons", edm::InputTag("ecalDrivenGsfElectronsFromMultiCl"));
396  desc.add<edm::InputTag>("photons", edm::InputTag("photonsFromMultiCl"));
397  descriptions.add("hgcalHitCalibrationDefault", desc);
398 }
399 
400 // define this as a plug-in
HGCalHitCalibration::recHitsBH_
edm::EDGetTokenT< HGCRecHitCollection > recHitsBH_
Definition: HGCalHitCalibration.cc:58
muons2muons_cfi.photon
photon
Definition: muons2muons_cfi.py:28
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
hgcal::RecHitTools
Definition: RecHitTools.h:23
electrons_cff.bool
bool
Definition: electrons_cff.py:366
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:428
HGCalHitCalibration::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HGCalHitCalibration.cc:384
hgcal::RecHitTools::getSiThickness
std::float_t getSiThickness(const DetId &) const
Definition: RecHitTools.cc:176
ESHandle.h
HGCalHitCalibration::algo_
int algo_
Definition: HGCalHitCalibration.cc:64
edm::Run
Definition: Run.h:45
edm::EDGetTokenT
Definition: EDGetToken.h:33
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
edm
HLT enums.
Definition: AlignableModifier.h:19
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
DetId::Hcal
Definition: DetId.h:28
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
RecHitTools.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
cms::cuda::assert
assert(be >=bs)
HGCalHitCalibration::fillWithRecHits
void fillWithRecHits(std::map< DetId, const HGCRecHit * > &, DetId, unsigned int, float, int &, float &)
Definition: HGCalHitCalibration.cc:157
edm::SortedCollection
Definition: SortedCollection.h:49
DQMStore.h
edm::SortedCollection::size
size_type size() const
Definition: SortedCollection.h:215
TrackingVertex.h
edm::RefVector< SimClusterCollection >
SimCluster::energy
float energy() const
Energy. Note this is taken from the first SimTrack only.
Definition: SimCluster.h:104
SimCluster
Monte Carlo truth information used for tracking validation.
Definition: SimCluster.h:29
HGCalHitCalibration::debug_
int debug_
Definition: HGCalHitCalibration.cc:66
HGCalHitCalibration::scint_
static constexpr int scint_
Definition: HGCalHitCalibration.cc:70
HGCalHitCalibration::hgcal_photon_EoP_CPene_calib_fraction_
std::map< int, MonitorElement * > hgcal_photon_EoP_CPene_calib_fraction_
Definition: HGCalHitCalibration.cc:75
edm::Handle
Definition: AssociativeIterator.h:50
HGCalHitCalibration::h_EoP_CPene_calib_fraction_
std::map< int, MonitorElement * > h_EoP_CPene_calib_fraction_
Definition: HGCalHitCalibration.cc:72
DetId
Definition: DetId.h:17
HGCalHitCalibration::recHitsEE_
edm::EDGetTokenT< HGCRecHitCollection > recHitsEE_
Definition: HGCalHitCalibration.cc:56
HGCalHitCalibration::hgcal_EoP_CPene_calib_fraction_
std::map< int, MonitorElement * > hgcal_EoP_CPene_calib_fraction_
Definition: HGCalHitCalibration.cc:73
DetId::HGCalHSi
Definition: DetId.h:33
DetId::HGCalEE
Definition: DetId.h:32
MakerMacros.h
Photon.h
HGCalHitCalibration::LayerOccupancy_
MonitorElement * LayerOccupancy_
Definition: HGCalHitCalibration.cc:76
SimCluster.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
HGCalHitCalibration::depletion1_
static constexpr int depletion1_
Definition: HGCalHitCalibration.cc:68
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
HLT_FULL_cff.fraction
fraction
Definition: HLT_FULL_cff.py:52802
TruncatedPyramid.h
caloTruthCellsProducer_cfi.caloParticles
caloParticles
Definition: caloTruthCellsProducer_cfi.py:6
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
HGCalHitCalibration::Energy_layer_calib_
std::array< float, layers_ > Energy_layer_calib_
Definition: HGCalHitCalibration.cc:79
edm::ESHandle< CaloGeometry >
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
PFCluster.h
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
CaloClusterFwd.h
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
IfLogTrace
#define IfLogTrace(cond, cat)
Definition: MessageLogger.h:260
HGCalHitCalibration::photons_
edm::EDGetTokenT< std::vector< reco::Photon > > photons_
Definition: HGCalHitCalibration.cc:62
GsfElectron.h
b
double b
Definition: hdecay.h:118
HGCalHitCalibration::depletion0_
int depletion0_
Definition: HGCalHitCalibration.cc:64
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
DQMEDAnalyzer.h
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCEE
Definition: ForwardSubdetector.h:8
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
HGCalHitCalibration::rawRecHits_
bool rawRecHits_
Definition: HGCalHitCalibration.cc:65
CaloSubdetectorGeometry.h
HGCRecHitCollections.h
HGCalGeometry.h
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
a
double a
Definition: hdecay.h:119
Event.h
HGCalHitCalibration::hgcal_ele_EoP_CPene_calib_fraction_
std::map< int, MonitorElement * > hgcal_ele_EoP_CPene_calib_fraction_
Definition: HGCalHitCalibration.cc:74
hgcal::RecHitTools::getLayerWithOffset
unsigned int getLayerWithOffset(const DetId &) const
Definition: RecHitTools.cc:352
HcalDetId.h
reco::deltaR2
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
CaloParticle.h
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
HGCalHitCalibration::HGCalHitCalibration
HGCalHitCalibration(const edm::ParameterSet &)
Definition: HGCalHitCalibration.cc:83
HGCalHitCalibration::Energy_layer_calib_fraction_
std::array< float, layers_ > Energy_layer_calib_fraction_
Definition: HGCalHitCalibration.cc:80
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
edm::EventSetup
Definition: EventSetup.h:58
get
#define get
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
HGCalHitCalibration::hgcalMultiClusters_
edm::EDGetTokenT< std::vector< reco::PFCluster > > hgcalMultiClusters_
Definition: HGCalHitCalibration.cc:60
HGCalHitCalibration::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: HGCalHitCalibration.cc:191
TrackingParticle.h
CaloCellGeometry.h
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
EcalDeadCellBoundaryEnergyFilter_cfi.recHitsEE
recHitsEE
Definition: EcalDeadCellBoundaryEnergyFilter_cfi.py:18
HGCalDetId.h
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
SimCluster::simEnergy
float simEnergy() const
returns the accumulated sim energy in the cluster
Definition: SimCluster.h:213
pwdgSkimBPark_cfi.electrons
electrons
Definition: pwdgSkimBPark_cfi.py:6
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
hgcal::RecHitTools::setGeometry
void setGeometry(CaloGeometry const &)
Definition: RecHitTools.cc:68
HGCalHitCalibration::~HGCalHitCalibration
~HGCalHitCalibration() override
Definition: HGCalHitCalibration.cc:117
DetId::HGCalHSc
Definition: DetId.h:34
HGCalHitCalibration::layers_
static constexpr int layers_
Definition: HGCalHitCalibration.cc:78
CaloGeometry.h
HGCalHitCalibration::depletion2_
static constexpr int depletion2_
Definition: HGCalHitCalibration.cc:69
reco::PFCluster
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:42
HGCalHitCalibration::caloParticles_
edm::EDGetTokenT< std::vector< CaloParticle > > caloParticles_
Definition: HGCalHitCalibration.cc:59
or
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
Definition: Activities.doc:12
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
dqm::implementation::IBooker
Definition: DQMStore.h:43
HGCalHitCalibration
Definition: HGCalHitCalibration.cc:43
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
SimCluster::hits_and_fractions
std::vector< std::pair< uint32_t, float > > hits_and_fractions() const
Returns list of rechit IDs and fractions for this SimCluster.
Definition: SimCluster.h:184
HGCalHitCalibration::recHitsFH_
edm::EDGetTokenT< HGCRecHitCollection > recHitsFH_
Definition: HGCalHitCalibration.cc:57
HGCHEF
Definition: ForwardSubdetector.h:9
HGCalHitCalibration::electrons_
edm::EDGetTokenT< std::vector< reco::GsfElectron > > electrons_
Definition: HGCalHitCalibration.cc:61
ParameterSet.h
DetId::Forward
Definition: DetId.h:30
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
HGCalHitCalibration::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: HGCalHitCalibration.cc:122
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
HGCHEB
Definition: ForwardSubdetector.h:10
HGCalHitCalibration::recHitTools_
hgcal::RecHitTools recHitTools_
Definition: HGCalHitCalibration.cc:67