Open mkirsano opened 2 years ago
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. To have a possibility to switch I will have to create another plugin: Pythia8HepMC3Hadroniser
@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) listhepmc.txt
@mkirsano , note that many externals are build using hepmc
(https://github.com/cms-sw/cmsdist/search?q=hepmc ) including pythia8
. so if you use pythia8
then you automatically get hepmc
.
I made a prototype of Pythia8Interface that can produce either HepMC2 or HepMC3 record. Does it have sense to make a PR?
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
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:
1) we use a switch HepM2/HepMC3 as a python parameter defined somewhere upstream 2) development is ongoing within master, depending on the switch HepMC2 or HepMC3 is called inside CMSSW 3) validation will mean comparison of the new branch results versus master results
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
The externals packages which uses HepMC are https://github.com/cms-sw/cmsdist/search?q=hepmc
We still need to see if all of these can build/run with new 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. Work on adding HepMC3 products to edm is to be forced.
GeneratorInterface/Core : PR #37689
GeneratorInterface/Pythia8Interface : PR #37753 Depends on #37689
To reiterate the plan:
PR #38033 opened to address EDMProduct definition effort from #37187
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