Issue with Hadronization with pythia6
Opened this issue · 2 comments
Running GENIE with the default tune and configurations on the tagged version 3.2.2 with the following command:
gevgen -n 10000 -e 3.0 -p 11 -t 1000060120 --cross-sections ../splines/carbon12_spline_EMPlusMEC_G18_02a_00_000.xml --event-generator-list EM
Eventually hits an assertion that fails in the Pythia6 hadronization. (This does not happen if I switch to Pythia8)
The relevant messages and the stack trace are shown below
1673649526 NOTICE PythiaHad : [n] <PythiaBaseHadro2019.cxx::MakeQuarkDiquarkAssignments (97)> : Making leading quark / remnant di-quark assignments
1673649526 NOTICE PythiaHad : [n] <PythiaBaseHadro2019.cxx::MakeQuarkDiquarkAssignments (116)> : Hit nucleon pdgc = 2112, W = 2.48038
1673649526 NOTICE PythiaHad : [n] <PythiaBaseHadro2019.cxx::MakeQuarkDiquarkAssignments (118)> : Selected hit quark pdgc = 1[sea]
1673649526 NOTICE Pythia6Had : [n] <Pythia6Hadro2019.cxx::Hadronize (84)> : Running PYTHIA6 hadronizer
1673649526 NOTICE Pythia6Had : [n] <Pythia6Hadro2019.cxx::Hadronize (90)> : Fragmentation: q = 1, qq = 2103, W = 2.48038
gevgen: Pythia6Hadro2019.cxx:108: virtual bool genie::Pythia6Hadro2019::Hadronize(genie::GHepRecord*) const: Assertion 'np>0' failed.
Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737223285760) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737223285760) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140737223285760) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140737223285760, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff3dc9476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff3daf7f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff3daf71b in __assert_fail_base (fmt=0x7ffff3f64150 "%s%s%s:%u: %s%sAssertion '%s' failed.\n%n", assertion=0x7ffff48c4694 "np>0", file=0x7ffff48c61cf "Pythia6Hadro2019.cxx", line=108, function=<optimized out>)
at ./assert/assert.c:92
#6 0x00007ffff3dc0e96 in __GI___assert_fail (assertion=0x7ffff48c4694 "np>0", file=0x7ffff48c61cf "Pythia6Hadro2019.cxx", line=108, function=0x7ffff48c6110 "virtual bool genie::Pythia6Hadro2019::Hadronize(genie::GHepRecord*) const")
at ./assert/assert.c:101
#7 0x00007ffff48afb80 in genie::Pythia6Hadro2019::Hadronize (this=0x555556177f60, event=0x55555afe8e90) at Pythia6Hadro2019.cxx:108
#8 0x00007ffff48bd393 in genie::PythiaBaseHadro2019::ProcessEventRecord (this=0x555556177f60, event=0x55555afe8e90) at PythiaBaseHadro2019.cxx:78
#9 0x00007ffff4755e54 in genie::DISHadronicSystemGenerator::ProcessEventRecord (this=0x555558160ef0, evrec=0x55555afe8e90) at DISHadronicSystemGenerator.cxx:68
#10 0x00007ffff4b5a51b in gen
ie::EventGenerator::ProcessEventRecord (this=0x5555581294a0, event_rec=0x55555afe8e90) at EventGenerator.cxx:107
#11 0x00007ffff4b69c78 in genie::GEVGDriver::GenerateEvent (this=this@entry=0x7fffffffd070, nu4p=...) at GEVGDriver.cxx:286
#12 0x0000555555562960 in GenerateEventsAtFixedInitState () at gEvGen.cxx:323
#13 0x000055555555b50f in main (argc=<optimized out>, argv=<optimized out>) at gEvGen.cxx:251
Also, I have attached the spline that was used.
Thanks for reporting this. It should be easy to try and replicate, even without the specific splines. I will try asap.
Based on the output, it seems that GENIE received an empty event record from PYTHIA6, so at the bottom of it the problem lies with the PYTHIA call. This can happen if PYTHIA bails out for a very low W event. We use our empirical hadronization model for low W, and only call PYTHIA for "higher" values of W. The event where you see the failure is at W = 2.48 GeV. I would expect PYTHIA to be able to handle this.
Please can I make sure that this is not a GENIE/PYTHIA misconfiguration issue? If you check the output log, do you see any other event that was succesfully hadronized by PYTHIA and not the empirical AGKYLowW2019 model? (e.g. is there any previous occurence of the "Pythia6Had : [n] <Pythia6Hadro2019.cxx::Hadronize (84)>" string in the output?) It would be a bit suspect if it fails the first time it has to use PYTHIA.