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

Adding MacroPixel inefficiency in Tracker Phase2Digitizer #37170

Merged

Conversation

suchandradutta
Copy link
Contributor

PR description:

Adding macropixel inefficiency due to bias rail in the Phase2Digitizer framework in PSPDigitizerAlgorithm

  • expect to see digi losses in the PSP modules
  • other PRs or externals it depends upon : none

PR validation:

The validation is done using

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

The description and the plots are attached below

Phase2Digitizer_BiasRailInEfficiency_07032022.pdf

if this PR is a backport please specify the original PR and why you need to backport that PR: Not backported

@emiglior @mmusich @tsusa

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 8, 2022

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37170/28735

  • This PR adds an extra 16KB to repository

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 8, 2022

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 Mar 8, 2022

@cmsbuild, please test

bool PSPDigitizerAlgorithm::isInBiasRailRegion(const PSimHit& hit) const {
static const float implant = 0.1467; // Implant length (1.467 mm)
static const float bRail = 0.00375; // Bias Rail region which causes inefficiency (37.5micron)
float block_len = 16 * implant + 15.5 * bRail;
Copy link
Contributor

Choose a reason for hiding this comment

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

This could be static const too (or even better constexpr, this applies to the two above too).

Copy link
Contributor

Choose a reason for hiding this comment

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

for future reference, maybe you can also put a comment on what are 16 and 15.5?

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 8, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-f3a7af/22932/summary.html
COMMIT: 5103bdc
CMSSW: CMSSW_12_3_X_2022-03-07-2300/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/37170/22932/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: 7 differences found in the comparisons
  • DQMHistoTests: Total files compared: 49
  • DQMHistoTests: Total histograms compared: 3985378
  • DQMHistoTests: Total failures: 11
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 3985344
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -0.004 KiB( 48 files compared)
  • DQMHistoSizes: changed ( 312.0 ): -0.004 KiB MessageLogger/Warnings
  • Checked 204 log files, 45 edm output root files, 49 DQM output files
  • TriggerResults: no differences found

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 9, 2022

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-37170/28754

  • This PR adds an extra 12KB to repository

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@mmusich
Copy link
Contributor

mmusich commented Mar 9, 2022

hi @suchandradutta, can you apply the code-format as requested by the bot above: #37170 (comment):

  • scram b code-format + push of the generated changes.

@AdrianoDee
Copy link
Contributor

test parameters:

  • workflow = 39010.0
  • relvals_opt = --what upgrade,standard,highstats,pileup,generator,extendedgen,production,ged,machine,prem

@AdrianoDee
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 9, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-f3a7af/22964/summary.html
COMMIT: 4b85541
CMSSW: CMSSW_12_3_X_2022-03-08-2300/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/37170/22964/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

@slava77 comparisons for the following workflows were not done due to missing matrix map:

  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-f3a7af/39010.0_FourMuExtendedPt1_200+2026D87+FourMuExtendedPt_1_200_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 6 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 3809955
  • DQMHistoTests: Total failures: 15
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 3809917
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0 KiB( 0 files compared)
  • Checked 0 log files, 0 edm output root files, 50 DQM output files

@AdrianoDee
Copy link
Contributor

please test
(let's relaunch them)

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 9, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-f3a7af/22991/summary.html
COMMIT: 4b85541
CMSSW: CMSSW_12_3_X_2022-03-09-1100/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/37170/22991/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

@slava77 comparisons for the following workflows were not done due to missing matrix map:

  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-f3a7af/39010.0_FourMuExtendedPt1_200+2026D87+FourMuExtendedPt_1_200_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal

Summary:

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

@qliphy
Copy link
Contributor

qliphy commented Mar 10, 2022

@cms-sw/simulation-l2 @cms-sw/upgrade-l2 This is one of the few PRs pending on the boundary of pre6, please have a look at your earliest convenient time. Thanks!

@AdrianoDee
Copy link
Contributor

+Upgrade
Add bias rail region check. There's a small comment for the configuration parameter but it may be assessed in a later moment due to urgency.

@civanch
Copy link
Contributor

civanch commented Mar 10, 2022

+1

@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)

@qliphy
Copy link
Contributor

qliphy commented Mar 10, 2022

+1

@cmsbuild cmsbuild merged commit 767a838 into cms-sw:master Mar 10, 2022

private:
edm::ESGetToken<SiPhase2OuterTrackerLorentzAngle, SiPhase2OuterTrackerLorentzAngleSimRcd> siPhase2OTLorentzAngleToken_;
const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
bool addBiasRailInefficiency_{false};
Copy link
Contributor

Choose a reason for hiding this comment

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

I may be missing something but If you set it here to false and then you ask for the parameter to be in the config (here) this false will be always overwritten by the input parameter, no? If the intention was to have a default value for this (without having to specify it in the python configuration) you would need to do something like:

SPDigitizerAlgorithm::PSPDigitizerAlgorithm(const edm::ParameterSet& conf, edm::ConsumesCollector iC)
     : Phase2TrackerDigitizerAlgorithm(conf.getParameter<ParameterSet>("AlgorithmCommon"),
                                       conf.getParameter<ParameterSet>("PSPDigitizerAlgorithm"),
                                       iC),
       geomToken_(iC.esConsumes()) {
      if (conf.getParameter<ParameterSet>("PSPDigitizerAlgorithm").exists("AddBiasRailInefficiency"))
      {
       addBiasRailInefficiency_ = conf.getParameter<ParameterSet>("PSPDigitizerAlgorithm").getParameter<bool>("AddBiasRailInefficiency");
      }

(note that this compiles but may be prone to errors.)

To have it set to false if the parameter is not in the config.

Copy link
Contributor

Choose a reason for hiding this comment

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

[ P.s. I thought to have already commented here but actually I had not pushed "Submit the review". ]

Copy link
Contributor

Choose a reason for hiding this comment

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

@AdrianoDee is correct - there is no sense in this construction. This should be done in utilities and not for each specific parameters. For me it is much more clear when there a python fragment responsible for parameters of this class with default values of all parameters.

Copy link
Contributor

Choose a reason for hiding this comment

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

This may be fixed in the new PR

Copy link
Contributor

@AdrianoDee AdrianoDee Mar 10, 2022

Choose a reason for hiding this comment

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

This may be fixed in the new PR

Thanks @civanch, yes I agree (@suchandradutta).

Copy link
Contributor

Choose a reason for hiding this comment

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

Isn't exists actively discouraged? #36261

Copy link
Contributor

Choose a reason for hiding this comment

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

Indeed you are right. Still I would think that false is useless but I don't know how to parse a default parameter in this context (usually I go through a fillDescriptions but I'm not sure about how it may be implemented here).

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess one would need a fillPSetDecription in the mother class that is then percolated to the individual plugins making use of the algorithm. I think this would need some larger refactoring of code (what about opening an issue?)

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