Skip to content
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

Phase2 digitizer updated to exclude badchannel in Strip like detectors #37576

Merged

Conversation

suchandradutta
Copy link
Contributor

PR description:

Implemented code to exclude BadChannels by reading information from the Condition Database for Strip-like detectors, namely PSS and SS types. Also updated the framework to be able to treat BadChannels independently for each type of subdetectors. For Inner Pixel detectors BadChannel implementation is done in PixelDigitizerAlgorithm. 3D-Pixel and Bricked-Pixel algorithms inherit from PixelDigitizerAlgorithm. Also changed the variable/method names dead->bad as the name Bad signifies both dead and noisy

Changes expected

  • Less Digis in PSS and SS detector and accordingly lower Occupancy. The amount what of loss depend on the fraction of bad channels introduced through the SiPhase2OTFakeBadStripsESSource

Depends on the PR #37463 (already integrated)

PR validation:

Validation is done using

runTheMatrix.py --what upgrade -ne -l 35010.0

The description and the plots are attached below

@emiglior @mmusich
Phase2Digitizer_BadChannelStudy_15042022.pdf

Suchandra added 2 commits April 15, 2022 08:43
…he Condition Database for Strip-like detectors, namely PSS and SS types. Also updated the framework to be able to treat BadChannels independently for each type of subdetectors. For Inner Pixel detectors BadChannel implementation is done in PixelDigitizerAlgorithm. 3D-Pixel and Bricked-Pixel algorithms inherit from PixelDigitizerAlgorithm. Also changed the variable/method names dead->bad as the name Bad signifies both dead and noisy.
…he Condition Database for Strip-like detectors, namely PSS and SS types. Also updated the framework to be able to treat BadChannels independently for each type of subdetectors. For Inner Pixel detectors BadChannel implementation is done in PixelDigitizerAlgorithm. 3D-Pixel and Bricked-Pixel algorithms inherit from PixelDigitizerAlgorithm. Also changed the variable/method names dead->bad as the name Bad signifies both dead and noisy.
@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37576/29328

  • This PR adds an extra 44KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @suchandradutta (Suchandra Dutta) for master.

It involves the following packages:

  • SimTracker/SiPhase2Digitizer (upgrade, simulation)

@cmsbuild, @AdrianoDee, @srimanob, @civanch, @mdhildreth can you please review it and eventually sign? Thanks.
@mtosi, @GiacomoSguazzoni, @JanFSchulte, @rovere, @VinInn, @mmusich, @threus, @dgulhan this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@mmusich
Copy link
Contributor

mmusich commented Apr 15, 2022

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals-INPUT
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-6adfd4/23943/summary.html
COMMIT: 56702e4
CMSSW: CMSSW_12_4_X_2022-04-14-2300/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/37576/23943/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals-INPUT

The relvals timed out after 4 hours.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 6 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3593039
  • DQMHistoTests: Total failures: 13
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 3593003
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -0.004 KiB( 47 files compared)
  • DQMHistoSizes: changed ( 312.0 ): -0.004 KiB MessageLogger/Warnings
  • Checked 200 log files, 45 edm output root files, 48 DQM output files
  • TriggerResults: no differences found

@mmusich
Copy link
Contributor

mmusich commented Apr 15, 2022

@cmsbuild, please test

  • let's see if it was a glitch

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-6adfd4/23958/summary.html
COMMIT: 56702e4
CMSSW: CMSSW_12_4_X_2022-04-15-1100/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/37576/23958/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3593159
  • DQMHistoTests: Total failures: 7
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 3593129
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.004 KiB( 47 files compared)
  • DQMHistoSizes: changed ( 312.0 ): 0.004 KiB MessageLogger/Warnings
  • Checked 200 log files, 45 edm output root files, 48 DQM output files
  • TriggerResults: no differences found

@@ -23,10 +23,10 @@
#include "DataFormats/DetId/interface/DetId.h"
#include "CondFormats/SiPixelObjects/interface/GlobalPixel.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelLorentzAngle.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelQuality.h"
#include "CondFormats/SiPixelObjects/interface/PixelROC.h"
//#include "CondFormats/SiPixelObjects/interface/SiPixelQuality.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good not to keep commented headers.

@civanch
Copy link
Contributor

civanch commented Apr 16, 2022

@suchandradutta , there is a general recommendation: in plugin directory do not have separate *.h files but include them into *.cc; it may be not a strong requirement but when you already working with some modifications it may be worse implementing.

Copy link
Contributor

@mmusich mmusich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the PR is touched anyway here's a couple of other comments.

for (auto const& p : path) {
const PixelROC* myroc = fedCablingMap_->findItem(p);
if (myroc->idInDetUnit() == j) {
LocalPixel::RocRowCol local = {39, 25}; //corresponding to center of ROC row, col
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true also for the phase2 sensors?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not think so. This is basically from PhaseI. Should I make it dummy for the moment? As it is the case fpr PSP sensors?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the functionality is not used, I think it's fine as it is. Let's revisit this after the PR is merged.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These hardcoded bad modules should better get taken from a DB or configuration file.
It is easy to forget them hardcoded here otherwise.
If the experts keep agreeing on merging this PR as such, we will mergi it as it is: please at least open a github issue in that case, so that it will remain track of it.

Copy link
Contributor

@mmusich mmusich Apr 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@perrotta these are NOT hardcoded bad modules, this is just a cheap way of getting the center of the ROC in local pixel coordinates. My point was that 39,25 is the middle of the ROC for the phase-1 pixel, but not necessarily also for the phase-2 one.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, ok. As such it makes more sense.
In any case, this could also get made customizable via python config, if it has to eventually support a different geometry for the Phase2 modules.

Comment on lines 261 to 267
for (size_t id = 0; id < disabledModules.size(); id++) {
if (detID == disabledModules[id].DetID) {
isbad = true;
badmodule = disabledModules[id];
break;
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for (size_t id = 0; id < disabledModules.size(); id++) {
if (detID == disabledModules[id].DetID) {
isbad = true;
badmodule = disabledModules[id];
break;
}
}
for (const auto& mod : disabledModules) {
if (detID == mod.DetID) {
isbad = true;
badmodule = mod;
break;
}
}

this could be a range-based loop.

@suchandradutta
Copy link
Contributor Author

suchandradutta commented Apr 17, 2022

@suchandradutta , there is a general recommendation: in plugin directory do not have separate *.h files but include them into *.cc; it may be not a strong requirement but when you already working with some modifications it may be worse implementing.

@civanch In the main driver class Phase2Digitizer.cc requires all the header files of individual algorithms. Also the inheritance will fail if the individual header files are removed.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37576/29360

  • This PR adds an extra 44KB to repository

@cmsbuild
Copy link
Contributor

Pull request #37576 was updated. @cmsbuild, @AdrianoDee, @srimanob, @civanch, @mdhildreth can you please check and sign again.

@mmusich
Copy link
Contributor

mmusich commented Apr 17, 2022

please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-6adfd4/23977/summary.html
COMMIT: 2207283
CMSSW: CMSSW_12_4_X_2022-04-16-1100/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/37576/23977/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3591161
  • DQMHistoTests: Total failures: 7
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 3591131
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -0.004 KiB( 47 files compared)
  • DQMHistoSizes: changed ( 312.0 ): -0.004 KiB MessageLogger/Warnings
  • Checked 200 log files, 45 edm output root files, 48 DQM output files
  • TriggerResults: no differences found

@mmusich
Copy link
Contributor

mmusich commented Apr 18, 2022

urgent

  • samples with this feature will be requested in 12_4_0_pre3

@civanch
Copy link
Contributor

civanch commented Apr 18, 2022

+1

@srimanob
Copy link
Contributor

+Upgrade

This PR introduce the method to exclude bad channels using information from the DB. This PR has no effect in the current workflow, no change has been seen in PR test as expected.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@perrotta
Copy link
Contributor

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants