hej is hosted by Hepforge, IPPP Durham
HEJ 2 2.0
High energy resummation for hadron colliders
Loading...
Searching...
No Matches
HEJ Namespace Reference

Main HEJ 2 Namespace. More...

Namespaces

namespace  detail
 
namespace  event_type
 Namespace for event types.
 
namespace  pid
 particle ids according to PDG
 

Classes

struct  Analysis
 Analysis base class. More...
 
struct  Beam
 Beam parameters. More...
 
class  CombinedEventWriter
 Write event output to zero or more output files. More...
 
struct  Config
 
struct  DefaultRNG
 Helper struct with default implementations. More...
 
struct  EmptyAnalysis
 
class  Event
 
struct  EventParameters
 Event parameters. More...
 
class  EventReweighter
 Main class for reweighting events in HEJ. More...
 
struct  EventReweighterConfig
 Configuration options for the EventReweighter class. More...
 
struct  EventWriter
 Pure abstract base class for event writers. More...
 
class  FixedScale
 Functor that returns a fixed scale regardless of the input event. More...
 
class  HepMCInterface
 This class converts the Events into HepMC::GenEvents. More...
 
class  HepMCWriter
 This is an event writer specifically for HepMC output. More...
 
struct  HiggsCouplingSettings
 Settings for Higgs boson coupling to gluons. More...
 
struct  invalid_type
 Exception indicating wrong option type. More...
 
class  istream
 Small wrapper around boost's filtering_istream. More...
 
struct  JetParameters
 Jet parameters. More...
 
class  JetSplitter
 Class to split jets into their constituents. More...
 
class  LesHouchesWriter
 Class for writing events to a file in the Les Houches Event File format. More...
 
class  MatrixElement
 Class to calculate the squares of matrix elements. More...
 
struct  MatrixElementConfig
 Configuration options for the MatrixElement class. More...
 
struct  missing_option
 Exception indicating missing option setting. More...
 
class  Mixmax
 MIXMAX random number generator. More...
 
struct  not_implemented
 Exception indicating functionality that has not been implemented yet. More...
 
struct  OutputFile
 Output file specification. More...
 
struct  ParameterDescription
 Description of event parameters. More...
 
struct  Particle
 Class representing a particle. More...
 
class  PDF
 Class for interaction with a PDF set. More...
 
class  PhaseSpacePoint
 A point in resummation phase space. More...
 
struct  PhaseSpacePointConfig
 Configuration options for the PhaseSpacePoint class. More...
 
class  ProgressBar
 Class representing (and printing) a progress bar. More...
 
struct  pz_less
 Functor to compare momenta in z direction. More...
 
class  Ranlux64
 Ranlux64 random number generator. More...
 
struct  rapidity_less
 Functor to compare rapidities. More...
 
class  RivetAnalysis
 Class representing a Rivet analysis. More...
 
struct  RNG
 Interface for random number generator. More...
 
struct  RNGConfig
 Settings for random number generator. More...
 
struct  ScaleConfig
 Settings for scale variation. More...
 
class  ScaleFunction
 Class to calculate the scale associated with an event. More...
 
class  ScaleGenerator
 Generate combinations of renormalisation and factorisation scales. More...
 
struct  UnclusteredEvent
 An event before jet clustering. More...
 
struct  unknown_option
 Exception indicating unknown option. More...
 
struct  Weights
 Collection of weights assigned to a single event. More...
 

Typedefs

using EventTreatMap = std::map< event_type::EventType, EventTreatment >
 Container to store the treatments for various event types. More...
 
template<typename T >
using optional = boost::optional< T >
 
using ParticleID = pid::ParticleID
 

Enumerations

enum class  EventTreatment { reweight , keep , discard }
 
enum  FileFormat { Les_Houches , HepMC }
 Supported event file formats. More...
 

Functions

PhaseSpacePointConfig to_PhaseSpacePointConfig (Config const &conf)
 
MatrixElementConfig to_MatrixElementConfig (Config const &conf)
 
EventReweighterConfig to_EventReweighterConfig (Config const &conf)
 
double shat (Event const &ev)
 Square of the partonic centre-of-mass energy $\hat{s}$. More...
 
LHEF::HEPEUP to_HEPEUP (Event const &event, LHEF::HEPRUP *)
 Convert an event to a LHEF::HEPEUP. More...
 
std::unique_ptr< Analysisget_analysis (YAML::Node const &parameters)
 Load an analysis. More...
 
std::tuple< fastjet::PseudoJet, fastjet::PseudoJet > incoming_momenta (std::vector< Particle > const &outgoing)
 Compute the incoming momentum from momentum conservation. More...
 
std::unique_ptr< HEJ::RNGmake_RNG (std::string const &name, optional< std::string > const &seed)
 Factory function for random number generators. More...
 
std::unique_ptr< EventWritermake_format_writer (FileFormat format, std::string const &outfile, LHEF::HEPRUP const &heprup)
 Factory function for event writers. More...
 
std::string to_string (FileFormat f)
 Convert a file format to a string. More...
 
std::vector< fastjet::PseudoJet > to_PseudoJet (std::vector< Particle > const &v)
 Convert a vector of Particles to a vector of particle momenta. More...
 
bool is_parton (Particle const &p)
 Check if a particle is a parton, i.e. quark, antiquark, or gluon. More...
 
bool is_AWZH_boson (Particle const &particle)
 Check if a particle is a photon, W, Z, or Higgs boson. More...
 
std::vector< Particlefilter_partons (std::vector< Particle > const &v)
 Extract all partons from a vector of particles. More...
 
ParticleID to_ParticleID (std::string const &name)
 Convert a particle name to the corresponding PDG particle ID. More...
 
constexpr bool is_parton (ParticleID p)
 Function to determine if particle is a parton. More...
 
constexpr bool is_AWZH_boson (ParticleID id)
 function to determine if the particle is a photon, W, Z, or Higgs boson More...
 
std::vector< fastjet::PseudoJet > resummation_jet_momenta (std::vector< fastjet::PseudoJet > const &p_born, fastjet::PseudoJet const &qperp)
 Calculate the resummation jet momenta. More...
 
double resummation_jet_weight (std::vector< fastjet::PseudoJet > const &p_born, fastjet::PseudoJet const &qperp)
 Calculate additional weight from changing the jet momenta. More...
 
ScaleFunction operator* (double factor, ScaleFunction base_scale)
 Multiply a scale choice by a constant factor. More...
 
ScaleFunction operator/ (ScaleFunction base_scale, double denom)
 Divide a scale choice by a constant factor. More...
 
double H_T (Event const &)
 Calculate $H_T$ for the input event. More...
 
double max_jet_pt (Event const &)
 The maximum of all (scalar) jet transverse momentum. More...
 
double jet_invariant_mass (Event const &)
 The invariant mass of the sum of all jet momenta. More...
 
double m_j1j2 (Event const &)
 Invariant mass of the two hardest jets. More...
 
template<class T , class... Args>
std::unique_ptr< T > make_unique (Args &&... a)
 Create a std::unique_ptr to a T object. More...
 
template<typename T , typename... U>
constexpr std::array< T, 1+sizeof...(U)> make_array (T t, U &&... rest)
 Create an array containing the passed arguments. More...
 
std::string join (std::string const &)
 
std::string join (std::string const &, std::string const &str)
 
template<typename... Strings>
std::string join (std::string const &delim, std::string const &first, std::string const &second, Strings &&... rest)
 Join strings with a delimiter. More...
 
template<typename T >
std::string type_string (T &&)
 Return the name of the argument's type. More...
 
template<typename... T>
constexpr void ignore (T &&...)
 Eliminate compiler warnings for unused variables. More...
 
bool nearby_ep (double a, double b, double ep)
 Check whether two doubles are closer than ep > 0 to each other. More...
 
bool nearby_ep (fastjet::PseudoJet const &pa, fastjet::PseudoJet const &pb, double ep)
 Check whether all components of two PseudoJets are closer than ep to each other. More...
 
bool nearby (fastjet::PseudoJet const &pa, fastjet::PseudoJet const &pb, double const norm=1.)
 
Weights operator* (Weights a, Weights const &b)
 
Weights operator* (Weights a, double b)
 
Weights operator* (double b, Weights a)
 
Weights operator/ (Weights a, Weights const &b)
 
Weights operator/ (Weights a, double b)
 
Config load_config (std::string const &config_file)
 Load configuration from file. More...
 
template<typename T , typename... YamlNames>
void set_from_yaml (T &setting, YAML::Node const &yaml, YamlNames const &... names)
 Set option using the corresponding YAML entry. More...
 
template<typename T , typename... YamlNames>
void set_from_yaml_if_defined (T &setting, YAML::Node const &yaml, YamlNames const &... names)
 Set option using the corresponding YAML entry, if present. More...
 
JetParameters get_jet_parameters (YAML::Node const &node, std::string const &entry)
 Extract jet parameters from YAML configuration. More...
 
HiggsCouplingSettings get_Higgs_coupling (YAML::Node const &node, std::string const &entry)
 Extract Higgs coupling settings from YAML configuration. More...
 
ScaleConfig to_ScaleConfig (YAML::Node const &yaml)
 Extract scale setting parameters from YAML configuration. More...
 
RNGConfig to_RNGConfig (YAML::Node const &node, std::string const &entry)
 Extract random number generator settings from YAML configuration. More...
 
void assert_all_options_known (YAML::Node const &conf, YAML::Node const &supported)
 Check whether all options in configuration are supported. More...
 

Variables

QCD parameters
constexpr double N_C = 3.
 number of Colours More...
 
constexpr double C_A = N_C
 $C_A$ More...
 
constexpr double C_F = (N_C*N_C - 1.)/(2.*N_C)
 $C_F$ More...
 
constexpr double t_f = 0.5
 $t_f$ More...
 
constexpr double n_f = 5.
 number light flavours More...
 
constexpr double beta0 = 11./3.*C_A - 4./3.*t_f*n_f
 $\beta_0$ More...
 
QFT parameters
constexpr double vev = 246.2196508
 Higgs vacuum expectation value in GeV. More...
 
Generation Parameters
constexpr double CLAMBDA = 0.2
 Scale for virtual correction, $\lambda$ cf. eq. (20) in [1]. More...
 
constexpr double CMINPT = CLAMBDA
 minimal $p_t$ of all partons More...
 

Detailed Description

Main HEJ 2 Namespace.

Typedef Documentation

◆ EventTreatMap

Container to store the treatments for various event types.

◆ optional

template<typename T >
using HEJ::optional = typedef boost::optional<T>

◆ ParticleID

Enumeration Type Documentation

◆ EventTreatment

enum class HEJ::EventTreatment
strong

! Possible treatments for fixed-order input events.

The program will decide on how to treat an event based on the value of this enumeration.

Enumerator
reweight 

Perform resummation

keep 

Keep the event

discard 

Discard the event

◆ FileFormat

Supported event file formats.

Enumerator
Les_Houches 

Les Houches Output

HepMC 

HepMC Output

Function Documentation

◆ assert_all_options_known()

void HEJ::assert_all_options_known ( YAML::Node const &  conf,
YAML::Node const &  supported 
)

Check whether all options in configuration are supported.

Parameters
confConfiguration to be checked
supportedTree of supported options

If conf contains an entry that does not appear in supported an unknown_option exception is thrown. Sub-entries of "analysis" (if present) are not checked.

See also
unknown_option

◆ filter_partons()

std::vector< Particle > HEJ::filter_partons ( std::vector< Particle > const &  v)
inline

Extract all partons from a vector of particles.

◆ get_analysis()

std::unique_ptr< Analysis > HEJ::get_analysis ( YAML::Node const &  parameters)

Load an analysis.

Parameters
parametersAnalysis parameters
Returns
A pointer to an Analysis instance

If parameters["plugin"] exists, an analysis (deriving from the Analysis class) will be loaded from the library parameters["plugin"]. Otherwise, if parameters["rivet"] exists, the corresponding RivetAnalysis will be loaded. If none of these parameters are specified, a pointer to the default EmptyAnalysis is returned.

◆ get_Higgs_coupling()

HiggsCouplingSettings HEJ::get_Higgs_coupling ( YAML::Node const &  node,
std::string const &  entry 
)

Extract Higgs coupling settings from YAML configuration.

◆ get_jet_parameters()

JetParameters HEJ::get_jet_parameters ( YAML::Node const &  node,
std::string const &  entry 
)

Extract jet parameters from YAML configuration.

◆ H_T()

double HEJ::H_T ( Event const &  )

Calculate $H_T$ for the input event.

$H_T$ is the sum of the (scalar) transverse momenta of all final-state particles

◆ ignore()

template<typename... T>
constexpr void HEJ::ignore ( T &&  ...)
constexpr

Eliminate compiler warnings for unused variables.

◆ incoming_momenta()

std::tuple< fastjet::PseudoJet, fastjet::PseudoJet > HEJ::incoming_momenta ( std::vector< Particle > const &  outgoing)

Compute the incoming momentum from momentum conservation.

Parameters
outgoingOutgoing particles

◆ is_AWZH_boson() [1/2]

bool HEJ::is_AWZH_boson ( Particle const &  particle)
inline

Check if a particle is a photon, W, Z, or Higgs boson.

◆ is_AWZH_boson() [2/2]

constexpr bool HEJ::is_AWZH_boson ( ParticleID  id)
inlineconstexpr

function to determine if the particle is a photon, W, Z, or Higgs boson

Parameters
idPDG ID of particle
Returns
true if the partice is a A,W,Z, or H, false otherwise

◆ is_parton() [1/2]

bool HEJ::is_parton ( Particle const &  p)
inline

Check if a particle is a parton, i.e. quark, antiquark, or gluon.

◆ is_parton() [2/2]

constexpr bool HEJ::is_parton ( ParticleID  p)
inlineconstexpr

Function to determine if particle is a parton.

Parameters
pPDG ID of particle
Returns
true if the particle is a parton, false otherwise

◆ jet_invariant_mass()

double HEJ::jet_invariant_mass ( Event const &  )

The invariant mass of the sum of all jet momenta.

◆ join() [1/3]

std::string HEJ::join ( std::string const &  )
inline

◆ join() [2/3]

std::string HEJ::join ( std::string const &  ,
std::string const &  str 
)
inline

◆ join() [3/3]

template<typename... Strings>
std::string HEJ::join ( std::string const &  delim,
std::string const &  first,
std::string const &  second,
Strings &&...  rest 
)

Join strings with a delimiter.

Parameters
delimDelimiter to be put between consecutive strings
firstFirst string
secondSecond string
restRemaining strings

◆ load_config()

Config HEJ::load_config ( std::string const &  config_file)

Load configuration from file.

Parameters
config_fileName of the YAML configuration file
Returns
The HEJ 2 configuration

◆ m_j1j2()

double HEJ::m_j1j2 ( Event const &  )

Invariant mass of the two hardest jets.

◆ make_array()

template<typename T , typename... U>
constexpr std::array< T, 1+sizeof...(U)> HEJ::make_array ( t,
U &&...  rest 
)
constexpr

Create an array containing the passed arguments.

◆ make_format_writer()

std::unique_ptr< EventWriter > HEJ::make_format_writer ( FileFormat  format,
std::string const &  outfile,
LHEF::HEPRUP const &  heprup 
)

Factory function for event writers.

Parameters
formatThe format of the output file
outfileThe name of the output file
heprupGeneral process information
Returns
A pointer to an instance of an EventWriter for the desired format

◆ make_RNG()

std::unique_ptr< HEJ::RNG > HEJ::make_RNG ( std::string const &  name,
optional< std::string > const &  seed 
)

Factory function for random number generators.

Parameters
nameName of the random number generator
seedOptional seed
Returns
A pointer to an instance of a random number generator

At present, name should be one of "ranlux64" or "mixmax" (case insensitive). The interpretation of the seed depends on the random number generator. For ranlux64, it is the name of a seed file. For mixmax it should be a string convertible to a long integer.

◆ make_unique()

template<class T , class... Args>
std::unique_ptr< T > HEJ::make_unique ( Args &&...  a)

Create a std::unique_ptr to a T object.

For non-array types this works like std::make_unique, which is not available under C++11

◆ max_jet_pt()

double HEJ::max_jet_pt ( Event const &  )

The maximum of all (scalar) jet transverse momentum.

◆ nearby()

bool HEJ::nearby ( fastjet::PseudoJet const &  pa,
fastjet::PseudoJet const &  pb,
double const  norm = 1. 
)
inline

◆ nearby_ep() [1/2]

bool HEJ::nearby_ep ( double  a,
double  b,
double  ep 
)
inline

Check whether two doubles are closer than ep > 0 to each other.

◆ nearby_ep() [2/2]

bool HEJ::nearby_ep ( fastjet::PseudoJet const &  pa,
fastjet::PseudoJet const &  pb,
double  ep 
)
inline

Check whether all components of two PseudoJets are closer than ep to each other.

◆ operator*() [1/4]

Weights HEJ::operator* ( double  b,
Weights  a 
)
inline

◆ operator*() [2/4]

ScaleFunction HEJ::operator* ( double  factor,
ScaleFunction  base_scale 
)

Multiply a scale choice by a constant factor.

For example, multiplying 0.5 and a scale function for H_T will result in a scale function for H_T/2.

◆ operator*() [3/4]

Weights HEJ::operator* ( Weights  a,
double  b 
)
inline

◆ operator*() [4/4]

Weights HEJ::operator* ( Weights  a,
Weights const &  b 
)
inline

◆ operator/() [1/3]

ScaleFunction HEJ::operator/ ( ScaleFunction  base_scale,
double  denom 
)

Divide a scale choice by a constant factor.

For example, dividing a scale function for H_T by 2 will result in a scale function for H_T/2.

◆ operator/() [2/3]

Weights HEJ::operator/ ( Weights  a,
double  b 
)
inline

◆ operator/() [3/3]

Weights HEJ::operator/ ( Weights  a,
Weights const &  b 
)
inline

◆ resummation_jet_momenta()

std::vector< fastjet::PseudoJet > HEJ::resummation_jet_momenta ( std::vector< fastjet::PseudoJet > const &  p_born,
fastjet::PseudoJet const &  qperp 
)

Calculate the resummation jet momenta.

Parameters
p_bornborn Jet Momenta
qperpSum of non-jet Parton Transverse Momenta
Returns
Resummation Jet Momenta

◆ resummation_jet_weight()

double HEJ::resummation_jet_weight ( std::vector< fastjet::PseudoJet > const &  p_born,
fastjet::PseudoJet const &  qperp 
)

Calculate additional weight from changing the jet momenta.

Parameters
p_bornborn Jet Momenta
qperpSum of non-jet Parton Transverse Momenta

Computes the Jacobian for changing the original delta functions expressed in terms of jet momenta to delta functions of the parton momenta in the resummation phase space

◆ set_from_yaml()

template<typename T , typename... YamlNames>
void HEJ::set_from_yaml ( T &  setting,
YAML::Node const &  yaml,
YamlNames const &...  names 
)

Set option using the corresponding YAML entry.

Parameters
settingOption variable to be set
yamlRoot of the YAML configuration
namesName of the entry

If the entry does not exist or has the wrong type or format an exception is thrown.

For example

set_from_yaml(foobar, yaml, "foo", "bar")
void set_from_yaml(T &setting, YAML::Node const &yaml, YamlNames const &... names)
Set option using the corresponding YAML entry.
Definition: YAMLreader.hh:198

is equivalent to

foobar = yaml["foo"]["bar"].as<decltype(foobar)>()

with improved diagnostics on errors.

See also
set_from_yaml_if_defined

◆ set_from_yaml_if_defined()

template<typename T , typename... YamlNames>
void HEJ::set_from_yaml_if_defined ( T &  setting,
YAML::Node const &  yaml,
YamlNames const &...  names 
)

Set option using the corresponding YAML entry, if present.

Parameters
settingOption variable to be set
yamlRoot of the YAML configuration
namesName of the entry

This function works similar to set_from_yaml, but does not throw any exception if the requested YAML entry does not exist.

See also
set_from_yaml

◆ shat()

double HEJ::shat ( Event const &  ev)

Square of the partonic centre-of-mass energy $\hat{s}$.

◆ to_EventReweighterConfig()

EventReweighterConfig HEJ::to_EventReweighterConfig ( Config const &  conf)
inline

◆ to_HEPEUP()

LHEF::HEPEUP HEJ::to_HEPEUP ( Event const &  event,
LHEF::HEPRUP *   
)

Convert an event to a LHEF::HEPEUP.

◆ to_MatrixElementConfig()

MatrixElementConfig HEJ::to_MatrixElementConfig ( Config const &  conf)
inline

◆ to_ParticleID()

ParticleID HEJ::to_ParticleID ( std::string const &  name)

Convert a particle name to the corresponding PDG particle ID.

◆ to_PhaseSpacePointConfig()

PhaseSpacePointConfig HEJ::to_PhaseSpacePointConfig ( Config const &  conf)
inline

! Extract PhaseSpacePointConfig from Config

◆ to_PseudoJet()

std::vector< fastjet::PseudoJet > HEJ::to_PseudoJet ( std::vector< Particle > const &  v)
inline

Convert a vector of Particles to a vector of particle momenta.

◆ to_RNGConfig()

RNGConfig HEJ::to_RNGConfig ( YAML::Node const &  node,
std::string const &  entry 
)

Extract random number generator settings from YAML configuration.

◆ to_ScaleConfig()

ScaleConfig HEJ::to_ScaleConfig ( YAML::Node const &  yaml)

Extract scale setting parameters from YAML configuration.

◆ to_string()

std::string HEJ::to_string ( FileFormat  f)
inline

Convert a file format to a string.

◆ type_string()

template<typename T >
std::string HEJ::type_string ( T &&  )

Return the name of the argument's type.

Variable Documentation

◆ beta0

constexpr double HEJ::beta0 = 11./3.*C_A - 4./3.*t_f*n_f
constexpr

$\beta_0$

◆ C_A

constexpr double HEJ::C_A = N_C
constexpr

$C_A$

◆ C_F

constexpr double HEJ::C_F = (N_C*N_C - 1.)/(2.*N_C)
constexpr

$C_F$

◆ CLAMBDA

constexpr double HEJ::CLAMBDA = 0.2
constexpr

Scale for virtual correction, $\lambda$ cf. eq. (20) in [1].

◆ CMINPT

constexpr double HEJ::CMINPT = CLAMBDA
constexpr

minimal $p_t$ of all partons

◆ N_C

constexpr double HEJ::N_C = 3.
constexpr

number of Colours

◆ n_f

constexpr double HEJ::n_f = 5.
constexpr

number light flavours

◆ t_f

constexpr double HEJ::t_f = 0.5
constexpr

$t_f$

◆ vev

constexpr double HEJ::vev = 246.2196508
constexpr

Higgs vacuum expectation value in GeV.