52 trackerHitAssociatorConfig_(ps, consumesCollector())
104 ParametersResolxMFTrackwidthProfile_WClus1.getParameter<
bool>(
"layerswitchon");
109 ParametersResolxMFTrackwidthProfile_WClus2.getParameter<
bool>(
"layerswitchon");
114 ParametersResolxMFTrackwidthProfile_WClus3.getParameter<
bool>(
"layerswitchon");
119 ParametersResolxMFTrackwidthProfile_WClus4.getParameter<
bool>(
"layerswitchon");
124 ParametersResMFTrackwidthProfile_WClus1.getParameter<
bool>(
"layerswitchon");
129 ParametersResMFTrackwidthProfile_WClus2.getParameter<
bool>(
"layerswitchon");
134 ParametersResMFTrackwidthProfile_WClus21.getParameter<
bool>(
"layerswitchon");
139 ParametersResMFTrackwidthProfile_WClus22.getParameter<
bool>(
"layerswitchon");
144 ParametersResMFTrackwidthProfile_WClus23.getParameter<
bool>(
"layerswitchon");
149 ParametersResMFTrackwidthProfile_WClus3.getParameter<
bool>(
"layerswitchon");
154 ParametersResMFTrackwidthProfile_WClus4.getParameter<
bool>(
"layerswitchon");
163 ParametersResolxMFTrackwidthProfile_Category1.getParameter<
bool>(
"layerswitchon");
168 ParametersResolxMFTrackwidthProfile_Category2.getParameter<
bool>(
"layerswitchon");
173 ParametersResolxMFTrackwidthProfile_Category3.getParameter<
bool>(
"layerswitchon");
178 ParametersResolxMFTrackwidthProfile_Category4.getParameter<
bool>(
"layerswitchon");
183 ParametersResolxMFClusterwidthProfile_Category1.getParameter<
bool>(
"layerswitchon");
283 ParametersPullTrackwidthProfileRphiwclus1.getParameter<
bool>(
"layerswitchon");
288 ParametersPullTrackwidthProfileRphiwclus2.getParameter<
bool>(
"layerswitchon");
293 ParametersPullTrackwidthProfileRphiwclus3.getParameter<
bool>(
"layerswitchon");
298 ParametersPullTrackwidthProfileRphiwclus4.getParameter<
bool>(
"layerswitchon");
303 ParametersPullTrackwidthProfileCategory1Rphi.getParameter<
bool>(
"layerswitchon");
308 ParametersPullTrackwidthProfileCategory2Rphi.getParameter<
bool>(
"layerswitchon");
313 ParametersPullTrackwidthProfileCategory3Rphi.getParameter<
bool>(
"layerswitchon");
318 ParametersPullTrackwidthProfileCategory4Rphi.getParameter<
bool>(
"layerswitchon");
323 ParametersResolxMFTrackwidthProfileRphi.getParameter<
bool>(
"layerswitchon");
328 ParametersResolxMFTrackwidthProfileWclus1Rphi.getParameter<
bool>(
"layerswitchon");
333 ParametersResolxMFTrackwidthProfileWclus2Rphi.getParameter<
bool>(
"layerswitchon");
338 ParametersResolxMFTrackwidthProfileWclus3Rphi.getParameter<
bool>(
"layerswitchon");
343 ParametersResolxMFTrackwidthProfileWclus4Rphi.getParameter<
bool>(
"layerswitchon");
348 ParametersResMFTrackwidthProfileWclus1Rphi.getParameter<
bool>(
"layerswitchon");
353 ParametersResMFTrackwidthProfileWclus2Rphi.getParameter<
bool>(
"layerswitchon");
358 ParametersResMFTrackwidthProfileWclus3Rphi.getParameter<
bool>(
"layerswitchon");
363 ParametersResMFTrackwidthProfileWclus4Rphi.getParameter<
bool>(
"layerswitchon");
368 ParametersResolxMFTrackwidthProfileCategory1Rphi.getParameter<
bool>(
"layerswitchon");
373 ParametersResolxMFTrackwidthProfileCategory2Rphi.getParameter<
bool>(
"layerswitchon");
378 ParametersResolxMFTrackwidthProfileCategory3Rphi.getParameter<
bool>(
"layerswitchon");
383 ParametersResolxMFTrackwidthProfileCategory4Rphi.getParameter<
bool>(
"layerswitchon");
392 ParametersResolxMFClusterwidthProfileCategory1Rphi.getParameter<
bool>(
"layerswitchon");
463 ParametersPullTrackwidthProfileCategory1Sas.getParameter<
bool>(
"layerswitchon");
468 ParametersPullTrackwidthProfileCategory2Sas.getParameter<
bool>(
"layerswitchon");
473 ParametersPullTrackwidthProfileCategory3Sas.getParameter<
bool>(
"layerswitchon");
478 ParametersPullTrackwidthProfileCategory4Sas.getParameter<
bool>(
"layerswitchon");
487 ParametersResolxMFTrackwidthProfileCategory1Sas.getParameter<
bool>(
"layerswitchon");
492 ParametersResolxMFTrackwidthProfileCategory2Sas.getParameter<
bool>(
"layerswitchon");
497 ParametersResolxMFTrackwidthProfileCategory3Sas.getParameter<
bool>(
"layerswitchon");
502 ParametersResolxMFTrackwidthProfileCategory4Sas.getParameter<
bool>(
"layerswitchon");
511 ParametersResolxMFClusterwidthProfileCategory1Sas.getParameter<
bool>(
"layerswitchon");
545 edm::LogInfo(
"SiStripRecHitsValid") <<
"SiStripRecHitsValid::beginRun: " 546 <<
" Creating MEs for new Cabling ";
554 LogInfo(
"EventInfo") <<
" Run = " <<
e.id().run() <<
" Event = " <<
e.id().event();
557 int isrechitrphi = 0;
559 int isrechitmatched = 0;
576 edm::LogVerbatim(
"TrajectoryAnalyzer") <<
"trackColl->size(): " << trackCollectionHandle->size();
577 auto const &
tracks = *trackCollectionHandle;
579 if (
track.pt() < 0.5)
583 auto const &trajParams =
track.extra()->trajParams();
585 auto hb =
track.recHitsBegin();
586 for (
unsigned int h = 0;
h <
track.recHitsSize();
h++) {
590 auto ldir = trajParams[
h].direction();
591 auto gmom =
recHit->surface()->toGlobal(trajParams[
h].momentum());
592 if (gmom.perp() < 0.5)
596 DetId detid2 = thit2->geographicalId();
603 detid = (thit)->geographicalId();
604 myid = detid.
rawId();
632 if (isrechitmatched) {
653 if (gmom.transverse() != 0) {
660 auto hm = matchedhit->
monoHit();
686 if (StripSubdet.
stereo()) {
710 if (StripSubdet.
stereo()) {
718 rechitanalysis(ldir, thit2, stripdet, stripcpe, associate,
false);
728 rechitanalysis(ldir, thit2, stripdet, stripcpe, associate,
false);
737 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(
label);
865 fillME(iLayerME->second.meResolxMFTrackwidthProfileWclus1Rphi,
871 fillME(iLayerME->second.meResolxMFTrackwidthProfileWclus2Rphi,
877 fillME(iLayerME->second.meResolxMFTrackwidthProfileWclus3Rphi,
883 fillME(iLayerME->second.meResolxMFTrackwidthProfileWclus4Rphi,
892 fillME(iLayerME->second.meResolxMFTrackwidthProfileCategory1Rphi,
895 fillME(iLayerME->second.meResolxMFClusterwidthProfileCategory1Rphi,
901 fillME(iLayerME->second.meResolxMFTrackwidthProfileCategory2Rphi,
907 fillME(iLayerME->second.meResolxMFTrackwidthProfileCategory3Rphi,
913 fillME(iLayerME->second.meResolxMFTrackwidthProfileCategory4Rphi,
927 if (isrechitsas > 0) {
982 fillME(iStereoAndMatchedME->second.mePullTrackwidthProfileCategory1Sas,
985 fillME(iStereoAndMatchedME->second.meResolxMFTrackwidthProfileCategory1Sas,
988 fillME(iStereoAndMatchedME->second.meResolxMFClusterwidthProfileCategory1Sas,
992 fillME(iStereoAndMatchedME->second.mePullTrackwidthProfileCategory2Sas,
995 fillME(iStereoAndMatchedME->second.meResolxMFTrackwidthProfileCategory2Sas,
999 fillME(iStereoAndMatchedME->second.mePullTrackwidthProfileCategory3Sas,
1002 fillME(iStereoAndMatchedME->second.meResolxMFTrackwidthProfileCategory3Sas,
1006 fillME(iStereoAndMatchedME->second.mePullTrackwidthProfileCategory4Sas,
1009 fillME(iStereoAndMatchedME->second.meResolxMFTrackwidthProfileCategory4Sas,
1017 fillME(iStereoAndMatchedME->second.meResolxMFTrackwidthProfileSas,
1037 LocalPoint localHit = plane.toLocal(globalpos);
1056 return std::pair<LocalPoint, LocalVector>(projectedPos, localStripDir);
1086 auto hm = matchedhit->
monoHit();
1118 if (monotkdir.
z()) {
1128 if (stereotkdir.
z()) {
1146 const auto &litudes = clust->amplitudes();
1149 for (
size_t ia = 0; ia < amplitudes.size(); ++ia) {
1150 totcharge += amplitudes[ia];
1191 std::pair<LocalPoint, LocalVector> hitPair;
1192 std::pair<LocalPoint, LocalVector> closestPair;
1196 distx = fabs(
rechitpro.
x - hitPair.first.x());
1197 disty = fabs(
rechitpro.
y - hitPair.first.y());
1198 dist = distx * distx + disty * disty;
1199 if (dist < mindist) {
1201 closestPair = hitPair;
1204 float closestX = closestPair.first.x();
1205 float closestY = closestPair.first.y();
1214 dist =
abs((monohit)->localPosition().
x() -
m.localPosition().x());
1215 if (dist < mindist) {
1224 float closestX =
closest->localPosition().x();
1233 dist =
abs((stereohit)->localPosition().
x() -
m.localPosition().x());
1234 if (dist < mindist) {
1243 float closestX =
closest->localPosition().x();
1257 bool simplehit1or2D) {
1292 if (simplehit1or2D) {
1295 const auto &litudes1d = clust1d->amplitudes();
1297 for (
size_t ia = 0; ia < amplitudes1d.size(); ++ia) {
1298 totcharge += amplitudes1d[ia];
1303 const auto &litudes2d = clust2d->amplitudes();
1305 for (
size_t ia = 0; ia < amplitudes2d.size(); ++ia) {
1306 totcharge += amplitudes2d[ia];
1334 if (simplehit1or2D) {
1338 dist =
abs((hit1d)->localPosition().
x() -
m.localPosition().x());
1339 if (dist < mindist) {
1348 float closestX =
closest->localPosition().x();
1358 dist =
abs((hit2d)->localPosition().
x() -
m.localPosition().x());
1359 if (dist < mindist) {
1368 float closestX =
closest->localPosition().x();
1385 std::vector<uint32_t> activeDets;
1386 SiStripDetCabling_->addActiveDetectorsRawIds(activeDets);
1399 edm::LogInfo(
"SiStripTrackingRecHitsValid|SiStripTrackingRecHitsValid")
1400 <<
"nr. of activeDets: " << activeDets.size();
1401 const std::string &tec =
"TEC", tid =
"TID", tob =
"TOB", tib =
"TIB";
1402 for (std::vector<uint32_t>::iterator detid_iterator = activeDets.begin(), detid_end = activeDets.end();
1403 detid_iterator != detid_end;
1405 uint32_t detid = (*detid_iterator);
1408 activeDets.erase(detid_iterator);
1413 std::pair<std::string, int32_t> det_layer_pair = folder_organizer.
GetSubDetAndLayer(detid, tTopo,
true);
1418 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(
label);
1422 int32_t lnumber = det_layer_pair.second;
1424 std::vector<uint32_t> layerDetIds;
1428 }
else if (lnumber < 0) {
1431 }
else if (lname == tid) {
1434 }
else if (lnumber < 0) {
1437 }
else if (lname == tob) {
1439 }
else if (lname == tib) {
1445 folder_organizer.
setLayerFolder(detid, tTopo, det_layer_pair.second,
true);
1456 bool isStereo =
false;
1458 std::vector<uint32_t> stereoandmatchedDetIds;
1459 int32_t stereolnumber = det_layer_pair.second;
1460 const std::string &stereolname = det_layer_pair.first;
1461 if (stereolname == tec && (tTopo->
tecIsStereo(detid))) {
1462 if (stereolnumber > 0) {
1464 activeDets, stereoandmatchedDetIds, tTopo, 2, 0, 0, 0,
abs(stereolnumber), 1);
1466 }
else if (stereolnumber < 0) {
1468 activeDets, stereoandmatchedDetIds, tTopo, 1, 0, 0, 0,
abs(stereolnumber), 1);
1471 }
else if (stereolname == tid && (tTopo->
tidIsStereo(detid))) {
1472 if (stereolnumber > 0) {
1475 }
else if (stereolnumber < 0) {
1479 }
else if (stereolname == tob && (tTopo->
tobIsStereo(detid))) {
1482 }
else if (stereolname == tib && (tTopo->
tibIsStereo(detid))) {
1491 folder_organizer.
setLayerFolder(detid, tTopo, det_layer_pair.second,
true);
1539 bookME1D(ibooker,
"TH1Resolx_LF",
"TH1Resolx_LF",
"RecHit resol(x) coord. (local frame)");
1544 bookME1D(ibooker,
"TH1Resolx_MF",
"TH1Resolx_MF",
"RecHit resol(x) coord. (measurement frame)");
1549 bookME1D(ibooker,
"TH1Res_LF",
"TH1Res_LF",
"Residual of the hit x coordinate (local frame)");
1554 bookME1D(ibooker,
"TH1Res_MF",
"TH1Res_MF",
"Residual of the hit x coordinate (measurement frame)");
1583 bookME1D(ibooker,
"TH1Trackanglealpha",
"TH1Trackanglealpha",
"Track angle alpha");
1593 "TProfResolxMFTrackwidthProfile_WClus1",
1594 "TProfResolxMFTrackwidthProfile_WClus1",
1595 "Profile of Resolution in MF vs track width for w=1");
1602 "TProfResolxMFTrackwidthProfile_WClus2",
1603 "TProfResolxMFTrackwidthProfile_WClus2",
1604 "Profile of Resolution in MF vs track width for w=2");
1611 "TProfResolxMFTrackwidthProfile_WClus3",
1612 "TProfResolxMFTrackwidthProfile_WClus3",
1613 "Profile of Resolution in MF vs track width for w=3");
1620 "TProfResolxMFTrackwidthProfile_WClus4",
1621 "TProfResolxMFTrackwidthProfile_WClus4",
1622 "Profile of Resolution in MF vs track width for w=4");
1629 "TProfResMFTrackwidthProfile_WClus1",
1630 "TProfResMFTrackwidthProfile_WClus1",
1631 "Profile of Residuals(x) in MF vs track width for w=1");
1638 "TProfResMFTrackwidthProfile_WClus2",
1639 "TProfResMFTrackwidthProfile_WClus2",
1640 "Profile of Residuals(x) in MF vs track width for w=2");
1647 "TProfResMFTrackwidthProfile_WClus21",
1648 "TProfResMFTrackwidthProfile_WClus21",
1649 "Profile of Residuals(x) in MF vs track width for w=2");
1656 "TProfResMFTrackwidthProfile_WClus22",
1657 "TProfResMFTrackwidthProfile_WClus22",
1658 "Profile of Residuals(x) in MF vs track width for w=2");
1665 "TProfResMFTrackwidthProfile_WClus23",
1666 "TProfResMFTrackwidthProfile_WClus23",
1667 "Profile of Residuals(x) in MF vs track width for w=2");
1674 "TProfResMFTrackwidthProfile_WClus3",
1675 "TProfResMFTrackwidthProfile_WClus3",
1676 "Profile of Residuals(x) in MF vs track width for w=3");
1683 "TProfResMFTrackwidthProfile_WClus4",
1684 "TProfResMFTrackwidthProfile_WClus4",
1685 "Profile of Residuals(x) in MF vs track width for w=4");
1691 "TProfResolxMFTrackwidthProfile",
1692 "TProfResolxMFTrackwidthProfile",
1693 "Profile of Resolution in MF vs track width");
1700 "TProfResolxMFTrackwidthProfile_Category1",
1701 "TProfResolxMFTrackwidthProfile_Category1",
1702 "Profile of Resolution in MF vs track width (Category 1)");
1709 "TProfResolxMFTrackwidthProfile_Category2",
1710 "TProfResolxMFTrackwidthProfile_Category2",
1711 "Profile of Resolution in MF vs track width (Category 2)");
1718 "TProfResolxMFTrackwidthProfile_Category3",
1719 "TProfResolxMFTrackwidthProfile_Category3",
1720 "Profile of Resolution in MF vs track width (Category 3)");
1727 "TProfResolxMFTrackwidthProfile_Category4",
1728 "TProfResolxMFTrackwidthProfile_Category4",
1729 "Profile of Resolution in MF vs track width (Category 4)");
1736 "TProfResolxMFClusterwidthProfile_Category1",
1737 "TProfResolxMFClusterwidthProfile_Category1",
1738 "Profile of Resolution in MF vs cluster width (Category 1)");
1744 "TProfResolxMFAngleProfile",
1745 "TProfResolxMFAngleProfile",
1746 "Profile of Resolution in MF vs Track angle alpha");
1821 "Cluster Width - Number of strips that belong to the RecHit cluster");
1829 "RecHit Cluster Charge");
1837 "RecHit resol(x) coord.");
1845 "RecHit resol(x) coord.");
1852 "TH1ResolxMFRphiwclus1",
1854 "RecHit resol(x) coord. w=1 ");
1861 "TH1ResolxMFRphiwclus2",
1863 "RecHit resol(x) coord. w=2 ");
1870 "TH1ResolxMFRphiwclus3",
1872 "RecHit resol(x) coord. w=3 ");
1879 "TH1ResolxMFRphiwclus4",
1881 "RecHit resol(x) coord. w=4 ");
1889 "Residual of the hit x coordinate");
1897 "Residual of the hit x coordinate");
1903 "TH1ResMFRphiwclus1",
1905 "Residual of the hit x coordinate w=1");
1911 "TH1ResMFRphiwclus2",
1913 "Residual of the hit x coordinate w=2");
1919 "TH1ResMFRphiwclus3",
1921 "Residual of the hit x coordinate w=3");
1927 "TH1ResMFRphiwclus4",
1929 "Residual of the hit x coordinate w=4");
1937 "Pull distribution");
1945 "Pull distribution");
1952 "TH1PullMFRphiwclus1",
1954 "Pull distribution w=1");
1961 "TH1PullMFRphiwclus2",
1963 "Pull distribution w=2");
1970 "TH1PullMFRphiwclus3",
1972 "Pull distribution w=3");
1979 "TH1PullMFRphiwclus4",
1981 "Pull distribution w=4");
1987 "TH1TrackangleRphi",
1989 "Track angle alpha");
1995 "TH1TrackanglebetaRphi",
1997 "Track angle beta");
2002 "TH1Trackangle2Rphi",
2010 "TProfPullTrackangleProfileRphi",
2012 "Profile of Pull in MF vs track angle alpha");
2019 "TH1PullTrackangle2DRphi",
2026 "TH1TrackwidthRphi",
2034 "TH1ExpectedwidthRphi",
2042 "TH1ClusterwidthRphi",
2057 "TProfPullTrackwidthProfileRphi",
2059 "Profile of Pull in MF vs track width");
2066 "TProfPullTrackwidthProfileRphiwclus1",
2068 "Profile of Pull in MF vs track width for w=1");
2075 "TProfPullTrackwidthProfileRphiwclus2",
2077 "Profile of Pull in MF vs track width for w=2");
2084 "TProfPullTrackwidthProfileRphiwclus3",
2086 "Profile of Pull in MF vs track width for w=3");
2093 "TProfPullTrackwidthProfileRphiwclus4",
2095 "Profile of Pull in MF vs track width for w=4");
2102 "TProfPullTrackwidthProfileCategory1Rphi",
2104 "Profile of Pull in MF vs track width for Category 1");
2111 "TProfPullTrackwidthProfileCategory2Rphi",
2113 "Profile of Pull in MF vs track width for Category 2");
2120 "TProfPullTrackwidthProfileCategory3Rphi",
2122 "Profile of Pull in MF vs track width for Category 3");
2129 "TProfPullTrackwidthProfileCategory4Rphi",
2131 "Profile of Pull in MF vs track width for Category 4");
2138 "TProfResolxMFTrackwidthProfileRphi",
2140 "Profile of Resolution in MF vs track width");
2148 "TProfResolxMFTrackwidthProfileWclus1Rphi",
2149 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Wclus1_Rphi",
"layer",
label,
"").c_str(),
2150 "Profile of Resolution in MF vs track width for w=1");
2157 "TProfResolxMFTrackwidthProfileWclus2Rphi",
2158 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Wclus2_Rphi",
"layer",
label,
"").c_str(),
2159 "Profile of Resolution in MF vs track width for w=2");
2166 "TProfResolxMFTrackwidthProfileWclus3Rphi",
2167 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Wclus3_Rphi",
"layer",
label,
"").c_str(),
2168 "Profile of Resolution in MF vs track width for w=3");
2175 "TProfResolxMFTrackwidthProfileWclus4Rphi",
2176 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Wclus4_Rphi",
"layer",
label,
"").c_str(),
2177 "Profile of Resolution in MF vs track width for w=4");
2184 "TProfResMFTrackwidthProfileWclus1Rphi",
2186 "Profile of Residuals(x) in MF vs track width for w=1");
2193 "TProfResMFTrackwidthProfileWclus2Rphi",
2195 "Profile of Residuals(x) in MF vs track width for w=2");
2202 "TProfResMFTrackwidthProfileWclus3Rphi",
2204 "Profile of Residuals(x) in MF vs track width for w=3");
2211 "TProfResMFTrackwidthProfileWclus4Rphi",
2213 "Profile of Residuals(x) in MF vs track width for w=4");
2221 "TProfResolxMFTrackwidthProfileCategory1Rphi",
2222 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category1_Rphi",
"layer",
label,
"").c_str(),
2223 "Profile of Resolution in MF vs track width for Category 1");
2230 "TProfResolxMFTrackwidthProfileCategory2Rphi",
2231 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category2_Rphi",
"layer",
label,
"").c_str(),
2232 "Profile of Resolution in MF vs track width for Category 2");
2239 "TProfResolxMFTrackwidthProfileCategory3Rphi",
2240 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category3_Rphi",
"layer",
label,
"").c_str(),
2241 "Profile of Resolution in MF vs track width for Category 3");
2248 "TProfResolxMFTrackwidthProfileCategory4Rphi",
2249 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category3_Rphi",
"layer",
label,
"").c_str(),
2250 "Profile of Resolution in MF vs track width for Category 4");
2257 "TProfResolxMFClusterwidthProfileCategory1Rphi",
2258 hidmanager.
createHistoLayer(
"ResolxMF_Cluster_width_Profile_Category1_Rphi",
"layer",
label,
"").c_str(),
2259 "Profile of Resolution in MF vs cluster width for Category 1");
2266 "TProfResolxMFAngleProfileRphi",
2268 "Profile of Resolution in MF vs track angle alpha");
2275 "TProfrapidityResProfilewclus1",
2277 "Profile of rapidity vs Res for w=1");
2284 "TProfrapidityResProfilewclus2",
2286 "Profile of rapidity vs Res for w=2");
2293 "TProfrapidityResProfilewclus3",
2295 "Profile of rapidity vs Res for w=3");
2302 "TProfrapidityResProfilewclus4",
2304 "Profile of rapidity vs Res for w=4");
2317 stereoandmatchedMEs.
meAdcSas =
nullptr;
2358 "Cluster Width - Number of strips that belong to the RecHit cluster");
2366 "RecHit Cluster Charge");
2375 "RecHit resol(x) coord.");
2384 "RecHit resol(x) coord.");
2392 "Residual of the hit x coordinate");
2400 "Residual of the hit x coordinate");
2408 "Pull distribution");
2416 "Pull distribution");
2431 "TH1TrackanglebetaSas",
2433 "Track angle beta");
2439 "TProfPullTrackangleProfileSas",
2441 "Profile of Pull in MF vs track angle (stereo)");
2456 "TH1ExpectedwidthSas",
2464 "TH1ClusterwidthSas",
2471 ibooker,
"TH1CategorySas", hidmanager.
createHistoLayer(
"Category_Sas",
"layer",
label,
"").c_str(),
"Category");
2477 "TProfPullTrackwidthProfileSas",
2479 "Profile of Pull in MF vs track width (stereo)");
2486 "TProfPullTrackwidthProfileCategory1Sas",
2488 "Profile of Pull in MF vs track width (Category 1) (stereo)");
2490 "track width (Category 1) (stereo) in " +
label, 1);
2492 "Pull in MF (Category 1) (stereo) in " +
label, 2);
2497 "TProfPullTrackwidthProfileCategory2Sas",
2499 "Profile of Pull in MF vs track width (Category 2) (stereo)");
2501 "track width (Category 2) (stereo) in " +
label, 1);
2503 "Pull in MF (Category 2) (stereo) in " +
label, 2);
2508 "TProfPullTrackwidthProfileCategory3Sas",
2510 "Profile of Pull in MF vs track width (Category 3) (stereo)");
2512 "track width (Category 3) (stereo) in " +
label, 1);
2514 "Pull in MF (Category 3) (stereo) in " +
label, 2);
2519 "TProfPullTrackwidthProfileCategory4Sas",
2521 "Profile of Pull in MF vs track width (Category 4) (stereo)");
2523 "track width (Category 4) (stereo) in " +
label, 1);
2525 "Pull in MF (Category 4) (stereo) in " +
label, 2);
2530 "TProfResolxMFTrackwidthProfileSas",
2532 "Profile of Resolution in MF vs track width (stereo)");
2539 "TProfResolxMFTrackwidthProfileCategory1Sas",
2540 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category1_Sas",
"layer",
label,
"").c_str(),
2541 "Profile of Resolution in MF vs track width (Category 1) (stereo)");
2543 " track width (Category 1) (stereo) in " +
label, 1);
2545 " Resolution in MF (Category 1) (stereo) in " +
label, 2);
2550 "TProfResolxMFTrackwidthProfileCategory2Sas",
2551 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category2_Sas",
"layer",
label,
"").c_str(),
2552 "Profile of Resolution in MF vs track width (Category 2) (stereo)");
2554 " track width (Category 2) (stereo) in " +
label, 1);
2556 " Resolution in MF (Category 2) (stereo) in " +
label, 2);
2561 "TProfResolxMFTrackwidthProfileCategory3Sas",
2562 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category3_Sas",
"layer",
label,
"").c_str(),
2563 "Profile of Resolution in MF vs track width (Category 3) (stereo)");
2565 " track width (Category 3) (stereo) in " +
label, 1);
2567 " Resolution in MF (Category 3) (stereo) in " +
label, 2);
2572 "TProfResolxMFTrackwidthProfileCategory4Sas",
2573 hidmanager.
createHistoLayer(
"ResolxMF_Track_width_Profile_Category4_Sas",
"layer",
label,
"").c_str(),
2574 "Profile of Resolution in MF vs track width (Category 4) (stereo)");
2576 " track width (Category 4) (stereo) in " +
label, 1);
2578 " Resolution in MF (Category 4) (stereo) in " +
label, 2);
2583 "TProfResolxMFClusterwidthProfileCategory1Sas",
2584 hidmanager.
createHistoLayer(
"ResolxMF_Cluster_width_Profile_Category1_Sas",
"layer",
label,
"").c_str(),
2585 "Profile of Resolution in MF vs cluster width (Category 1) (stereo)");
2587 "cluster width (Category 1) (stereo) in " +
label, 1);
2589 " Resolution in MF (Category 1) (stereo) in " +
label, 2);
2594 "TProfResolxMFAngleProfileSas",
2596 "Profile of Resolution in MF vs track angle (stereo)");
2624 "RecHit resol(x) coord.");
2633 "RecHit resol(y) coord.");
2642 "Residual of the hit x coord.");
2651 "Residual of the hit x coord.");
2659 const char *ParameterSetLabel,
2661 const char *HistoTitle) {
MonitorElement * mePullTrackwidthProfileRphiwclus3
bool layerswitchPullTrackwidthProfileCategory1Sas
Log< level::Info, true > LogVerbatim
MonitorElement * meResMFTrackwidthProfileWClus23
bool layerswitchResolxMFRphiwclus1
bool layerswitchResyMatched
SiStripTrackingRecHitsValid(const edm::ParameterSet &conf)
MonitorElement * meResolxLFRphi
MonitorElement * meResolxMFClusterwidthProfileCategory1Sas
MonitorElement * meResMFTrackwidthProfileWclus1Rphi
bool layerswitchResMFTrackwidthProfileWclus4Rphi
bool layerswitchrapidityResProfilewclus2
MonitorElement * mePullTrackwidthProfileRphiwclus1
MonitorElement * meAdcRphi
T getParameter(std::string const &) const
bool layerswitchResolxMFTrackwidthProfileCategory3Rphi
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0)
MonitorElement * meResolxMFTrackwidthProfile
bool layerswitchPullyMatched
SiStripRecHit2D stereoHit() const
MonitorElement * meResMFTrackwidthProfileWClus2
MonitorElement * meResMFTrackwidthProfileWClus4
void setSiStripFolderName(std::string name)
MonitorElement * meResolxMFTrackwidthProfileWClus3
bool layerswitchResolxMFTrackwidthProfileCategory3Sas
~SiStripTrackingRecHitsValid() override
bool layerswitchResolxMFTrackwidthProfileWclus3Rphi
bool layerswitchPullMFRphiwclus2
bool layerswitchResolxMFTrackwidthProfile
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
bool layerswitchClusterwidth
virtual float stripAngle(float strip) const =0
MonitorElement * mePullMFRphi
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
bool layerswitchResolxMatched
MonitorElement * meResolxMFSas
MonitorElement * meResolxMFRphiwclus4
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
bool layerswitchResMFTrackwidthProfile_WClus22
unsigned int stereo() const
stereo
MonitorElement * meResolxMFTrackwidthProfileCategory1
MonitorElement * meResolxMFTrackwidthProfileWclus2Rphi
bool layerswitchResMFRphiwclus4
MonitorElement * meTrackwidthRphi
void rechitanalysis(LocalVector ldir, const TrackingRecHit *rechit, const StripGeomDetUnit *stripdet, const StripClusterParameterEstimator *stripcpe, TrackerHitAssociator &associate, bool simplehit1or2D)
bool layerswitchResolxMFTrackwidthProfileWclus1Rphi
void fillME(MonitorElement *ME, float value1)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
MonitorElement * meResolxMFTrackwidthProfileWclus3Rphi
MonitorElement * merapidityResProfilewclus1
MonitorElement * meResolxMFRphiwclus2
bool layerswitchPullTrackwidthProfileRphi
bool layerswitchPullTrackwidthProfileCategory2Sas
bool layerswitchResolxMFRphi
bool layerswitchResolxMFSas
bool layerswitchPullMFSas
int closest(std::vector< int > const &vec, int value)
bool layerswitchPullTrackwidthProfileCategory2Rphi
bool layerswitchResolxLFRphi
MonitorElement * mePullMFRphiwclus4
Sin< T >::type sin(const T &t)
MonitorElement * meResMFRphiwclus4
bool layerswitchPullTrackwidthProfileRphiwclus3
RecHitProperties rechitpro
bool layerswitchResolxMFTrackwidthProfileWclus2Rphi
MonitorElement * meResyMatched
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
MonitorElement * meResMFRphiwclus3
bool layerswitchPullTrackangle2DRphi
MonitorElement * meTrackwidthSas
void rechitanalysis_matched(LocalVector ldir, const TrackingRecHit *rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate, const StripClusterParameterEstimator *stripcpe, const MatchStatus matchedmonorstereo)
bool layerswitchExpectedwidthSas
bool layerswitchCategoryRphi
std::map< std::string, LayerMEs > LayerMEsMap
bool layerswitchResolxMFClusterwidthProfileCategory1Rphi
MonitorElement * meCategory
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0)
bool layerswitchExpectedwidth
bool layerswitchResolxMFAngleProfile
MonitorElement * mePullTrackwidthProfileCategory1Sas
const edm::ESGetToken< StripClusterParameterEstimator, TkStripCPERecord > m_stripCPEToken
bool layerswitchResMFTrackwidthProfileWclus3Rphi
MonitorElement * meTrackanglebetaRphi
edm::ESWatcher< SiStripDetCablingRcd > watchSiStripDetCablingRcd_
MonitorElement * mePullLFRphi
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoTokenBR
MonitorElement * mePullTrackwidthProfileSas
bool layerswitchrapidityResProfilewclus4
bool layerswitchWclusRphi
bool layerswitchPullTrackwidthProfileSas
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label)
MonitorElement * meExpectedwidthSas
bool layerswitchResxMatched
bool layerswitchPullMFRphiwclus3
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0)
bool layerswitchResolxMFTrackwidthProfileSas
bool layerswitchResLFRphi
MonitorElement * meResolxMFTrackwidthProfileCategory3Sas
MonitorElement * mePullLFSas
bool layerswitchResolxMFTrackwidthProfile_WClus2
MonitorElement * meResolxMFAngleProfileRphi
bool layerswitchPosyMatched
MonitorElement * meResolxMFAngleProfile
bool layerswitchPullLFRphi
bool layerswitchResMFTrackwidthProfileWclus2Rphi
ClusterRef cluster() const
bool tibIsStereo(const DetId &id) const
bool layerswitchResolxMFTrackwidthProfile_Category3
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
bool layerswitchResolxMFTrackwidthProfileWclus4Rphi
MonitorElement * mePullTrackwidthProfileCategory2Rphi
MonitorElement * meResolxMFTrackwidthProfileCategory2
bool layerswitchResolxMFClusterwidthProfileCategory1Sas
virtual float strip(const LocalPoint &) const =0
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
MonitorElement * meResolxMFAngleProfileSas
MonitorElement * meResMFSas
bool tobIsStereo(const DetId &id) const
virtual float thickness() const =0
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * meExpectedwidthRphi
MonitorElement * mePullMFSas
bool layerswitchTrackanglebeta
MonitorElement * meResMFTrackwidthProfileWclus4Rphi
MonitorElement * meWclusSas
virtual float localPitch(const LocalPoint &) const =0
MonitorElement * meResMFTrackwidthProfileWClus3
bool layerswitchResMFTrackwidthProfile_WClus4
MonitorElement * meClusterwidth
bool layerswitchTrackangleRphi
bool layerswitchTrackangleSas
virtual LocalVector driftDirection(const StripGeomDetUnit *) const =0
void createSimpleHitsMEs(DQMStore::IBooker &ibooker)
bool layerswitchResMFRphiwclus2
MonitorElement * merapidityResProfilewclus3
MonitorElement * mePullTrackwidthProfileCategory2Sas
bool layerswitchResolxMFTrackwidthProfile_WClus3
vector< ParameterSet > Parameters
MonitorElement * meResolxMFTrackwidthProfileWclus1Rphi
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
bool layerswitchResolxMFTrackwidthProfile_Category2
MonitorElement * meResolxMFTrackwidthProfileWclus4Rphi
bool layerswitchResolxMFTrackwidthProfileCategory1Rphi
bool layerswitchResMFTrackwidthProfile_WClus1
bool layerswitchResolxMFRphiwclus2
MonitorElement * meTrackwidth
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
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())
bool layerswitchResolyMatched
MonitorElement * meResolxMFRphi
MonitorElement * meCategoryRphi
SimpleHitsMEs simplehitsMEs
MonitorElement * meResolxMFTrackwidthProfileCategory2Rphi
MonitorElement * mePullMFRphiwclus1
Cos< T >::type cos(const T &t)
bool layerswitchClusterwidthSas
bool layerswitchCategorySas
bool layerswitchPullTrackwidthProfileCategory1Rphi
MonitorElement * meResolxMatched
bool layerswitchPullMFRphiwclus1
MonitorElement * mePullTrackwidthProfileRphiwclus2
std::string outputFileName
bool layerswitchResolxMFAngleProfileSas
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
Tan< T >::type tan(const T &t)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Abs< T >::type abs(const T &t)
MonitorElement * meAdcSas
const Topology & topology() const override
Returns a reference to the strip proxy topology.
bool layerswitchExpectedwidthRphi
MonitorElement * meResMFTrackwidthProfileWClus1
MonitorElement * meResolxMFTrackwidthProfileCategory1Sas
edm::EDGetTokenT< std::vector< reco::Track > > tracksInputToken_
bool layerswitchResolxMFClusterwidthProfile_Category1
bool layerswitchTrackangle2Rphi
MonitorElement * meResMFTrackwidthProfileWClus22
MonitorElement * meResolxMF
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
bool layerswitchResolxMFTrackwidthProfile_Category4
bool getData(T &iHolder) const
MonitorElement * meTrackangleSas
MonitorElement * meResMFRphiwclus2
bool layerswitchTrackwidth
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
MonitorElement * mePullTrackwidthProfileCategory1Rphi
MonitorElement * mePullTrackwidthProfileCategory4Rphi
MonitorElement * meResolxMFTrackwidthProfileWClus2
bool layerswitchrapidityResProfilewclus3
std::string topFolderName_
MonitorElement * meResLFSas
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
bool layerswitchPullTrackwidthProfileCategory3Sas
MonitorElement * mePullxMatched
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
std::vector< PSimHit > matched
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
MonitorElement * meResMFTrackwidthProfileWclus2Rphi
MonitorElement * meResolxLF
const GeomDetUnit * monoDet() const
MonitorElement * meResolxMFTrackwidthProfileCategory4
MonitorElement * meWclusRphi
bool layerswitchPullLFSas
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
bool layerswitchPullTrackwidthProfileRphiwclus4
bool layerswitchClusterwidthRphi
MonitorElement * meTrackanglealpha
Log< level::Info, false > LogInfo
bool layerswitchTrackwidthRphi
bool layerswitchResolxMFTrackwidthProfileCategory2Sas
LocalError localPositionError() const override
MonitorElement * mePullTrackwidthProfileCategory3Sas
MonitorElement * meTrackanglebetaSas
MonitorElement * mePullMF
bool layerswitchPullTrackwidthProfileCategory4Sas
const Plane & surface() const
The nominal surface of the GeomDet.
auto const & tracks
cannot be loose
MonitorElement * meResolxMFTrackwidthProfileCategory2Sas
MonitorElement * mePosxMatched
DetId geographicalId() const
bool layerswitchPullMFRphiwclus4
MonitorElement * meClusterwidthRphi
MonitorElement * meResxMatched
MonitorElement * meResolxMFTrackwidthProfileRphi
bool layerswitchResolxMFTrackwidthProfile_WClus4
MonitorElement * meResolyMatched
virtual LocalError localPositionError() const =0
bool layerswitchResolxMFRphiwclus3
constexpr uint32_t rawId() const
get the raw id
bool layerswitchPullxMatched
MonitorElement * mePullTrackangle2DRphi
MonitorElement * meResolxMFTrackwidthProfileCategory3Rphi
bool layerswitchPullTrackangleProfileRphi
MonitorElement * mePullTrackwidthProfileCategory4Sas
MonitorElement * mePullMFRphiwclus3
MonitorElement * meResLFRphi
bool layerswitchResolxMFTrackwidthProfileCategory4Rphi
bool layerswitchPullTrackwidthProfileCategory4Rphi
void createStereoAndMatchedMEs(DQMStore::IBooker &ibooker, std::string label)
const GeomDetUnit * stereoDet() const
MonitorElement * meResolxMFTrackwidthProfileWClus1
bool layerswitchResMFRphiwclus1
bool layerswitchPullTrackwidthProfileRphiwclus1
std::map< std::string, std::vector< uint32_t > > LayerDetMap
MonitorElement * meResolxMFTrackwidthProfileCategory4Sas
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_SiStripDetCablingToken
bool layerswitchResolxMFTrackwidthProfileCategory2Rphi
MonitorElement * mePullyMatched
bool tecIsStereo(const DetId &id) const
MonitorElement * mePullTrackangleProfileRphi
bool check(const edm::EventSetup &iSetup)
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
MonitorElement * meCategorySas
bool tidIsStereo(const DetId &id) const
bool layerswitchResolxMFTrackwidthProfileCategory4Sas
MonitorElement * mePullTrackwidthProfileCategory3Rphi
MonitorElement * meResMFRphiwclus1
bool layerswitchResMFTrackwidthProfile_WClus23
bool layerswitchResMFTrackwidthProfile_WClus3
bool layerswitchResMFTrackwidthProfile_WClus2
MonitorElement * meExpectedwidth
bool layerswitchResMFRphi
MonitorElement * meResMFTrackwidthProfileWclus3Rphi
MonitorElement * mePullTrackwidthProfileRphi
LocalPoint localPosition() const override
MonitorElement * meResolxMFTrackwidthProfileCategory3
bool layerswitchResolxMFTrackwidthProfileRphi
MonitorElement * meResolxMFRphiwclus1
static int position[264][3]
MonitorElement * merapidityResProfilewclus2
MonitorElement * meResolxMFTrackwidthProfileWClus4
bool layerswitchResolx_LF
MonitorElement * meResolxMFTrackwidthProfileSas
bool layerswitchResolx_MF
MonitorElement * meTrackangleRphi
SiStripRecHit2D monoHit() const
bool layerswitchTrackanglealpha
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
bool layerswitchrapidityResProfilewclus1
MonitorElement * merapidityResProfilewclus4
bool layerswitchPullTrackangleProfileSas
MonitorElement * meResolxMFTrackwidthProfileCategory1Rphi
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
bool layerswitchResolxMFTrackwidthProfile_Category1
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
bool layerswitchResolxMFAngleProfileRphi
MonitorElement * meResMFRphi
MonitorElement * mePullTrackwidthProfileRphiwclus4
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
MonitorElement * meResolxMFClusterwidthProfileCategory1
MonitorElement * meTrackangle2Rphi
virtual LocalPoint localPosition() const =0
bool layerswitchPosxMatched
MonitorElement * meResMFTrackwidthProfileWClus21
bool layerswitchResMFRphiwclus3
MonitorElement * meClusterwidthSas
bool layerswitchResMFTrackwidthProfileWclus1Rphi
ClusterRef cluster() const
bool layerswitchPullMFRphi
MonitorElement * mePullLF
bool layerswitchResolxMFTrackwidthProfileCategory1Sas
MonitorElement * mePullTrackangleProfileSas
MonitorElement * meResolxMFRphiwclus3
MonitorElement * mePullMFRphiwclus2
MonitorElement * meResolxMFTrackwidthProfileCategory4Rphi
bool layerswitchResolxLFSas
bool layerswitchPullTrackwidthProfileCategory3Rphi
bool layerswitchPullTrackwidthProfileRphiwclus2
bool layerswitchTrackanglebetaRphi
bool layerswitchTrackanglebetaSas
bool layerswitchResolxMFRphiwclus4
MonitorElement * bookMEProfile(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
MonitorElement * meTrackanglebeta
MonitorElement * meResolxMFClusterwidthProfileCategory1Rphi
bool layerswitchResMFTrackwidthProfile_WClus21
bool layerswitchResolxMFTrackwidthProfile_WClus1
MonitorElement * meResolxLFSas
MonitorElement * mePosyMatched
bool layerswitchTrackwidthSas
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
const Bounds & bounds() const