[Rivet] Pythia+PU+Rivet problem

Andy Buckley andy.buckley at cern.ch
Mon Apr 14 21:13:03 BST 2014


Hi Tomasz,

I didn't know anyone was using the old PYTHIA pile-up system! Looking in
the Rivet code, that exception is thrown when it tries to find a text
name for an unknown particle: since PIDs 1,2,3 are all quarks and hence
should never be seen in a stable event final state, it leads to your error.

Do you know why your code could be trying to access Particles' string
names? It is possible that there's a bug in PYTHIA6 when run this way,
which leads to partons appearing in the final state: I'm not sure.
Obviously it's better not to put catch-all exception handling around the
analyze function call -- you can hide serious problems that way and make
debugging hard for everyone: presumably the error is being thrown by
something inside your analysis routine, so maybe wrap *that* in the try
block (and make the try block as small as possible) rather than the
general CMSSW Rivet wrapper?

By the way, I strongly recommend updating to use Rivet 1.9.0 -- your
analysis should continue to work as before, but several bugs were fixed
between 1.8.2 and that. All future releases, bugfixes, etc. are in the
Rivet 2.x series.

Best wishes,
Andy


On 14/04/14 16:52, Tomasz Fruboes wrote:
> Dear Experts,
> 
>  in our rivet (1.82) analysys I'm trying to include pileup. Pileup is
> added on generator level by pythia6 using following settings:
> 
>             'MSTP(131)=1
>             'MSTP(132)=3
>             'MSTP(133)=1
>             'PARP(131)=0.15
> 
> Above gives n=10 PU interactions on average. In every 1 out of ~300
> events I'm getting following exception
> 
> A std::exception was thrown.
> Particle ID '1' not known.
> 
> (where ID can be 2 or 3 as well).
> 
> I have added try/catch block in order to handle this (see [1] below).
> Could you comment if this is a safe workaround? Or maybe there is a
> better solution?
> 
>  Thank you,
>   Tomasz Fruboes
> 
> 
> [1] Source code of our rivet wrapper:
> 
> https://github.com/cms-sw/cmssw/blob/CMSSW_7_1_X/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc
> 
> 
> Line ~120 was changed to
>   //run the analysis
>   try {
>       _analysisHandler.analyze(*myGenEvent);
>   } catch (...) {
>         std::cout << "Exception caught...\n" ;
>   }
> 
> 
> 
> 
> _______________________________________________
> Rivet mailing list
> Rivet at projects.hepforge.org
> https://www.hepforge.org/lists/listinfo/rivet


-- 
Dr Andy Buckley, Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow / PH Dept, CERN


More information about the Rivet mailing list