File indexing completed on 2025-06-20 01:53:54
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DQM/SiTrackerPhase2/interface/TrackerPhase2DQMUtil.h"
0013 #include "DataFormats/DetId/interface/DetId.h"
0014 #include "DataFormats/GeometrySurface/interface/LocalError.h"
0015 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0016 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0017 #include "FWCore/Framework/interface/ESWatcher.h"
0018 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0019 #include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h"
0020 #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"
0021 #include "Geometry/CommonDetUnit/interface/TrackerGeomDet.h"
0022 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0023 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0024 #include "Validation/SiTrackerPhase2V/interface/Phase2OTValidateRecHitBase.h"
0025 #include "Validation/SiTrackerPhase2V/interface/TrackerPhase2ValidationUtil.h"
0026
0027
0028
0029
0030 Phase2OTValidateRecHitBase::Phase2OTValidateRecHitBase(const edm::ParameterSet& iConfig)
0031 : config_(iConfig),
0032 geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
0033 topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
0034 edm::LogInfo("Phase2OTValidateRecHitBase") << ">>> Construct Phase2OTValidateRecHitBase ";
0035 }
0036
0037
0038
0039
0040 Phase2OTValidateRecHitBase::~Phase2OTValidateRecHitBase() {
0041
0042
0043 edm::LogInfo("Phase2OTValidateRecHitBase") << ">>> Destroy Phase2OTValidateRecHitBase ";
0044 }
0045
0046
0047 void Phase2OTValidateRecHitBase::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
0048 tkGeom_ = &iSetup.getData(geomToken_);
0049 tTopo_ = &iSetup.getData(topoToken_);
0050 }
0051
0052 void Phase2OTValidateRecHitBase::fillOTRecHitHistos(const PSimHit* simhitClosest,
0053 const Phase2TrackerRecHit1D* rechit,
0054 const std::map<unsigned int, SimTrack>& selectedSimTrackMap,
0055 std::map<std::string, unsigned int>& nrechitLayerMapP_primary,
0056 std::map<std::string, unsigned int>& nrechitLayerMapS_primary) {
0057 auto detId = rechit->geographicalId();
0058
0059 const GeomDetUnit* geomDetunit(tkGeom_->idToDetUnit(detId));
0060 if (!geomDetunit)
0061 return;
0062
0063 TrackerGeometry::ModuleType mType = tkGeom_->getDetectorType(detId);
0064 std::string key = phase2tkutil::getOTHistoId(detId.rawId(), tTopo_);
0065
0066 LocalPoint lp = rechit->localPosition();
0067 auto simTrackIt(selectedSimTrackMap.find(simhitClosest->trackId()));
0068 bool isPrimary = false;
0069
0070 if (simTrackIt != selectedSimTrackMap.end())
0071 isPrimary = phase2tkutil::isPrimary(simTrackIt->second, simhitClosest);
0072 Local3DPoint simlp(simhitClosest->localPosition());
0073 const LocalError& lperr = rechit->localPositionError();
0074 double dx = lp.x() - simlp.x();
0075 double dy = lp.y() - simlp.y();
0076 double lperrx = std::sqrt(lperr.xx());
0077 double lperry = std::sqrt(lperr.yy());
0078 double pullx = 999.;
0079 double pully = 999.;
0080 if (lperr.xx())
0081 pullx = (dx) / std::sqrt(lperr.xx());
0082 if (lperr.yy())
0083 pully = (dx) / std::sqrt(lperr.yy());
0084 float eta = geomDetunit->surface().toGlobal(lp).eta();
0085 float phi = geomDetunit->surface().toGlobal(lp).phi();
0086
0087
0088 dx *= phase2tkutil::cmtomicron;
0089 lperrx *= phase2tkutil::cmtomicron;
0090 if (mType == TrackerGeometry::ModuleType::Ph2PSP) {
0091 dy *= phase2tkutil::cmtomicron;
0092 lperry *= phase2tkutil::cmtomicron;
0093
0094 layerMEs_[key].deltaX_P->Fill(dx);
0095 layerMEs_[key].deltaY_P->Fill(dy);
0096
0097 layerMEs_[key].errX_P->Fill(lperrx);
0098 layerMEs_[key].errY_P->Fill(lperry);
0099
0100 layerMEs_[key].pullX_P->Fill(pullx);
0101 layerMEs_[key].pullY_P->Fill(pully);
0102
0103 layerMEs_[key].deltaX_eta_P->Fill(std::abs(eta), dx);
0104 layerMEs_[key].deltaY_eta_P->Fill(std::abs(eta), dy);
0105 layerMEs_[key].deltaX_phi_P->Fill(phi, dx);
0106 layerMEs_[key].deltaY_phi_P->Fill(phi, dy);
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 layerMEs_[key].pullX_eta_P->Fill(eta, pullx);
0118 layerMEs_[key].pullY_eta_P->Fill(eta, pully);
0119
0120 if (isPrimary) {
0121 layerMEs_[key].deltaX_primary_P->Fill(dx);
0122 layerMEs_[key].deltaY_primary_P->Fill(dy);
0123 layerMEs_[key].pullX_primary_P->Fill(pullx);
0124 layerMEs_[key].pullY_primary_P->Fill(pully);
0125 } else
0126 nrechitLayerMapP_primary[key]--;
0127 } else if (mType == TrackerGeometry::ModuleType::Ph2PSS || mType == TrackerGeometry::ModuleType::Ph2SS) {
0128 layerMEs_[key].deltaX_S->Fill(dx);
0129 layerMEs_[key].deltaY_S->Fill(dy);
0130
0131 layerMEs_[key].pullX_S->Fill(pullx);
0132 layerMEs_[key].pullY_S->Fill(pully);
0133
0134 layerMEs_[key].errX_S->Fill(lperrx);
0135 layerMEs_[key].errY_S->Fill(lperry);
0136
0137 layerMEs_[key].deltaX_eta_S->Fill(std::abs(eta), dx);
0138 layerMEs_[key].deltaY_eta_S->Fill(std::abs(eta), dy);
0139 layerMEs_[key].deltaX_phi_S->Fill(phi, dx);
0140 layerMEs_[key].deltaY_phi_S->Fill(phi, dy);
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150 layerMEs_[key].pullX_eta_S->Fill(eta, pullx);
0151 layerMEs_[key].pullY_eta_S->Fill(eta, pully);
0152
0153 if (isPrimary) {
0154 layerMEs_[key].deltaX_primary_S->Fill(dx);
0155 layerMEs_[key].deltaY_primary_S->Fill(dy);
0156 layerMEs_[key].pullX_primary_S->Fill(pullx);
0157 layerMEs_[key].pullY_primary_S->Fill(pully);
0158 } else
0159 nrechitLayerMapS_primary[key]--;
0160 }
0161 }
0162
0163
0164
0165 void Phase2OTValidateRecHitBase::bookHistograms(DQMStore::IBooker& ibooker,
0166 edm::Run const& iRun,
0167 edm::EventSetup const& iSetup) {
0168 std::string top_folder = config_.getParameter<std::string>("TopFolderName");
0169
0170 edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
0171 if (theTkDigiGeomWatcher.check(iSetup)) {
0172 for (auto const& det_u : tkGeom_->detUnits()) {
0173
0174 if (det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
0175 det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC)
0176 continue;
0177 unsigned int detId_raw = det_u->geographicalId().rawId();
0178 bookLayerHistos(ibooker, detId_raw, top_folder);
0179 }
0180 }
0181 }
0182
0183
0184
0185
0186 void Phase2OTValidateRecHitBase::bookLayerHistos(DQMStore::IBooker& ibooker, unsigned int det_id, std::string& subdir) {
0187 std::string key = phase2tkutil::getOTHistoId(det_id, tTopo_);
0188 if (layerMEs_.find(key) == layerMEs_.end()) {
0189 ibooker.cd();
0190 RecHitME local_histos;
0191 ibooker.setCurrentFolder(subdir + "/" + key);
0192 edm::LogInfo("Phase2OTValidateRecHitBase") << " Booking Histograms in : " << key;
0193
0194 if (tkGeom_->getDetectorType(det_id) == TrackerGeometry::ModuleType::Ph2PSP) {
0195 local_histos.deltaX_P =
0196 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel"), ibooker);
0197 local_histos.deltaY_P =
0198 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel"), ibooker);
0199
0200 local_histos.errX_P =
0201 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("err_X_Pixel"), ibooker);
0202 local_histos.errY_P =
0203 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("err_Y_Pixel"), ibooker);
0204
0205 local_histos.pullX_P =
0206 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel"), ibooker);
0207 local_histos.pullY_P =
0208 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_Pixel"), ibooker);
0209
0210
0211
0212 local_histos.deltaX_eta_P =
0213 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_eta_Pixel"), ibooker);
0214 local_histos.deltaY_eta_P =
0215 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_eta_Pixel"), ibooker);
0216
0217 local_histos.deltaX_phi_P =
0218 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_phi_Pixel"), ibooker);
0219 local_histos.deltaY_phi_P =
0220 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_phi_Pixel"), ibooker);
0221
0222 local_histos.pullX_eta_P =
0223 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Pixel"), ibooker);
0224 local_histos.pullY_eta_P =
0225 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_vs_eta_Pixel"), ibooker);
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241 ibooker.setCurrentFolder(subdir + "/" + key + "/PrimarySimHits");
0242
0243 local_histos.numberRecHitsprimary_P =
0244 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("nRecHits_Pixel_primary"), ibooker);
0245
0246 local_histos.deltaX_primary_P =
0247 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
0248 local_histos.deltaY_primary_P =
0249 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel_Primary"), ibooker);
0250
0251 local_histos.pullX_primary_P =
0252 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel_Primary"), ibooker);
0253 local_histos.pullY_primary_P =
0254 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_Pixel_Primary"), ibooker);
0255 }
0256
0257 ibooker.setCurrentFolder(subdir + "/" + key);
0258 local_histos.deltaX_S =
0259 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip"), ibooker);
0260 local_histos.deltaY_S =
0261 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip"), ibooker);
0262
0263 local_histos.errX_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("err_X_Strip"), ibooker);
0264 local_histos.errY_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("err_Y_Strip"), ibooker);
0265
0266 local_histos.pullX_S =
0267 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip"), ibooker);
0268 local_histos.pullY_S =
0269 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_Strip"), ibooker);
0270
0271
0272
0273 local_histos.deltaX_eta_S =
0274 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_eta_Strip"), ibooker);
0275 local_histos.deltaY_eta_S =
0276 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_eta_Strip"), ibooker);
0277
0278 local_histos.deltaX_phi_S =
0279 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_phi_Strip"), ibooker);
0280 local_histos.deltaY_phi_S =
0281 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_phi_Strip"), ibooker);
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297 local_histos.pullX_eta_S =
0298 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Strip"), ibooker);
0299 local_histos.pullY_eta_S =
0300 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_vs_eta_Pixel"), ibooker);
0301
0302
0303 ibooker.setCurrentFolder(subdir + "/" + key + "/PrimarySimHits");
0304 local_histos.numberRecHitsprimary_S =
0305 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("nRecHits_Strip_primary"), ibooker);
0306
0307 local_histos.deltaX_primary_S =
0308 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip_Primary"), ibooker);
0309 local_histos.deltaY_primary_S =
0310 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip_Primary"), ibooker);
0311
0312 local_histos.pullX_primary_S =
0313 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip_Primary"), ibooker);
0314 local_histos.pullY_primary_S =
0315 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip_Primary"), ibooker);
0316
0317 layerMEs_.insert(std::make_pair(key, local_histos));
0318 }
0319 }
0320
0321 void Phase2OTValidateRecHitBase::fillPSetDescription(edm::ParameterSetDescription& desc) {
0322
0323
0324 std::string mptag = "macro-pixel sensor";
0325 std::string striptag = "strip sensor";
0326 {
0327 edm::ParameterSetDescription psd0;
0328 psd0.add<std::string>("name", "Delta_X_Pixel");
0329 psd0.add<std::string>("title", "#Delta X " + mptag + ";Cluster resolution X coordinate [#mum]");
0330 psd0.add<bool>("switch", true);
0331 psd0.add<double>("xmax", 250);
0332 psd0.add<double>("xmin", -250);
0333 psd0.add<int>("NxBins", 100);
0334 desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
0335 }
0336 {
0337 edm::ParameterSetDescription psd0;
0338 psd0.add<std::string>("name", "Delta_Y_Pixel");
0339 psd0.add<std::string>("title", "#Delta Y " + mptag + ";Cluster resolution Y coordinate [#mum]");
0340 psd0.add<bool>("switch", true);
0341 psd0.add<double>("xmin", -1500);
0342 psd0.add<double>("xmax", 1500);
0343 psd0.add<int>("NxBins", 100);
0344 desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
0345 }
0346 {
0347 edm::ParameterSetDescription psd0;
0348 psd0.add<std::string>("name", "err_X_Pixel");
0349 psd0.add<std::string>("title", "error X " + mptag + ";Cluster error X coordinate [#mum]");
0350 psd0.add<bool>("switch", true);
0351 psd0.add<double>("xmax", 0.);
0352 psd0.add<double>("xmin", 100.);
0353 psd0.add<int>("NxBins", 100);
0354 desc.add<edm::ParameterSetDescription>("err_X_Pixel", psd0);
0355 }
0356 {
0357 edm::ParameterSetDescription psd0;
0358 psd0.add<std::string>("name", "err_Y_Pixel");
0359 psd0.add<std::string>("title", "error Y " + mptag + ";Cluster error Y coordinate [#mum]");
0360 psd0.add<bool>("switch", true);
0361 psd0.add<double>("xmin", 0.);
0362 psd0.add<double>("xmax", 500.);
0363 psd0.add<int>("NxBins", 100);
0364 desc.add<edm::ParameterSetDescription>("err_Y_Pixel", psd0);
0365 }
0366
0367 {
0368 edm::ParameterSetDescription psd0;
0369 psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
0370 psd0.add<std::string>("title", "#Delta X " + mptag + ";cluster resolution X coordinate [#mum]");
0371 psd0.add<bool>("switch", true);
0372 psd0.add<double>("xmin", -250);
0373 psd0.add<double>("xmax", 250);
0374 psd0.add<int>("NxBins", 100);
0375 desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
0376 }
0377 {
0378 edm::ParameterSetDescription psd0;
0379 psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
0380 psd0.add<std::string>("title", "#Delta Y " + mptag + ";cluster resolution Y coordinate [#mum]");
0381 psd0.add<bool>("switch", true);
0382 psd0.add<double>("xmin", -500);
0383 psd0.add<double>("xmax", 500);
0384 psd0.add<int>("NxBins", 100);
0385 desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
0386 }
0387
0388 {
0389 edm::ParameterSetDescription psd0;
0390 psd0.add<std::string>("name", "Delta_X_vs_Eta_Pixel");
0391 psd0.add<std::string>("title", ";|#eta|;#Delta x [#mum]");
0392 psd0.add<int>("NyBins", 250);
0393 psd0.add<double>("ymin", -250.0);
0394 psd0.add<double>("ymax", 250.0);
0395 psd0.add<int>("NxBins", 41);
0396 psd0.add<bool>("switch", true);
0397 psd0.add<double>("xmax", 4.1);
0398 psd0.add<double>("xmin", 0.);
0399 desc.add<edm::ParameterSetDescription>("Delta_X_vs_eta_Pixel", psd0);
0400 }
0401 {
0402 edm::ParameterSetDescription psd0;
0403 psd0.add<std::string>("name", "Delta_Y_vs_Eta_Pixel");
0404 psd0.add<std::string>("title", ";|#eta|;#Delta y [#mum]");
0405 psd0.add<int>("NyBins", 300);
0406 psd0.add<double>("ymin", -1500.0);
0407 psd0.add<double>("ymax", 1500.0);
0408 psd0.add<int>("NxBins", 41);
0409 psd0.add<bool>("switch", true);
0410 psd0.add<double>("xmax", 4.1);
0411 psd0.add<double>("xmin", 0.);
0412 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_eta_Pixel", psd0);
0413 }
0414
0415 {
0416 edm::ParameterSetDescription psd0;
0417 psd0.add<std::string>("name", "Delta_X_vs_Phi_Pixel");
0418 psd0.add<std::string>("title", ";#phi;#Delta x [#mum]");
0419 psd0.add<int>("NyBins", 250);
0420 psd0.add<double>("ymin", -250.0);
0421 psd0.add<double>("ymax", 250.0);
0422 psd0.add<int>("NxBins", 36);
0423 psd0.add<bool>("switch", true);
0424 psd0.add<double>("xmax", M_PI);
0425 psd0.add<double>("xmin", -M_PI);
0426 desc.add<edm::ParameterSetDescription>("Delta_X_vs_phi_Pixel", psd0);
0427 }
0428 {
0429 edm::ParameterSetDescription psd0;
0430 psd0.add<std::string>("name", "Delta_Y_vs_Phi_Pixel");
0431 psd0.add<std::string>("title", ";#phi;#Delta y [#mum]");
0432 psd0.add<int>("NyBins", 300);
0433 psd0.add<double>("ymin", -1500.0);
0434 psd0.add<double>("ymax", 1500.0);
0435 psd0.add<int>("NxBins", 35);
0436 psd0.add<bool>("switch", true);
0437 psd0.add<double>("xmax", M_PI);
0438 psd0.add<double>("xmin", -M_PI);
0439 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_phi_Pixel", psd0);
0440 }
0441
0442
0443 {
0444 edm::ParameterSetDescription psd0;
0445 psd0.add<std::string>("name", "err_X_vs_Eta_Pixel");
0446 psd0.add<std::string>("title", ";|#eta|;local error x [#mum]");
0447 psd0.add<int>("NyBins", 100);
0448 psd0.add<double>("ymin", 0);
0449 psd0.add<double>("ymax", 100.0);
0450 psd0.add<int>("NxBins", 41);
0451 psd0.add<bool>("switch", true);
0452 psd0.add<double>("xmax", 4.1);
0453 psd0.add<double>("xmin", 0.);
0454 desc.add<edm::ParameterSetDescription>("err_X_vs_eta_Pixel", psd0);
0455 }
0456 {
0457 edm::ParameterSetDescription psd0;
0458 psd0.add<std::string>("name", "err_Y_vs_Eta_Pixel");
0459 psd0.add<std::string>("title", ";|#eta|;local error y [#mum]");
0460 psd0.add<int>("NyBins", 100);
0461 psd0.add<double>("ymin", 0.);
0462 psd0.add<double>("ymax", 500.0);
0463 psd0.add<int>("NxBins", 41);
0464 psd0.add<bool>("switch", true);
0465 psd0.add<double>("xmax", 4.1);
0466 psd0.add<double>("xmin", 0.);
0467 desc.add<edm::ParameterSetDescription>("err_Y_vs_eta_Pixel", psd0);
0468 }
0469
0470 {
0471 edm::ParameterSetDescription psd0;
0472 psd0.add<std::string>("name", "err_X_vs_Phi_Pixel");
0473 psd0.add<std::string>("title", ";#phi;local error x [#mum]");
0474 psd0.add<int>("NyBins", 100);
0475 psd0.add<double>("ymin", 0.);
0476 psd0.add<double>("ymax", 100.0);
0477 psd0.add<int>("NxBins", 36);
0478 psd0.add<bool>("switch", true);
0479 psd0.add<double>("xmax", M_PI);
0480 psd0.add<double>("xmin", -M_PI);
0481 desc.add<edm::ParameterSetDescription>("err_X_vs_phi_Pixel", psd0);
0482 }
0483 {
0484 edm::ParameterSetDescription psd0;
0485 psd0.add<std::string>("name", "err_Y_vs_Phi_Pixel");
0486 psd0.add<std::string>("title", ";#phi;local error y [#mum]");
0487 psd0.add<int>("NyBins", 100);
0488 psd0.add<double>("ymin", 0.);
0489 psd0.add<double>("ymax", 500.);
0490 psd0.add<int>("NxBins", 35);
0491 psd0.add<bool>("switch", true);
0492 psd0.add<double>("xmax", M_PI);
0493 psd0.add<double>("xmin", -M_PI);
0494 desc.add<edm::ParameterSetDescription>("err_Y_vs_phi_Pixel", psd0);
0495 }
0496
0497 {
0498 edm::ParameterSetDescription psd0;
0499 psd0.add<std::string>("name", "Pull_X_Pixel");
0500 psd0.add<std::string>("title", "Pull X " + mptag + ";pull x;");
0501 psd0.add<double>("xmin", -4.0);
0502 psd0.add<bool>("switch", true);
0503 psd0.add<double>("xmax", 4.0);
0504 psd0.add<int>("NxBins", 100);
0505 desc.add<edm::ParameterSetDescription>("Pull_X_Pixel", psd0);
0506 }
0507 {
0508 edm::ParameterSetDescription psd0;
0509 psd0.add<std::string>("name", "Pull_Y_Pixel");
0510 psd0.add<std::string>("title", "Pull Y " + mptag + ";pull y;");
0511 psd0.add<double>("xmin", -4.0);
0512 psd0.add<bool>("switch", true);
0513 psd0.add<double>("xmax", 4.0);
0514 psd0.add<int>("NxBins", 100);
0515 desc.add<edm::ParameterSetDescription>("Pull_Y_Pixel", psd0);
0516 }
0517
0518 {
0519 edm::ParameterSetDescription psd0;
0520 psd0.add<std::string>("name", "Pull_X_Pixel_Primary");
0521 psd0.add<std::string>("title", "Pull X " + mptag + ";pull x;");
0522 psd0.add<double>("xmin", -4.0);
0523 psd0.add<bool>("switch", true);
0524 psd0.add<double>("xmax", 4.0);
0525 psd0.add<int>("NxBins", 100);
0526 desc.add<edm::ParameterSetDescription>("Pull_X_Pixel_Primary", psd0);
0527 }
0528 {
0529 edm::ParameterSetDescription psd0;
0530 psd0.add<std::string>("name", "Pull_Y_Pixel_Primary");
0531 psd0.add<std::string>("title", "Pull Y " + mptag + ";pull y;");
0532 psd0.add<double>("xmin", -4.0);
0533 psd0.add<bool>("switch", true);
0534 psd0.add<double>("xmax", 4.0);
0535 psd0.add<int>("NxBins", 100);
0536 desc.add<edm::ParameterSetDescription>("Pull_Y_Pixel_Primary", psd0);
0537 }
0538 {
0539 edm::ParameterSetDescription psd0;
0540 psd0.add<std::string>("name", "Pull_X_vs_Eta");
0541 psd0.add<std::string>("title", ";#eta;pull x");
0542 psd0.add<double>("ymax", 4.0);
0543 psd0.add<int>("NxBins", 82);
0544 psd0.add<bool>("switch", true);
0545 psd0.add<double>("xmax", 4.1);
0546 psd0.add<double>("xmin", -4.1);
0547 psd0.add<double>("ymin", -4.0);
0548 desc.add<edm::ParameterSetDescription>("Pull_X_vs_eta_Pixel", psd0);
0549 }
0550 {
0551 edm::ParameterSetDescription psd0;
0552 psd0.add<std::string>("name", "Pull_Y_vs_Eta");
0553 psd0.add<std::string>("title", ";#eta;pull y");
0554 psd0.add<double>("ymax", 4.0);
0555 psd0.add<int>("NxBins", 82);
0556 psd0.add<bool>("switch", true);
0557 psd0.add<double>("xmax", 4.1);
0558 psd0.add<double>("xmin", -4.1);
0559 psd0.add<double>("ymin", -4.0);
0560 desc.add<edm::ParameterSetDescription>("Pull_Y_vs_eta_Pixel", psd0);
0561 }
0562 {
0563 edm::ParameterSetDescription psd0;
0564 psd0.add<std::string>("name", "Number_RecHits_matched_PrimarySimTrack");
0565 psd0.add<std::string>("title", "Number of RecHits matched to primary SimTrack;;");
0566 psd0.add<double>("xmin", 0.0);
0567 psd0.add<bool>("switch", true);
0568 psd0.add<double>("xmax", 10000.0);
0569 psd0.add<int>("NxBins", 100);
0570 desc.add<edm::ParameterSetDescription>("nRecHits_Pixel_primary", psd0);
0571 }
0572
0573 {
0574 edm::ParameterSetDescription psd0;
0575 psd0.add<std::string>("name", "Delta_X_Strip");
0576 psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
0577 psd0.add<bool>("switch", true);
0578 psd0.add<double>("xmin", -250);
0579 psd0.add<double>("xmax", 250);
0580 psd0.add<int>("NxBins", 100);
0581 desc.add<edm::ParameterSetDescription>("Delta_X_Strip", psd0);
0582 }
0583 {
0584 edm::ParameterSetDescription psd0;
0585 psd0.add<std::string>("name", "Delta_Y_Strip");
0586 psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
0587 psd0.add<double>("xmin", -5.0);
0588 psd0.add<bool>("switch", true);
0589 psd0.add<double>("xmax", 5.0);
0590 psd0.add<int>("NxBins", 100);
0591 desc.add<edm::ParameterSetDescription>("Delta_Y_Strip", psd0);
0592 }
0593
0594
0595 {
0596 edm::ParameterSetDescription psd0;
0597 psd0.add<std::string>("name", "err_X_Strip");
0598 psd0.add<std::string>("title", "local error X " + striptag + ";Cluster error X coordinate [#mum]");
0599 psd0.add<bool>("switch", true);
0600 psd0.add<double>("xmin", 0.);
0601 psd0.add<double>("xmax", 100);
0602 psd0.add<int>("NxBins", 100);
0603 desc.add<edm::ParameterSetDescription>("err_X_Strip", psd0);
0604 }
0605 {
0606 edm::ParameterSetDescription psd0;
0607 psd0.add<std::string>("name", "err_Y_Strip");
0608 psd0.add<std::string>("title", "local error Y " + striptag + ";Cluster error Y coordinate [cm]");
0609 psd0.add<double>("xmin", 0.);
0610 psd0.add<bool>("switch", true);
0611 psd0.add<double>("xmax", 10.);
0612 psd0.add<int>("NxBins", 100);
0613 desc.add<edm::ParameterSetDescription>("err_Y_Strip", psd0);
0614 }
0615 {
0616 edm::ParameterSetDescription psd0;
0617 psd0.add<std::string>("name", "Delta_X_Strip_Primary");
0618 psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
0619 psd0.add<bool>("switch", true);
0620 psd0.add<double>("xmin", -250);
0621 psd0.add<double>("xmax", 250);
0622 psd0.add<int>("NxBins", 100);
0623 desc.add<edm::ParameterSetDescription>("Delta_X_Strip_Primary", psd0);
0624 }
0625 {
0626 edm::ParameterSetDescription psd0;
0627 psd0.add<std::string>("name", "Delta_Y_Strip_Primary");
0628 psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
0629 psd0.add<double>("xmin", -5.0);
0630 psd0.add<bool>("switch", true);
0631 psd0.add<double>("xmax", 5.0);
0632 psd0.add<int>("NxBins", 100);
0633 desc.add<edm::ParameterSetDescription>("Delta_Y_Strip_Primary", psd0);
0634 }
0635
0636 {
0637 edm::ParameterSetDescription psd0;
0638 psd0.add<std::string>("name", "Delta_X_vs_Eta_Strip");
0639 psd0.add<std::string>("title", ";|#eta|;#Delta x [#mum]");
0640 psd0.add<int>("NyBins", 250);
0641 psd0.add<double>("ymin", -250.0);
0642 psd0.add<double>("ymax", 250.0);
0643 psd0.add<int>("NxBins", 41);
0644 psd0.add<bool>("switch", true);
0645 psd0.add<double>("xmax", 4.1);
0646 psd0.add<double>("xmin", 0.);
0647 desc.add<edm::ParameterSetDescription>("Delta_X_vs_eta_Strip", psd0);
0648 }
0649 {
0650 edm::ParameterSetDescription psd0;
0651 psd0.add<std::string>("name", "Delta_Y_vs_Eta_Strip");
0652 psd0.add<std::string>("title", ";|#eta|;#Delta y [cm]");
0653 psd0.add<int>("NyBins", 100);
0654 psd0.add<double>("ymin", -5.0);
0655 psd0.add<double>("ymax", 5.0);
0656 psd0.add<int>("NxBins", 41);
0657 psd0.add<bool>("switch", true);
0658 psd0.add<double>("xmax", 4.1);
0659 psd0.add<double>("xmin", 0.);
0660 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_eta_Strip", psd0);
0661 }
0662
0663 {
0664 edm::ParameterSetDescription psd0;
0665 psd0.add<std::string>("name", "Delta_X_vs_Phi_Strip");
0666 psd0.add<std::string>("title", ";#phi;#Delta x [#mum]");
0667 psd0.add<int>("NyBins", 250);
0668 psd0.add<double>("ymin", -250.0);
0669 psd0.add<double>("ymax", 250.0);
0670 psd0.add<int>("NxBins", 36);
0671 psd0.add<bool>("switch", true);
0672 psd0.add<double>("xmax", M_PI);
0673 psd0.add<double>("xmin", -M_PI);
0674 desc.add<edm::ParameterSetDescription>("Delta_X_vs_phi_Strip", psd0);
0675 }
0676 {
0677 edm::ParameterSetDescription psd0;
0678 psd0.add<std::string>("name", "Delta_Y_vs_Phi_Strip");
0679 psd0.add<std::string>("title", ";#phi;#Delta y [cm]");
0680 psd0.add<int>("NyBins", 100);
0681 psd0.add<double>("ymin", -5.0);
0682 psd0.add<double>("ymax", 5.0);
0683 psd0.add<int>("NxBins", 36);
0684 psd0.add<bool>("switch", true);
0685 psd0.add<double>("xmax", M_PI);
0686 psd0.add<double>("xmin", -M_PI);
0687 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_phi_Strip", psd0);
0688 }
0689
0690
0691 {
0692 edm::ParameterSetDescription psd0;
0693 psd0.add<std::string>("name", "err_X_vs_Eta_Strip");
0694 psd0.add<std::string>("title", ";|#eta|;local error x [#mum]");
0695 psd0.add<int>("NyBins", 100);
0696 psd0.add<double>("ymin", 0.);
0697 psd0.add<double>("ymax", 100.0);
0698 psd0.add<int>("NxBins", 41);
0699 psd0.add<bool>("switch", true);
0700 psd0.add<double>("xmax", 4.1);
0701 psd0.add<double>("xmin", 0.);
0702 desc.add<edm::ParameterSetDescription>("err_X_vs_eta_Strip", psd0);
0703 }
0704 {
0705 edm::ParameterSetDescription psd0;
0706 psd0.add<std::string>("name", "err_Y_vs_Eta_Strip");
0707 psd0.add<std::string>("title", ";|#eta|;local error y [cm]");
0708 psd0.add<int>("NyBins", 100);
0709 psd0.add<double>("ymin", 0.);
0710 psd0.add<double>("ymax", 10.);
0711 psd0.add<int>("NxBins", 41);
0712 psd0.add<bool>("switch", true);
0713 psd0.add<double>("xmax", 4.1);
0714 psd0.add<double>("xmin", 0.);
0715 desc.add<edm::ParameterSetDescription>("err_Y_vs_eta_Strip", psd0);
0716 }
0717 {
0718 edm::ParameterSetDescription psd0;
0719 psd0.add<std::string>("name", "err_X_vs_Phi_Strip");
0720 psd0.add<std::string>("title", ";#phi;local error x [#mum]");
0721 psd0.add<int>("NyBins", 100);
0722 psd0.add<double>("ymin", 0.);
0723 psd0.add<double>("ymax", 100.0);
0724 psd0.add<int>("NxBins", 36);
0725 psd0.add<bool>("switch", true);
0726 psd0.add<double>("xmax", M_PI);
0727 psd0.add<double>("xmin", -M_PI);
0728 desc.add<edm::ParameterSetDescription>("err_X_vs_phi_Strip", psd0);
0729 }
0730 {
0731 edm::ParameterSetDescription psd0;
0732 psd0.add<std::string>("name", "err_Y_vs_Phi_Strip");
0733 psd0.add<std::string>("title", ";#phi;local error y [cm]");
0734 psd0.add<int>("NyBins", 100);
0735 psd0.add<double>("ymin", 0.);
0736 psd0.add<double>("ymax", 10.);
0737 psd0.add<int>("NxBins", 36);
0738 psd0.add<bool>("switch", true);
0739 psd0.add<double>("xmax", M_PI);
0740 psd0.add<double>("xmin", -M_PI);
0741 desc.add<edm::ParameterSetDescription>("err_Y_vs_phi_Strip", psd0);
0742 }
0743
0744 {
0745 edm::ParameterSetDescription psd0;
0746 psd0.add<std::string>("name", "Pull_X_Strip");
0747 psd0.add<std::string>("title", "Pull X " + striptag + ";pull x;");
0748 psd0.add<double>("xmin", -4.0);
0749 psd0.add<bool>("switch", true);
0750 psd0.add<double>("xmax", 4.0);
0751 psd0.add<int>("NxBins", 100);
0752 desc.add<edm::ParameterSetDescription>("Pull_X_Strip", psd0);
0753 }
0754 {
0755 edm::ParameterSetDescription psd0;
0756 psd0.add<std::string>("name", "Pull_Y_Strip");
0757 psd0.add<std::string>("title", "Pull Y " + striptag + ";pull y;");
0758 psd0.add<double>("xmin", -4.0);
0759 psd0.add<bool>("switch", true);
0760 psd0.add<double>("xmax", 4.0);
0761 psd0.add<int>("NxBins", 100);
0762 desc.add<edm::ParameterSetDescription>("Pull_Y_Strip", psd0);
0763 }
0764
0765 {
0766 edm::ParameterSetDescription psd0;
0767 psd0.add<std::string>("name", "Pull_X_Strip_Primary");
0768 psd0.add<std::string>("title", "Pull X " + striptag + ";pull x;");
0769 psd0.add<double>("xmin", -4.0);
0770 psd0.add<bool>("switch", true);
0771 psd0.add<double>("xmax", 4.0);
0772 psd0.add<int>("NxBins", 100);
0773 desc.add<edm::ParameterSetDescription>("Pull_X_Strip_Primary", psd0);
0774 }
0775 {
0776 edm::ParameterSetDescription psd0;
0777 psd0.add<std::string>("name", "Pull_Y_Strip_Primary");
0778 psd0.add<std::string>("title", "Pull Y " + striptag + ";pull y;");
0779 psd0.add<double>("xmin", -4.0);
0780 psd0.add<bool>("switch", true);
0781 psd0.add<double>("xmax", 4.0);
0782 psd0.add<int>("NxBins", 100);
0783 desc.add<edm::ParameterSetDescription>("Pull_Y_Strip_Primary", psd0);
0784 }
0785 {
0786 edm::ParameterSetDescription psd0;
0787 psd0.add<std::string>("name", "Pull_X_vs_Eta_Strip");
0788 psd0.add<std::string>("title", ";#eta;pull x");
0789 psd0.add<double>("ymax", 4.0);
0790 psd0.add<int>("NxBins", 82);
0791 psd0.add<bool>("switch", true);
0792 psd0.add<double>("xmax", 4.1);
0793 psd0.add<double>("xmin", -4.1);
0794 psd0.add<double>("ymin", -4.0);
0795 desc.add<edm::ParameterSetDescription>("Pull_X_vs_eta_Strip", psd0);
0796 }
0797 {
0798 edm::ParameterSetDescription psd0;
0799 psd0.add<std::string>("name", "Pull_Y_vs_Eta_Strip");
0800 psd0.add<std::string>("title", ";#eta;pull y");
0801 psd0.add<double>("ymax", 4.0);
0802 psd0.add<int>("NxBins", 82);
0803 psd0.add<bool>("switch", true);
0804 psd0.add<double>("xmax", 4.1);
0805 psd0.add<double>("xmin", -4.1);
0806 psd0.add<double>("ymin", -4.0);
0807 desc.add<edm::ParameterSetDescription>("Pull_Y_vs_eta_Strip", psd0);
0808 }
0809 {
0810 edm::ParameterSetDescription psd0;
0811 psd0.add<std::string>("name", "Number_RecHits_matched_PrimarySimTrack");
0812 psd0.add<std::string>("title", "Number of RecHits matched to primary SimTrack;;");
0813 psd0.add<double>("xmin", 0.0);
0814 psd0.add<bool>("switch", true);
0815 psd0.add<double>("xmax", 10000.0);
0816 psd0.add<int>("NxBins", 100);
0817 desc.add<edm::ParameterSetDescription>("nRecHits_Strip_primary", psd0);
0818 }
0819 }
0820
0821
0822 DEFINE_FWK_MODULE(Phase2OTValidateRecHitBase);