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

drop type specs in RecoTracker #30947

Merged
merged 4 commits into from
Aug 17, 2020
Merged

drop type specs in RecoTracker #30947

merged 4 commits into from
Aug 17, 2020

Conversation

jeongeun
Copy link
Contributor

PR description:

Update the safer syntax for existing parameter :
(1) drop type specifications where the original parameter exists.
(2) using "clone" instead of "deepcopy"
(3) move all parameter inside the clone

Instead of modifying parameters with full type specs, which can be interpreted as an insertion of a new parameter, it is a safer way to protect from parameter name mistakes and will also help in possible parameter migrations.
(The references were PR#30353, PR#30556, PR#30671, PR#30700, PR#30827)

In this PR, total 24 files updated.

  • RecoTracker/{CkfPattern} 3 files
  • RecoTracker/{Configuration} 3 files
  • RecoTracker/{SiTrackerMRHTools} 2 files
  • RecoTracker/{SpecialSeedGenerators} 3 files
  • RecoTracker/{TkSeedGenerator} 1 file
  • RecoTracker/{TrackProducer} 11 files
  • RecoTracker/{TransientTrackingRecHit} 1 file

PR validation:

Event Content comparison check was also done and there is no change with these updates.
Tested in CMSSW_11_2_X, the basic test all passed in the CMSSW PR instructions.

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-30947/17378

  • This PR adds an extra 28KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @jeongeun (JeongEun Lee) for master.

It involves the following packages:

RecoTracker/CkfPattern
RecoTracker/Configuration
RecoTracker/SiTrackerMRHTools
RecoTracker/SpecialSeedGenerators
RecoTracker/TkSeedGenerator
RecoTracker/TrackProducer
RecoTracker/TransientTrackingRecHit

@perrotta, @jpata, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks.
@makortel, @felicepantaleo, @GiacomoSguazzoni, @JanFSchulte, @rovere, @VinInn, @mschrode, @gpetruc, @ebrondol, @mtosi, @dgulhan this is something you requested to watch as well.
@silviodonato, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor

slava77 commented Jul 28, 2020

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 28, 2020

The tests are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

+1
Tested at: b9054ee
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-c373d9/8378/summary.html
CMSSW: CMSSW_11_2_X_2020-07-28-1100
SCRAM_ARCH: slc7_amd64_gcc820

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-c373d9/8378/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 34
  • DQMHistoTests: Total histograms compared: 2525444
  • DQMHistoTests: Total failures: 7
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2525390
  • DQMHistoTests: Total skipped: 47
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 33 files compared)
  • Checked 144 log files, 17 edm output root files, 34 DQM output files

Copy link
Contributor

@perrotta perrotta left a comment

Choose a reason for hiding this comment

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

"#inport copy" can also get removed from

  • RecoTracker/Configuration/python/RecoTrackerTopBottom_cff.py

@@ -15,9 +15,9 @@
import copy
Copy link
Contributor

Choose a reason for hiding this comment

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

This can be removed, as you did in the previous files

Copy link
Contributor Author

@jeongeun jeongeun Jul 29, 2020

Choose a reason for hiding this comment

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

Error occur when I remove this copy here :

 File "/afs/cern.ch/work/j/jelee/ServiceWork/EventContent/CMSSW_11_2_X_2020-07-20-2300/python/RecoMuon/MuonIdentification/cosmics_id.py", line 12, in <module>
    cosmicsVetoTrackCandidates = copy.deepcopy(ckfTrackCandidatesP5)
NameError: name 'copy' is not defined

from RecoTracker.CkfPattern.CkfTrackCandidatesP5_cff import *

(I will remove this copy and update RecoMuon/MuonIdentification/cosmics_id.p)

Copy link
Contributor

Choose a reason for hiding this comment

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

Updating RecoMuon/MuonIdentification/python/cosmics_id.py seems to be rather straightforward: I think you should do it right now, for that specific file, so that you won't forget to clean up this one later on.


from RecoTracker.CkfPattern.CkfTrackCandidatesP5_cff import *
ckfTrackCandidatesP5.src = cms.InputTag('combinedP5SeedsForCTF')
ckfTrackCandidatesP5.src = 'combinedP5SeedsForCTF'
#backward compatibility 2.2/3.1
#ckfTrackCandidatesP5.SeedProducer = 'combinedP5SeedsForCTF'
Copy link
Contributor

@perrotta perrotta Jul 29, 2020

Choose a reason for hiding this comment

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

This also do not exists any more, and it could be probably removed from this config

@@ -44,8 +43,8 @@
# TRACK INFO
#include "AnalysisAlgos/TrackInfoProducer/data/TrackInfoProducerP5.cff"
Copy link
Contributor

Choose a reason for hiding this comment

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

It does not exists: you can remove

Copy link
Contributor

Choose a reason for hiding this comment

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

The same for RSFinalTrackSelectorP5_cff here above

TrajectoryBuilderPSet = dict(refToPSet_ = 'GroupedCkfTrajectoryBuilderP5Bottom'),
NavigationSchool = 'CosmicNavigationSchool',
src = 'combinedP5SeedsForCTFBottom', #ok for 32X
#SeedProducer = 'combinedP5SeedsForCTFBottom', #ok for 22X
Copy link
Contributor

Choose a reason for hiding this comment

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

obsolete

TrajectoryBuilderPSet = dict(refToPSet_ = 'GroupedCkfTrajectoryBuilderP5Top'),
NavigationSchool = 'CosmicNavigationSchool',
src = 'combinedP5SeedsForCTFTop', #ok for 32X
#SeedProducer = 'combinedP5SeedsForCTFTop', #ok for 22X
Copy link
Contributor

Choose a reason for hiding this comment

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

obsolete

@@ -84,16 +84,17 @@
#recHitMatcher
#include "RecoLocalTracker/SiStripRecHitConverter/data/SiStripRecHitMatcher.cfi"
Copy link
Contributor

Choose a reason for hiding this comment

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

This does not exists any more since a while, already: it can be removed

src = cms.InputTag("ctfWithMaterialTracksP5"),
Fitter = cms.string('FittingSmootherRKP5'),
src = "ctfWithMaterialTracksP5",
Fitter = 'FittingSmootherRKP5',
#TTRHBuilder = cms.string('WithAngleAndTemplate'),
Copy link
Contributor

Choose a reason for hiding this comment

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

you can remove the type specification even if you let it commented out

@perrotta
Copy link
Contributor

perrotta commented Aug 3, 2020

We are noticing that the combinatorialcosmicseedfinderP5Top/Bottom modules actually end up in some CalibTracker sequence, see #30947 (comment)

Maybe Tracker DPG (@mmusich ...) is more indicated that AlCa to understand whether those modules and downhill sequences are still needed or obsolete, and if they are still used in some "private" CalibTracker script, it would be good to know how to test them for correctness after the updates.

Again, I will sign this PR if there are no objections: but it would be good to clean up things, if it can be done

@mmusich
Copy link
Contributor

mmusich commented Aug 3, 2020

@perrotta..
I suspect those sequences are used in the Strip cross-talk measurement procedure but I am not 100% sure. @pieterdavid @robervalwalsh can you maybe cross-check with Eric?
Given it's August and the expert might be away can you clarify how urgent is this update? Judging from the content of the PR does not seem super urgent.

@perrotta
Copy link
Contributor

perrotta commented Aug 4, 2020

@perrotta..
I suspect those sequences are used in the Strip cross-talk measurement procedure but I am not 100% sure. @pieterdavid @robervalwalsh can you maybe cross-check with Eric?
Given it's August and the expert might be away can you clarify how urgent is this update? Judging from the content of the PR does not seem super urgent.

Thank you @mmusich !
Indeed, this PR sits in an ongoing campaign, and none of these PRs are really urgent, as similar ones acting on different packages can live on their own.
The only "issue" we have here is that we are not able to test a few moduels touched by this PR, and therefore certify beyond any doubt that the replacements applied do not actually modify the past behaviour of those modules. On the other hand, after a visual inspection it really looks like that the replacements are done correctly, and therefore we do not expect issues. What I actually really wanted to know was whether we are maintaining any dead code (in which case better to clean it up) or some still used one.
We can let this PR in standby for some time, and wait that the experts get back, if in vacation. If it will take longer than expected, to avoid possible needs of rebase or similar ones I think it will be anyhow safe to merge this PR at some point, and maybe continuing the discussion with those experts afterwards.

@perrotta
Copy link
Contributor

@mmusich @pieterdavid @robervalwalsh: did you have time to look at the combinatorialcosmicseedfinderP5Top/Bottom modules and the Strip cross-talk measurement related sequences which include it? Any suggestion about how to test their correctness?
As I said, I'm just waiting for your green light before signing this PR for reco

@robervalwalsh
Copy link
Contributor

@perrotta, I started looking into that but did not get a conclusion yet.

@mmusich
Copy link
Contributor

mmusich commented Aug 10, 2020

@perrotta I personally haven't checked, though can you clarify something about:

The ctftracksP5 sequence/task is only used by CalibTracker/Configuration/python/Reconstruction_cff.py to build the recotrackP5 sequence, which enters the reconstructionP5_step in that calibration file.

as far as I can see that's not used only there, but also elsewhere e.g. in the Pixel / Strip online clients: link.
Secondly I am missing what is the link between ctftracksP5Top/Bottom sequences and ctftracksP5.
You write:

ctftracksP5Top/Bottom sequences, which enter the ctftracksP5 sequence (defined in /RecoTracker/Configuration/python/RecoTrackerP5_cff.py)

but looking in RecoTracker/Configuration/python/RecoTrackerP5_cff.py, I don't see where these sequences enter ctftracksP5

@robervalwalsh
Copy link
Contributor

@perrotta @mmusich the sequence was removed a long time ago "until it is ported to the new cluster removal" in the commit
8d229f7

I am trying to trace the history of the new cluster removal to understand why it was never brought back and if it should be back.

@perrotta
Copy link
Contributor

@perrotta @mmusich the sequence was removed a long time ago "until it is ported to the new cluster removal" in the commit
8d229f7

I am trying to trace the history of the new cluster removal to understand why it was never brought back and if it should be back.

Thank you @robervalwalsh

@perrotta
Copy link
Contributor

@perrotta I personally haven't checked, though can you clarify something about:

The ctftracksP5 sequence/task is only used by CalibTracker/Configuration/python/Reconstruction_cff.py to build the recotrackP5 sequence, which enters the reconstructionP5_step in that calibration file.

as far as I can see that's not used only there, but also elsewhere e.g. in the Pixel / Strip online clients: link.
Secondly I am missing what is the link between ctftracksP5Top/Bottom sequences and ctftracksP5.
You write:

ctftracksP5Top/Bottom sequences, which enter the ctftracksP5 sequence (defined in /RecoTracker/Configuration/python/RecoTrackerP5_cff.py)

but looking in RecoTracker/Configuration/python/RecoTrackerP5_cff.py, I don't see where these sequences enter ctftracksP5

You are right @mmusich , i messed up the lines while trying to reconstruct the path: the sequence they enter is trackerCosmics_TopBot , in the same file (see https://github.com/cms-sw/cmssw/blob/master/RecoTracker/Configuration/python/RecoTrackerP5_cff.py#L77), which looks like a dead end there.

@perrotta
Copy link
Contributor

@robervalwalsh @mmusich
This PR is purely technical, and I do not expect it can affect any output anyhow.
The still open issue relates to the possibility to test those modules which are not included in any official standard sequence, and verify at the same time whether they are still needed at all. Since this issue can be easily decoupled from the code changes implemented in this PR, if you have nothing against it I'd plan to sign it for reco before the ORP meeting tomorrow (Aug 18): then all other checks can be still performed independently.
Please let me know if you have any objection.

@mmusich
Copy link
Contributor

mmusich commented Aug 17, 2020

@perrotta please go ahead, no objections on our side.

@perrotta
Copy link
Contributor

@perrotta please go ahead, no objections on our side.

Thank you @mmusich

@perrotta
Copy link
Contributor

+1

  • Technical cleaning of the syntax for parameters passed to cloned/modified modules, as specified in the PR description
  • Jenkins tests pass

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

@qliphy
Copy link
Contributor

qliphy commented Aug 17, 2020

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

7 participants