-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Phase 2 - Add new tracker DQM histograms showing OT cluster position in 2S modules & ladders #49482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
cms-bot internal usage |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49482/46964 |
|
A new Pull Request was created by @ljuckett for master. It involves the following packages:
@cmsbuild, @ctarricone, @gabrielmscampos, @nothingface0, @rseidita can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
Milestone for this pull request has been moved to CMSSW_16_1_X. Please open a backport if it should also go in to CMSSW_16_0_X. |
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49482/47231 |
|
Pull request #49482 was updated. @cmsbuild, @ctarricone, @gabrielmscampos, @nothingface0, @rseidita can you please check and sign again. |
|
+1 Size: This PR adds an extra 28KB to repository Comparison SummarySummary:
|
| //Book the right number of histograms per layer | ||
| unsigned int nModules = 0; | ||
| unsigned int nLadders = 0; | ||
|
|
||
| TrackerGeometry::DetIdContainer theDetIds = tkGeom_->detIds(); | ||
| for (auto detid : theDetIds) { | ||
| if (tkGeom_->getDetectorType(detid) == TrackerGeometry::ModuleType::Ph2SS && | ||
| tTopo_->getOTLayerNumber(det_id) == tTopo_->getOTLayerNumber(detid)) { | ||
| if ((tTopo_->getOTLayerNumber(detid) < 100) || | ||
| (tTopo_->getOTLayerNumber(detid) > 100 && tTopo_->tidRing(det_id) == tTopo_->tidRing(detid))) { | ||
| nModules = (tTopo_->module(detid) > nModules) ? tTopo_->module(detid) : nModules; | ||
| nLadders = ((tTopo_->getOTLayerNumber(detid) < 100) && (tTopo_->tobRod(detid) > nLadders)) | ||
| ? tTopo_->tobRod(detid) | ||
| : nLadders; | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still find the current construct hard to digest (and also relies on this hardcoded 100 that come from here
cmssw/DataFormats/TrackerCommon/src/TrackerTopology.cc
Lines 545 to 546 in b0efeef
| } else if (id.subdetId() == SiStripSubdetector::TID) { | |
| layer = 100 * tidSide(id) + tidWheel(id); |
just to distinguish barrel / endcaps.
Would something lilke
| //Book the right number of histograms per layer | |
| unsigned int nModules = 0; | |
| unsigned int nLadders = 0; | |
| TrackerGeometry::DetIdContainer theDetIds = tkGeom_->detIds(); | |
| for (auto detid : theDetIds) { | |
| if (tkGeom_->getDetectorType(detid) == TrackerGeometry::ModuleType::Ph2SS && | |
| tTopo_->getOTLayerNumber(det_id) == tTopo_->getOTLayerNumber(detid)) { | |
| if ((tTopo_->getOTLayerNumber(detid) < 100) || | |
| (tTopo_->getOTLayerNumber(detid) > 100 && tTopo_->tidRing(det_id) == tTopo_->tidRing(detid))) { | |
| nModules = (tTopo_->module(detid) > nModules) ? tTopo_->module(detid) : nModules; | |
| nLadders = ((tTopo_->getOTLayerNumber(detid) < 100) && (tTopo_->tobRod(detid) > nLadders)) | |
| ? tTopo_->tobRod(detid) | |
| : nLadders; | |
| } | |
| } | |
| } | |
| unsigned int nModules = 0; | |
| unsigned int nLadders = 0; | |
| const auto refLayer = tTopo_->getOTLayerNumber(det_id); | |
| const bool refIsBarrel = (det_id.subdetId() == SiStripSubdetector::TOB); | |
| const int refRing = refIsBarrel ? -1 : tTopo_->tidRing(det_id); | |
| for (const auto detid : tkGeom_->detIds()) { | |
| if (tkGeom_->getDetectorType(detid) != TrackerGeometry::ModuleType::Ph2SS) | |
| continue; | |
| if (tTopo_->getOTLayerNumber(detid) != refLayer) | |
| continue; | |
| const bool isBarrel = (detid.subdetId() == SiStripSubdetector::TOB); | |
| // Barrel: accept all | |
| // Endcap: require same ring | |
| if (!isBarrel && tTopo_->tidRing(detid) != refRing) | |
| continue; | |
| nModules = std::max(nModules, static_cast<unsigned int>(tTopo_->module(detid))); | |
| if (isBarrel) { | |
| nLadders = std::max(nLadders, static_cast<unsigned int>(tTopo_->tobRod(detid))); | |
| } | |
| } |
work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good shout. I've implemented the changes
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49482/47246 |
|
Pull request #49482 was updated. @cmsbuild, @ctarricone, @gabrielmscampos, @nothingface0, @rseidita can you please check and sign again. |
|
@cmsbuild please test |
|
+1 Size: This PR adds an extra 28KB to repository Comparison SummaryThere are some workflows for which there are errors in the baseline: Summary:
|
PR description:
Adds 2 types of histogram to SiTrackerPhase2 OT Clusters:
PositionOfClusters_2S shows all strips that constitute clusters in 2S modules. Each module number has its own histogram named as PositionOfClusters_2S_. This creates 24 histograms in barrel layers 4-6 and the following amount in the endcaps:
TEDD 1
Ring 11: 52
Ring 12: 60
Ring 13: 64
Ring 14: 72
Ring 15: 76
TEDD 2
Ring 8: 52
Ring 9: 56
Ring 10: 64
Ring 11: 68
Ring 12: 76
Positive y bins are on the top sensor of the module, with negative y bins on the bottom. 1 or 2 indicates the half-sensor. It is possible to view the whole 2S module on one plot.
PositionOfClusters_2SLadder shows the total number of clusters in each module in a ladder. Similarly to the module view it produces different number of histograms per layer:
Layer 4: 48 ladders
Layer 5: 60 ladders
Layer 6: 76 ladders
This histogram shows modules before the collision point with a negative value and after the collision point with a positive value. Technically, it displays 2 ladders per plot as the - and + ladders are not the same structure.

These histograms are proposed to show data primarily from the cosmic rack.
PR was validated by running the Phase-2 tracker DQM and checking the ROOT result