HepMC
2.05 Cross Section

HepMC Savannah ] [ HepMC Homepage ] [ Downloads ]

Proposed Changes ]
Status Codes ] [ Barcodes ] [ Vector Methods ] [ Cross Section ] [ IO Issues ] [ Other Issues ]
User Manual ] [ Doxygen Reference Manual ]

Please use the Savannah support thread sr #106970 for comments.

Rivet needs to access cross section information on an event by event basis, as requested in bug #38051.

See the meeting minutes for details of the cross section discussion.

It was agreed that the cross section information is a global property of the run that will be stored in a new GenRun class. The solution must find a way to interleave GenRun information with GenEvent information in the ascii I/O when this is requested.

As we investigated the use of GenRun further, it became clear that there were many problems with using a global for something whose contents might change on an event by event basis (the Rivet use case). In particular, if there are ever two different GenEvent objects at the same time, it is not clear if either of them would have the expected associated cross section information.

Given this, the concept of a global GenRun class has been replaced by a GenCrossSection class. GenEvent contains a pointer to a GenCrossSection. This pointer is null by default. The cross section information will be written to ascii output only if the pointer is not null.

The cross section units are be presumed to be pb, and documented as such.

GenCrossSection contains 3 data members:

Possible user code (notice that there is no change in the call to the ascii output method):

    #include "HepMC/GenCrossSection.h"
    ...
    HepMC::GenCrossSection xs 
    ...
    xs.set_cross_section( 0.12, 0.01 );
    evt->set_cross_section( xs );
    ...
    output_stream << evt;
  

Please use the Savannah support thread sr #106970 for comments.