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

Vertex Reconstruction with Timing 810 #15710

Merged
merged 5 commits into from Sep 21, 2016

Conversation

lgray
Copy link
Contributor

@lgray lgray commented Sep 2, 2016

This is a forward port of:

It implements in reco::Vertex and the vertex finding/fitting machinery the ability to cluster in time in addition to space.

The track times are extracted from the matched sim-track of the reconstructed track and saved as ValueMaps.

In order to seemlessly switch between timing and no timing I have implemented the underlying GlobalError and Positions as four vectors instead of three vectors. Extending an interface to deal with the new dimension, and using the old interface for the original 3D algorithms.

The physics performance of the 3D algorithms (i.e. present LHC vertex reco) should be (and from local tests is) unaffected by this change. There may be minor performance drawbacks due to the way the backwards compatibility is kept. Alternative recommendations are welcome.

The timing is integrated directly into the phase 2 tracking reconstruction era. The overhead is fairly small.

@bendavid @kpedro88

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 2, 2016

A new Pull Request was created by @lgray (Lindsey Gray) for CMSSW_8_1_X.

It involves the following packages:

DataFormats/GeometryCommonDetAlgo
DataFormats/ParticleFlowReco
DataFormats/PatCandidates
DataFormats/VertexReco
IOMC/RandomEngine
RecoParticleFlow/Configuration
RecoParticleFlow/PFProducer
RecoVertex/Configuration
RecoVertex/GaussianSumVertexFit
RecoVertex/PrimaryVertexProducer
RecoVertex/VertexPrimitives
SimTracker/TrackAssociation
TrackingTools/TransientTrack

@smuzaffar, @civanch, @Dr15Jones, @cvuosalo, @mdhildreth, @monttj, @cmsbuild, @slava77, @davidlange6 can you please review it and eventually sign? Thanks.
@mmarionncern, @sdevissc, @wmtan, @makortel, @trocino, @abbiendi, @GiacomoSguazzoni, @rafaellopesdesa, @jhgoh, @VinInn, @bellan, @HuguesBrun, @wddgit, @rovere, @cbernet, @gpetruc, @battibass, @threus, @dgulhan, @bachtis this is something you requested to watch as well.
@slava77, @smuzaffar you are the release manager for this.

cms-bot commands are list here #13028

@lgray
Copy link
Contributor Author

lgray commented Sep 2, 2016

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 2, 2016

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

@@ -43,19 +43,27 @@ namespace reco {
typedef math::Error<dimension>::type Error;
Copy link
Contributor

Choose a reason for hiding this comment

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

better defind dimension4D = 4 enum and use it instead of "dimension+1" everywhere

Copy link
Contributor

Choose a reason for hiding this comment

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

this comment was not addressed

@slava77
Copy link
Contributor

slava77 commented Sep 2, 2016

I think we will have to see detailed cost estimates from changes in the data formats before this can go in.

For the TransientTrack* edits, my first thought is that they are not necessary and the "(time, timeError)" should instead be carried in parallel to the methods that need them (only vertexing, apparently).

@lgray
Copy link
Contributor Author

lgray commented Sep 2, 2016

@slava77 If we want to really calculate covariances and do a proper vertex fit the time will need to be in the TransientTracks anyway.

@lgray
Copy link
Contributor Author

lgray commented Sep 2, 2016

@slava77 Of course, right now, that is not done and something approximate is used.

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 2, 2016

-1

Tested at: 975fed1

You can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-15710/14912/summary.html

I found follow errors while testing this PR

Failed tests: RelVals

  • RelVals:

When I ran the RelVals I found an error in the following worklfows:
1003.0 step2

runTheMatrix-results/1003.0_RunMinBias2012A+RunMinBias2012A+RECODDQM+HARVESTDDQM/step2_RunMinBias2012A+RunMinBias2012A+RECODDQM+HARVESTDDQM.log
1000.0 step2
runTheMatrix-results/1000.0_RunMinBias2011A+RunMinBias2011A+TIER0+SKIMD+HARVESTDfst2+ALCASPLIT/step2_RunMinBias2011A+RunMinBias2011A+TIER0+SKIMD+HARVESTDfst2+ALCASPLIT.log
1001.0 step2
runTheMatrix-results/1001.0_RunMinBias2011A+RunMinBias2011A+TIER0EXP+ALCAEXP+ALCAHARVD1+ALCAHARVD2+ALCAHARVD3+ALCAHARVD4+ALCAHARVD5/step2_RunMinBias2011A+RunMinBias2011A+TIER0EXP+ALCAEXP+ALCAHARVD1+ALCAHARVD2+ALCAHARVD3+ALCAHARVD4+ALCAHARVD5.log
1306.0 step3
runTheMatrix-results/1306.0_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15/step3_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15.log
10021.0 step3
runTheMatrix-results/10021.0_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017/step3_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017.log
1330.0 step3
runTheMatrix-results/1330.0_ZMM_13+ZMM_13+DIGIUP15+RECOUP15+HARVESTUP15/step3_ZMM_13+ZMM_13+DIGIUP15+RECOUP15+HARVESTUP15.log
136.731 step3
runTheMatrix-results/136.731_RunSinglePh2016B+RunSinglePh2016B+HLTDR2_2016+RECODR2_2016reHLT_HIPM+HARVESTDR2/step3_RunSinglePh2016B+RunSinglePh2016B+HLTDR2_2016+RECODR2_2016reHLT_HIPM+HARVESTDR2.log
9.0 step3
runTheMatrix-results/9.0_Higgs200ChargedTaus+Higgs200ChargedTaus+DIGI+RECO+HARVEST/step3_Higgs200ChargedTaus+Higgs200ChargedTaus+DIGI+RECO+HARVEST.log
10424.0 step3
runTheMatrix-results/10424.0_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2023D1_GenSimFull+DigiFull_2023D1+RecoFullGlobal_2023D1+HARVESTFullGlobal_2023D1/step3_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2023D1_GenSimFull+DigiFull_2023D1+RecoFullGlobal_2023D1+HARVESTFullGlobal_2023D1.log
25.0 step3
runTheMatrix-results/25.0_TTbar+TTbar+DIGI+RECOAlCaCalo+HARVEST+ALCATT/step3_TTbar+TTbar+DIGI+RECOAlCaCalo+HARVEST+ALCATT.log
10024.0 step3
runTheMatrix-results/10024.0_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017/step3_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+HARVESTFull_2017.log
50202.0 step3
runTheMatrix-results/50202.0_TTbar_13+TTbar_13+DIGIUP15_PU50+RECOUP15_PU50+HARVESTUP15_PU50/step3_TTbar_13+TTbar_13+DIGIUP15_PU50+RECOUP15_PU50+HARVESTUP15_PU50.log
25202.0 step3
runTheMatrix-results/25202.0_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25/step3_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25.log
11224.0 step3
runTheMatrix-results/11224.0_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2023D3_GenSimFull+DigiFull_2023D3+RecoFullGlobal_2023D3+HARVESTFullGlobal_2023D3/step3_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2023D3_GenSimFull+DigiFull_2023D3+RecoFullGlobal_2023D3+HARVESTFullGlobal_2023D3.log

@lgray
Copy link
Contributor Author

lgray commented Sep 2, 2016

OK... fun. that ran locally.

@lgray
Copy link
Contributor Author

lgray commented Sep 2, 2016

Anyway, I'll come to it over the weekend, tell me what size impact estimates you want to see and in what samples you want to see them.

@slava77
Copy link
Contributor

slava77 commented Sep 2, 2016

On 9/2/16 2:28 PM, Lindsey Gray wrote:

Anyway, I'll come to it over the weekend, tell me what size impact
estimates you want to see and in what samples you want to see them.

  • memory peak
  • plain CPU cost increase
  • disk size [likely less of an issue due to compression]
    The above, more interesting for production-like processing (no
    validation/mixing)
    with PU35 in 2016 and with PU200 for e.g. 2023 D1.
    I'd say, a 1% cost increase to any of the above is a potential show-stopper.

GlobalError is used in alignment. I recall it's a memory-demanding workflow.
If that memory use is driven by instances of GlobalError, it's a problem.


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

@slava77
Copy link
Contributor

slava77 commented Sep 2, 2016

IB is broken, apparently.

@lgray
Copy link
Contributor Author

lgray commented Sep 3, 2016

Are there any runTheMatrix WFs for production processing or can you toss me configs?

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 20, 2016

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

@cmsbuild
Copy link
Contributor

@lgray
Copy link
Contributor Author

lgray commented Sep 20, 2016

Hi everyone, OK - looks like we're OK to go here with the new IB. Please resign!

@Dr15Jones
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

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

The workflows 140.53, 4.22 have different files in step1_dasquery.log than the ones found in the baseline. You may want to check and retrigger the tests if necessary. You can check it in the "files" directory in the results of the comparisons

@slava77
Copy link
Contributor

slava77 commented Sep 20, 2016

+1

for #15710 f07727f

  • technical update since the last approval by reco to use std::unique_ptr std::auto_ptr
  • jenkins tests pass (compilation is enough)

@lgray
Copy link
Contributor Author

lgray commented Sep 20, 2016

@davidlange6 Please merge this when able.

@lgray
Copy link
Contributor Author

lgray commented Sep 20, 2016

FYI This was previously signed off by simulation as well. The last commit didn't touch simulation packages.

@lgray
Copy link
Contributor Author

lgray commented Sep 20, 2016

@davidlange6 (for the morning) I was aiming for pre12 with this PR and it is able to go in (no conflicts or adverse effects...). Please include it in the release. Thanks!

@monttj
Copy link
Contributor

monttj commented Sep 21, 2016

+1
There seems no issues from analysis side with this PR.
It is about adding vector type in the PAT candidate dictionary.

@davidlange6
Copy link
Contributor

@lgray - two things for a future PR - I echo @slava77 comments about dimension+1 becoming a constant instead of repeatedly appearing as dimension+1. Second, naively seems better to use floats instead of doubles in the data formats unless there is some reason to expect the need for the extra precision on the timing variables (or that some piece is already committed to using doubles...)

@davidlange6 davidlange6 merged commit 64b8eb3 into cms-sw:CMSSW_8_1_X Sep 21, 2016
@lgray
Copy link
Contributor Author

lgray commented Sep 21, 2016

Yep, agreed with Slava to put this in another PR. Along with remaining code
review from the ECAL timing. It will be there for pre13.

-L

(Sent from my Nexus 6)

On Sep 21, 2016 3:30 AM, "David Lange" notifications@github.com wrote:

@lgray https://github.com/lgray - two things for a future PR - I echo
@slava77 https://github.com/slava77 comments about dimension+1 becoming
a constant instead of repeatedly appearing as dimension+1. Second, naively
seems better to use floats instead of doubles in the data formats unless
there is some reason to expect the need for the extra precision on the
timing variables (or that some piece is already committed to using
doubles...)


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

@lgray
Copy link
Contributor Author

lgray commented Sep 21, 2016

@davidlange6 Concerning time in double: x,y,z position is also in double because it's an math::XYZPoint. Should I change vertex to use math::XYZPointF in my follow up PR?

@lgray
Copy link
Contributor Author

lgray commented Sep 21, 2016

More or less for consistency in precision...

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

10 participants