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

Fix phase2 pixel in GeometrySearch #16470

Merged
merged 15 commits into from Nov 22, 2016

Conversation

ebrondol
Copy link
Contributor

@ebrondol ebrondol commented Nov 4, 2016

This PR has been developed in CMSSW_8_1_X_2016-11-01-2300 and tested on top of the PR #16407. This is the evolution of the story: with a private branch that produce the hit on track maps for phase2 geometry, I produced the ratio clusters/clusters on track in D4:
ontrackmultmap_v4021_baseline
It is pretty clear that the forward phase2 pixel detector is missing some hits and the last rings of the last forward layers[8-11] are not included in the search.
The problem has been cured using not anymore the class PixelForwardLayerBuilder but instead adapting Phase2OTEndcapLayerBuilder to be also used for the forward phase2 pixel. In this respect the naming has been changed everywhere.
After this fix, the new map for D4 looks like:
ontrackmultmap_v4021_fixphase2pixelgeometry_rebase
The code has been changed in such a way that the other D* should not be affected.

This impact some track variables such as the #hits vs eta, just two examples for single mu and for ttbar. But both seem now much more reasonable respect to before. If you want to have a look at the full set of results you can find them here and there. No huge differences have been noticed in eff/fakes.

The documentation in RecoTracker/TkDetLayers/doc/TkDetLayersTree.pdf has also been update - including the tilted update that was never introduced.

Thanks to @VinInn @rovere @venturia
Informing @delaere @boudoul @atricomi @kpedro88

Temporary solution to partly fix the Navigation.
The problem is the "subDetector" method which should differciate the
Pixel Layers with OT ones. This is a dirty solution, but it is working.
Better to think about templating the class..
The last ring of the new layout for phase2 pixel extend in r over the
min r of the OT. This brings a bug in the navigation that has been
fixed.
The Phase2PixelEndcap is not needed anymore, only the classes
Phase2EndcapLayer and Phase2EndcapRing are used for both Pixel and OT
detector. The names have been changed accordingly.
@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 4, 2016

A new Pull Request was created by @ebrondol for CMSSW_8_1_X.

It involves the following packages:

RecoTracker/TkDetLayers
RecoTracker/TkNavigation
RecoTracker/TkSeedGenerator

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

cms-bot commands are listed here #13028

@slava77
Copy link
Contributor

slava77 commented Nov 4, 2016

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 4, 2016

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/16203/console

@slava77
Copy link
Contributor

slava77 commented Nov 4, 2016

@ebrondol
which workflow did you use to make "ratio clusters/clusters on track in D4" ?
I'd expect a muon gun or something similarly dominated by "real and trackable" particles is used.

@ebrondol
Copy link
Contributor Author

ebrondol commented Nov 4, 2016

@slava77 yes, in this particular plot I have used the 4 muons wf with pt between 1 and 200 GeV (extended). I reproduced the same behavior also with single mu pt 10 GeV.

@ebrondol
Copy link
Contributor Author

ebrondol commented Nov 4, 2016

ah, I worked on top of the PR #16407, so I had all of them automatically.

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 4, 2016

@cmsbuild
Copy link
Contributor

cmsbuild commented Nov 4, 2016

Comparison job queued.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

@ebrondol
Copy link
Contributor Author

ebrondol commented Nov 17, 2016

@slava77 here the performance on single mu and ttbar with D4. They seem really good to me.
Do I need to produce also the comparison in D1? Or you can give me some feedback on that?

@ebrondol
Copy link
Contributor Author

@venturia I think that the main changes on performance of the filter is when it is wrong. This is why I wanted to double check that the performance were as expected. When it is off (as in the case of the baseline) or when it has the right correction (as in the case of this PR), this does not seem to affect the tracking performance - as far as I can tell. The problem we found out in the case of filter off, stands in the CPU timing.
@slava77 please, can you test now the timing situation with this PR in?

@slava77
Copy link
Contributor

slava77 commented Nov 17, 2016

On 11/17/16 1:17 AM, ebrondol wrote:

@slava77 https://github.com/slava77 here the performance on single mu
http://ebrondol.web.cern.ch/ebrondol/Phase2Tracking/fixPhase2PixelGeometry/20161116_FourMuExtended_D4/
and ttbar
http://ebrondol.web.cern.ch/ebrondol/Phase2Tracking/fixPhase2PixelGeometry/20161116_TTbar/
with D4.

This shows almost no effect on eff or fakes
which ttbar is this? (21224 in the plots suggests no PU)
The bad clusters may have been from PU and OOT.

They seem really good to me.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#16470 (comment), or
mute the thread
https://github.com/notifications/unsubscribe-auth/AEdcbihQQpO3CehwCDimLUIZPwfI_e50ks5q_BuygaJpZM4Kphg4.

@@ -11,6 +11,5 @@
)
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toModify(ClusterShapeHitFilterESProducer,
PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1Tk.par',
doPixelShapeCut = cms.bool(False)
PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase2Tk.par',
Copy link
Contributor

Choose a reason for hiding this comment

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

is this applicable to T1,T2 geometries?
I thought that the pixelShape_Phase1Tk.par was supposed to be applied to T1,T2 (phase-1 like pixel).
Most of the workflows that we have are still T1. It would be bad if behavior there goes bad with pixelShape_Phase2Tk.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You are right.
I am not sure how to menage this problem in the different geometries.
@kpedro88 @atricomi @boudoul do you have any suggestion?

Copy link
Contributor

Choose a reason for hiding this comment

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

we need T*-specific eras for tracking

Copy link
Contributor

@makortel makortel Nov 17, 2016

Choose a reason for hiding this comment

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

I think the simplest is to have T1+T2 to have different tracker-era than T3.

Copy link
Contributor

Choose a reason for hiding this comment

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

Let me remind that the most correct solution would be to move the whole calibration to GT (which would have saved some hairs with phase1 in pre12), but probably we are, again, after a "quicker" solution.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What if we check before the performance of T1 and T2 with this "wrong" calibration? In any case also the "phase1" ones were not optimal. I know that they are not the right ones for them, but if T3 is the only that we care for TDRs, and the performance on T1 and T2 are also kind of ok with the phase2Par, we do not need to create other eras or so which takes time and maybe confusion later.
I have started to produce results for ttbar in D1 geometry, with and without this PR. It does seem to me evetything all right.. @slava77 what do you think?

Copy link
Contributor Author

@ebrondol ebrondol Nov 17, 2016

Choose a reason for hiding this comment

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

And the result basically means: no so bad if we use phase2 shape filter for phase1, while a disaster if we do the contrary.. interesting.

Copy link
Contributor

Choose a reason for hiding this comment

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

The addition of multiple phase2_tracker Eras is possible, but introduces a lot of complexity. If @ebrondol can show the performance is not too bad, it would be easier just to use the same pixel shape everywhere. (@makortel: moving to GT would imply we'd have to create a separate GT queue for each Phase2 detector version... also not ideal.)

Copy link
Contributor

Choose a reason for hiding this comment

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

what are the results with PU?

Unless we move all "standard" workflows to use T3 (to include variations with I1/I2, M1/M2, timing or no timing), we should first confirm that these phase2 shapes are ok on T1 in the full dyn range (well, if it helps to speedup the tests, PU140 may be enough)

Copy link
Contributor

Choose a reason for hiding this comment

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

as I pointed in a separate email, can we look at comparisons of selections in phase1 and phase2 files compared to how the clusters look like (for good and bad clusters)?
So far the discussion treats the file and overall tracking as black boxes and we just look at high level outputs.

@slava77
Copy link
Contributor

slava77 commented Nov 17, 2016

@slava77 https://github.com/slava77 please, can you test now the
timing situation with this PR in?

I'll start the job soon.
For now, I have numbers with the older version of this PR (just improving the geom search):
they are roughly unchanged.

  delta/mean    delta/meanJob   baseline               new
   -0.724155      -0.70%    143217.00 ms/ev ->     67075.00 ms/ev initialStepTrackCandidates
   -0.563821      -1.32%    327464.00 ms/ev ->    183436.00 ms/ev lowPtTripletStepTrackCandidates
   -0.259058      -0.18%     85091.60 ms/ev ->     65575.80 ms/ev electronCkfTrackCandidates
   -0.207175      -0.19%    111620.00 ms/ev ->     90665.70 ms/ev lowPtQuadStepTrackCandidates
   +0.178413      +0.66%    366245.00 ms/ev ->    437988.00 ms/ev detachedQuadStepSeeds
   +0.071200      +1.46%   2154320.00 ms/ev ->   2313370.00 ms/ev allConversions
   +0.067070      +1.69%   2656590.00 ms/ev ->   2840950.00 ms/ev ecalDrivenElectronSeeds
   +0.063588      +0.24%    398012.00 ms/ev ->    424152.00 ms/ev lowPtQuadStepSeeds

there were actually improvements in a fraction of iterations, but these were balanced out by increases in some others, and most notably in allConversions and ecalDrivenElectronSeeds

@ebrondol
Copy link
Contributor Author

ebrondol commented Nov 17, 2016

@slava77 yes, this is ttbar from 21224 with no PU.
The difference in this PR was standing in the distribution of hits - at the beginning. Then with the addition of the cluster shape, I would also not expect any changes in the eff/fake if this is a good cluster shape filter.

@atricomi
Copy link
Contributor

We should have different files for T1-T2 and T3. IS it possible to have different eras?

Il giorno 17/nov/2016, alle ore 15:05, ebrondol notifications@github.com ha scritto:

@ebrondol commented on this pull request.

In RecoPixelVertexing/PixelLowPtUtilities/python/ClusterShapeHitFilterESProducer_cfi.py:

@@ -11,6 +11,5 @@
)
from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
phase2_tracker.toModify(ClusterShapeHitFilterESProducer,

  • PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1Tk.par',
  • doPixelShapeCut = cms.bool(False)
  • PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase2Tk.par',
    You are right.
    I am not sure how to menage this problem in the different geometries.
    @kpedro88 @atricomi @boudoul do you have any suggestion?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@slava77
Copy link
Contributor

slava77 commented Nov 17, 2016

Some plots with the older version (as of 54052f2 ), these should show the effect of the geometry search alone

ttbar PU200 (derived from 21224)
efficiency and fake rate are roughly similar and dup rate is down
wf21224pu_dup_vs_eta
wf21224pu_eff_vs_eta
wf21224pu_fr_vs_eta
(roughly the same picture without pt0.9 cut)

the largest change in tracking steps appears to be in pixelPair building
wf21224pu_pixelpaircand_eta

chi2 and nhits distribution look in agreement with plots posted with the PR itself.

this should be useful for incremental comparison. Since the pixel shape selection is a more significant feature.

@slava77
Copy link
Contributor

slava77 commented Nov 18, 2016

is this PR needed in 81X? we can just continue in 90X.

the fixes are rather minor in terms of the impact (jobs run, efficiency and fake rate is about the same; timing is not reduced by much, just under 20% in D4 PU200 tests).
So, it doesn't really qualify as a significant bug fix in 81X.

we can continue discussion in this thread though for simplicity

@ebrondol
Copy link
Contributor Author

ebrondol commented Nov 20, 2016

Hi @slava77 , I am not sure which release will be used for the final production of the TDR. This PR must be for sure in that release.
For validation purposes, I would like to have it also in 81X, because this PR fix the distribution of number of hits and the shape of the clusters. Maybe this effect can be important for other physics studies (such as b-tagging).

@slava77
Copy link
Contributor

slava77 commented Nov 20, 2016

On 11/20/16 5:37 AM, ebrondol wrote:

H @slava77 https://github.com/slava77 , I am not sure which release
will be used for the final production of the TDR. This PR must be for
sure in that release.

It will be based on 90X.

For validation purposes, I would like to have it also in 81X, because
this PR fix the distribution of number of hits and the shape of the
clusters. Maybe this effect can be important for other physics studies
(such as b-tagging).


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#16470 (comment), or
mute the thread
https://github.com/notifications/unsubscribe-auth/AEdcbocovkin5cq0trGRCUpeTFmxkeBgks5rAE0egaJpZM4Kphg4.

@slava77
Copy link
Contributor

slava77 commented Nov 20, 2016

Here are some notes on the impact of the last changes (54052f2...73649c3 which is due to the pixel shape selections).

Based on tests in CMSSW_8_1_X_2016-11-15-2300 for D4 ttbar with PU200.

I was looking for low-level plots like OffTrack or OnTrack, but apparently they are not in the phase-2 DQM. These would've been useful.

The main impact is on the technical side: CPU decreases by about 15% for the job and by a much more significant fraction for the affected modules (comparing to the IB here):

delta/moduleMean  delta/jobMean baseline       PR
   -1.883030      -7.50%    845426.00 ms/ev ->     25467.00 ms/ev pixelTracks
   -0.880414      -2.23%    398012.00 ms/ev ->    154703.00 ms/ev lowPtQuadStepSeeds
   -0.699192      -0.16%     32973.60 ms/ev ->     15890.80 ms/ev lowPtTripletStepSeeds
   -0.695042      -0.68%    143217.00 ms/ev ->     69346.70 ms/ev initialStepTrackCandidates
   -0.501832      -0.07%     18471.40 ms/ev ->     11061.20 ms/ev highPtTripletStepSeeds
   -0.357196      -0.91%    327464.00 ms/ev ->    228220.00 ms/ev lowPtTripletStepTrackCandidates
   +0.293221      +0.11%     33786.20 ms/ev ->     45395.00 ms/ev unsortedOfflinePrimaryVertices
   -0.284970      -0.08%     37125.10 ms/ev ->     27865.00 ms/ev detachedQuadStepTrackCandidates
   -0.247212      -0.17%     85091.60 ms/ev ->     66370.00 ms/ev electronCkfTrackCandidates
   -0.245667      -0.22%    111620.00 ms/ev ->     87198.40 ms/ev lowPtQuadStepTrackCandidates
   -0.215139      -0.65%    366245.00 ms/ev ->    295104.00 ms/ev detachedQuadStepSeeds
   -0.213871      -0.09%     49545.00 ms/ev ->     39972.40 ms/ev initialStepSeeds

Note that despite a factor of 30 change in CPU in pixelTracks, the final number of pixelTracks reconstructed is about the same.

Incremental differences of tracking performance (54052f2..73649c3) show fairly small impact on high level values (eff and fake rate)
wf21224pu_73649c3vs54052f2_general_dup_v_eta
wf21224pu_73649c3vs54052f2_general_dup_v_pt
wf21224pu_73649c3vs54052f2_general_eff_v_pt
wf21224pu_73649c3vs54052f2_general_fr_v_eta

as expected, there is a slight decrease in the number of hits
wf21224pu_73649c3vs54052f2_general_pxb_v_eta

there is some reshuffle in the final track algos ( more tracks in lowPtTriplet)
wf21224pu_73649c3vs54052f2_general_algo

lowPtTriplet has less seeds
wf21224pu_73649c3vs54052f2_seedeta_lowptt
but the number of candidates is much larger
wf21224pu_73649c3vs54052f2_candeta_lowptt

Some inclusive statistics:

  • 10% more tracks total (same for pf ch), concentrated in pt<0.7 GeV
  • ~20% more offlinePVs
  • higher PT objects are not really affected

@slava77
Copy link
Contributor

slava77 commented Nov 20, 2016

+1

for #16470 73649c3

  • changes are in line with the description and the follow up update to recover pixel shape selections. Even though the selections are relevant for T3 pixels, the no-pu tests show that these selections work well also for T1 for the signal tracks.
  • jenkins tests pass and comparisons with baseline show differences only in 2023 workflows
  • local tests confirm the expected behavior: significant decrease in CPU thanks to the reintroduced pixel shape selections, fairly small effect on fakes and efficiencies; flattening of chi2 and the change in the number of hits (these latter features are from the original PR submission, see more plots in the description).

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_8_1_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @slava77, @davidlange6, @smuzaffar

@davidlange6
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 329518c into cms-sw:CMSSW_8_1_X Nov 22, 2016
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