File indexing completed on 2023-10-25 10:07:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "Validation/SiTrackerPhase2V/interface/Phase2OTValidateRecHitBase.h"
0013 #include "Validation/SiTrackerPhase2V/interface/TrackerPhase2ValidationUtil.h"
0014 #include "DQM/SiTrackerPhase2/interface/TrackerPhase2DQMUtil.h"
0015 #include "FWCore/Framework/interface/ESWatcher.h"
0016 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0017 #include "DataFormats/DetId/interface/DetId.h"
0018 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0019 #include "Geometry/CommonDetUnit/interface/TrackerGeomDet.h"
0020 #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"
0021 #include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h"
0022 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0023 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0024 #include "DataFormats/GeometrySurface/interface/LocalError.h"
0025 #include "DataFormats/GeometryVector/interface/LocalPoint.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 pullx = 999.;
0077 double pully = 999.;
0078 if (lperr.xx())
0079 pullx = (dx) / std::sqrt(lperr.xx());
0080 if (lperr.yy())
0081 pully = (dx) / std::sqrt(lperr.yy());
0082 float eta = geomDetunit->surface().toGlobal(lp).eta();
0083 float phi = geomDetunit->surface().toGlobal(lp).phi();
0084
0085
0086 dx *= phase2tkutil::cmtomicron;
0087 if (mType == TrackerGeometry::ModuleType::Ph2PSP) {
0088 dy *= phase2tkutil::cmtomicron;
0089
0090 layerMEs_[key].deltaX_P->Fill(dx);
0091 layerMEs_[key].deltaY_P->Fill(dy);
0092
0093 layerMEs_[key].pullX_P->Fill(pullx);
0094 layerMEs_[key].pullY_P->Fill(pully);
0095
0096 layerMEs_[key].deltaX_eta_P->Fill(std::abs(eta), dx);
0097 layerMEs_[key].deltaY_eta_P->Fill(std::abs(eta), dy);
0098 layerMEs_[key].deltaX_phi_P->Fill(phi, dx);
0099 layerMEs_[key].deltaY_phi_P->Fill(phi, dy);
0100
0101 layerMEs_[key].pullX_eta_P->Fill(eta, pullx);
0102 layerMEs_[key].pullY_eta_P->Fill(eta, pully);
0103
0104 if (isPrimary) {
0105 layerMEs_[key].deltaX_primary_P->Fill(dx);
0106 layerMEs_[key].deltaY_primary_P->Fill(dy);
0107 layerMEs_[key].pullX_primary_P->Fill(pullx);
0108 layerMEs_[key].pullY_primary_P->Fill(pully);
0109 } else
0110 nrechitLayerMapP_primary[key]--;
0111 } else if (mType == TrackerGeometry::ModuleType::Ph2PSS || mType == TrackerGeometry::ModuleType::Ph2SS) {
0112 layerMEs_[key].deltaX_S->Fill(dx);
0113 layerMEs_[key].deltaY_S->Fill(dy);
0114
0115 layerMEs_[key].pullX_S->Fill(pullx);
0116 layerMEs_[key].pullY_S->Fill(pully);
0117
0118 layerMEs_[key].deltaX_eta_S->Fill(std::abs(eta), dx);
0119 layerMEs_[key].deltaY_eta_S->Fill(std::abs(eta), dy);
0120 layerMEs_[key].deltaX_phi_S->Fill(phi, dx);
0121 layerMEs_[key].deltaY_phi_S->Fill(phi, dy);
0122
0123 layerMEs_[key].pullX_eta_S->Fill(eta, pullx);
0124 layerMEs_[key].pullY_eta_S->Fill(eta, pully);
0125
0126 if (isPrimary) {
0127 layerMEs_[key].deltaX_primary_S->Fill(dx);
0128 layerMEs_[key].deltaY_primary_S->Fill(dy);
0129 layerMEs_[key].pullX_primary_S->Fill(pullx);
0130 layerMEs_[key].pullY_primary_S->Fill(pully);
0131 } else
0132 nrechitLayerMapS_primary[key]--;
0133 }
0134 }
0135
0136
0137
0138 void Phase2OTValidateRecHitBase::bookHistograms(DQMStore::IBooker& ibooker,
0139 edm::Run const& iRun,
0140 edm::EventSetup const& iSetup) {
0141 std::string top_folder = config_.getParameter<std::string>("TopFolderName");
0142
0143 edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
0144 if (theTkDigiGeomWatcher.check(iSetup)) {
0145 for (auto const& det_u : tkGeom_->detUnits()) {
0146
0147 if (det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
0148 det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC)
0149 continue;
0150 unsigned int detId_raw = det_u->geographicalId().rawId();
0151 bookLayerHistos(ibooker, detId_raw, top_folder);
0152 }
0153 }
0154 }
0155
0156
0157
0158
0159 void Phase2OTValidateRecHitBase::bookLayerHistos(DQMStore::IBooker& ibooker, unsigned int det_id, std::string& subdir) {
0160 std::string key = phase2tkutil::getOTHistoId(det_id, tTopo_);
0161 if (layerMEs_.find(key) == layerMEs_.end()) {
0162 ibooker.cd();
0163 RecHitME local_histos;
0164 ibooker.setCurrentFolder(subdir + "/" + key);
0165 edm::LogInfo("Phase2OTValidateRecHitBase") << " Booking Histograms in : " << key;
0166
0167 if (tkGeom_->getDetectorType(det_id) == TrackerGeometry::ModuleType::Ph2PSP) {
0168 local_histos.deltaX_P =
0169 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel"), ibooker);
0170 local_histos.deltaY_P =
0171 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Pixel"), ibooker);
0172
0173 local_histos.pullX_P =
0174 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel"), ibooker);
0175 local_histos.pullY_P =
0176 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel"), ibooker);
0177
0178 local_histos.deltaX_eta_P =
0179 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_eta_Pixel"), ibooker);
0180 local_histos.deltaY_eta_P =
0181 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_eta_Pixel"), ibooker);
0182
0183 local_histos.deltaX_phi_P =
0184 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_phi_Pixel"), ibooker);
0185 local_histos.deltaY_phi_P =
0186 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_phi_Pixel"), ibooker);
0187
0188 local_histos.pullX_eta_P =
0189 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Pixel"), ibooker);
0190 local_histos.pullY_eta_P =
0191 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Pixel"), ibooker);
0192
0193 ibooker.setCurrentFolder(subdir + "/" + key + "/PrimarySimHits");
0194
0195 local_histos.numberRecHitsprimary_P =
0196 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("nRecHits_Pixel_primary"), ibooker);
0197
0198 local_histos.deltaX_primary_P =
0199 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
0200 local_histos.deltaY_primary_P =
0201 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Pixel_Primary"), ibooker);
0202
0203 local_histos.pullX_primary_P =
0204 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel_Primary"), ibooker);
0205 local_histos.pullY_primary_P =
0206 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Pixel_Primary"), ibooker);
0207 }
0208
0209 ibooker.setCurrentFolder(subdir + "/" + key);
0210 local_histos.deltaX_S =
0211 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip"), ibooker);
0212 local_histos.deltaY_S =
0213 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip"), ibooker);
0214
0215 local_histos.pullX_S =
0216 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip"), ibooker);
0217 local_histos.pullY_S =
0218 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_Y_Strip"), ibooker);
0219
0220 local_histos.deltaX_eta_S =
0221 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_eta_Strip"), ibooker);
0222 local_histos.deltaY_eta_S =
0223 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_eta_Strip"), ibooker);
0224
0225 local_histos.deltaX_phi_S =
0226 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_vs_phi_Strip"), ibooker);
0227 local_histos.deltaY_phi_S =
0228 phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_vs_phi_Strip"), ibooker);
0229
0230 local_histos.pullX_eta_S =
0231 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Strip"), ibooker);
0232 local_histos.pullY_eta_S =
0233 phase2tkutil::bookProfile1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_vs_eta_Pixel"), ibooker);
0234
0235
0236 ibooker.setCurrentFolder(subdir + "/" + key + "/PrimarySimHits");
0237 local_histos.numberRecHitsprimary_S =
0238 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("nRecHits_Strip_primary"), ibooker);
0239
0240 local_histos.deltaX_primary_S =
0241 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_X_Strip_Primary"), ibooker);
0242 local_histos.deltaY_primary_S =
0243 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Delta_Y_Strip_Primary"), ibooker);
0244
0245 local_histos.pullX_primary_S =
0246 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip_Primary"), ibooker);
0247 local_histos.pullY_primary_S =
0248 phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pull_X_Strip_Primary"), ibooker);
0249
0250 layerMEs_.insert(std::make_pair(key, local_histos));
0251 }
0252 }
0253
0254 void Phase2OTValidateRecHitBase::fillPSetDescription(edm::ParameterSetDescription& desc) {
0255
0256
0257 std::string mptag = "macro-pixel sensor";
0258 std::string striptag = "strip sensor";
0259 {
0260 edm::ParameterSetDescription psd0;
0261 psd0.add<std::string>("name", "Delta_X_Pixel");
0262 psd0.add<std::string>("title", "#Delta X " + mptag + ";Cluster resolution X coordinate [#mum]");
0263 psd0.add<bool>("switch", true);
0264 psd0.add<double>("xmax", 250);
0265 psd0.add<double>("xmin", -250);
0266 psd0.add<int>("NxBins", 100);
0267 desc.add<edm::ParameterSetDescription>("Delta_X_Pixel", psd0);
0268 }
0269 {
0270 edm::ParameterSetDescription psd0;
0271 psd0.add<std::string>("name", "Delta_Y_Pixel");
0272 psd0.add<std::string>("title", "#Delta Y " + mptag + ";Cluster resolution Y coordinate [#mum]");
0273 psd0.add<bool>("switch", true);
0274 psd0.add<double>("xmin", -1500);
0275 psd0.add<double>("xmax", 1500);
0276 psd0.add<int>("NxBins", 100);
0277 desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel", psd0);
0278 }
0279 {
0280 edm::ParameterSetDescription psd0;
0281 psd0.add<std::string>("name", "Delta_X_Pixel_Primary");
0282 psd0.add<std::string>("title", "#Delta X " + mptag + ";cluster resolution X coordinate [#mum]");
0283 psd0.add<bool>("switch", true);
0284 psd0.add<double>("xmin", -250);
0285 psd0.add<double>("xmax", 250);
0286 psd0.add<int>("NxBins", 100);
0287 desc.add<edm::ParameterSetDescription>("Delta_X_Pixel_Primary", psd0);
0288 }
0289 {
0290 edm::ParameterSetDescription psd0;
0291 psd0.add<std::string>("name", "Delta_Y_Pixel_Primary");
0292 psd0.add<std::string>("title", "#Delta Y " + mptag + ";cluster resolution Y coordinate [#mum]");
0293 psd0.add<bool>("switch", true);
0294 psd0.add<double>("xmin", -500);
0295 psd0.add<double>("xmax", 500);
0296 psd0.add<int>("NxBins", 100);
0297 desc.add<edm::ParameterSetDescription>("Delta_Y_Pixel_Primary", psd0);
0298 }
0299
0300 {
0301 edm::ParameterSetDescription psd0;
0302 psd0.add<std::string>("name", "Delta_X_vs_Eta_Pixel");
0303 psd0.add<std::string>("title", ";|#eta|;#Delta x [#mum]");
0304 psd0.add<int>("NyBins", 250);
0305 psd0.add<double>("ymin", -250.0);
0306 psd0.add<double>("ymax", 250.0);
0307 psd0.add<int>("NxBins", 41);
0308 psd0.add<bool>("switch", true);
0309 psd0.add<double>("xmax", 4.1);
0310 psd0.add<double>("xmin", 0.);
0311 desc.add<edm::ParameterSetDescription>("Delta_X_vs_eta_Pixel", psd0);
0312 }
0313 {
0314 edm::ParameterSetDescription psd0;
0315 psd0.add<std::string>("name", "Delta_Y_vs_Eta_Pixel");
0316 psd0.add<std::string>("title", ";|#eta|;#Delta y [#mum]");
0317 psd0.add<int>("NyBins", 300);
0318 psd0.add<double>("ymin", -1500.0);
0319 psd0.add<double>("ymax", 1500.0);
0320 psd0.add<int>("NxBins", 41);
0321 psd0.add<bool>("switch", true);
0322 psd0.add<double>("xmax", 4.1);
0323 psd0.add<double>("xmin", 0.);
0324 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_eta_Pixel", psd0);
0325 }
0326
0327 {
0328 edm::ParameterSetDescription psd0;
0329 psd0.add<std::string>("name", "Delta_X_vs_Phi_Pixel");
0330 psd0.add<std::string>("title", ";#phi;#Delta x [#mum]");
0331 psd0.add<int>("NyBins", 250);
0332 psd0.add<double>("ymin", -250.0);
0333 psd0.add<double>("ymax", 250.0);
0334 psd0.add<int>("NxBins", 36);
0335 psd0.add<bool>("switch", true);
0336 psd0.add<double>("xmax", M_PI);
0337 psd0.add<double>("xmin", -M_PI);
0338 desc.add<edm::ParameterSetDescription>("Delta_X_vs_phi_Pixel", psd0);
0339 }
0340 {
0341 edm::ParameterSetDescription psd0;
0342 psd0.add<std::string>("name", "Delta_Y_vs_Phi_Pixel");
0343 psd0.add<std::string>("title", ";#phi;#Delta y [#mum]");
0344 psd0.add<int>("NyBins", 300);
0345 psd0.add<double>("ymin", -1500.0);
0346 psd0.add<double>("ymax", 1500.0);
0347 psd0.add<int>("NxBins", 35);
0348 psd0.add<bool>("switch", true);
0349 psd0.add<double>("xmax", M_PI);
0350 psd0.add<double>("xmin", -M_PI);
0351 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_phi_Pixel", psd0);
0352 }
0353
0354 {
0355 edm::ParameterSetDescription psd0;
0356 psd0.add<std::string>("name", "Pull_X_Pixel");
0357 psd0.add<std::string>("title", ";pull x;");
0358 psd0.add<double>("xmin", -4.0);
0359 psd0.add<bool>("switch", true);
0360 psd0.add<double>("xmax", 4.0);
0361 psd0.add<int>("NxBins", 100);
0362 desc.add<edm::ParameterSetDescription>("Pull_X_Pixel", psd0);
0363 }
0364 {
0365 edm::ParameterSetDescription psd0;
0366 psd0.add<std::string>("name", "Pull_Y_Pixel");
0367 psd0.add<std::string>("title", ";pull y;");
0368 psd0.add<double>("xmin", -4.0);
0369 psd0.add<bool>("switch", true);
0370 psd0.add<double>("xmax", 4.0);
0371 psd0.add<int>("NxBins", 100);
0372 desc.add<edm::ParameterSetDescription>("Pull_Y_Pixel", psd0);
0373 }
0374
0375 {
0376 edm::ParameterSetDescription psd0;
0377 psd0.add<std::string>("name", "Pull_X_Pixel_Primary");
0378 psd0.add<std::string>("title", ";pull x;");
0379 psd0.add<double>("xmin", -4.0);
0380 psd0.add<bool>("switch", true);
0381 psd0.add<double>("xmax", 4.0);
0382 psd0.add<int>("NxBins", 100);
0383 desc.add<edm::ParameterSetDescription>("Pull_X_Pixel_Primary", psd0);
0384 }
0385 {
0386 edm::ParameterSetDescription psd0;
0387 psd0.add<std::string>("name", "Pull_Y_Pixel_Primary");
0388 psd0.add<std::string>("title", ";pull y;");
0389 psd0.add<double>("xmin", -4.0);
0390 psd0.add<bool>("switch", true);
0391 psd0.add<double>("xmax", 4.0);
0392 psd0.add<int>("NxBins", 100);
0393 desc.add<edm::ParameterSetDescription>("Pull_Y_Pixel_Primary", psd0);
0394 }
0395 {
0396 edm::ParameterSetDescription psd0;
0397 psd0.add<std::string>("name", "Pull_X_vs_Eta");
0398 psd0.add<std::string>("title", ";#eta;pull x");
0399 psd0.add<double>("ymax", 4.0);
0400 psd0.add<int>("NxBins", 82);
0401 psd0.add<bool>("switch", true);
0402 psd0.add<double>("xmax", 4.1);
0403 psd0.add<double>("xmin", -4.1);
0404 psd0.add<double>("ymin", -4.0);
0405 desc.add<edm::ParameterSetDescription>("Pull_X_vs_eta_Pixel", psd0);
0406 }
0407 {
0408 edm::ParameterSetDescription psd0;
0409 psd0.add<std::string>("name", "Pull_Y_vs_Eta");
0410 psd0.add<std::string>("title", ";#eta;pull y");
0411 psd0.add<double>("ymax", 4.0);
0412 psd0.add<int>("NxBins", 82);
0413 psd0.add<bool>("switch", true);
0414 psd0.add<double>("xmax", 4.1);
0415 psd0.add<double>("xmin", -4.1);
0416 psd0.add<double>("ymin", -4.0);
0417 desc.add<edm::ParameterSetDescription>("Pull_Y_vs_eta_Pixel", psd0);
0418 }
0419 {
0420 edm::ParameterSetDescription psd0;
0421 psd0.add<std::string>("name", "Number_RecHits_matched_PrimarySimTrack");
0422 psd0.add<std::string>("title", "Number of RecHits matched to primary SimTrack;;");
0423 psd0.add<double>("xmin", 0.0);
0424 psd0.add<bool>("switch", true);
0425 psd0.add<double>("xmax", 10000.0);
0426 psd0.add<int>("NxBins", 100);
0427 desc.add<edm::ParameterSetDescription>("nRecHits_Pixel_primary", psd0);
0428 }
0429
0430 {
0431 edm::ParameterSetDescription psd0;
0432 psd0.add<std::string>("name", "Delta_X_Strip");
0433 psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
0434 psd0.add<bool>("switch", true);
0435 psd0.add<double>("xmin", -250);
0436 psd0.add<double>("xmax", 250);
0437 psd0.add<int>("NxBins", 100);
0438 desc.add<edm::ParameterSetDescription>("Delta_X_Strip", psd0);
0439 }
0440 {
0441 edm::ParameterSetDescription psd0;
0442 psd0.add<std::string>("name", "Delta_Y_Strip");
0443 psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
0444 psd0.add<double>("xmin", -5.0);
0445 psd0.add<bool>("switch", true);
0446 psd0.add<double>("xmax", 5.0);
0447 psd0.add<int>("NxBins", 100);
0448 desc.add<edm::ParameterSetDescription>("Delta_Y_Strip", psd0);
0449 }
0450 {
0451 edm::ParameterSetDescription psd0;
0452 psd0.add<std::string>("name", "Delta_X_Strip_Primary");
0453 psd0.add<std::string>("title", "#Delta X " + striptag + ";Cluster resolution X coordinate [#mum]");
0454 psd0.add<bool>("switch", true);
0455 psd0.add<double>("xmin", -250);
0456 psd0.add<double>("xmax", 250);
0457 psd0.add<int>("NxBins", 100);
0458 desc.add<edm::ParameterSetDescription>("Delta_X_Strip_Primary", psd0);
0459 }
0460 {
0461 edm::ParameterSetDescription psd0;
0462 psd0.add<std::string>("name", "Delta_Y_Strip_Primary");
0463 psd0.add<std::string>("title", "#Delta Y " + striptag + ";Cluster resolution Y coordinate [cm]");
0464 psd0.add<double>("xmin", -5.0);
0465 psd0.add<bool>("switch", true);
0466 psd0.add<double>("xmax", 5.0);
0467 psd0.add<int>("NxBins", 100);
0468 desc.add<edm::ParameterSetDescription>("Delta_Y_Strip_Primary", psd0);
0469 }
0470
0471 {
0472 edm::ParameterSetDescription psd0;
0473 psd0.add<std::string>("name", "Delta_X_vs_Eta_Strip");
0474 psd0.add<std::string>("title", ";|#eta|;#Delta x [#mum]");
0475 psd0.add<int>("NyBins", 250);
0476 psd0.add<double>("ymin", -250.0);
0477 psd0.add<double>("ymax", 250.0);
0478 psd0.add<int>("NxBins", 41);
0479 psd0.add<bool>("switch", true);
0480 psd0.add<double>("xmax", 4.1);
0481 psd0.add<double>("xmin", 0.);
0482 desc.add<edm::ParameterSetDescription>("Delta_X_vs_eta_Strip", psd0);
0483 }
0484 {
0485 edm::ParameterSetDescription psd0;
0486 psd0.add<std::string>("name", "Delta_Y_vs_Eta_Strip");
0487 psd0.add<std::string>("title", ";|#eta|;#Delta y [cm]");
0488 psd0.add<int>("NyBins", 100);
0489 psd0.add<double>("ymin", -5.0);
0490 psd0.add<double>("ymax", 5.0);
0491 psd0.add<int>("NxBins", 41);
0492 psd0.add<bool>("switch", true);
0493 psd0.add<double>("xmax", 4.1);
0494 psd0.add<double>("xmin", 0.);
0495 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_eta_Strip", psd0);
0496 }
0497
0498 {
0499 edm::ParameterSetDescription psd0;
0500 psd0.add<std::string>("name", "Delta_X_vs_Phi_Strip");
0501 psd0.add<std::string>("title", ";#phi;#Delta x [#mum]");
0502 psd0.add<int>("NyBins", 250);
0503 psd0.add<double>("ymin", -250.0);
0504 psd0.add<double>("ymax", 250.0);
0505 psd0.add<int>("NxBins", 36);
0506 psd0.add<bool>("switch", true);
0507 psd0.add<double>("xmax", M_PI);
0508 psd0.add<double>("xmin", -M_PI);
0509 desc.add<edm::ParameterSetDescription>("Delta_X_vs_phi_Strip", psd0);
0510 }
0511 {
0512 edm::ParameterSetDescription psd0;
0513 psd0.add<std::string>("name", "Delta_Y_vs_Phi_Strip");
0514 psd0.add<std::string>("title", ";#phi;#Delta y [cm]");
0515 psd0.add<int>("NyBins", 100);
0516 psd0.add<double>("ymin", -5.0);
0517 psd0.add<double>("ymax", 5.0);
0518 psd0.add<int>("NxBins", 36);
0519 psd0.add<bool>("switch", true);
0520 psd0.add<double>("xmax", M_PI);
0521 psd0.add<double>("xmin", -M_PI);
0522 desc.add<edm::ParameterSetDescription>("Delta_Y_vs_phi_Strip", psd0);
0523 }
0524
0525 {
0526 edm::ParameterSetDescription psd0;
0527 psd0.add<std::string>("name", "Pull_X_Strip");
0528 psd0.add<std::string>("title", ";pull x;");
0529 psd0.add<double>("xmin", -4.0);
0530 psd0.add<bool>("switch", true);
0531 psd0.add<double>("xmax", 4.0);
0532 psd0.add<int>("NxBins", 100);
0533 desc.add<edm::ParameterSetDescription>("Pull_X_Strip", psd0);
0534 }
0535 {
0536 edm::ParameterSetDescription psd0;
0537 psd0.add<std::string>("name", "Pull_Y_Strip");
0538 psd0.add<std::string>("title", ";pull y;");
0539 psd0.add<double>("xmin", -4.0);
0540 psd0.add<bool>("switch", true);
0541 psd0.add<double>("xmax", 4.0);
0542 psd0.add<int>("NxBins", 100);
0543 desc.add<edm::ParameterSetDescription>("Pull_Y_Strip", psd0);
0544 }
0545
0546 {
0547 edm::ParameterSetDescription psd0;
0548 psd0.add<std::string>("name", "Pull_X_Strip_Primary");
0549 psd0.add<std::string>("title", ";pull x;");
0550 psd0.add<double>("xmin", -4.0);
0551 psd0.add<bool>("switch", true);
0552 psd0.add<double>("xmax", 4.0);
0553 psd0.add<int>("NxBins", 100);
0554 desc.add<edm::ParameterSetDescription>("Pull_X_Strip_Primary", psd0);
0555 }
0556 {
0557 edm::ParameterSetDescription psd0;
0558 psd0.add<std::string>("name", "Pull_Y_Strip_Primary");
0559 psd0.add<std::string>("title", ";pull y;");
0560 psd0.add<double>("xmin", -4.0);
0561 psd0.add<bool>("switch", true);
0562 psd0.add<double>("xmax", 4.0);
0563 psd0.add<int>("NxBins", 100);
0564 desc.add<edm::ParameterSetDescription>("Pull_Y_Strip_Primary", psd0);
0565 }
0566 {
0567 edm::ParameterSetDescription psd0;
0568 psd0.add<std::string>("name", "Pull_X_vs_Eta_Strip");
0569 psd0.add<std::string>("title", ";#eta;pull x");
0570 psd0.add<double>("ymax", 4.0);
0571 psd0.add<int>("NxBins", 82);
0572 psd0.add<bool>("switch", true);
0573 psd0.add<double>("xmax", 4.1);
0574 psd0.add<double>("xmin", -4.1);
0575 psd0.add<double>("ymin", -4.0);
0576 desc.add<edm::ParameterSetDescription>("Pull_X_vs_eta_Strip", psd0);
0577 }
0578 {
0579 edm::ParameterSetDescription psd0;
0580 psd0.add<std::string>("name", "Pull_Y_vs_Eta_Strip");
0581 psd0.add<std::string>("title", ";#eta;pull y");
0582 psd0.add<double>("ymax", 4.0);
0583 psd0.add<int>("NxBins", 82);
0584 psd0.add<bool>("switch", true);
0585 psd0.add<double>("xmax", 4.1);
0586 psd0.add<double>("xmin", -4.1);
0587 psd0.add<double>("ymin", -4.0);
0588 desc.add<edm::ParameterSetDescription>("Pull_Y_vs_eta_Strip", psd0);
0589 }
0590 {
0591 edm::ParameterSetDescription psd0;
0592 psd0.add<std::string>("name", "Number_RecHits_matched_PrimarySimTrack");
0593 psd0.add<std::string>("title", "Number of RecHits matched to primary SimTrack;;");
0594 psd0.add<double>("xmin", 0.0);
0595 psd0.add<bool>("switch", true);
0596 psd0.add<double>("xmax", 10000.0);
0597 psd0.add<int>("NxBins", 100);
0598 desc.add<edm::ParameterSetDescription>("nRecHits_Strip_primary", psd0);
0599 }
0600 }
0601
0602
0603 DEFINE_FWK_MODULE(Phase2OTValidateRecHitBase);