|
|
Go to the documentation of this file.
93 edm::LogInfo(
"Phase2ITMonitorRecHit") <<
">>> Construct Phase2ITMonitorRecHit ";
97 edm::LogInfo(
"Phase2ITMonitorRecHit") <<
">>> Destroy Phase2ITMonitorRecHit ";
108 std::map<std::string, unsigned int> nrechitLayerMap;
109 unsigned long int nTotrechitsinevt = 0;
111 for (
const auto& DSViter : *
rechits) {
113 unsigned int rawid(DSViter.detId());
120 nTotrechitsinevt += DSViter.size();
121 auto counterDet = nrechitLayerMap.find(
key);
122 if (nrechitLayerMap.find(
key) == nrechitLayerMap.end()) {
123 nrechitLayerMap.emplace(
key, DSViter.size());
125 counterDet->second += DSViter.size();
128 for (
const auto& rechit : DSViter) {
130 Global3DPoint globalPos = geomDetunit->surface().toGlobal(lp);
132 double gx = globalPos.
x() * 10.;
133 double gy = globalPos.
y() * 10.;
134 double gz = globalPos.
z() * 10.;
135 double gr = globalPos.
perp() * 10.;
146 layerMEs_[
key].clusterSizeX->Fill(rechit.cluster()->sizeX());
148 layerMEs_[
key].clusterSizeY->Fill(rechit.cluster()->sizeY());
159 float eta = geomDetunit->surface().toGlobal(lp).eta();
170 for (
const auto& lme : nrechitLayerMap)
172 layerMEs_[lme.first].numberRecHits->Fill(lme.second);
187 edm::LogInfo(
"Phase2ITMonitorRecHit") <<
" Booking Histograms in : " << top_folder;
208 if (theTkDigiGeomWatcher.
check(iSetup)) {
215 unsigned int detId_raw = det_u->geographicalId().rawId();
216 edm::LogInfo(
"Phase2ITMonitorRecHit") <<
"Detid:" << detId_raw <<
"\tsubdet=" << det_u->subDetector()
231 edm::LogInfo(
"Phase2ITMonitorRecHit") <<
" Booking Histograms in : " << (subdir +
"/" +
key);
270 psd0.
add<
std::string>(
"title",
"NumberRecHits;Number of RecHits;");
271 psd0.
add<
double>(
"xmin", 0.0);
272 psd0.
add<
bool>(
"switch",
true);
273 psd0.
add<
double>(
"xmax", 250000.0);
274 psd0.
add<
int>(
"NxBins", 250);
280 psd0.
add<
std::string>(
"title",
"Global_Position_RZ_IT_barrel;z [mm];r [mm]");
281 psd0.
add<
double>(
"ymax", 300.0);
282 psd0.
add<
int>(
"NxBins", 1500);
283 psd0.
add<
int>(
"NyBins", 300);
284 psd0.
add<
bool>(
"switch",
true);
285 psd0.
add<
double>(
"xmax", 3000.0);
286 psd0.
add<
double>(
"xmin", -3000.0);
287 psd0.
add<
double>(
"ymin", 0.0);
293 psd0.
add<
std::string>(
"title",
"Global_Position_XY_IT_barrel;x [mm];y [mm];");
294 psd0.
add<
double>(
"ymax", 300.0);
295 psd0.
add<
int>(
"NxBins", 600);
296 psd0.
add<
int>(
"NyBins", 600);
297 psd0.
add<
bool>(
"switch",
true);
298 psd0.
add<
double>(
"xmax", 300.0);
299 psd0.
add<
double>(
"xmin", -300.0);
300 psd0.
add<
double>(
"ymin", -300.0);
306 psd0.
add<
std::string>(
"title",
"Global_Position_RZ_IT_endcap;z [mm];r [mm]");
307 psd0.
add<
double>(
"ymax", 300.0);
308 psd0.
add<
int>(
"NxBins", 1500);
309 psd0.
add<
int>(
"NyBins", 300);
310 psd0.
add<
bool>(
"switch",
true);
311 psd0.
add<
double>(
"xmax", 3000.0);
312 psd0.
add<
double>(
"xmin", -3000.0);
313 psd0.
add<
double>(
"ymin", 0.0);
319 psd0.
add<
std::string>(
"title",
"Global_Position_XY_IT_endcap; x [mm]; y [mm]");
320 psd0.
add<
double>(
"ymax", 300.0);
321 psd0.
add<
int>(
"NxBins", 600);
322 psd0.
add<
int>(
"NyBins", 600);
323 psd0.
add<
bool>(
"switch",
true);
324 psd0.
add<
double>(
"xmax", 300.0);
325 psd0.
add<
double>(
"xmin", -300.0);
326 psd0.
add<
double>(
"ymin", -300.0);
333 psd0.
add<
std::string>(
"title",
"NumberRecHits;Number of RecHits;");
334 psd0.
add<
double>(
"xmin", 0.0);
335 psd0.
add<
bool>(
"switch",
true);
336 psd0.
add<
double>(
"xmax", 150000.0);
337 psd0.
add<
int>(
"NxBins", 150);
343 psd0.
add<
std::string>(
"title",
"Global_Position_RZ;z [mm];r [mm]");
344 psd0.
add<
double>(
"ymax", 300.0);
345 psd0.
add<
int>(
"NxBins", 1500);
346 psd0.
add<
int>(
"NyBins", 300);
347 psd0.
add<
bool>(
"switch",
false);
348 psd0.
add<
double>(
"xmax", 3000.0);
349 psd0.
add<
double>(
"xmin", -3000.0);
350 psd0.
add<
double>(
"ymin", 0.0);
356 psd0.
add<
std::string>(
"title",
"Global_Position_XY;x [mm]; y[mm]");
357 psd0.
add<
double>(
"ymax", 300.0);
358 psd0.
add<
int>(
"NxBins", 600);
359 psd0.
add<
int>(
"NyBins", 600);
360 psd0.
add<
bool>(
"switch",
false);
361 psd0.
add<
double>(
"xmax", 300.0);
362 psd0.
add<
double>(
"xmin", -300.0);
363 psd0.
add<
double>(
"ymin", -300.0);
370 psd0.
add<
double>(
"ymax", 0.0);
371 psd0.
add<
int>(
"NxBins", 500);
372 psd0.
add<
int>(
"NyBins", 500);
373 psd0.
add<
bool>(
"switch",
true);
374 psd0.
add<
double>(
"xmax", 0.0);
375 psd0.
add<
double>(
"xmin", 0.0);
376 psd0.
add<
double>(
"ymin", 0.0);
383 psd0.
add<
double>(
"xmin", -0.5);
384 psd0.
add<
bool>(
"switch",
true);
385 psd0.
add<
double>(
"xmax", 20.5);
386 psd0.
add<
int>(
"NxBins", 21);
393 psd0.
add<
double>(
"xmin", -0.5);
394 psd0.
add<
bool>(
"switch",
true);
395 psd0.
add<
double>(
"xmax", 25.5);
396 psd0.
add<
int>(
"NxBins", 26);
402 psd0.
add<
std::string>(
"title",
"RecHit_X;RecHit position X dimension;");
403 psd0.
add<
double>(
"xmin", -2.5);
404 psd0.
add<
bool>(
"switch",
true);
405 psd0.
add<
double>(
"xmax", 2.5);
406 psd0.
add<
int>(
"NxBins", 100);
412 psd0.
add<
std::string>(
"title",
"RecHit_Y;RecHit position X dimension;");
413 psd0.
add<
double>(
"xmin", -2.5);
414 psd0.
add<
bool>(
"switch",
true);
415 psd0.
add<
double>(
"xmax", 2.5);
416 psd0.
add<
int>(
"NxBins", 100);
422 psd0.
add<
std::string>(
"title",
"RecHit_X_error_Vs_eta;#eta;x error [#mum]");
423 psd0.
add<
bool>(
"switch",
true);
424 psd0.
add<
int>(
"NxBins", 82);
425 psd0.
add<
double>(
"xmax", 4.1);
426 psd0.
add<
double>(
"xmin", -4.1);
427 psd0.
add<
double>(
"ymax", 10.0);
428 psd0.
add<
double>(
"ymin", 0.);
434 psd0.
add<
std::string>(
"title",
"RecHit_Y_error_Vs_eta;#eta;y error [#mum]");
435 psd0.
add<
bool>(
"switch",
true);
436 psd0.
add<
int>(
"NxBins", 82);
437 psd0.
add<
double>(
"xmax", 4.1);
438 psd0.
add<
double>(
"xmin", -4.1);
439 psd0.
add<
double>(
"ymax", 10.0);
440 psd0.
add<
double>(
"ymin", 0.);
445 descriptions.
add(
"Phase2ITMonitorRecHit",
desc);
bool check(const edm::EventSetup &iSetup)
T const * product() const
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
MonitorElement * globalRZ_barrel_
static constexpr float million
virtual void setCurrentFolder(std::string const &fullpath)
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
Log< level::Info, false > LogInfo
MonitorElement * globalRZ_endcap_
std::map< std::string, RecHitME > layerMEs_
const TrackerGeometry * tkGeom_
void bookLayerHistos(DQMStore::IBooker &ibooker, unsigned int det_id, std::string &subdir)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
MonitorElement * clusterSizeX
Phase2ITMonitorRecHit(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
MonitorElement * localPosXY
MonitorElement * clusterSizeY
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
const edm::EDGetTokenT< SiPixelRecHitCollection > tokenRecHitsIT_
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
MonitorElement * book2DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
const TrackerTopology * tTopo_
MonitorElement * numberRecHits_
~Phase2ITMonitorRecHit() override
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
MonitorElement * globalXY_barrel_
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
MonitorElement * bookProfile1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
MonitorElement * globalPosXY
MonitorElement * globalPosRZ
MonitorElement * numberRecHits
T getParameter(std::string const &) const
void fillITHistos(const edm::Event &iEvent)
edm::ParameterSet config_
MonitorElement * globalXY_endcap_