|
|
Go to the documentation of this file.
87 hitMinEnergy1Dis_(iConfig.getParameter<double>(
"hitMinimumEnergy1Dis")),
88 hitMinEnergy2Dis_(iConfig.getParameter<double>(
"hitMinimumEnergy2Dis")) {
103 bool topo1Dis =
false;
104 bool topo2Dis =
false;
121 unsigned int n_reco_etl[4] = {0, 0, 0, 0};
122 for (
const auto&
recHit : *etlRecHitsHandle) {
126 if (thedet ==
nullptr)
127 throw cms::Exception(
"EtlLocalRecoValidation") <<
"GeographicalID: " << std::hex << geoId.
rawId() <<
" ("
128 << detId.
rawId() <<
") is invalid!" <<
std::dec << std::endl;
132 const auto& global_point = thedet->
toGlobal(local_point);
137 if (detId.
zside() == -1) {
139 }
else if (detId.
zside() == 1) {
147 if ((detId.
zside() == -1) && (detId.
nDisc() == 1)) {
149 }
else if ((detId.
zside() == -1) && (detId.
nDisc() == 2)) {
151 }
else if ((detId.
zside() == 1) && (detId.
nDisc() == 1)) {
153 }
else if ((detId.
zside() == 1) && (detId.
nDisc() == 2)) {
186 for (
int i = 0;
i < 4;
i++) {
192 for (
const auto& DetSetClu : *etlRecCluHandle) {
193 for (
const auto& cluster : DetSetClu) {
203 DetId detIdObject(cluId);
204 const auto& genericDet =
geom->idToDetUnit(detIdObject);
205 if (genericDet ==
nullptr) {
207 <<
"GeographicalID: " << std::hex << cluId <<
" is invalid!" <<
std::dec << std::endl;
210 const PixelTopology& topo = static_cast<const PixelTopology&>(genericDet->topology());
213 const auto& global_point = genericDet->toGlobal(local_point);
218 if (cluId.
zside() == -1) {
220 }
else if (cluId.
zside() == 1) {
228 if ((cluId.
zside() == -1) && (cluId.
nDisc() == 1)) {
230 }
else if ((cluId.
zside() == -1) && (cluId.
nDisc() == 2)) {
232 }
else if ((cluId.
zside() == 1) && (cluId.
nDisc() == 1)) {
234 }
else if ((cluId.
zside() == 1) && (cluId.
nDisc() == 2)) {
260 "EtlNhitsZnegD1",
"Number of ETL RECO hits (-Z, Single(topo1D)/First(topo2D) disk);N_{RECO}", 100, 0., 5000.);
261 meNhits_[1] = ibook.
book1D(
"EtlNhitsZnegD2",
"Number of ETL RECO hits (-Z, Second disk);N_{RECO}", 100, 0., 5000.);
263 "EtlNhitsZposD1",
"Number of ETL RECO hits (+Z, Single(topo1D)/First(topo2D) disk);N_{RECO}", 100, 0., 5000.);
264 meNhits_[3] = ibook.
book1D(
"EtlNhitsZposD2",
"Number of ETL RECO hits (+Z, Second disk);N_{RECO}", 100, 0., 5000.);
266 "EtlHitEnergyZnegD1",
"ETL RECO hits energy (-Z, Single(topo1D)/First(topo2D) disk);E_{RECO} [MeV]", 100, 0., 3.);
268 ibook.
book1D(
"EtlHitEnergyZnegD2",
"ETL RECO hits energy (-Z, Second disk);E_{RECO} [MeV]", 100, 0., 3.);
270 "EtlHitEnergyZposD1",
"ETL RECO hits energy (+Z, Single(topo1D)/First(topo2D) disk);E_{RECO} [MeV]", 100, 0., 3.);
272 ibook.
book1D(
"EtlHitEnergyZposD2",
"ETL RECO hits energy (+Z, Second disk);E_{RECO} [MeV]", 100, 0., 3.);
274 "EtlHitTimeZnegD1",
"ETL RECO hits ToA (-Z, Single(topo1D)/First(topo2D) disk);ToA_{RECO} [ns]", 100, 0., 25.);
275 meHitTime_[1] = ibook.
book1D(
"EtlHitTimeZnegD2",
"ETL RECO hits ToA (-Z, Second disk);ToA_{RECO} [ns]", 100, 0., 25.);
277 "EtlHitTimeZposD1",
"ETL RECO hits ToA (+Z, Single(topo1D)/First(topo2D) disk);ToA_{RECO} [ns]", 100, 0., 25.);
278 meHitTime_[3] = ibook.
book1D(
"EtlHitTimeZposD2",
"ETL RECO hits ToA (+Z, Second disk);ToA_{RECO} [ns]", 100, 0., 25.);
281 ibook.
book2D(
"EtlOccupancyZnegD1",
282 "ETL RECO hits occupancy (-Z, Single(topo1D)/First(topo2D) disk);X_{RECO} [cm];Y_{RECO} [cm]",
290 "ETL RECO hits occupancy (-Z, Second disk);X_{RECO} [cm];Y_{RECO} [cm]",
298 ibook.
book2D(
"EtlOccupancyZposD1",
299 "ETL RECO hits occupancy (+Z, Single(topo1D)/First(topo2D) disk);X_{RECO} [cm];Y_{RECO} [cm]",
307 "ETL RECO hits occupancy (+Z, Second disk);X_{RECO} [cm];Y_{RECO} [cm]",
316 "EtlHitXZnegD1",
"ETL RECO hits X (-Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]", 100, -130., 130.);
317 meHitX_[1] = ibook.
book1D(
"EtlHitXZnegD2",
"ETL RECO hits X (-Z, Second Disk);X_{RECO} [cm]", 100, -130., 130.);
319 "EtlHitXZposD1",
"ETL RECO hits X (+Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]", 100, -130., 130.);
320 meHitX_[3] = ibook.
book1D(
"EtlHitXZposD2",
"ETL RECO hits X (+Z, Second Disk);X_{RECO} [cm]", 100, -130., 130.);
322 "EtlHitYZnegD1",
"ETL RECO hits Y (-Z, Single(topo1D)/First(topo2D) Disk);Y_{RECO} [cm]", 100, -130., 130.);
323 meHitY_[1] = ibook.
book1D(
"EtlHitYZnegD2",
"ETL RECO hits Y (-Z, Second Disk);Y_{RECO} [cm]", 100, -130., 130.);
325 "EtlHitYZposD1",
"ETL RECO hits Y (+Z, Single(topo1D)/First(topo2D) Disk);Y_{RECO} [cm]", 100, -130., 130.);
326 meHitY_[3] = ibook.
book1D(
"EtlHitYZposD2",
"ETL RECO hits Y (+Z, Second Disk);Y_{RECO} [cm]", 100, -130., 130.);
328 "EtlHitZZnegD1",
"ETL RECO hits Z (-Z, Single(topo1D)/First(topo2D) Disk);Z_{RECO} [cm]", 100, -304.2, -303.4);
329 meHitZ_[1] = ibook.
book1D(
"EtlHitZZnegD2",
"ETL RECO hits Z (-Z, Second Disk);Z_{RECO} [cm]", 100, -304.2, -303.4);
331 "EtlHitZZposD1",
"ETL RECO hits Z (+Z, Single(topo1D)/First(topo2D) Disk);Z_{RECO} [cm]", 100, 303.4, 304.2);
332 meHitZ_[3] = ibook.
book1D(
"EtlHitZZposD2",
"ETL RECO hits Z (+Z, Second Disk);Z_{RECO} [cm]", 100, 303.4, 304.2);
334 "EtlHitPhiZnegD1",
"ETL RECO hits #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
336 ibook.
book1D(
"EtlHitPhiZnegD2",
"ETL RECO hits #phi (-Z, Second Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
338 "EtlHitPhiZposD1",
"ETL RECO hits #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
340 ibook.
book1D(
"EtlHitPhiZposD2",
"ETL RECO hits #phi (+Z, Second Disk);#phi_{RECO} [rad]", 100, -3.2, 3.2);
342 "EtlHitEtaZnegD1",
"ETL RECO hits #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, -3.2, -1.56);
343 meHitEta_[1] = ibook.
book1D(
"EtlHitEtaZnegD2",
"ETL RECO hits #eta (-Z, Second Disk);#eta_{RECO}", 100, -3.2, -1.56);
345 "EtlHitEtaZposD1",
"ETL RECO hits #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, 1.56, 3.2);
346 meHitEta_[3] = ibook.
book1D(
"EtlHitEtaZposD2",
"ETL RECO hits #eta (+Z, Second Disk);#eta_{RECO}", 100, 1.56, 3.2);
350 "ETL RECO time vs energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
357 "ETL RECO time vs energy (-Z, Second Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
365 "ETL RECO time vs energy (+Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
372 "ETL RECO time vs energy (+Z, Second Disk);E_{RECO} [MeV];ToA_{RECO} [ns]",
379 "EtlHitEvsPhiZnegD1",
380 "ETL RECO energy vs #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
387 "ETL RECO energy vs #phi (-Z, Second Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
394 "EtlHitEvsPhiZposD1",
395 "ETL RECO energy vs #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
402 "ETL RECO energy vs #phi (+Z, Second Disk);#phi_{RECO} [rad];E_{RECO} [MeV]",
410 "ETL RECO energy vs #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};E_{RECO} [MeV]",
417 "ETL RECO energy vs #eta (-Z, Second Disk);#eta_{RECO};E_{RECO} [MeV]",
425 "ETL RECO energy vs #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};E_{RECO} [MeV]",
432 "ETL RECO energy vs #eta (+Z, Second Disk);#eta_{RECO};E_{RECO} [MeV]",
439 "EtlHitTvsPhiZnegD1",
440 "ETL RECO time vs #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
447 "ETL RECO time vs #phi (-Z, Second Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
454 "EtlHitTvsPhiZposD1",
455 "ETL RECO time vs #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
462 "ETL RECO time vs #phi (+Z, Second Disk);#phi_{RECO} [rad];ToA_{RECO} [ns]",
470 "ETL RECO time vs #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};ToA_{RECO} [ns]",
477 "ETL RECO time vs #eta (-Z, Second Disk);#eta_{RECO};ToA_{RECO} [ns]",
485 "ETL RECO time vs #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO};ToA_{RECO} [ns]",
492 "ETL RECO time vs #eta (+Z, Second Disk);#eta_{RECO};ToA_{RECO} [ns]",
499 ibook.
book1D(
"EtlCluTimeZnegD1",
"ETL cluster ToA (-Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25);
500 meCluTime_[1] = ibook.
book1D(
"EtlCluTimeZnegD2",
"ETL cluster ToA (-Z, Second Disk);ToA [ns]", 250, 0, 25);
502 ibook.
book1D(
"EtlCluTimeZposD1",
"ETL cluster ToA (+Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25);
503 meCluTime_[3] = ibook.
book1D(
"EtlCluTimeZposD2",
"ETL cluster ToA (+Z, Second Disk);ToA [ns]", 250, 0, 25);
505 "EtlCluEnergyZnegD1",
"ETL cluster energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV]", 100, 0, 10);
507 ibook.
book1D(
"EtlCluEnergyZnegD2",
"ETL cluster energy (-Z, Second Disk);E_{RECO} [MeV]", 100, 0, 10);
509 "EtlCluEnergyZposD1",
"ETL cluster energy (+Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV]", 100, 0, 10);
511 ibook.
book1D(
"EtlCluEnergyZposD2",
"ETL cluster energy (+Z, Second Disk);E_{RECO} [MeV]", 100, 0, 10);
513 "EtlCluPhiZnegD1",
"ETL cluster #phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
515 ibook.
book1D(
"EtlCluPhiZnegD2",
"ETL cluster #phi (-Z, Second Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
517 "EtlCluPhiZposD1",
"ETL cluster #phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
519 ibook.
book1D(
"EtlCluPhiZposD2",
"ETL cluster #phi (+Z, Second Disk);#phi_{RECO} [rad]", 126, -3.2, 3.2);
521 "EtlCluEtaZnegD1",
"ETL cluster #eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, -3.2, -1.4);
522 meCluEta_[1] = ibook.
book1D(
"EtlCluEtaZnegD2",
"ETL cluster #eta (-Z, Second Disk);#eta_{RECO}", 100, -3.2, -1.4);
524 "EtlCluEtaZposD1",
"ETL cluster #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, 1.4, 3.2);
525 meCluEta_[3] = ibook.
book1D(
"EtlCluEtaZposD2",
"ETL cluster #eta (+Z, Second Disk);#eta_{RECO}", 100, 1.4, 3.2);
527 "EtlCluHitNumberZnegD1",
"ETL hits per cluster (-Z, Single(topo1D)/First(topo2D) Disk);Cluster size", 10, 0, 10);
529 ibook.
book1D(
"EtlCluHitNumberZnegD2",
"ETL hits per cluster (-Z, Second Disk);Cluster size", 10, 0, 10);
531 "EtlCluHitNumberZposD1",
"ETL hits per cluster (+Z, Single(topo1D)/First(topo2D) Disk);Cluster size", 10, 0, 10);
533 ibook.
book1D(
"EtlCluHitNumberZposD2",
"ETL hits per cluster (+Z, Second Disk);Cluster size", 10, 0, 10);
535 ibook.
book2D(
"EtlOccupancyZnegD1",
536 "ETL cluster X vs Y (-Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
544 "ETL cluster X vs Y (-Z, Second Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
552 ibook.
book2D(
"EtlOccupancyZposD1",
553 "ETL cluster X vs Y (+Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
561 "ETL cluster X vs Y (+Z, Second Disk);X_{RECO} [cm]; Y_{RECO} [cm]",
577 desc.add<
double>(
"hitMinimumEnergy1Dis", 1.);
578 desc.add<
double>(
"hitMinimumEnergy2Dis", 0.001);
580 descriptions.
add(
"etlLocalReco",
desc);
T const * product() const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual void setCurrentFolder(std::string const &fullpath)
virtual const Topology & topology() const
Detector identifier class for the Endcap Timing Layer.
MonitorElement * meHitY_[4]
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * meHitEvsPhi_[4]
MonitorElement * meHitTvsPhi_[4]
MonitorElement * meHitEnergy_[4]
const std::string folder_
edm::EDGetTokenT< FTLClusterCollection > etlRecCluToken_
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const CaloTopology * topology(nullptr)
MonitorElement * meCluPhi_[4]
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
MonitorElement * meHitZ_[4]
ETLDetId geographicalId() const
MonitorElement * meCluEta_[4]
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
MonitorElement * meHitTime_[4]
MonitorElement * meHitX_[4]
MonitorElement * meOccupancy_[4]
MonitorElement * meCluOccupancy_[4]
MonitorElement * meCluTime_[4]
auto makeValid(const U &iOtherHandleType) noexcept(false)
MonitorElement * meCluEnergy_[4]
const float hitMinEnergy2Dis_
constexpr uint32_t rawId() const
get the raw id
MonitorElement * meNhits_[4]
~EtlLocalRecoValidation() override
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
virtual float localY(float mpY) const =0
MonitorElement * meHitTvsE_[4]
T getParameter(std::string const &) const
MonitorElement * meHitTvsEta_[4]
MonitorElement * meHitEvsEta_[4]
virtual float localX(float mpX) const =0
const float hitMinEnergy1Dis_
MonitorElement * meHitEta_[4]
EtlLocalRecoValidation(const edm::ParameterSet &)
MonitorElement * meCluHits_[4]
MonitorElement * meHitPhi_[4]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_