Process seems stuck on "0 2 0 2" and only gives 80 events

Asked by Karina Roitman


I have recently installed the phythia-pgs package, and I'm having some trouble with some processes. I have run these processes without the pythia-pgs package before and had no problems. After installing the package, some processes still work just fine, and I get all the output files I should. However, one particular process doesn't work at all.

The process in question is a little bit more complicated than the other ones I'm running. The process is: g g > j h02, (h02 > n2 n2, (n2 > n1 h01, h01 > a a), n2 > h01 n1). I am using my own model of the NMSSM, which seemed to work just fine until installing pythia-pgs. I am running this in a mac with OSX 10.6.8. The problem with this process is actually more than one problem.

On the one hand, this seems to take *much* longer than the other processes I've tried (on the order of 10 minutes for other processes and one hour for this one). I guess this doesn't necessarily mean there's something wrong, but I suspect there is. Also, while running, it seems to get "stuck" on a certain process, since it says "waiting while finishing jobs on cluster 0202" and then it keeps printing 0202 every minute or so for a very long time. It eventually does get past that, which takes me to the second problem.

It finishes running with no issues, other than the usual warnings coming mostly from ExRootAnalysis (which I was getting before, anyway). But the output files are all wrong. The pythia root files are not populated. The branches have no data in them. And the unweighted events file only has somewhere around 80 events, instead of the 1000 it was supposed to generate. This does not happen with the other processes, and wasn't happening before installing pythia-pgs.

The only thing I have changed since installing pythia is the run card. Besides changing the run card to have matching=1 (I mean, this line: 1 = ickkw ! 0 no matching, 1 MLM, 2 CKKW matching) , I also changed the cuts values. I was originally using the default run card, which had some nonzero values for all the minimum values of pretty much everything. I have changed most of these values to zero, and the values for the maximum cuts (the ones that weren't already a very large number) to some very large number.

I have also tried changing my process so that it doesn't use "j", thinking maybe there's some problem with the definition of j. So I wrote: g g > g h02, (h02 > n2 n2, (n2 > n1 h01, h01 > a a), n2 > h01 n1) instead. This didn't make a difference at all.

I tried setting matching back to zero, since I thought this would make pythia not run, but it still doesn't work. It's still extremely slow (much slower than before installing pythia) and I get only about 80 events. Am I mistaken as to how to turn pythia off? How do I do that?

My main concern and what confuses me the most if why it only generates 80 events, instead of 1000. Could it be that it has a maximum run time somewhere, so it stops after a certain amount of time? This would also explain why the pythia root file is empty: it never gets to doing that, because it stops before. If this is the problem, how can I fix it?

Phew! That's a long question! I was just trying to provide as much information as possible! Thanks in advance for your help!


Question information

English Edit question
MadGraph5_aMC@NLO Edit question
No assignee Edit question
Solved by:
Karina Roitman
Last query:
Last reply:
Revision history for this message
Johan Alwall (johan-alwall) said :

Hello Karena,

If you don't get as many events that you ask for, it's (almost) always because you are trying to integrate over a divergency. In this case, the problem is probably that you have removed too many cuts - in particular, the cuts on the final-state gluon are crucial, since you have a divergence when pt->0 or eta -> infinity. This is also why it takes a long time to run the jobs (the 0 2 0 2 you talk about) - the channels are trying in vain to get enough unweighted events, but keep finding new events with ever larger weight as it gets closer to the divergency. So you must have, at a minimum, non-zero ptj (or xqcut) and etaj cuts for this process.

Also please make sure that you have non-zero widths for all massive particles that can appear as s-channel propagators. Zero width for propagators is another common reason why event generation fails.

On a sidenote - whether or not you run Pythia can never have any effect on the result of the parton level generation, since these steps are completely separated - the event file from MadEvent is fed into Pythia after finished event generation. So you never need to worry about Pythia having anything to do with the parton level event generation.

Matching (ickkw=1) has nothing to do with whether Pythia is run or not, but has to do with getting the correct parton shower treatment in processes with radiated jets. In this case, you do have a jet in your parton level process, so it is indeed correct to run with ickkw=1.

All the best,

Revision history for this message
Karina Roitman (kariyael) said :

Hi Johan,

First of all, thank you very much. Your answer has not only helped me with my problem, but also clarified many things about the program that I was very confused about.

I had in fact set my jet momentum cut to zero, and changing that did fix the problem. However, I now have a new problem. Pythia only seems to find a handful of the events output by MadGraph. I am generating 1000 events, and the lhe output file does have them all recorded. However, when pythia runs it only "finds" about 300 or so of them. In fact, depending on the values of my cuts, sometimes it can't find a single event!

As before, this only happens with this one process, since the other processes I've tried work just fine. And the output of MG seems perfectly fine now.

Thanks again!


Revision history for this message
Johan Alwall (johan-alwall) said :

Hello Karina,

I'm not sure what you mean by "only finds 300 events". At the end of the Pythia log, it will tell you how many events have been read and how many passed cuts. Since you run with matching on, you expect a fraction of the events to fail due to the double counting veto (please read about matching on the MadGraph wiki). With cone matching, the fraction depends on your ptj and drjj cuts, with kt matching on the xqcut. If your problem is really that not all events are read, please send me your unweighted_events.lhe file so I can check what's happening.

All the best,

Revision history for this message
Karina Roitman (kariyael) said :

What I meant by it "finding" few events is that when pythia starts, it says, on the screen: "Calculating number of events to process. Please wait... Input file contains: ### events" In my case, ### is around 300, or sometimes even zero. But I now looked at the log file, like you suggested, and it does say it read all events. So I guess that line doesn't mean what I thought it means!

Thank you so much for all your help.


Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :

Hi Karina,

If I'm correct this line is created by ExRootAnalysis.
Which creates a root file for the events passing the pythia cuts,
so this is normal if he doesn't reach the 10.000 events.