92 unsigned int n_reco_etl[2] = {0, 0};
94 for (
const auto&
recHit : *etlRecHitsHandle) {
99 if (thedet ==
nullptr)
100 throw cms::Exception(
"EtlRecHitsValidation") <<
"GeographicalID: " << std::hex << geoId.
rawId() <<
" (" 101 << detId.
rawId() <<
") is invalid!" <<
std::dec << std::endl;
105 const auto& global_point = thedet->
toGlobal(local_point);
109 int idet = (detId.
zside() + 1) / 2;
144 meNhits_[0] = ibook.
book1D(
"EtlNhitsZneg",
"Number of ETL RECO hits (-Z);N_{RECO}", 100, 0., 5000.);
145 meNhits_[1] = ibook.
book1D(
"EtlNhitsZpos",
"Number of ETL RECO hits (+Z);N_{RECO}", 100, 0., 5000.);
147 meHitEnergy_[0] = ibook.
book1D(
"EtlHitEnergyZneg",
"ETL RECO hits energy (-Z);E_{RECO} [MeV]", 100, 0., 3.);
148 meHitEnergy_[1] = ibook.
book1D(
"EtlHitEnergyZpos",
"ETL RECO hits energy (+Z);E_{RECO} [MeV]", 100, 0., 3.);
150 meHitTime_[0] = ibook.
book1D(
"EtlHitTimeZneg",
"ETL RECO hits ToA (-Z);ToA_{RECO} [ns]", 100, 0., 25.);
151 meHitTime_[1] = ibook.
book1D(
"EtlHitTimeZpos",
"ETL RECO hits ToA (+Z);ToA_{RECO} [ns]", 100, 0., 25.);
154 "ETL RECO hits occupancy (-Z);X_{RECO} [cm];Y_{RECO} [cm]",
162 "ETL DIGI hits occupancy (+Z);X_{RECO} [cm];Y_{RECO} [cm]",
170 meHitX_[1] = ibook.
book1D(
"EtlHitXZpos",
"ETL RECO hits X (+Z);X_{RECO} [cm]", 100, -130., 130.);
171 meHitX_[0] = ibook.
book1D(
"EtlHitXZneg",
"ETL RECO hits X (-Z);X_{RECO} [cm]", 100, -130., 130.);
172 meHitY_[1] = ibook.
book1D(
"EtlHitYZpos",
"ETL RECO hits Y (+Z);Y_{RECO} [cm]", 100, -130., 130.);
173 meHitY_[0] = ibook.
book1D(
"EtlHitYZneg",
"ETL RECO hits Y (-Z);Y_{RECO} [cm]", 100, -130., 130.);
174 meHitZ_[1] = ibook.
book1D(
"EtlHitZZpos",
"ETL RECO hits Z (+Z);Z_{RECO} [cm]", 100, 303.4, 304.2);
175 meHitZ_[0] = ibook.
book1D(
"EtlHitZZneg",
"ETL RECO hits Z (-Z);Z_{RECO} [cm]", 100, -304.2, -303.4);
177 meHitPhi_[1] = ibook.
book1D(
"EtlHitPhiZpos",
"ETL RECO hits #phi (+Z);#phi_{RECO} [rad]", 100, -3.15, 3.15);
178 meHitPhi_[0] = ibook.
book1D(
"EtlHitPhiZneg",
"ETL RECO hits #phi (-Z);#phi_{RECO} [rad]", 100, -3.15, 3.15);
179 meHitEta_[1] = ibook.
book1D(
"EtlHitEtaZpos",
"ETL RECO hits #eta (+Z);#eta_{RECO}", 100, 1.56, 3.2);
180 meHitEta_[0] = ibook.
book1D(
"EtlHitEtaZneg",
"ETL RECO hits #eta (-Z);#eta_{RECO}", 100, -3.2, -1.56);
183 "EtlHitTvsEZpos",
"ETL RECO time vs energy (+Z);E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 2., 0., 100.);
185 "EtlHitTvsEZneg",
"ETL RECO time vs energy (-Z);E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 2., 0., 100.);
187 "EtlHitEvsPhiZpos",
"ETL RECO energy vs #phi (+Z);#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.15, 3.15, 0., 100.);
189 "EtlHitEvsPhiZneg",
"ETL RECO energy vs #phi (-Z);#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.15, 3.15, 0., 100.);
191 "EtlHitEvsEtaZpos",
"ETL RECO energy vs #eta (+Z);#eta_{RECO};E_{RECO} [MeV]", 50, 1.56, 3.2, 0., 100.);
193 "EtlHitEvsEtaZneg",
"ETL RECO energy vs #eta (-Z);#eta_{RECO};E_{RECO} [MeV]", 50, -3.2, -1.56, 0., 100.);
195 "EtlHitTvsPhiZpos",
"ETL RECO time vs #phi (+Z);#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.15, 3.15, 0., 100.);
197 "EtlHitTvsPhiZneg",
"ETL RECO time vs #phi (-Z);#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.15, 3.15, 0., 100.);
199 "EtlHitTvsEtaZpos",
"ETL RECO time vs #eta (+Z);#eta_{RECO};ToA_{RECO} [ns]", 50, 1.56, 3.2, 0., 100.);
201 "EtlHitTvsEtaZneg",
"ETL RECO time vs #eta (-Z);#eta_{RECO};ToA_{RECO} [ns]", 50, -3.2, -1.56, 0., 100.);
211 descriptions.
add(
"etlRecHits", desc);
MonitorElement * meHitPhi_[2]
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
MonitorElement * meHitEvsEta_[2]
virtual const Topology & topology() const
EtlRecHitsValidation(const edm::ParameterSet &)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
constexpr uint32_t rawId() const
get the raw id
MonitorElement * meHitEnergy_[2]
MonitorElement * meHitTime_[2]
MonitorElement * meHitZ_[2]
MonitorElement * meNhits_[2]
~EtlRecHitsValidation() override
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * meHitEvsPhi_[2]
const std::string folder_
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
const MTDGeomDet * idToDet(DetId) const override
MonitorElement * meHitEta_[2]
#define DEFINE_FWK_MODULE(type)
void setCurrentFolder(std::string const &fullpath)
ETLDetId geographicalId() const
MonitorElement * book1D(Args &&...args)
virtual float localX(float mpX) const =0
MonitorElement * meHitX_[2]
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
MonitorElement * meHitY_[2]
MonitorElement * meHitTvsPhi_[2]
MonitorElement * book2D(Args &&...args)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MonitorElement * meHitTvsEta_[2]
MonitorElement * meHitTvsE_[2]
Detector identifier class for the Endcap Timing Layer.
virtual float localY(float mpY) const =0
MonitorElement * meOccupancy_[2]
auto makeValid(const U &iOtherHandleType) noexcept(false)
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_
T const * product() const