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

HGCAL: Change ToA to global time in DIGI #39720

Merged

Conversation

stahlleiton
Copy link
Contributor

@stahlleiton stahlleiton commented Oct 12, 2022

PR description:

This PR changes the definition of the time of arrival at DIGI level to represent the global time at which the signal is detected in the HGCAL hit (instead of been back-propagated to (0,0,0)). To ensure the time distribution is sampled within 25 ns window, a delay on the global time is added depending on the sub-detector equal to: EE=-9 ns, HEfront=-11 ns, HEback=-14 ns and HFNose=-33 ns.

These time delays are checked in the following plot:
image

The ToA definition is not changed at RECO level, thus the time of reconstructed HGCAL clusters and tracksters is still the time back-propagated to the center (as currently used), to simplify the review of the DIGI changes. The uncalibrated rechit algorithm takes care of the back-propagation and the removal of the time delay.

This is part of the set of updates already announced in the HGCAL DPG meeting (see https://docs.google.com/presentation/d/11AHfmXCauuNehVb7wZkH5JLHSSI_rbgjducatd0IJwU/edit?usp=sharing).

PR validation:

PR was validated using the following cmsDriver command:
cmsDriver.py TTbar_14TeV_TuneCP5_cfi --conditions auto:phase2_realistic_T21 -n 10 --era Phase2C18I13M9 --eventcontent FEVTDEBUG -s GEN,SIM,DIGI --datatier GEN-SIM-DIGI --beamspot HLLHC14TeV --geometry Extended2026D94 --fileout file:step12_HF.root --customise SLHCUpgradeSimulations/Configuration/aging.customise_aging_3000

The expected changes include:

  • Minor variations of all CMS digis due to change in number of calls to random number generator engine (correlated per event across all CMSSW).
  • Simulated HGCAL toa time distribution lowered to 1ns (instead of 5 ns).
  • Rec hit time distribution peaking at around 0 ns (before was offset to 5 ns).

@pfs @rovere @felicepantaleo

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-39720/32554

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @stahlleiton (Andre Stahl) for master.

It involves the following packages:

  • HLTrigger/Configuration (hlt)
  • RecoLocalCalo/HGCalRecAlgos (upgrade, reconstruction)
  • RecoLocalCalo/HGCalRecProducers (upgrade, reconstruction)
  • RecoParticleFlow/PFClusterProducer (reconstruction)
  • SimCalorimetry/HGCalSimProducers (upgrade, simulation)

@Martin-Grunewald, @civanch, @missirol, @clacaputo, @cmsbuild, @AdrianoDee, @srimanob, @mdhildreth, @mandrenguyen can you please review it and eventually sign? Thanks.
@felicepantaleo, @argiro, @Martin-Grunewald, @bsunanda, @pfs, @thomreis, @trtomei, @seemasharmafnal, @youyingli, @mmarionncern, @sethzenz, @apsallid, @silviodonato, @lgray, @missirol, @simonepigazzini, @beaucero, @vandreev11, @rovere, @cseez, @hatakeyamak, @ebrondol, @rchatter, @edjtscott, @lecriste, @sameasy this is something you requested to watch as well.
@perrotta, @dpiparo, @rappoccio you are the release manager for this.

cms-bot commands are listed here

@mandrenguyen
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b0cd36/28214/summary.html
COMMIT: 0ccdc6f
CMSSW: CMSSW_12_6_X_2022-10-12-1100/el8_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/39720/28214/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals

----- Begin Fatal Exception 13-Oct-2022 00:49:41 CEST-----------------------
An exception of category 'NoProxyException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 1 stream: 0
   [1] Running path 'dqmoffline_8_step'
   [2] Prefetching for module PFCandidateAnalyzerDQM/'PFCandAnalyzerDQM'
   [3] Prefetching for module PATPackedCandidateProducer/'packedPFCandidates'
   [4] Prefetching for module PFLinker/'particleFlow'
   [5] Prefetching for module PFCandidateListMerger/'particleFlowTmp'
   [6] Prefetching for module PFProducer/'particleFlowTmpBarrel'
   [7] Prefetching for module PFBlockProducer/'particleFlowBlock'
   [8] Prefetching for module PFElecTkProducer/'pfTrackElec'
   [9] Prefetching for module GsfTrackProducer/'electronGsfTracks'
   [10] Prefetching for module CkfTrackCandidateMaker/'electronCkfTrackCandidates'
   [11] Prefetching for module ElectronSeedMerger/'electronMergedSeeds'
   [12] Prefetching for module ElectronSeedProducer/'ecalDrivenElectronSeeds'
   [13] Prefetching for module HGCalRecHitProducer/'HGCalRecHit'
   [14] Calling method for module HGCalUncalibRecHitProducer/'HGCalUncalibRecHit'
Exception Message:
No data of type "HGCalGeometry" with label "HGCalHFNoseSensitive" in record "IdealGeometryRecord"
 Please add an ESSource or ESProducer to your job which can deliver this data.
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 13-Oct-2022 00:50:14 CEST-----------------------
An exception of category 'NoProxyException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 1 stream: 0
   [1] Running path 'dqmoffline_8_step'
   [2] Prefetching for module PFCandidateAnalyzerDQM/'PFCandAnalyzerDQM'
   [3] Prefetching for module PATPackedCandidateProducer/'packedPFCandidates'
   [4] Prefetching for module PFLinker/'particleFlow'
   [5] Prefetching for module PFCandidateListMerger/'particleFlowTmp'
   [6] Prefetching for module PFProducer/'particleFlowTmpBarrel'
   [7] Prefetching for module PFBlockProducer/'particleFlowBlock'
   [8] Prefetching for module PFElecTkProducer/'pfTrackElec'
   [9] Prefetching for module GsfTrackProducer/'electronGsfTracks'
   [10] Prefetching for module CkfTrackCandidateMaker/'electronCkfTrackCandidates'
   [11] Prefetching for module ElectronSeedMerger/'electronMergedSeeds'
   [12] Prefetching for module ElectronSeedProducer/'ecalDrivenElectronSeeds'
   [13] Prefetching for module HGCalRecHitProducer/'HGCalRecHit'
   [14] Calling method for module HGCalUncalibRecHitProducer/'HGCalUncalibRecHit'
Exception Message:
No data of type "HGCalGeometry" with label "HGCalHFNoseSensitive" in record "IdealGeometryRecord"
 Please add an ESSource or ESProducer to your job which can deliver this data.
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 13-Oct-2022 00:53:16 CEST-----------------------
An exception of category 'NoProxyException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 1 stream: 0
   [1] Running path 'dqmoffline_8_step'
   [2] Prefetching for module PFCandidateAnalyzerDQM/'PFCandAnalyzerDQM'
   [3] Prefetching for module PATPackedCandidateProducer/'packedPFCandidates'
   [4] Prefetching for module PFLinker/'particleFlow'
   [5] Prefetching for module PFCandidateListMerger/'particleFlowTmp'
   [6] Prefetching for module PFProducer/'particleFlowTmpBarrel'
   [7] Prefetching for module PFBlockProducer/'particleFlowBlock'
   [8] Prefetching for module PFElecTkProducer/'pfTrackElec'
   [9] Prefetching for module GsfTrackProducer/'electronGsfTracks'
   [10] Prefetching for module CkfTrackCandidateMaker/'electronCkfTrackCandidates'
   [11] Prefetching for module ElectronSeedMerger/'electronMergedSeeds'
   [12] Prefetching for module ElectronSeedProducer/'ecalDrivenElectronSeeds'
   [13] Prefetching for module HGCalRecHitProducer/'HGCalRecHit'
   [14] Calling method for module HGCalUncalibRecHitProducer/'HGCalUncalibRecHit'
Exception Message:
No data of type "HGCalGeometry" with label "HGCalHFNoseSensitive" in record "IdealGeometryRecord"
 Please add an ESSource or ESProducer to your job which can deliver this data.
----- End Fatal Exception -------------------------------------------------
Expand to see more relval errors ...

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-39720/32556

@cmsbuild
Copy link
Contributor

Pull request #39720 was updated. @Martin-Grunewald, @civanch, @missirol, @clacaputo, @cmsbuild, @AdrianoDee, @srimanob, @mdhildreth, @mandrenguyen can you please check and sign again.

@pfs
Copy link
Contributor

pfs commented Oct 13, 2022

please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b0cd36/28304/summary.html
COMMIT: 9e5fdf5
CMSSW: CMSSW_12_6_X_2022-10-17-1100/el8_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/39720/28304/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:

  • /pool/condor/dir_20150/jenkins/workspace/compare-root-files-short-matrix/data/PR-b0cd36/2500.601_mc126X+TTBarMINIAOD12.6+NANO_mc12.6+HRV_NANO_mc

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 5656 differences found in the comparisons
  • Reco comparison had 6 failed jobs
  • DQMHistoTests: Total files compared: 48
  • DQMHistoTests: Total histograms compared: 3391158
  • DQMHistoTests: Total failures: 116417
  • DQMHistoTests: Total nulls: 10
  • DQMHistoTests: Total successes: 3274709
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 47 files compared)
  • Checked 201 log files, 48 edm output root files, 48 DQM output files
  • TriggerResults: found differences in 1 / 46 workflows

@mandrenguyen
Copy link
Contributor

+reconstruction
Code changes look ok, but hgcal and sim experts should clearly have a look as well.
Comparisons appear to be consistent with just changes to the random number generator, as per the description. I agree that this PR will make a subsequent one that changes the reco time-of-arrival easier to benchmark.

@missirol
Copy link
Contributor

+hlt

One question, @stahlleiton : (just for my own understanding)

Minor variations of all CMS digis due to change in number of calls to random number generator engine

Why/how does this number of calls change? (I fail to see it from the PR's diff)

@civanch
Copy link
Contributor

civanch commented Oct 18, 2022

+1

@stahlleiton
Copy link
Contributor Author

stahlleiton commented Oct 18, 2022

+hlt

One question, @stahlleiton : (just for my own understanding)

Minor variations of all CMS digis due to change in number of calls to random number generator engine

Why/how does this number of calls change? (I fail to see it from the PR's diff)

Since the value of the time-of-arrival (toa) was changed in the digitizer, then the calls to the random engine changes in:

  • HGCFEElectronics : since toaColl[fireBX] changes and thus the if(toaColl[fireBX] != 0.f) changes when CLHEP::RandGaussQ::shoot(engine,...) is called.
  • HGCHEbackDigitizer : since totalIniMIPs is 0 for toa outside of [0, 25] ns time window, and CLHEP::RandPoissonQ::shoot(engine, ..) only changes the random generator seed when poisson mean is > 0 (see link), then changing the toa implicetly also changes when the engine is called by RandPoissonQ.

And since the engine is a pointer to a global engine used across all CMSSW and the seed is changed every time the engine is used, then changing the number of calls to the engine produces different pseudo-random results.

@rovere
Copy link
Contributor

rovere commented Oct 18, 2022

+1

@stahlleiton
Copy link
Contributor Author

stahlleiton commented Oct 18, 2022

@upgrade-l2 : is there any pending change on this PR for upgrade sign-off?
@srimanob @AdrianoDee

@srimanob
Copy link
Contributor

+Upgrade

@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, @rappoccio (and backports should be raised in the release meeting by the corresponding L2)

@perrotta
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 9166b25 into cms-sw:master Oct 19, 2022
@stahlleiton stahlleiton deleted the HGCAL_DIGI_LocalTime_CMSSW_12_6_0_pre3 branch October 20, 2022 14:52
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.

None yet

9 participants