upgrade EvtGen interface for v03.00.00 #51029
Conversation
|
cms-bot internal usage |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51029/49473 ERROR: Build errors found during clang-tidy run. |
| <use name="FWCore/Concurrency"/> | ||
| <use name="FWCore/ParameterSet"/> | ||
| <use name="FWCore/Framework"/> | ||
| <use name="SimG4Core/Application"/> |
There was a problem hiding this comment.
(as I commented already in the earlier issue) I think this dependence on SimG4Core should be avoided. I opened #51041 to move the ThreadHandoff to FWCore/Utilities.
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51029/49482 ERROR: Build errors found during clang-tidy run. |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51029/49483 ERROR: Build errors found during clang-tidy run. |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51029/49768
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
|
Hi @kawaho, I was wondering if this new interface would be still compatible with older EvtGen versions. I think we should not completely switch to the new version until it's fully validated, so back-compatibility is important. If it's not, maybe we should consider having two different interfaces, such as |
|
Hi @lviliani , indeed, this interface will not be compatible with older EvtGen versions. In principle, I can move things to |
Right, then we have to discuss how to move forward if we can't have both versions in the same release. EvtGen 3 should be carefully validated before it's used in production. One possibility is to follow the same approach that was recently used for the Pythia8 update, which is including EvtGen 3 in the next CMSSW_17_0_X pre-release (I think it's going to be pre3) and validate it before CMSSW_17_0_0 is ready, which should happen in November 2026 according to the schedule. If we don't manage to do the validation, we revert back to EvtGen 2. Tagging also @mandrenguyen and @ftenchini to hear their opinion, given that we discussed a similar approach for pythia. |
Hi @lviliani , is there a standard checklist of things I need to do for the validation? I imagine on the physics side, we should check the differences between v2 and v3 to be expected in maybe a selected list of Rivet routines. Are there other checks needed in addition? I would like to understand the amount of work needed and to allocate my time accordingly. Thanks! |
Hi @kawaho, in addition to the physics validation that you mentioned, we should make sure that workflows with EvtGen v3 can run successfully in central production up to NanoAOD. |
I have started a thread on cms-talk: https://cms-talk.web.cern.ch/t/upgrading-evtgen-in-central-production/146386 |
|
Hi First, I am not sure I understand the current plan for the EvtGen 3 usage in terms of CMSSW releases and MC production campaigns. Are we going to do some backports to older versions, such as 15_0_X at least ? If not, which can be MC conditions and campaigns which target CMSSW_17? I mean, which GT, which Mini / Nano versions, etc? What about CMSSW_20 for Phase-2? Regarding the physics validation from BPH POV – how can one test some private production with this EvtGen 3? If the way is to pull this PR to a custom CMSSW under lxplus etc, then again – which cmsDriver should be used ? |
|
If useful, it is possible to request a special integration build that contains EvtGen 3 plus all necessary CMSSW changes. |
|
Hi @Dr15Jones I think that would be useful! |
This is indeed a way, which I understand; though my question is more PPD-related about the matching of EvtGen 3 with some production campaign. Well, I agree these questions can be separated , and one can do some more abstract tests / comparison of EvtGen 2 vs 3 performance under this IB release with cmsDriver for e.g. Summer 24 campaign. |
|
@Kiarendil first we need to validate it, then we can discuss if we want to use it already in production or not, and in that case in which release. @Dr15Jones we discussed that also for Pythia but then decided to not have a special build. But in this case, being a major upgrade, it might be useful indeed. |
|
@smuzaffar would be the one to ask to get an EvtGen3 IB. I'd suggest doing it in CMSSW_20_1. |
|
@lviliani , we can setup a dedicated IB for EvtGen3 if that helps with the integration/testing. |
But the merge conflicts would probably only happen if code in master was touching EvtGen related items, which seems unlikely. |
yes that is true |
|
code-checks with cms.week0.PR_7633f646/100.0-1bcf27b469f48c8773c80cbe8786c1d1 |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51029/50049
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
|
Hi @smuzaffar , are there any updates on the special build for EvtGen? Do I need to do anything on my end? Thank you. |
|
@kawaho , this should also go in 20.1.X release cycles ... right? If yes then I suggest that we first setup CMSSW_20_1_EVTGEN3_X IBs and test these changes there |
Hi @smuzaffar is there a guide on how to port these changes to another release? I have an old 17_0_X IB locally that does not exist anymore. Do I setup a newer 17_0_X IB locally or what should I do? |
|
Could anyone please suggest, If it would be straightforward to produce and validate the private MC in CMSSW_20_X ? Will all cmsDriver steps which work in current CMSSW, be working there ? E.g. SIM step, HLT step etc? My naive feeling that maybe 17_0_X build could be easier to produce private MC and play with it. |
|
@kawaho , I have setup a CMSSW_20_1_EVTGEN3_X IB and I will include cms-sw/cmsdist#10580 for that IB. Once evtgent3 external is available in the CMSSW_20_1_EVTGEN3_X then you can just use that IB to do the local tests |
PR description:
Resolves #50935
This commits upgrade EvtGen interface to v03.00.00 in CMSSW, which
This commit depends on a new cmssw external build cms-sw/cmsdist#10580
PR validation:
Tested by producing a small TTTo2L2Nu Pythia+EvtGen sample locally with multiple threads, using a similar the same fragment as 1 but with PythiaConcurrentHadronizerFilter.
One remaining issue is that the EvtGen interface now calls ThreadHandoff implemented for GEANT4 to ensure a stream started in a certain thread stays in the same thread. Shall we move ThreadHandoff under
FWCore/Concurrencyinstead, so packages with similar concurrency implementation (one instance per thread/use of thread_local) can use the same module? @makortel @Dr15Jones, please advise.