Event modification algorithms#

The user’s needs may sometimes require the modification on an event-by-event basis of the process-generated particles kinematics and relationships, for instance in the scope of a beam particles remnants (dissociative proton states, for instance) hadronisation/fragmentation or unstable particles decays.

Several interfaces to external algorithms are therefore provided in the CepGenAddOns library, and easily steerable through the eventSequence sequential block (in Python cards) or HADR variable (in LPAIR-like cards). All modules are derived from a common cepgen::hadr::Hadroniser class itself derived from a cepgen::EventModifier object, both described below:

class EventModifier : public EventHandler#

Subclassed by Hadroniser, PhotosFilter, TauolaFilter

Detailed description

class EventModifier : public EventHandler

Class template to interface (external/internal) events modification algorithms.

Author

Laurent Forthomme laurent.forthomme@cern.ch

Date

July 2019

Subclassed by Hadroniser, PhotosFilter, TauolaFilter

Public Functions

explicit EventModifier(const ParametersList&)

Default constructor for an undefined modifier.

inline void setSeed(long long seed)

Specify a random numbers generator seed for the external module.

Parameters:

seed[in] A RNG seed

inline virtual void readString(const std::string&)

Parse a configuration string.

virtual void readStrings(const std::vector<std::string>&)

Parse a list of configuration strings.

virtual bool run(Event &ev, double &weight, bool fast = false) = 0

Modify an event.

Parameters:
  • ev[inout] Input/output event

  • weight[inout] Event weight after modification

  • fast[in] run a faster version of the algorithm (whenever available)

Returns:

Boolean stating whether or not the modification occurred successfully

inline virtual void setCrossSection(const Value&)

Specify the cross section value, in pb.

void initialise(const RunParameters&)

Initialise the handler and its inner parameterisation.

const RunParameters &runParameters() const

List of run parameters.

template<typename T>
inline T *engine()

Retrieve the engine object.

inline const std::string &name() const

Module unique indexing name.

inline bool operator==(const SteeredObject &oth) const

Equality operator.

inline bool operator!=(const SteeredObject &oth) const

Inequality operator.

inline virtual const ParametersList &parameters() const override

Module user-defined parameters.

inline virtual void setParameters(const ParametersList &params) override

Set module parameters.

inline void setDescribedParameters(const ParametersList &params_orig)

Set (documented) module parameters.

As for all named modules, an automatically generated list of the algorithms interfaces and their steering parameters can be found here.

Hadronisers#

Hadronisers are a sub-class of modifiers that are affecting the outgoing particles kinematics, and possibly induce a reweighting of each event. They all derivate from a base object:

class Hadroniser : public EventModifier#

Subclassed by Pythia6Hadroniser, Pythia8Hadroniser

Detailed description

class Hadroniser : public EventModifier

Class template to define any hadroniser as a general object with defined methods.

Author

Laurent Forthomme laurent.forthomme@cern.ch

Date

January 2014

Subclassed by Pythia6Hadroniser, Pythia8Hadroniser

Public Functions

explicit Hadroniser(const ParametersList&)

Default constructor for an undefined hadroniser.

inline bool fragmentRemnants() const

Specify whether the beam remnants are to be fragmented.

inline void setSeed(long long seed)

Specify a random numbers generator seed for the external module.

Parameters:

seed[in] A RNG seed

inline virtual void readString(const std::string&)

Parse a configuration string.

virtual void readStrings(const std::vector<std::string>&)

Parse a list of configuration strings.

virtual bool run(Event &ev, double &weight, bool fast = false) = 0

Modify an event.

Parameters:
  • ev[inout] Input/output event

  • weight[inout] Event weight after modification

  • fast[in] run a faster version of the algorithm (whenever available)

Returns:

Boolean stating whether or not the modification occurred successfully

inline virtual void setCrossSection(const Value&)

Specify the cross section value, in pb.

void initialise(const RunParameters&)

Initialise the handler and its inner parameterisation.

const RunParameters &runParameters() const

List of run parameters.

template<typename T>
inline T *engine()

Retrieve the engine object.

inline const std::string &name() const

Module unique indexing name.

inline bool operator==(const SteeredObject &oth) const

Equality operator.

inline bool operator!=(const SteeredObject &oth) const

Inequality operator.

inline virtual const ParametersList &parameters() const override

Module user-defined parameters.

inline virtual void setParameters(const ParametersList &params) override

Set module parameters.

inline void setDescribedParameters(const ParametersList &params_orig)

Set (documented) module parameters.

A not exhaustive list of hadroniser interfacing modules is described below.

pythia6#

Added in version 0.9.6.

class Pythia6Hadroniser : public Hadroniser#

This legacy fragmentation module mimicks the original LPAIR Jetset interfacing. Thus, in dissociative photon emission, this latter is approximated as emitted from a valence quark tied to a diquark system in a beam remnant. The flavours mixing is performed randomly on an event-by-event basis (with values chosen in \((u,ud_0)\), \((u,ud_1)\), and \((d,uu_1)\)).

pythia8#

Warning

Under construction

Added in version 0.9.

class Pythia8Hadroniser : public Hadroniser#

Event modifiers#

PhotosFilter#

Added in version 1.0.

class PhotosFilter : public EventModifier#

TauolaFilter#

Added in version 1.0.

class TauolaFilter : public EventModifier#