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

recover multi-thread reproducibility in CTPPS diamond local track y position #18779

Conversation

slava77
Copy link
Contributor

@slava77 slava77 commented May 17, 2017

clear yPosition and width after the fit; test for first hit using yPositionInitial and yWidthInitial instead of hardcoded 0,0

The issue was discovered in 80X.

I'm actually not fully capturing the logic of yPosition_ assignment based on the first hit y position. It looks partially as a way to cache the detector alignment.

In my test job in 80X (running on run 283877) I used 8 threads. The original CTPPSDiamondTrackRecognition.cc can possibly make 2 (arms) * 8 (threads) different values of track y depending which event and which hit ends up on the thread first. The fixed version corresponds to position setting in each event.
On 200 events: the original getY0 values (with repeat counts)

valueIndex   count value
     1        2 3.670e-15
     2       10 5.456e-15
     3        5 5.573e-15
     4        8 5.849e-15
     5        9 7.961e-15
     6        3 8.508e-15
     7        8 9.089e-15
     8        3 9.142e-15
     9        4 9.959e-15
    10        6 1.010e-14
    11        2 1.023e-14
    12        5 1.349e-14
    13        7 1.424e-14
    14       14 1.468e-14
    15        7 1.568e-14

The fixed:

     1        3 -9.37e-12
     2        4 7.961e-15
     3        2 8.508e-15
     4        3 8.705e-15
     5        1 8.795e-15
     6        1 9.089e-15
     7        2 9.744e-15
     8       10 9.959e-15
     9        2 1.010e-14
    10        9 1.023e-14
    11        4 1.035e-14
    12        3 1.050e-14
    13        1 1.062e-14
    14        1 1.073e-14
    15       10 1.092e-14
    16        5 1.305e-14
    17        3 1.349e-14
    18        8 1.388e-14
    19        3 1.424e-14
    20        4 1.468e-14
    21        1 1.505e-14
    22        7 1.539e-14
    23        1 1.568e-14
    24        5 1.594e-14

If these positions are in cm, they look like random roundoffs of zeros.
Still, the assignment should be made without dependence on event order or the number of threads.

@forthommel please check and either confirm that this fix has a meaning or provide a replacement PR.
Thank you.

…sitionInitial and yWidthInitial instead of hardcoded 0,0
@cmsbuild
Copy link
Contributor

A new Pull Request was created by @slava77 (Slava Krutelyov) for master.

It involves the following packages:

RecoCTPPS/TotemRPLocal

@perrotta, @cmsbuild, @slava77, @davidlange6 can you please review it and eventually sign? Thanks.
@davidlange6 you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor Author

slava77 commented May 17, 2017

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented May 17, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/19905/console Started: 2017/05/17 09:29

@forthommel
Copy link
Contributor

Hi @slava77,
Many thanks for this very nice follow-up!
Indeed, this original y position is parsed from the config file and cached for the whole station, and this is certainly more reasonable to define it as you did than to count on the numerical stability of this variable (originating from a parsed xml) wrt the hardcoded 0.0.
Maybe @nminafra can comment furthermore?

Anyway, thanks again @slava77!

@cmsbuild
Copy link
Contributor

@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-18779/19905/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 3375 differences found in the comparisons
  • DQMHistoTests: Total files compared: 24
  • DQMHistoTests: Total histograms compared: 1833892
  • DQMHistoTests: Total failures: 48748
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 1784964
  • DQMHistoTests: Total skipped: 180
  • DQMHistoTests: Total Missing objects: 0
  • Checked 98 log files, 14 edm output root files, 24 DQM output files

@slava77 slava77 changed the title RFC: recover multi-thread reproducibility in CTPPS diamond local track y position recover multi-thread reproducibility in CTPPS diamond local track y position May 17, 2017
@slava77
Copy link
Contributor Author

slava77 commented May 17, 2017

+1

for #18779 08e9f21

  • jenkins tests pass; there are no differences in comparisons because the CTPPS diamond data periods are not in jenkins tests

@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 requires discussion in the ORP meeting before it's merged. @davidlange6, @smuzaffar

@davidlange6
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 05a0425 into cms-sw:master May 18, 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