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

Support hitless seeds in GroupedCkfTrajectory #20556

Merged

Conversation

folguera
Copy link
Contributor

Enable hitless seed compatibility to the GroupedCkfTrajectory so it can be used in the muon HLT reconstruction. Change is transparent to any user of the GroupedCkfTrajectory.

Removed unused function in BaseCkfTrajectoryBuilder. Will need back port to 92X.

@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/PR-20556/762

Code check has found code style and quality issues which could be resolved by applying a patch in https://cmssdt.cern.ch/SDT/code-checks/PR-20556/762/git-diff.patch
e.g. curl https://cmssdt.cern.ch/SDT/code-checks/PR-20556/762/git-diff.patch | patch -p1

You can run scram build code-checks to apply code checks directly (this will soon be required for PRs to be considered)

@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/PR-20556/763

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @folguera (Santiago Folgueras) for master.

It involves the following packages:

RecoTracker/CkfPattern

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

cms-bot commands are listed here

@perrotta
Copy link
Contributor

@folguera , this PR has already conflicts to be solved: please fix them

@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/PR-20556/764

@cmsbuild
Copy link
Contributor

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

@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-20556/23034/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 26
  • DQMHistoTests: Total histograms compared: 2644232
  • DQMHistoTests: Total failures: 385
  • DQMHistoTests: Total nulls: 345
  • DQMHistoTests: Total successes: 2643313
  • DQMHistoTests: Total skipped: 189
  • DQMHistoTests: Total Missing objects: 0
  • Checked 107 log files, 14 edm output root files, 26 DQM output files

@perrotta
Copy link
Contributor

perrotta commented Sep 21, 2017

@folguera : just in order to understand how this works now, in line
https://github.com/folguera/cmssw/blob/7fee5f3b5c847d25b1430cf40ae5f0ff3a04fbdb/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc#L221
the traj.direction() is used as argument of StateAndLayers(...) when traj.empty().

How can it work? It does work, indeed: then I imagine that such a direction is not needed. Could you please point me to where the code deals with those missing directions?

@folguera
Copy link
Contributor Author

Hi @perrotta,

I can investigate how this is dealt with, but I don't know the details about this. I just simply changed that line that was also used by the older CkfTrajectoryBuilder and that we were using for the muon HLT reconstruction.

In our case the temp trajectory has no measurement (hitless) but a direction of propagation, so I'm not sure that you don't have the direction in any case. Am I making sense?

@VinInn
Copy link
Contributor

VinInn commented Sep 21, 2017

@perotta, what makes you thinking that traj.direction() has no meaning when traj.empty()?

@perrotta
Copy link
Contributor

Ok, that direction is indeed just an enum, which keeps its meaning even if traj.empty(), see DataFormats/TrajectorySeed/interface/PropagationDirection.h: this is basically the answer to my question

@perrotta
Copy link
Contributor

You write: "Change is transparent to any user of the GroupedCkfTrajectory". This means that currently all user never end up with traj.empty(), otherwise there should be some different behaviour for them.
The question is the following: is there any parameter or instruction in the code that prevents empty trajectories now, that will be switched off when you'll use the code for hitless seeds?

@VinInn
Copy link
Contributor

VinInn commented Sep 21, 2017

@perotta,
is the opposite. currently a "user" with a hitless seed will produce a crash (in the first version there was even an assert)
now it will go through

Essentially this re-establishes the behaviour prior to Run2

btw there are no "user" of GroupedCkfTrajectory, only TRK-POG

@perrotta
Copy link
Contributor

(Slowly trying to understand how this code works... thank you @VinInn)

Well, currently in case of a hitless seed the method returns an uninitialized StateAndLayers(), which does not obviously imply to me that there will be a crash: does it?

If it does not crash, then it is not true that "Change is transparent to any user of the GroupedCkfTrajectory", unless there is some parameter or part of the code that prevents it.

Then, simplifying, my question is still: it never happened that some hitless seed entered that method AND the code did not crash? IOW: it is true that "Change is transparent to any user of the GroupedCkfTrajectory"?

@VinInn
Copy link
Contributor

VinInn commented Sep 21, 2017 via email

@perrotta
Copy link
Contributor

+1

  • It makes GroupedCkfTrajectory compatible to hit-less seeds, as it is already in CkfTrajectoryBuilder
  • No visible regression on jenkins test results
  • Not obvious whether it can affect also current use cases, but if so it is only with a negligible rate (it should have issued warning messages that were never noticed so far), and in any case it is endorsed by tracking POG, see Support hitless seeds in GroupedCkfTrajectory #20556 (comment)

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

@VinInn
Copy link
Contributor

VinInn commented Sep 21, 2017

PixelPhase1 sim w/o any effect on reco?
yes.... (already reported several time)

@davidlange6
Copy link
Contributor

It seems that way - sigh - would be great not to have that problem as we've beaten down other non-reproducibility and nan issues affecting the comparisons

@davidlange6
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 92082ad into cms-sw:master Sep 21, 2017
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

5 participants