-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Migrate CMSSW from HepMC2 to HepMC3 #36662
Comments
A new Issue was created by @mkirsano Mikhail Kirsanov. @Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
assign generators |
New categories assigned: generators @mkirsano,@alberto-sanchez,@SiewYan,@GurpreetSinghChahal,@Saptaparna,@agrohsje you have been requested to review this Pull request/Issue and eventually sign? Thanks |
assign simulation |
New categories assigned: simulation @mdhildreth,@civanch you have been requested to review this Pull request/Issue and eventually sign? Thanks |
I solved the problem with library structure, preparing PR to add external |
PR cmsdist #7655 |
PR to include hepmc3 merged |
I found that it is impossible to include both pythia8 - HepMC2 and pythia8 - HepMC3 converters in the same code. |
@mkirsano , do you make a survey of all places inside CMSSW, which require a change? Likely it will be the same situation - new alternative code will be required. |
No, this concerns only generator -> HepMC conversion. In other codes, such as analysis, using "if" can be sufficient. |
This is a preliminary list of packages concerned. In addition, there is a class HepMCCandidate, but it seems to be internal in CMSSW (does not depend on hepmc) |
@mkirsano , note that many externals are build using |
I made a prototype of Pythia8Interface that can produce either HepMC2 or HepMC3 record. |
I think if by default it would implement HepMC2 it would be fine. |
I will probably need help with adding HepMC3 products to edm. The instruction here https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideCreatingNewProducts is rather old, probably not up-to-date |
That twiki page is pretty much up to date. But if you find something there which is not (or suspect or are unsure), let us know. |
@mkirsano , HepMC3 migration was discussed at the today ORP meeting. @smuzaffar , explain us that several GEN packages should be compiled versus HepMC3. This can be achieved normally if a new git BRANCH will be created. So, the plan may be following:
The link to the new product is correct (from my point of view). What is essential that depending on the switch producers will consume HepMC2 or HepMC3 |
@smuzaffar, @mkirsano , i can help to check on those. |
All these packages can be compiled against HepMC3. I tried photospp, tauolapp. Another question is if they can be compiled against both. But the critical path is the integration of HepMC3Product in edm. Then we can start to look at all the chain (G4, analysis, validation etc.) |
I am ready for the next PRs, adding HepMC3 products to GeneratorInterface/Core BaseHadronizer and adding Pythia8HepMC3Hadronizer plugin. |
GeneratorInterface/Core : PR #37689 |
To reiterate the plan:
PR #38033 opened to address EDMProduct definition effort from #37187 |
Current status: HepMC3Product now is added to EDM and can be put into the event (apparently the work is done by Markus Seidel for Rivet). Next steps:
|
cms-bot internal usage |
Information for further development:
|
PR #46797 allows to transfer HepMC3Product from generators (e.g. pythia8) up to the Sim step and load particles into Geant4 for tracing. Some pieces, like vertex smearing, are still missing. |
PR #46891 allows to smear the event vertex in HepMC3Product as well as in HepMCProduct. Some cleanup of the code is performed in IOMC/EventVertexGenerators |
Next steps:
|
Item 2 : PR cms-sw/cmsdist/pull/9613 merged |
HepMC is a HEP event record used in CMSSW. HepMC2 is currently used.
HepMC3 is a completely rewritten version. Many methods are different from HepMC2. These two records can live together in one program. I have a partly working prototype (working at ~10% functionality, pythia8 only) in my private area.
The evolving plan follows
The text was updated successfully, but these errors were encountered: