CMS 3D CMS Logo

HGCalRecHitValidation.cc
Go to the documentation of this file.
1 // system include files
2 #include <cmath>
3 #include <fstream>
4 #include <iostream>
5 #include <map>
6 #include <string>
7 #include <vector>
8 
15 
17 
20 
29 
37 
38 #include "CLHEP/Units/GlobalSystemOfUnits.h"
39 #include "TVector3.h"
40 
42 public:
43  struct energysum {
44  energysum() { e15 = e25 = e50 = e100 = e250 = e1000 = 0.0; }
45  double e15, e25, e50, e100, e250, e1000;
46  };
47 
48  struct HitsInfo {
50  x = y = z = time = energy = phi = eta = 0.0;
51  layer = 0;
52  }
53  float x, y, z, time, energy, phi, eta;
54  float layer;
55  };
56 
58  ~HGCalRecHitValidation() override {}
59 
60  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
61  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
62  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
63  void analyze(const edm::Event&, const edm::EventSetup&) override;
64 
65 private:
66  template <class T1, class T2>
67  void recHitValidation(DetId& detId, int layer, const T1* geom, T2 it);
68  void fillHitsInfo();
69  void fillHitsInfo(HitsInfo& hits);
70  void fillOccupancyMap(std::map<int, int>& OccupancyMap, int layer);
71 
72  // ----------member data ---------------------------
75  bool ifHCAL_;
77  unsigned int layers_;
79  std::map<int, int> OccupancyMap_plus;
80  std::map<int, int> OccupancyMap_minus;
81 
82  std::vector<MonitorElement*> EtaPhi_Plus_;
83  std::vector<MonitorElement*> EtaPhi_Minus_;
84  std::vector<MonitorElement*> energy_;
85  std::vector<MonitorElement*> HitOccupancy_Plus_;
86  std::vector<MonitorElement*> HitOccupancy_Minus_;
89 };
90 
92  : nameDetector_(iConfig.getParameter<std::string>("DetectorName")),
93  ifHCAL_(iConfig.getParameter<bool>("ifHCAL")),
94  verbosity_(iConfig.getUntrackedParameter<int>("Verbosity", 0)),
95  firstLayer_(1) {
96  auto temp = iConfig.getParameter<edm::InputTag>("RecHitSource");
97  if (nameDetector_ == "HGCalEESensitive" || nameDetector_ == "HGCalHESiliconSensitive" ||
98  nameDetector_ == "HGCalHEScintillatorSensitive") {
99  recHitSource_ = consumes<HGCRecHitCollection>(temp);
100  } else if (nameDetector_ == "HCal") {
101  if (ifHCAL_)
102  recHitSource_ = consumes<HBHERecHitCollection>(temp);
103  else
104  recHitSource_ = consumes<HGChebRecHitCollection>(temp);
105  } else {
106  throw cms::Exception("BadHGCRecHitSource") << "HGCal DetectorName given as " << nameDetector_ << " must be: "
107  << "\"HGCalHESiliconSensitive\", \"HGCalHESiliconSensitive\", "
108  << "\"HGCalHEScintillatorSensitive\", or \"HCal\"!";
109  }
110 }
111 
114  desc.add<std::string>("DetectorName", "HGCalEESensitive");
115  desc.add<edm::InputTag>("RecHitSource", edm::InputTag("HGCalRecHit", "HGCEERecHits"));
116  desc.add<bool>("ifHCAL", false);
117  desc.addUntracked<int>("Verbosity", 0);
118  descriptions.add("hgcalRecHitValidationEE", desc);
119 }
120 
122  OccupancyMap_plus.clear();
123  OccupancyMap_minus.clear();
124 
125  bool ok(true);
126  unsigned int ntot(0), nused(0);
127  if (nameDetector_ == "HCal") {
129  iSetup.get<CaloGeometryRecord>().get(geom);
130  if (!geom.isValid()) {
131  edm::LogVerbatim("HGCalValidation") << "Cannot get valid HGCalGeometry "
132  << "Object for " << nameDetector_;
133  } else {
134  const CaloGeometry* geom0 = geom.product();
135  if (ifHCAL_) {
137  iEvent.getByToken(recHitSource_, hbhecoll);
138  if (hbhecoll.isValid()) {
139  if (verbosity_ > 0)
140  edm::LogVerbatim("HGCalValidation") << nameDetector_ << " with " << hbhecoll->size() << " element(s)";
141  for (const auto& it : *(hbhecoll.product())) {
142  DetId detId = it.id();
143  ntot++;
144  if (detId.subdetId() == HcalEndcap) {
145  nused++;
146  int layer = HcalDetId(detId).depth();
147  recHitValidation(detId, layer, geom0, &it);
148  }
149  }
150  } else {
151  ok = false;
152  edm::LogVerbatim("HGCalValidation") << "HBHERecHitCollection "
153  << "Handle does not exist !!!";
154  }
155  } else {
157  iEvent.getByToken(recHitSource_, hbhecoll);
158  if (hbhecoll.isValid()) {
159  if (verbosity_ > 0)
160  edm::LogVerbatim("HGCalValidation") << nameDetector_ << " with " << hbhecoll->size() << " element(s)";
161  for (const auto& it : *(hbhecoll.product())) {
162  DetId detId = it.id();
163  ntot++;
164  nused++;
165  int layer = HcalDetId(detId).depth();
166  recHitValidation(detId, layer, geom0, &it);
167  }
168  } else {
169  ok = false;
170  edm::LogVerbatim("HGCalValidation") << "HGChebRecHitCollection "
171  << "Handle does not exist !!!";
172  }
173  }
174  }
175  } else {
178  if (!geom.isValid()) {
179  edm::LogVerbatim("HGCalValidation") << "Cannot get valid HGCalGeometry "
180  << "Object for " << nameDetector_;
181  } else {
182  const HGCalGeometry* geom0 = geom.product();
183  HGCalGeometryMode::GeometryMode mode = geom0->topology().geomMode();
185  ? 1
186  : ((mode == HGCalGeometryMode::Trapezoid) ? 2 : 0));
187 
188  edm::Handle<HGCRecHitCollection> theRecHitContainers;
189  iEvent.getByToken(recHitSource_, theRecHitContainers);
190  if (theRecHitContainers.isValid()) {
191  if (verbosity_ > 0)
192  edm::LogVerbatim("HGCalValidation")
193  << nameDetector_ << " with " << theRecHitContainers->size() << " element(s)";
194  for (const auto& it : *(theRecHitContainers.product())) {
195  ntot++;
196  nused++;
197  DetId detId = it.id();
198  int layer = ((geomType == 0)
199  ? HGCalDetId(detId).layer()
200  : ((geomType == 1) ? HGCSiliconDetId(detId).layer() : HGCScintillatorDetId(detId).layer()));
201  recHitValidation(detId, layer, geom0, &it);
202  }
203  } else {
204  ok = false;
205  edm::LogVerbatim("HGCalValidation") << "HGCRecHitCollection Handle "
206  << "does not exist !!!";
207  }
208  }
209  }
210  if (ok)
211  fillHitsInfo();
212  if (verbosity_ > 0)
213  edm::LogVerbatim("HGCalValidation") << "Event " << iEvent.id().event() << " with " << ntot << " total and " << nused
214  << " used recHits";
215 }
216 
217 template <class T1, class T2>
218 void HGCalRecHitValidation::recHitValidation(DetId& detId, int layer, const T1* geom, T2 it) {
219  const GlobalPoint& global = geom->getPosition(detId);
220  double energy = it->energy();
221 
222  float globalx = global.x();
223  float globaly = global.y();
224  float globalz = global.z();
225 
226  HitsInfo hinfo;
227  hinfo.energy = energy;
228  hinfo.x = globalx;
229  hinfo.y = globaly;
230  hinfo.z = globalz;
231  hinfo.layer = layer - firstLayer_;
232  hinfo.phi = global.phi();
233  hinfo.eta = global.eta();
234 
235  if (verbosity_ > 1)
236  edm::LogVerbatim("HGCalValidation") << "-------------------------- gx = " << globalx << " gy = " << globaly
237  << " gz = " << globalz << " phi = " << hinfo.phi << " eta = " << hinfo.eta
238  << " lay = " << hinfo.layer;
239 
241 
242  if (hinfo.eta > 0)
244  else
246 }
247 
248 void HGCalRecHitValidation::fillOccupancyMap(std::map<int, int>& OccupancyMap, int layer) {
249  if (OccupancyMap.find(layer) != OccupancyMap.end())
250  OccupancyMap[layer]++;
251  else
252  OccupancyMap[layer] = 1;
253 }
254 
256  for (auto const& itr : OccupancyMap_plus) {
257  int layer = itr.first;
258  int occupancy = itr.second;
259  HitOccupancy_Plus_.at(layer)->Fill(occupancy);
260  }
261 
262  for (auto const& itr : OccupancyMap_minus) {
263  int layer = itr.first;
264  int occupancy = itr.second;
265  HitOccupancy_Minus_.at(layer)->Fill(occupancy);
266  }
267 }
268 
270  unsigned int ilayer = hits.layer;
271  energy_.at(ilayer)->Fill(hits.energy);
272 
273  EtaPhi_Plus_.at(ilayer)->Fill(hits.eta, hits.phi);
274  EtaPhi_Minus_.at(ilayer)->Fill(hits.eta, hits.phi);
275 }
276 
278  if (nameDetector_ == "HCal") {
280  iSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
281  const HcalDDDRecConstants* hcons = &(*pHRNDC);
282  layers_ = hcons->getMaxDepth(1);
283  } else {
285  iSetup.get<IdealGeometryRecord>().get(nameDetector_, pHGDC);
286  const HGCalDDDConstants& hgcons_ = (*pHGDC);
287  layers_ = hgcons_.layers(true);
288  firstLayer_ = hgcons_.firstLayer();
289  }
290 }
291 
293  iB.setCurrentFolder("HGCAL/HGCalRecHitsV/" + nameDetector_);
294  std::ostringstream histoname;
295  for (unsigned int il = 0; il < layers_; ++il) {
296  int ilayer = firstLayer_ + (int)(il);
297  auto istr1 = std::to_string(ilayer);
298  while (istr1.size() < 2) {
299  istr1.insert(0, "0");
300  }
301  histoname.str("");
302  histoname << "HitOccupancy_Plus_layer_" << istr1;
303  HitOccupancy_Plus_.push_back(iB.book1D(histoname.str().c_str(), "RecHitOccupancy_Plus", 100, 0, 10000));
304  histoname.str("");
305  histoname << "HitOccupancy_Minus_layer_" << istr1;
306  HitOccupancy_Minus_.push_back(iB.book1D(histoname.str().c_str(), "RecHitOccupancy_Minus", 100, 0, 10000));
307 
308  histoname.str("");
309  histoname << "EtaPhi_Plus_"
310  << "layer_" << istr1;
311  EtaPhi_Plus_.push_back(iB.book2D(histoname.str().c_str(), "Occupancy", 31, 1.45, 3.0, 72, -CLHEP::pi, CLHEP::pi));
312  histoname.str("");
313  histoname << "EtaPhi_Minus_"
314  << "layer_" << istr1;
315  EtaPhi_Minus_.push_back(
316  iB.book2D(histoname.str().c_str(), "Occupancy", 31, -3.0, -1.45, 72, -CLHEP::pi, CLHEP::pi));
317 
318  histoname.str("");
319  histoname << "energy_layer_" << istr1;
320  energy_.push_back(iB.book1D(histoname.str().c_str(), "energy_", 500, 0, 1));
321  } //loop over layers ends here
322 
323  histoname.str("");
324  histoname << "SUMOfRecHitOccupancy_Plus";
326  iB.book1D(histoname.str().c_str(), "SUMOfRecHitOccupancy_Plus", layers_, -0.5, layers_ - 0.5);
327  histoname.str("");
328  histoname << "SUMOfRecHitOccupancy_Minus";
330  iB.book1D(histoname.str().c_str(), "SUMOfRecHitOccupancy_Minus", layers_, -0.5, layers_ - 0.5);
331 }
332 
333 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
334 
336 
337 //define this as a plug-in
ConfigurationDescriptions.h
HGCalRecHitValidation::HitsInfo::phi
float phi
Definition: HGCalRecHitValidation.cc:53
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
electrons_cff.bool
bool
Definition: electrons_cff.py:372
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
ESTransientHandle.h
HGCalRecHitValidation::~HGCalRecHitValidation
~HGCalRecHitValidation() override
Definition: HGCalRecHitValidation.cc:58
HGCalRecHitValidation::nameDetector_
std::string nameDetector_
Definition: HGCalRecHitValidation.cc:73
edm::Handle::product
T const * product() const
Definition: Handle.h:70
HGCalRecHitValidation::MeanHitOccupancy_Minus_
MonitorElement * MeanHitOccupancy_Minus_
Definition: HGCalRecHitValidation.cc:88
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
ESHandle.h
HGCalRecHitValidation
Definition: HGCalRecHitValidation.cc:41
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
HGCalDDDConstants::firstLayer
int firstLayer() const
Definition: HGCalDDDConstants.h:51
HGCalRecHitValidation::fillOccupancyMap
void fillOccupancyMap(std::map< int, int > &OccupancyMap, int layer)
Definition: HGCalRecHitValidation.cc:248
edm::Run
Definition: Run.h:45
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
HGCalRecHitValidation::EtaPhi_Minus_
std::vector< MonitorElement * > EtaPhi_Minus_
Definition: HGCalRecHitValidation.cc:83
ALCARECOPromptCalibProdSiPixelAli0T_cff.mode
mode
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:96
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
HGCalRecHitValidation::recHitSource_
edm::EDGetToken recHitSource_
Definition: HGCalRecHitValidation.cc:74
HGCalRecHitValidation::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: HGCalRecHitValidation.cc:292
DQMStore.h
edm::SortedCollection::size
size_type size() const
Definition: SortedCollection.h:215
HcalRecNumberingRecord.h
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
hinfo
Definition: TauTagValidation.h:55
HGCalRecHitValidation::OccupancyMap_plus
std::map< int, int > OccupancyMap_plus
Definition: HGCalRecHitValidation.cc:79
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle
Definition: AssociativeIterator.h:50
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
HGCalDetId::layer
int layer() const
get the layer #
Definition: HGCalDetId.h:46
HGCalRecHitValidation::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HGCalRecHitValidation.cc:112
DDCompactView.h
HGCSiliconDetId
Definition: HGCSiliconDetId.h:22
HGCalDDDConstants
Definition: HGCalDDDConstants.h:25
ForwardSubdetector.h
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
HGCScintillatorDetId::layer
int layer() const
get the layer #
Definition: HGCScintillatorDetId.h:47
DetId
Definition: DetId.h:17
MakerMacros.h
dqm::legacy::DQMStore::IBooker
dqm::implementation::IBooker IBooker
Definition: DQMStore.h:729
HGCalRecHitValidation::energysum::e25
double e25
Definition: HGCalRecHitValidation.cc:45
CaloGeometry
Definition: CaloGeometry.h:21
HGCalGeometryMode::Trapezoid
Definition: HGCalGeometryMode.h:25
HGCalRecHitValidation::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: HGCalRecHitValidation.cc:121
HGCalRecHitValidation::layers_
unsigned int layers_
Definition: HGCalRecHitValidation.cc:77
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
HGCalRecHitValidation::HitOccupancy_Plus_
std::vector< MonitorElement * > HitOccupancy_Plus_
Definition: HGCalRecHitValidation.cc:85
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
HGCalRecHitValidation::energysum::energysum
energysum()
Definition: HGCalRecHitValidation.cc:44
HGCalRecHitValidation::HitsInfo::z
float z
Definition: HGCalRecHitValidation.cc:53
HGCalRecHitValidation::HitsInfo::layer
float layer
Definition: HGCalRecHitValidation.cc:54
HGCalRecHitValidation::energysum
Definition: HGCalRecHitValidation.cc:43
edm::ESHandle< CaloGeometry >
HGCalRecHitValidation::HGCalRecHitValidation
HGCalRecHitValidation(const edm::ParameterSet &)
Definition: HGCalRecHitValidation.cc:91
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
Point3DBase< float, GlobalTag >
HGCalGeometry
Definition: HGCalGeometry.h:30
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
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
HGCalRecHitValidation::recHitValidation
void recHitValidation(DetId &detId, int layer, const T1 *geom, T2 it)
Definition: HGCalRecHitValidation.cc:218
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCalRecHitValidation::firstLayer_
int firstLayer_
Definition: HGCalRecHitValidation.cc:78
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
HGCalRecHitValidation::EtaPhi_Plus_
std::vector< MonitorElement * > EtaPhi_Plus_
Definition: HGCalRecHitValidation.cc:82
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
HGCRecHitCollections.h
HGCalGeometry.h
edm::ParameterSet
Definition: ParameterSet.h:36
HGCalRecHitValidation::HitOccupancy_Minus_
std::vector< MonitorElement * > HitOccupancy_Minus_
Definition: HGCalRecHitValidation.cc:86
Event.h
HGCalRecHitValidation::HitsInfo
Definition: HGCalRecHitValidation.cc:48
HGCalGeometryMode::Hexagon8Full
Definition: HGCalGeometryMode.h:25
HGCalRecHitValidation::HitsInfo::HitsInfo
HitsInfo()
Definition: HGCalRecHitValidation.cc:49
HcalDetId.h
HGCalRecHitValidation::dqmBeginRun
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
Definition: HGCalRecHitValidation.cc:277
HGCalRecHitValidation::energysum::e100
double e100
Definition: HGCalRecHitValidation.cc:45
HGCalRecHitValidation::HitsInfo::time
float time
Definition: HGCalRecHitValidation.cc:53
HGCalDDDConstants::layers
unsigned int layers(bool reco) const
Definition: HGCalDDDConstants.cc:558
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
HGCalGeometryMode::GeometryMode
GeometryMode
Definition: HGCalGeometryMode.h:25
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
HGCalRecHitValidation::HitsInfo::energy
float energy
Definition: HGCalRecHitValidation.cc:53
HGCalRecHitValidation::HitsInfo::eta
float eta
Definition: HGCalRecHitValidation.cc:53
edm::LogVerbatim
Definition: MessageLogger.h:297
HGCalRecHitValidation::HitsInfo::x
float x
Definition: HGCalRecHitValidation.cc:53
HGCalRecHitValidation::energysum::e1000
double e1000
Definition: HGCalRecHitValidation.cc:45
IdealGeometryRecord.h
edm::EventSetup
Definition: EventSetup.h:57
HcalSubdetector.h
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
edm::EDGetToken
Definition: EDGetToken.h:35
get
#define get
motionPolicyChamber.geom0
geom0
Definition: motionPolicyChamber.py:83
HGCalRecHitValidation::fillHitsInfo
void fillHitsInfo()
Definition: HGCalRecHitValidation.cc:255
HGCalRecHitValidation::energy_
std::vector< MonitorElement * > energy_
Definition: HGCalRecHitValidation.cc:84
InputTag.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
HGCalDetId
Definition: HGCalDetId.h:8
HGCalRecHitValidation::MeanHitOccupancy_Plus_
MonitorElement * MeanHitOccupancy_Plus_
Definition: HGCalRecHitValidation.cc:87
std
Definition: JetResolutionObject.h:76
HcalEndcap
Definition: HcalAssistant.h:34
DetId.h
Frameworkfwd.h
HGCScintillatorDetId
Definition: HGCScintillatorDetId.h:21
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
Exception
Definition: hltDiff.cc:246
HGCalRecHitValidation::HitsInfo::y
float y
Definition: HGCalRecHitValidation.cc:53
CaloGeometry.h
HGCalRecHitValidation::verbosity_
int verbosity_
Definition: HGCalRecHitValidation.cc:76
HcalDDDRecConstants.h
HGCalRecHitValidation::energysum::e15
double e15
Definition: HGCalRecHitValidation.cc:45
HGCalRecHitValidation::OccupancyMap_minus
std::map< int, int > OccupancyMap_minus
Definition: HGCalRecHitValidation.cc:80
EventSetup.h
HcalRecHitCollections.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
HGCalGeometryMode::Hexagon8
Definition: HGCalGeometryMode.h:25
HcalDDDRecConstants::getMaxDepth
int getMaxDepth(const int &type) const
Definition: HcalDDDRecConstants.h:88
HcalDDDRecConstants
Definition: HcalDDDRecConstants.h:23
pi
const Double_t pi
Definition: trackSplitPlot.h:36
HGCalDDDConstants.h
ParameterSet.h
HGCalRecHitValidation::ifHCAL_
bool ifHCAL_
Definition: HGCalRecHitValidation.cc:75
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
HGCalRecHitValidation::energysum::e250
double e250
Definition: HGCalRecHitValidation.cc:45
edm::InputTag
Definition: InputTag.h:15
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
IdealGeometryRecord
Definition: IdealGeometryRecord.h:27
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
HGCSiliconDetId::layer
int layer() const
get the layer #
Definition: HGCSiliconDetId.h:57
HGCalRecHitValidation::energysum::e50
double e50
Definition: HGCalRecHitValidation.cc:45