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 the codes for ECAL Phase2 amplitude local reconstruction #34505

Merged
merged 11 commits into from Aug 15, 2021

Conversation

BiancaPinolini
Copy link
Contributor

This PR adds the codes for the amplitude local reconstruction for ECAL for Phase 2. Details about the implemented weights method to reconstruct the amplitude have been presented in the ECAL DPG meeting here.
The PR was prepared with the help of @amassiro and @thomreis.

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-34505/23993

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

@cmsbuild
Copy link
Contributor

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-34505/24025

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

@slava77
Copy link
Contributor

slava77 commented Jul 19, 2021

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

please address this; this is blocking the further test

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-34505/24078

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @BiancaPinolini (Bianca Sofia Pinolini) for master.

It involves the following packages:

  • RecoLocalCalo/EcalRecProducers (reconstruction)

@perrotta, @jpata, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks.
@rchatter, @apsallid, @argiro, @thomreis, @simonepigazzini this is something you requested to watch as well.
@silviodonato, @dpiparo, @qliphy, @perrotta you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor

slava77 commented Jul 19, 2021

@cmsbuild please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-01dbfc/16995/summary.html
COMMIT: 6510980
CMSSW: CMSSW_12_0_X_2021-07-19-1100/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/34505/16995/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-01dbfc/11634.912_TTbar_14TeV+2021_DD4hepDB+TTbar_14TeV_TuneCP5_GenSim+Digi+Reco+HARVEST+ALCA

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 39
  • DQMHistoTests: Total histograms compared: 2996268
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2996245
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 38 files compared)
  • Checked 165 log files, 37 edm output root files, 39 DQM output files
  • TriggerResults: no differences found

@cmsbuild
Copy link
Contributor

Pull request #34505 was updated. @perrotta, @jpata, @cmsbuild, @slava77 can you please check and sign again.

@slava77
Copy link
Contributor

slava77 commented Aug 10, 2021

@cmsbuild please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals-INPUT
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-01dbfc/17676/summary.html
COMMIT: 524da38
CMSSW: CMSSW_12_1_X_2021-08-10-1100/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/34505/17676/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals-INPUT

  • 23434.2123434.21_TTbar_14TeV+2026D49PU_ProdLike+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+DigiTriggerPU+RecoGlobalPU+MiniAODPU/step2_TTbar_14TeV+2026D49PU_ProdLike+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+DigiTriggerPU+RecoGlobalPU+MiniAODPU.log
  • 23434.9923434.99_TTbar_14TeV+2026D49PU_PMXS1S2+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+PREMIX_PremixHLBeamSpot14PU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU/step2_TTbar_14TeV+2026D49PU_PMXS1S2+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+PREMIX_PremixHLBeamSpot14PU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU.log
  • 23434.992123434.9921_TTbar_14TeV+2026D49PU_PMXS1S2ProdLike+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+PREMIX_PremixHLBeamSpot14PU+DigiTriggerPU+RecoGlobalPU+MiniAODPU/step2_TTbar_14TeV+2026D49PU_PMXS1S2ProdLike+TTbar_14TeV_TuneCP5_GenSimHLBeamSpot14INPUT+PREMIX_PremixHLBeamSpot14PU+DigiTriggerPU+RecoGlobalPU+MiniAODPU.log
Expand to see more relval errors ...

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 39
  • DQMHistoTests: Total histograms compared: 2999420
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2999397
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 38 files compared)
  • Checked 165 log files, 37 edm output root files, 39 DQM output files
  • TriggerResults: no differences found

@slava77
Copy link
Contributor

slava77 commented Aug 12, 2021

@cmsbuild please test

it looks like the phase-2 test workflows that failed the last time were fixed by now

process.L1Reco_step = cms.Path(process.L1Reco)
process.reconstruction_step = cms.Path(cms.Sequence(cms.Task(
bunchSpacingProducer,
ecalUncalibRecHitPhase2Task
Copy link
Contributor

Choose a reason for hiding this comment

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

addition to a task is not enough if there is nothing to consume this. So, this module does not run.
you will also need smth like

process.FEVTDEBUGHLToutput.outputCommands += ["keep *_ecalUncalibRecHitPhase2_*_*"]

added in this file.

I will not delay the signature because of this though.

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-01dbfc/17746/summary.html
COMMIT: 524da38
CMSSW: CMSSW_12_1_X_2021-08-12-1100/slc7_amd64_gcc900
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/34505/17746/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: 6 differences found in the comparisons
  • DQMHistoTests: Total files compared: 39
  • DQMHistoTests: Total histograms compared: 2999420
  • DQMHistoTests: Total failures: 6
  • DQMHistoTests: Total nulls: 1
  • DQMHistoTests: Total successes: 2999391
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -0.004 KiB( 38 files compared)
  • DQMHistoSizes: changed ( 312.0 ): -0.004 KiB MessageLogger/Warnings
  • Checked 165 log files, 37 edm output root files, 39 DQM output files
  • TriggerResults: no differences found

@slava77
Copy link
Contributor

slava77 commented Aug 12, 2021

I finally managed to remind myself of the other ECAL (uncalib) rechit producer structure.
Essentially everything is based on the factory pattern.
E.g. the EcalUncalibRecHitProducer.cc currently produces EB and EE uncalib rechits (compared to the same type but EB rechits only in the proposed EcalUncalibRecHitPhase2WeightsProducer), while a specific worker (e.g. EcalUncalibRecHitWorkerWeights) creates rechits by calling an instance of EcalUncalibRecHitRecWeightsAlgo. In this PR the EcalUncalibRecHitPhase2WeightsProducer does everything in situ with some fairly simple logic, which looks more like a simplified toy (considering also a few hardcoded/fixed parameters).

What is the plan for future developments?
Wouldn't it be better to simply fit in the existing structure, but modify it to work separately on EB vs EE? Currently, it looks like the further phase-2 producers may end up being written in full and from scratch without much structure design allowing for alternatives.

@amassiro
Copy link
Contributor

Hi,
I'm not sure about the Phase2 global plan for ECAL, and let me ping directly ecal dpg @cms-sw/ecal-dpg-l2 , in case they want to comment.
The idea is to have right now at least a simple ecal local reconstruction for Phase2 for ECAL (missing otherwise).
For Phase2 we will need also GPU versions, and I think that, for sake of maintenance, having simple separate reconstruction algorithms work better, but this is just my opinion.
It's worth having this discussed in an ECAL DPG meeting too.

About EB vs EE, EE will not be there anymore in Phase2, so this is just EB.

I finally managed to remind myself of the other ECAL (uncalib) rechit producer structure.
Essentially everything is based on the factory pattern.
E.g. the EcalUncalibRecHitProducer.cc currently produces EB and EE uncalib rechits (compared to the same type but EB rechits only in the proposed EcalUncalibRecHitPhase2WeightsProducer), while a specific worker (e.g. EcalUncalibRecHitWorkerWeights) creates rechits by calling an instance of EcalUncalibRecHitRecWeightsAlgo. In this PR the EcalUncalibRecHitPhase2WeightsProducer does everything in situ with some fairly simple logic, which looks more like a simplified toy (considering also a few hardcoded/fixed parameters).

What is the plan for future developments?
Wouldn't it be better to simply fit in the existing structure, but modify it to work separately on EB vs EE? Currently, it looks like the further phase-2 producers may end up being written in full and from scratch without much structure design allowing for alternatives.

@slava77
Copy link
Contributor

slava77 commented Aug 13, 2021

+reconstruction

for #34505 524da38

  • code changes are in line with the PR description and the follow up review. From the discussion in the thread it seems more important to have a starting point with a simple implementation to make uncalib rechits so that further developments can continue.
  • jenkins tests pass and comparisons with the baseline show no differences (the new EcalUncalibRecHitPhase2WeightsProducer is not in the standard workflows)
    • the test configuration provided with the PR runs after a small modification to actually enable the module

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

@slava77
Copy link
Contributor

slava77 commented Aug 13, 2021

The idea is to have right now at least a simple ecal local reconstruction for Phase2 for ECAL (missing otherwise).

OK, I created #34880 in order to hopefully come back to this relatively soon

@qliphy
Copy link
Contributor

qliphy commented Aug 15, 2021

+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.

None yet

8 participants