|
|
Go to the documentation of this file.
85 hitMinEnergy_(iConfig.getParameter<double>(
"hitMinimumEnergy")) {
105 unsigned int n_reco_etl[2] = {0, 0};
107 for (
const auto&
recHit : *etlRecHitsHandle) {
112 if (thedet ==
nullptr)
113 throw cms::Exception(
"EtlLocalRecoValidation") <<
"GeographicalID: " << std::hex << geoId.
rawId() <<
" ("
114 << detId.
rawId() <<
") is invalid!" <<
std::dec << std::endl;
118 const auto& global_point = thedet->
toGlobal(local_point);
122 int idet = (detId.
zside() + 1) / 2;
149 for (
const auto& DetSetClu : *etlRecCluHandle) {
150 for (
const auto& cluster : DetSetClu) {
154 DetId detIdObject(cluId);
155 const auto& genericDet =
geom->idToDetUnit(detIdObject);
156 if (genericDet ==
nullptr) {
158 <<
"GeographicalID: " << std::hex << cluId <<
" is invalid!" <<
std::dec << std::endl;
163 const PixelTopology& topo = static_cast<const PixelTopology&>(genericDet->topology());
167 const auto& global_point = genericDet->toGlobal(local_point);
169 int idet = (cluId.
zside() + 1) / 2;
189 meNhits_[0] = ibook.
book1D(
"EtlNhitsZneg",
"Number of ETL RECO hits (-Z);N_{RECO}", 100, 0., 5000.);
190 meNhits_[1] = ibook.
book1D(
"EtlNhitsZpos",
"Number of ETL RECO hits (+Z);N_{RECO}", 100, 0., 5000.);
192 meHitEnergy_[0] = ibook.
book1D(
"EtlHitEnergyZneg",
"ETL RECO hits energy (-Z);E_{RECO} [MeV]", 100, 0., 3.);
193 meHitEnergy_[1] = ibook.
book1D(
"EtlHitEnergyZpos",
"ETL RECO hits energy (+Z);E_{RECO} [MeV]", 100, 0., 3.);
195 meHitTime_[0] = ibook.
book1D(
"EtlHitTimeZneg",
"ETL RECO hits ToA (-Z);ToA_{RECO} [ns]", 100, 0., 25.);
196 meHitTime_[1] = ibook.
book1D(
"EtlHitTimeZpos",
"ETL RECO hits ToA (+Z);ToA_{RECO} [ns]", 100, 0., 25.);
199 "ETL RECO hits occupancy (-Z);X_{RECO} [cm];Y_{RECO} [cm]",
207 "ETL DIGI hits occupancy (+Z);X_{RECO} [cm];Y_{RECO} [cm]",
215 meHitX_[1] = ibook.
book1D(
"EtlHitXZpos",
"ETL RECO hits X (+Z);X_{RECO} [cm]", 100, -130., 130.);
216 meHitX_[0] = ibook.
book1D(
"EtlHitXZneg",
"ETL RECO hits X (-Z);X_{RECO} [cm]", 100, -130., 130.);
217 meHitY_[1] = ibook.
book1D(
"EtlHitYZpos",
"ETL RECO hits Y (+Z);Y_{RECO} [cm]", 100, -130., 130.);
218 meHitY_[0] = ibook.
book1D(
"EtlHitYZneg",
"ETL RECO hits Y (-Z);Y_{RECO} [cm]", 100, -130., 130.);
219 meHitZ_[1] = ibook.
book1D(
"EtlHitZZpos",
"ETL RECO hits Z (+Z);Z_{RECO} [cm]", 100, 303.4, 304.2);
220 meHitZ_[0] = ibook.
book1D(
"EtlHitZZneg",
"ETL RECO hits Z (-Z);Z_{RECO} [cm]", 100, -304.2, -303.4);
222 meHitPhi_[1] = ibook.
book1D(
"EtlHitPhiZpos",
"ETL RECO hits #phi (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
223 meHitPhi_[0] = ibook.
book1D(
"EtlHitPhiZneg",
"ETL RECO hits #phi (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
224 meHitEta_[1] = ibook.
book1D(
"EtlHitEtaZpos",
"ETL RECO hits #eta (+Z);#eta_{RECO}", 100, 1.56, 3.2);
225 meHitEta_[0] = ibook.
book1D(
"EtlHitEtaZneg",
"ETL RECO hits #eta (-Z);#eta_{RECO}", 100, -3.2, -1.56);
228 "EtlHitTvsEZpos",
"ETL RECO time vs energy (+Z);E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 2., 0., 100.);
230 "EtlHitTvsEZneg",
"ETL RECO time vs energy (-Z);E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 2., 0., 100.);
232 "EtlHitEvsPhiZpos",
"ETL RECO energy vs #phi (+Z);#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.2, 3.2, 0., 100.);
234 "EtlHitEvsPhiZneg",
"ETL RECO energy vs #phi (-Z);#phi_{RECO} [rad];E_{RECO} [MeV]", 50, -3.2, 3.2, 0., 100.);
236 "EtlHitEvsEtaZpos",
"ETL RECO energy vs #eta (+Z);#eta_{RECO};E_{RECO} [MeV]", 50, 1.56, 3.2, 0., 100.);
238 "EtlHitEvsEtaZneg",
"ETL RECO energy vs #eta (-Z);#eta_{RECO};E_{RECO} [MeV]", 50, -3.2, -1.56, 0., 100.);
240 "EtlHitTvsPhiZpos",
"ETL RECO time vs #phi (+Z);#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.2, 3.2, 0., 100.);
242 "EtlHitTvsPhiZneg",
"ETL RECO time vs #phi (-Z);#phi_{RECO} [rad];ToA_{RECO} [ns]", 50, -3.2, 3.2, 0., 100.);
244 "EtlHitTvsEtaZpos",
"ETL RECO time vs #eta (+Z);#eta_{RECO};ToA_{RECO} [ns]", 50, 1.56, 3.2, 0., 100.);
246 "EtlHitTvsEtaZneg",
"ETL RECO time vs #eta (-Z);#eta_{RECO};ToA_{RECO} [ns]", 50, -3.2, -1.56, 0., 100.);
247 meCluTime_[0] = ibook.
book1D(
"EtlCluTimeZneg",
"ETL cluster ToA (-Z);ToA [ns]", 250, 0, 25);
248 meCluTime_[1] = ibook.
book1D(
"EtlCluTimeZpos",
"ETL cluster ToA (+Z);ToA [ns]", 250, 0, 25);
249 meCluEnergy_[0] = ibook.
book1D(
"EtlCluEnergyZneg",
"ETL cluster energy (-Z);E_{RECO} [MeV]", 100, 0, 10);
250 meCluEnergy_[1] = ibook.
book1D(
"EtlCluEnergyZpos",
"ETL cluster energy (+Z);E_{RECO} [MeV]", 100, 0, 10);
251 meCluPhi_[0] = ibook.
book1D(
"EtlCluPhiZneg",
"ETL cluster #phi (-Z);#phi_{RECO} [rad]", 126, -3.2, 3.2);
252 meCluPhi_[1] = ibook.
book1D(
"EtlCluPhiZpos",
"ETL cluster #phi (+Z);#phi_{RECO} [rad]", 126, -3.2, 3.2);
253 meCluEta_[0] = ibook.
book1D(
"EtlCluEtaZneg",
"ETL cluster #eta (-Z);#eta_{RECO}", 100, -3.2, -1.4);
254 meCluEta_[1] = ibook.
book1D(
"EtlCluEtaZpos",
"ETL cluster #eta (+Z);#eta_{RECO}", 100, 1.4, 3.2);
255 meCluHits_[0] = ibook.
book1D(
"EtlCluHitNumberZneg",
"ETL hits per cluster (-Z);Cluster size", 10, 0, 10);
256 meCluHits_[1] = ibook.
book1D(
"EtlCluHitNumberZpos",
"ETL hits per cluster (+Z);Cluster size", 10, 0, 10);
258 "EtlOccupancyZneg",
"ETL cluster X vs Y (-Z);X_{RECO} [cm]; Y_{RECO} [cm]", 100, -150., 150., 100, -150, 150);
260 "EtlOccupancyZpos",
"ETL cluster X vs Y (+Z);X_{RECO} [cm]; Y_{RECO} [cm]", 100, -150., 150., 100, -150, 150);
270 desc.
add<
double>(
"hitMinimumEnergy", 1.);
272 descriptions.
add(
"etlLocalReco", desc);
T const * product() const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
MonitorElement * meHitTvsE_[2]
MonitorElement * meHitTvsPhi_[2]
MonitorElement * meCluEnergy_[2]
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * meHitZ_[2]
MonitorElement * meNhits_[2]
MonitorElement * meHitPhi_[2]
virtual const Topology & topology() const
MonitorElement * meHitEnergy_[2]
Detector identifier class for the Endcap Timing Layer.
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * meHitEvsPhi_[2]
const std::string folder_
MonitorElement * meHitEvsEta_[2]
edm::EDGetTokenT< FTLClusterCollection > etlRecCluToken_
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MonitorElement * meCluPhi_[2]
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())
ETLDetId geographicalId() const
MonitorElement * meHitY_[2]
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
MonitorElement * meHitEta_[2]
MonitorElement * meHitTime_[2]
MonitorElement * meCluOccupancy_[2]
MonitorElement * meOccupancy_[2]
auto makeValid(const U &iOtherHandleType) noexcept(false)
MonitorElement * meHitTvsEta_[2]
MonitorElement * meCluHits_[2]
MonitorElement * meCluTime_[2]
T getParameter(std::string const &) const
const float hitMinEnergy_
constexpr uint32_t rawId() const
get the raw id
MonitorElement * meHitX_[2]
~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 * meCluEta_[2]
virtual float localX(float mpX) const =0
EtlLocalRecoValidation(const edm::ParameterSet &)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_