50 modOn(pSet.getUntrackedParameter<bool>(
"modOn",
true)),
51 reducedSet(pSet.getUntrackedParameter<bool>(
"reducedSet",
true)),
52 ladOn(pSet.getUntrackedParameter<bool>(
"ladOn",
false)),
53 layOn(pSet.getUntrackedParameter<bool>(
"layOn",
false)),
54 phiOn(pSet.getUntrackedParameter<bool>(
"phiOn",
false)),
55 ringOn(pSet.getUntrackedParameter<bool>(
"ringOn",
false)),
56 bladeOn(pSet.getUntrackedParameter<bool>(
"bladeOn",
false)),
57 diskOn(pSet.getUntrackedParameter<bool>(
"diskOn",
false)),
58 isUpgrade(pSet.getUntrackedParameter<bool>(
"isUpgrade",
false)),
71 consumes<reco::VertexCollection>(
vtxsrc_);
85 esConsumes<TransientTrackBuilder, TransientTrackRecord>(
edm::ESInputTag(
"",
"TransientTrackBuilder"));
87 esConsumes<TransientTrackingRecHitBuilder, TransientRecHitRecord>(
edm::ESInputTag(
"", ttrhbuilder_));
91 LogInfo(
"PixelDQM") <<
"SiPixelTrackResidualSource constructor" << endl;
103 LogInfo(
"PixelDQM") <<
"SiPixelTrackResidualSource destructor" << endl;
105 std::map<uint32_t, SiPixelTrackResidualModule *>::iterator struct_iter;
107 delete struct_iter->second;
108 struct_iter->second =
nullptr;
113 LogInfo(
"PixelDQM") <<
"SiPixelTrackResidualSource beginRun()" << endl;
117 LogVerbatim(
"PixelDQM") <<
"TrackerGeometry " << &(*TG) <<
" size is " << TG->dets().size() << endl;
123 for (TrackerGeometry::DetContainer::const_iterator pxb = TG->detsPXB().begin(); pxb != TG->detsPXB().end(); pxb++) {
124 if (dynamic_cast<PixelGeomDetUnit const *>((*pxb)) !=
nullptr) {
127 pair<uint32_t, SiPixelTrackResidualModule *>((*pxb)->geographicalId().rawId(),
module));
135 for (TrackerGeometry::DetContainer::const_iterator pxf = TG->detsPXF().begin(); pxf != TG->detsPXF().end(); pxf++) {
136 if (dynamic_cast<PixelGeomDetUnit const *>((*pxf)) !=
nullptr) {
139 pair<uint32_t, SiPixelTrackResidualModule *>((*pxf)->geographicalId().rawId(),
module));
159 std::stringstream nameX, titleX, nameY, titleY;
165 nameX <<
"siPixelTrackResidualsX_SummedLayer_" <<
i;
167 titleX <<
"Layer" << i <<
"Hit-to-Track Residual in r-phi";
171 nameY <<
"siPixelTrackResidualsY_SummedLayer_" <<
i;
173 titleY <<
"Layer" << i <<
"Hit-to-Track Residual in Z";
179 for (std::map<uint32_t, SiPixelTrackResidualModule *>::iterator pxd =
theSiPixelStructure.begin();
186 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource Folder Creation Failed! ";
192 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource ladder Folder Creation Failed! ";
198 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource layer Folder Creation Failed! ";
204 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource phi Folder Creation Failed! ";
210 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource Blade Folder Creation Failed! ";
216 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource Disk Folder Creation Failed! ";
222 throw cms::Exception(
"LogicError") <<
"SiPixelTrackResidualSource Ring Folder Creation Failed! ";
242 "ntracksInPixVol_" +
tracksrc_.
label(),
"Number of Tracks crossing Pixel fiducial Volume", 2, 0, 2);
267 std::stringstream ss1, ss2;
280 ss2 <<
"Charge (on track, layer" <<
i <<
")";
288 ss2 <<
"Charge (on track, diskp" <<
i <<
")";
296 ss2 <<
"Charge (on track, diskm" <<
i <<
")";
314 ss2 <<
"Charge (off track, layer" <<
i <<
")";
322 ss2 <<
"Charge (off track, diskp" <<
i <<
")";
330 ss2 <<
"Charge (off track, diskm" <<
i <<
")";
350 ss2 <<
"Size (on track, layer" <<
i <<
")";
358 ss2 <<
"Size (on track, diskp" <<
i <<
")";
366 ss2 <<
"Size (on track, diskm" <<
i <<
")";
382 ss2 <<
"SizeX (on track, layer" <<
i <<
")";
390 ss2 <<
"SizeX (on track, diskp" <<
i <<
")";
398 ss2 <<
"SizeX (on track, diskm" <<
i <<
")";
414 ss2 <<
"SizeY (on track, layer" <<
i <<
")";
422 ss2 <<
"SizeY (on track, diskp" <<
i <<
")";
430 ss2 <<
"SizeY (on track, diskm" <<
i <<
")";
448 ss2 <<
"Size (off track, layer" <<
i <<
")";
473 ss1 <<
"pix_bar Occ_roc_offtrack" +
digisrc_.
label() +
"_layer_" <<
i;
475 ss2 <<
"Pixel Barrel Occupancy, ROC level (Off Track): Layer " <<
i;
485 ss2 <<
"Size (off track, diskp" <<
i <<
")";
493 ss2 <<
"Size (off track, diskm" <<
i <<
")";
509 ss2 <<
"SizeX (off track, layer" <<
i <<
")";
517 ss2 <<
"SizeX (off track, diskp" <<
i <<
")";
525 ss2 <<
"SizeX (off track, diskm" <<
i <<
")";
541 ss2 <<
"SizeY (off track, layer" <<
i <<
")";
549 ss2 <<
"SizeY (off track, diskp" <<
i <<
")";
557 ss2 <<
"SizeY (off track, diskm" <<
i <<
")";
570 ss2 <<
"Clusters Layer" <<
i <<
" (on track)";
596 ss2 <<
"Clusters Layer" << i <<
"_LadvsMod (on track)";
622 ss1 <<
"pix_bar Occ_roc_ontrack" +
digisrc_.
label() +
"_layer_" <<
i;
624 ss2 <<
"Pixel Barrel Occupancy, ROC level (On Track): Layer " <<
i;
634 ss2 <<
"nclusters (on track, layer" <<
i <<
")";
645 ss2 <<
"Clusters +Z Disk" <<
i <<
" (on track)";
654 ss2 <<
"Clusters -Z Disk" <<
i <<
" (on track)";
663 "nclusters_" +
clustersrc_.
label() +
"_Barrel",
"Number of Clusters (on track, barrel)", 50, 0., 50.);
666 "nclusters_" +
clustersrc_.
label() +
"_Endcap",
"Number of Clusters (on track, endcap)", 50, 0., 50.);
672 ss2 <<
"Number of Clusters (on track, layer" <<
i <<
")";
680 ss2 <<
"Number of Clusters (on track, diskp" <<
i <<
")";
687 ss2 <<
"nclusters (on track, diskp" << i <<
")";
696 ss2 <<
"Number of Clusters (on track, diskm" <<
i <<
")";
703 ss2 <<
"nclusters (on track, diskm" << i <<
")";
710 "ROC_endcap_occupancy_ontrk",
"Pixel Endcap Occupancy, ROC level (On Track)", 72, -4.5, 4.5, 288, -12.5, 12.5);
729 ss2 <<
"Clusters Layer" <<
i <<
" (off track)";
739 ss2 <<
"Clusters +Z Disk" <<
i <<
" (off track)";
748 ss2 <<
"Clusters -Z Disk" <<
i <<
" (off track)";
757 "nclusters_" +
clustersrc_.
label() +
"_Barrel",
"Number of Clusters (off track, barrel)", 50, 0., 50.);
760 "nclusters_" +
clustersrc_.
label() +
"_Endcap",
"Number of Clusters (off track, endcap)", 50, 0., 50.);
766 ss2 <<
"Number of Clusters (off track, layer" <<
i <<
")";
774 ss2 <<
"Number of Clusters (off track, diskp" <<
i <<
")";
782 ss2 <<
"Number of Clusters (off track, diskm" <<
i <<
")";
788 "ROC_endcap_occupancy_offtrk",
"Pixel Endcap Occupancy, ROC level (Off Track)", 72, -4.5, 4.5, 288, -12.5, 12.5);
804 "FractionLowProb",
"Fraction of hits with low probability;FractionLowProb;#HitsOnTrack", 100, 0., 1.);
811 for (
int s = 0;
s < 3;
s++) {
812 sprintf(hisID,
"residual_x_subdet_%i",
s);
815 sprintf(hisID,
"residual_y_subdet_%i",
s);
863 double bestNdof = 0.0;
864 double maxSumPt = 0.0;
866 for (reco::VertexCollection::const_iterator iVertex = vertices->begin(); iVertex != vertices->end(); ++iVertex) {
867 if (iVertex->ndof() > bestNdof) {
868 bestNdof = iVertex->
ndof();
871 if (iVertex->p4().pt() > maxSumPt) {
872 maxSumPt = iVertex->p4().pt();
915 for (reco::TrackCollection::const_iterator iTrack = TracksForRes->begin(); iTrack != TracksForRes->end(); ++iTrack) {
922 double pt = iTrack->pt();
925 if (
abs(iTrack->dxy(vtxP)) > 5 * iTrack->dxyError())
928 double charge = iTrack->charge();
935 if (iTrack->extra().isNonnull() && iTrack->extra().isAvailable()) {
950 vector<TransientTrackingRecHit::RecHitPointer> GoodPixBarrelHits;
953 if ((*irecHit)->isValid()) {
954 DetId detId = (*irecHit)->geographicalId();
956 if (detId.
det() != 1) {
958 cout <<
"rec hit ID = " << detId.
det() <<
" not in tracker!?!?\n";
969 double gX = trecHit->globalPosition().x();
970 double gY = trecHit->globalPosition().y();
971 double gZ = trecHit->globalPosition().z();
982 GoodPixBarrelHits.push_back((trecHit));
990 GoodPixBarrelHits.push_back((trecHit));
998 GoodPixBarrelHits.push_back((trecHit));
1007 if (n1 + n2 + n3 == 3 && n1 * n2 * n3 > 0) {
1008 for (
unsigned int i = 0;
i < GoodPixBarrelHits.size();
i++) {
1009 if (GoodPixBarrelHits[
i]->
isValid()) {
1010 DetId detId = GoodPixBarrelHits[
i]->geographicalId().
rawId();
1013 double dca2 = 0.0, dz2 = 0.0;
1026 triplets(x2, y2, z2, x1, y1, z1, x3, y3, z3, ptsig, dca2, dz2, kap);
1029 residual = Test - Test2;
1033 triplets(x1, y1, z1, x2, y2, z2, x3, y3, z3, ptsig, dca2, dz2, kap);
1036 residual = Test - Test2;
1040 triplets(x1, y1, z1, x3, y3, z3, x2, y2, z2, ptsig, dca2, dz2, kap);
1043 residual = Test - Test2;
1047 std::map<uint32_t, SiPixelTrackResidualModule *>::iterator pxd =
theSiPixelStructure.find(detId);
1068 auto const &trackColl = *(trackCollectionHandle.
product());
1074 auto const &clustColl = *(clusterColl.
product());
1081 std::set<SiPixelCluster> clusterSet;
1083 int tracks = 0, pixeltracks = 0, bpixtracks = 0, fpixtracks = 0;
1084 int trackclusters = 0, barreltrackclusters = 0, endcaptrackclusters = 0;
1085 int otherclusters = 0, barrelotherclusters = 0, endcapotherclusters = 0;
1094 std::cout <<
"Trajectories for Res from " << labels.
module << std::endl;
1097 if (trajCollectionHandle.
isValid()) {
1098 auto const &trajColl = *(trajCollectionHandle.
product());
1102 auto const &ttac = *(match.
product());
1105 std::cout <<
"Trajectories\t : " << trajColl.size() << std::endl;
1106 std::cout <<
"recoTracks \t : " << trackColl.size() << std::endl;
1107 std::cout <<
"Map entries \t : " << ttac.size() << std::endl;
1117 bool isBpixtrack =
false, isFpixtrack =
false, crossesPixVol =
false;
1122 double d0 = (*trackref).d0(),
dz = (*trackref).dz();
1125 crossesPixVol =
true;
1127 const std::vector<TrajectoryMeasurement> &tmeasColl = traj_iterator->measurements();
1128 std::vector<TrajectoryMeasurement>::const_iterator tmeasIt;
1131 for (tmeasIt = tmeasColl.begin(); tmeasIt != tmeasColl.end(); tmeasIt++) {
1132 if (!tmeasIt->updatedState().isValid())
1135 if (!testhit->isValid() || testhit->geographicalId().det() !=
DetId::Tracker)
1137 uint testSubDetID = (testhit->geographicalId().subdetId());
1153 if (isBpixtrack || isFpixtrack) {
1159 const std::vector<TrajectoryMeasurement> &tmeasColl = traj_iterator->measurements();
1160 for (std::vector<TrajectoryMeasurement>::const_iterator tmeasIt = tmeasColl.begin(); tmeasIt != tmeasColl.end();
1162 if (!tmeasIt->updatedState().isValid())
1170 if (!hit->isValid() || hit->geographicalId().det() !=
DetId::Tracker) {
1174 const DetId &hit_detId = hit->geographicalId();
1178 if (IntSubDetID == 0)
1184 if ((persistentHit !=
nullptr) && (
typeid(*persistentHit) ==
typeid(
SiPixelRecHit))) {
1188 float hit_prob = -1.;
1192 if (hit_prob <
pow(10., -15.))
1210 if (theGeomDet ==
nullptr) {
1219 std::map<uint32_t, SiPixelTrackResidualModule *>::iterator pxd =
1227 float clust_alpha = atan2(localDir.
z(), localDir.
x());
1228 float clust_beta = atan2(localDir.
z(), localDir.
y());
1229 double corrCharge = clust->charge() *
1230 sqrt(1.0 / (1.0 /
pow(
tan(clust_alpha), 2) + 1.0 /
pow(
tan(clust_beta), 2) + 1.0)) /
1234 (*pxd).second->fill(
1235 (*clust),
true, corrCharge,
reducedSet,
modOn,
ladOn,
layOn,
phiOn,
bladeOn,
diskOn,
ringOn);
1243 clusterSet.insert(*clust);
1247 float xcenter = clust->x();
1248 float ycenter = clust->y();
1260 barreltrackclusters++;
1262 DetId detId = (*hit).geographicalId();
1263 if (detId >= 302055684 && detId <= 352477708) {
1274 float phi = clustgp.
phi();
1275 float z = clustgp.
z();
1282 int ladderSigned =
ladder;
1283 int moduleSigned =
module;
1285 int shell = int(sh);
1287 if (shell == 1 || shell == 2) {
1291 if (shell == 1 || shell == 3) {
1296 if (DBlayer ==
i + 1) {
1308 endcaptrackclusters++;
1316 float x = clustgp.
x();
1317 float y = clustgp.
y();
1318 float z = clustgp.
z();
1319 float phi = clustgp.
phi();
1321 float xclust = clust->x();
1322 float yclust = clust->y();
1328 if (DBdisk ==
i + 1) {
1339 if (DBdisk ==
i + 1) {
1373 std::cout <<
"clusters not on track: (size " << clustColl.size() <<
") ";
1375 for (TrackerGeometry::DetContainer::const_iterator it = TG->dets().begin(); it != TG->dets().end(); it++) {
1377 DetId detId = (*it)->geographicalId();
1378 if (detId >= 302055684 && detId <= 352477708) {
1380 int nofclOnTrack = 0, nofclOffTrack = 0;
1383 if (isearch != clustColl.
end()) {
1385 for (di = isearch->
begin(); di != isearch->
end(); di++) {
1386 unsigned int temp = clusterSet.size();
1387 clusterSet.insert(*di);
1389 if (clusterSet.size() >
temp) {
1399 std::map<uint32_t, SiPixelTrackResidualModule *>::iterator pxd =
1403 (*pxd).second->fill((*di),
false, -1.,
reducedSet,
modOn,
ladOn,
layOn,
phiOn,
bladeOn,
diskOn,
ringOn);
1416 if (theGeomDet ==
nullptr) {
1424 float xcenter = di->x();
1425 float ycenter = di->y();
1434 if (
DetId(detId).subdetId() == 1) {
1439 barrelotherclusters++;
1441 float phi = clustgp.
phi();
1445 if (DBlayer ==
i + 1) {
1460 endcapotherclusters++;
1462 float x = clustgp.
x();
1463 float y = clustgp.
y();
1470 if (DBdisk ==
i + 1) {
1480 if (DBdisk ==
i + 1) {
1499 if (theGeomDet ==
nullptr) {
1506 float xcenter = di->x();
1507 float ycenter = di->y();
1518 std::map<uint32_t, SiPixelTrackResidualModule *>::iterator pxd =
1521 (*pxd).second->nfill(
1523 if (nofclOnTrack != 0)
1525 if (nofclOffTrack != 0)
1528 if (
DetId(detId).subdetId() == 1) {
1529 if (nofclOnTrack != 0)
1531 if (nofclOffTrack != 0)
1535 if (DBlayer ==
i + 1) {
1536 if (nofclOnTrack != 0)
1538 if (nofclOffTrack != 0)
1544 if (
DetId(detId).subdetId() == 2) {
1547 if (nofclOnTrack != 0)
1549 if (nofclOffTrack != 0)
1553 if (DBdisk ==
i + 1) {
1554 if (nofclOnTrack != 0)
1556 if (nofclOffTrack != 0)
1563 if (DBdisk ==
i + 1) {
1564 if (nofclOnTrack != 0)
1566 if (nofclOffTrack != 0)
1576 if (trackclusters > 0)
1578 if (barreltrackclusters > 0)
1580 if (endcaptrackclusters > 0)
1582 if (otherclusters > 0)
1584 if (barrelotherclusters > 0)
1586 if (endcapotherclusters > 0)
1590 if (pixeltracks > 0)
1601 std::vector<MonitorElement *> meinput) {
1603 if (ipxsearch != diginp.
end()) {
1606 for (pxdi = ipxsearch->
begin(); pxdi != ipxsearch->
end(); pxdi++) {
1614 if (DBshell == 1 || DBshell == 2) {
1615 DBmodule = -DBmodule;
1617 if (DBshell == 1 || DBshell == 3) {
1618 DBladder = -DBladder;
1621 int col = pxdi->column();
1622 int row = pxdi->row();
1624 float modsign = (float)DBmodule / (
abs((
float)DBmodule));
1625 float ladsign = (float)DBladder / (
abs((
float)DBladder));
1626 float rocx = ((float)col / (52. * 8.)) * modsign + ((
float)DBmodule - (modsign)*0.5);
1627 float rocy = ((float)row / (80. * 2.)) * ladsign + ((
float)DBladder - (ladsign)*0.5);
1631 if ((DBladder % 2 == 0) && (!isHalfModule)) {
1634 if ((flip) && (DBladder > 0)) {
1635 if ((((
float)DBladder - (ladsign)*0.5) <= rocy) && (rocy < (
float)DBladder)) {
1636 rocy = rocy + ladsign * 0.5;
1637 }
else if ((((
float)DBladder) <= rocy) && (rocy < ((float)DBladder + (ladsign)*0.5))) {
1638 rocy = rocy - ladsign * 0.5;
1644 rocx = rocx - 0.0001;
1647 rocy = rocy - 0.0001;
1649 rocy = rocy + 0.0001;
1651 if (
abs(DBladder) == 1) {
1652 rocy = rocy + ladsign * 0.5;
1656 meinput.at(0)->Fill(rocx, rocy);
1659 meinput.at(1)->Fill(rocx, rocy);
1662 meinput.at(2)->Fill(rocx, rocy);
1682 using namespace std;
1687 double rho = 1 / kap;
1689 double r1 =
sqrt(x1 * x1 + y1 * y1);
1690 double r3 =
sqrt(x3 * x3 + y3 * y3);
1693 cout <<
"warn r1 = " <<
r1 <<
", r3 = " << r3 << endl;
1699 double L =
sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
1715 double x0 = 0.5 * (x1 + x3) + lam /
L * (-y1 + y3);
1716 double y0 = 0.5 * (y1 + y3) + lam /
L * (x1 - x3);
1720 double num = (y3 - y0) * (x1 - x0) - (x3 - x0) * (y1 - y0);
1721 double den = (x1 - x0) * (x3 - x0) + (y1 - y0) * (y3 - y0);
1722 double tandip = kap * (z3 - z1) / atan(
num / den);
1726 double dphi = atan(((x1 - x0) * y0 - (y1 - y0) * x0) / ((x1 - x0) * x0 + (y1 - y0) * y0));
1729 double uz0 = z1 + tandip * dphi *
rho;
1738 dca2 =
rho -
sqrt((x0 - x2) * (x0 - x2) + (y0 - y2) * (y0 - y2));
1740 dca2 =
rho +
sqrt((-x0 + x2) * (-x0 + x2) + (-y0 + y2) * (-y0 + y2));
1751 xx = x2 + (dca2 * ((x0 - x2)) /
sqrt((x0 - x2) * (x0 - x2) + (y0 - y2) * (y0 - y2)));
1752 yy = y2 + (dca2 * ((y0 - y2)) /
sqrt((x0 - x2) * (x0 - x2) + (y0 - y2) * (y0 - y2)));
1753 }
else if (kap >= 0) {
1754 xx = x2 - (dca2 * ((x0 - x2)) /
sqrt((x0 - x2) * (x0 - x2) + (y0 - y2) * (y0 - y2)));
1755 yy = y2 - (dca2 * ((y0 - y2)) /
sqrt((x0 - x2) * (x0 - x2) + (y0 - y2) * (y0 - y2)));
1761 double dphi2 = atan(((xx - x0) * y0 - (yy - y0) * x0) / ((xx - x0) * x0 + (yy - y0) * y0));
1765 double uz2 = uz0 - dphi2 * tandip *
rho;
1781 int pxfpanel = tTopo->
pxfPanel((*hit).geographicalId());
1782 int pxfmodule = tTopo->
pxfModule((*hit).geographicalId());
1783 int pxfdisk = tTopo->
pxfDisk((*hit).geographicalId());
1784 int pxfblade_off = tTopo->
pxfBlade((*hit).geographicalId());
1795 pxfdisk = -1. * pxfdisk;
1798 if (pxfblade_off <= 6 && pxfblade_off >= 1) {
1799 pxfblade = 7 - pxfblade_off;
1800 }
else if (pxfblade_off <= 18 && pxfblade_off >= 7) {
1801 pxfblade = 6 - pxfblade_off;
1802 }
else if (pxfblade_off <= 24 && pxfblade_off >= 19) {
1803 pxfblade = 31 - pxfblade_off;
1806 int clu_sdpx = ((pxfdisk > 0) ? 1 : -1) * (2 * (
abs(pxfdisk) - 1) + pxfpanel);
1807 int binselx = (pxfpanel == 1 && (pxfmodule == 1 || pxfmodule == 4))
1809 : ((pxfpanel == 1 && xclust < 80.0) || (pxfpanel == 2 && xclust >= 80.0));
1810 int nperpan = 2 * pxfmodule + pxfpanel - 1 + binselx;
1812 ((pxfdisk > 0) ? nperpan : 9 - nperpan) + (clu_sdpx + 4) * 8 - 2 * ((
abs(pxfdisk) == 1) ? pxfdisk : 0);
1814 int clu_roc_biny = -99.;
1815 int nrocly = pxfmodule + pxfpanel;
1816 for (
int i = 0;
i < nrocly;
i++) {
1817 int j = (pxfdisk < 0) ?
i : nrocly - 1 -
i;
1818 if (yclust >= (j * 52.0) && yclust < ((j + 1) * 52.0))
1819 clu_roc_biny = 6 - nrocly + 2 *
i + ((pxfblade > 0) ? pxfblade - 1 : pxfblade + 12) * 12 + 1;
1822 clu_roc_biny = clu_roc_biny + 144;
1834 int pxfpanel = pxfid.
panel();
1835 int pxfmodule = pxfid.
module();
1836 int pxfdisk = pxfid.
disk();
1837 int pxfblade_off = pxfid.
blade();
1840 pxfdisk = -1. * pxfdisk;
1844 if (pxfblade_off <= 6 && pxfblade_off >= 1) {
1845 pxfblade = 7 - pxfblade_off;
1846 }
else if (pxfblade_off <= 18 && pxfblade_off >= 7) {
1847 pxfblade = 6 - pxfblade_off;
1848 }
else if (pxfblade_off <= 24 && pxfblade_off >= 19) {
1849 pxfblade = 31 - pxfblade_off;
1852 int clu_sdpx = ((pxfdisk > 0) ? 1 : -1) * (2 * (
abs(pxfdisk) - 1) + pxfpanel);
1853 int binselx = (pxfpanel == 1 && (pxfmodule == 1 || pxfmodule == 4))
1855 : ((pxfpanel == 1 && xclust < 80.0) || (pxfpanel == 2 && xclust >= 80.0));
1856 int nperpan = 2 * pxfmodule + pxfpanel - 1 + binselx;
1858 ((pxfdisk > 0) ? nperpan : 9 - nperpan) + (clu_sdpx + 4) * 8 - 2 * ((
abs(pxfdisk) == 1) ? pxfdisk : 0);
1860 int clu_roc_biny = -99.;
1861 int nrocly = pxfmodule + pxfpanel;
1862 for (
int i = 0;
i < nrocly;
i++) {
1863 int j = (pxfdisk < 0) ?
i : nrocly - 1 -
i;
1864 if (yclust >= (j * 52.0) && yclust < ((j + 1) * 52.0))
1865 clu_roc_biny = 6 - nrocly + 2 *
i + ((pxfblade > 0) ? pxfblade - 1 : pxfblade + 12) * 12 + 1;
1868 clu_roc_biny = clu_roc_biny + 144;
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskms
MonitorElement * meClSizeYNotOnTrack_fpix
MonitorElement * meClSizeNotOnTrack_fpix
MonitorElement * meClSizeXNotOnTrack_all
MonitorElement * meSubdetResidualX[3]
std::vector< MonitorElement * > meNofClustersvsPhiOnTrack_diskms
Log< level::Info, true > LogVerbatim
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
MonitorElement * meClSizeXOnTrack_bpix
edm::EDGetTokenT< reco::TrackCollection > generalTracksToken_
T getUntrackedParameter(std::string const &, T const &) const
std::vector< MonitorElement * > meClChargeNotOnTrack_diskps
MonitorElement * meClSizeOnTrack_all
bool hasFilledProb() const
MonitorElement * meClSizeOnTrack_bpix
MonitorElement * meClChargeOnTrack_all
unsigned int panel() const
panel id
const_iterator end(bool update=false) const
MonitorElement * meNClustersNotOnTrack_all
std::vector< MonitorElement * > meClPosDisksmzNotOnTrack
bool isNonnull() const
Checks for non-null.
float clusterProbability(unsigned int flags=0) const
iterator find(det_id_type id)
std::map< uint32_t, SiPixelTrackResidualModule * > theSiPixelStructure
std::vector< MonitorElement * > meClPosLayersLadVsModOnTrack
edm::EDGetTokenT< std::vector< Trajectory > > tracksrcToken_
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
std::vector< MonitorElement * > meClChargeNotOnTrack_layers
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
MonitorElement * meNofTracks_
const LocalTrajectoryParameters & localParameters() const
virtual void setCurrentFolder(std::string const &fullpath)
std::vector< MonitorElement * > meClChargeOnTrack_layers
int moduleName() const
module id (index in z)
friend struct const_iterator
MonitorElement * meClSizeYOnTrack_fpix
std::string topFolderName_
MonitorElement * meRocBladevsDiskEndcapOnTrk
std::vector< MonitorElement * > meClChargeNotOnTrack_diskms
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * meClChargeNotOnTrack_fpix
#define DEFINE_FWK_MODULE(type)
unsigned int pxfDisk(const DetId &id) const
std::vector< MonitorElement * > meClSizeOnTrack_layers
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Geom::Phi< T > phi() const
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskms
constexpr uint32_t rawId() const
get the raw id
MonitorElement * meHitProbability
std::vector< MonitorElement * > meClSizeNotOnTrack_diskms
MonitorElement * meClSizeYNotOnTrack_bpix
auto const & tracks
cannot be loose
MonitorElement * meClChargeNotOnTrack_all
MonitorElement * meNofClustersOnTrack_
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > transientTrackingRecHitBuilderToken_
data_type const * const_iterator
key_type key() const
Accessor for product key.
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomTokenBeginRun_
std::vector< MonitorElement * > meClSizeXOnTrack_diskps
MonitorElement * meSubdetResidualY[3]
std::vector< MonitorElement * > meClPosLayersNotOnTrack
std::vector< MonitorElement * > meClPosDiskspzNotOnTrack
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskps
MonitorElement * meClSizeYOnTrack_bpix
const Plane & surface() const
The nominal surface of the GeomDet.
SiPixelTrackResidualSource(const edm::ParameterSet &)
MonitorElement * meNClustersOnTrack_all
MonitorElement * meNofTracksInPixVol_
TrajectoryStateOnSurface innermostMeasurementState() const
std::vector< MonitorElement * > meClPosDisksmzOnTrack
std::vector< MonitorElement * > meClSizeXOnTrack_layers
unsigned int blade() const
blade id
MonitorElement * meClSizeYOnTrack_all
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< MonitorElement * > meNClustersOnTrack_layers
~SiPixelTrackResidualSource() override
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
std::vector< MonitorElement * > meNofClustersvsPhiOnTrack_layers
void getepixrococcupancyontrk(const TrackerTopology *const tTopo, TransientTrackingRecHit::ConstRecHitPointer hit, float xclust, float yclust, float z, MonitorElement *meinput)
bool isHalfModule() const
full or half module
MonitorElement * meClSizeNotOnTrack_bpix
std::vector< MonitorElement * > meZeroRocLadvsModOffTrackBarrel
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
MonitorElement * meClChargeOnTrack_fpix
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::vector< MonitorElement * > meClSizeYOnTrack_diskps
bool setModuleFolder(const uint32_t &rawdetid=0, int type=0, bool isUpgrade=false)
Set folder name for a module or plaquette.
std::vector< MonitorElement * > meClChargeOnTrack_diskps
std::vector< MonitorElement * > meNClustersOnTrack_diskms
void triplets(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double ptsig, double &dc, double &dz, double kap)
MonitorElement * meClSizeXOnTrack_all
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
std::vector< MonitorElement * > meResidualYSummedLay
MonitorElement * meNClustersOnTrack_fpix
std::vector< MonitorElement * > meClPosLayersOnTrack
unsigned int module() const
det id
LocalVector momentum() const
Momentum vector in the local frame.
std::vector< MonitorElement * > meClPosDiskspzOnTrack
edm::EDGetTokenT< std::vector< reco::Track > > trackToken_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual double getBinContent(int binx) const
get content of bin (1-D)
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clustersrcToken_
std::vector< MonitorElement * > meClSizeXNotOnTrack_layers
const TrackerGeomDet * idToDet(DetId) const override
iterator end()
Return the off-the-end iterator.
unsigned int disk() const
disk id
void getepixrococcupancyofftrk(DetId detId, const TrackerTopology *const tTopo, float xclust, float yclust, float z, MonitorElement *meinput)
std::shared_ptr< TrackingRecHit const > RecHitPointer
MonitorElement * meNClustersNotOnTrack_fpix
unsigned int pxfModule(const DetId &id) const
std::vector< MonitorElement * > meClSizeYOnTrack_layers
std::vector< MonitorElement * > meClChargeOnTrack_diskms
unsigned int pxbLayer(const DetId &id) const
MonitorElement * meNClustersOnTrack_bpix
FreeTrajectoryState initialFreeState() const
Log< level::Info, false > LogInfo
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
virtual TrackingRecHit const * hit() const
static constexpr float d0
int ladderName() const
ladder id (index in phi)
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > digisrcToken_
std::vector< MonitorElement * > meNClustersNotOnTrack_layers
T const * product() const
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * meClSizeXNotOnTrack_bpix
std::vector< MonitorElement * > meZeroRocLadvsModOnTrackBarrel
void getrococcupancy(DetId detId, const edm::DetSetVector< PixelDigi > &diginp, const TrackerTopology *const tTopo, std::vector< MonitorElement * > meinput)
XYZPointD XYZPoint
point in space with cartesian internal representation
std::vector< MonitorElement * > meNofClustersvsPhiOnTrack_diskps
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopoTokenBeginRun_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomToken_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * meClSizeXNotOnTrack_fpix
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int layerName() const
layer id
T const * product() const
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
std::vector< MonitorElement * > meNClustersOnTrack_diskps
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopoToken_
double transverseCurvature() const
std::vector< MonitorElement * > meClSizeYOnTrack_diskms
MonitorElement * meClChargeNotOnTrack_bpix
Pixel cluster – collection of neighboring pixels above threshold.
MonitorElement * meClSizeXOnTrack_fpix
std::vector< MonitorElement * > meClSizeOnTrack_diskps
MonitorElement * meClSizeNotOnTrack_all
edm::InputTag clustersrc_
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskps
std::vector< MonitorElement * > meNClustersNotOnTrack_diskms
int diskName() const
disk id
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
iterator begin()
Return an iterator to the first DetSet.
MonitorElement * meNClustersNotOnTrack_bpix
void dqmBeginRun(const edm::Run &r, edm::EventSetup const &iSetup) override
std::vector< MonitorElement * > meClSizeYNotOnTrack_layers
std::vector< MonitorElement * > meResidualXSummedLay
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
std::vector< MonitorElement * > meNClustersNotOnTrack_diskps
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
collection_type::const_iterator const_iterator
MonitorElement * meClChargeOnTrack_bpix
collection_type::const_iterator const_iterator
MonitorElement * meClSizeOnTrack_fpix
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
MonitorElement * meNofClustersNotOnTrack_
MonitorElement * meClSizeYNotOnTrack_all
std::vector< MonitorElement * > meClSizeNotOnTrack_diskps
std::vector< MonitorElement * > meClSizeOnTrack_diskms
edm::EDGetTokenT< TrajTrackAssociationCollection > trackAssociationToken_
std::vector< MonitorElement * > meClSizeNotOnTrack_layers
int layerName() const
layer id
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
Power< A, B >::type pow(const A &a, const B &b)
const_iterator begin(bool update=false) const
std::vector< MonitorElement * > meClSizeXOnTrack_diskms
MonitorElement * meRocBladevsDiskEndcapOffTrk
constexpr Detector det() const
get the detector field from this detid
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)