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 ¶meters() const override
Module user-defined parameters.
-
inline virtual void setParameters(const ParametersList ¶ms) override
Set module parameters.
-
inline void setDescribedParameters(const ParametersList ¶ms_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 ¶meters() const override
Module user-defined parameters.
-
inline virtual void setParameters(const ParametersList ¶ms) override
Set module parameters.
-
inline void setDescribedParameters(const ParametersList ¶ms_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#