PYTHIA  8.317
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
WeightsFragmentation Class Reference

#include <Weights.h>

Inheritance diagram for WeightsFragmentation:
WeightsBase

Public Types

enum  FactIndex { Z, Flav, PT }
 Factorization indices.
 

Public Member Functions

 ~WeightsFragmentation ()
 Destructor. More...
 
void init () override
 Initialize the weights. More...
 
void clear () override
 Clear the weights.
 
int nWeightGroups () const
 
string getGroupName (int iGN) const
 
double getGroupWeight (int iGW) const
 Return group weight.
 
void collectWeightNames (vector< string > &outputNames) override
 Collect fragmentation weight names. More...
 
void collectWeightValues (vector< double > &outputWeights, double norm=1.) override
 Collect fragmentation weight values.
 
vector< double > flavParms (double xi, double rho, double x, double y)
 Calculate the derived flavour parameters. More...
 
double flavWeight (const vector< double > &parms)
 Calculate a flavour weight.
 
double flavWeight (const vector< double > &parms, const vector< int > &breaks)
 Calculate a flavor weight, given the derived parameters and breaks. More...
 
double zWeight (double aLund, double bLund, double rFactC, double rFactB, int idOld, int idNew, double mT2, double z, double fPrel)
 Calculate kinematic weights. More...
 
double pTWeight (double sigma, double pT2, double mult)
 
- Public Member Functions inherited from WeightsBase
virtual void init (bool)
 
virtual void bookVectors (vector< double > weights, vector< string > names)
 
string getWeightsName (int iPos) const
 
virtual double getWeightsValue (int iPos) const
 
int getWeightsSize () const
 
void bookWeight (string name, double defaultValue=1.)
 Function to create a new, synchronized, pair of weight name and value. More...
 
void setValueByIndex (int iPos, double val)
 Functions to set values of weights.
 
void setValueByName (string name, double val)
 
virtual void reweightValueByIndex (int iPos, double val)
 Functions to reweight weight values, by index or by name.
 
virtual void reweightValueByName (string name, double val)
 
int findIndexOfName (string name)
 
void setPtrs (Info *infoPtrIn)
 Set the pointers.
 

Public Attributes

vector< map< vector< double >, int > > weightParms {}
 Vectors for weight group handling.
 
vector< string > externalGroupNames {}
 
vector< vector< int > > externalMap {}
 
vector< int > flavBreaks
 Track the breaks needed for flavour reweighting.
 
vector< int > zIntBreaks
 
vector< double > zDblBreaks
 
vector< double > pTBreaks
 

Friends

class StringFlav
 Friends for fragmentation reweighitng.
 
class StringZ
 
class StringPT
 

Additional Inherited Members

- Protected Member Functions inherited from WeightsBase
void parse (string wvecKey, map< string, map< string, double > > &dct)
 Parse a WVec of variations into a dictionary. More...
 
- Protected Attributes inherited from WeightsBase
vector< double > weightValues
 Weight values and names.
 
vector< string > weightNames
 
InfoinfoPtr {}
 Pointers necessary for variation initialization.
 

Detailed Description

This is class to collect information on fragmentation weighting, and is in turn part of Info.

Constructor & Destructor Documentation

Destructor.

WeightsFragmentation class.

Fragmentation variations destructor.

Member Function Documentation

void collectWeightNames ( vector< string > &  outputNames)
overridevirtual

Collect fragmentation weight names.

Functions to return processed weights to weight container, e.g. if weights should be combined before proceeding.

Reimplemented from WeightsBase.

vector< double > flavParms ( double  xi,
double  rho,
double  x,
double  y 
)

Calculate the derived flavour parameters.

Calculate the derived flavor parameters.

Set the primary parameters.

Pass the primary parameters to settings.

Initialize a flavor selector.

Set the derived parameters.

Reset the settings.

double flavWeight ( const vector< double > &  parms,
const vector< int > &  breaks 
)

Calculate a flavor weight, given the derived parameters and breaks.

Loop over parameter ratios (avoids floating point exceptions).

Weight unchanged if negative for 5th parameter.

Weight unchanged if no breaks.

Infinite weight if parameter is infinite.

Include remaining weight terms and return.

void init ( )
overridevirtual

Initialize the weights.

Fragmentation variations initialization.

Read weight groups into a dictionary.

Define the ordering of the parameters and key mapping.

Initialize the flavor selector.

Initialize the z selector.

Initialize the pT selector.

Create a map from variation keys to standard keys.

Store the baseline flavor parameters.

Loop over the groups and determine the parameter variations.

Set the parameter variations for a group.

Map the group parameters to factorized parameters.

Transform flavor parameters if needed.

Set the standard parameters.

Check if this is a new factorized variation.

Reimplemented from WeightsBase.

double pTWeight ( double  sigma,
double  pT2,
double  mult 
)

Calculate a pT weight for a single break, given the derived parameters and break info.

double zWeight ( double  aLund,
double  bLund,
double  rFactC,
double  rFactB,
int  idOld,
int  idNew,
double  mT2,
double  z,
double  fPrel 
)

Calculate kinematic weights.

Calculate a z weight for a single break, given the derived parameters and break info.

Positive mT2 is an accepted break.

Initialize all the relevant parameters.

Skip non-standard c, b, or h.

Determine the varied a, b, and c parameters.

Determine position of the maximum. Assuming that no special options are being used, i.e bShape = bLund. This is because b is scaled by mT2.

When b is changed, so is c.

Determine the new position of maximum.

Recalculate the coefficients.

Return the weight.

Member Data Documentation

vector<double> pTBreaks

Track the break information for pT reweighting. This is a flat vector. The double vector is {pT2_0, mult_0, ..., pT2_n, mult_n}.

vector<int> zIntBreaks

Track the break information for z reweighting. These are flat vectors. The integer vector is {idOld_0, idNew_0, ..., idOld_n, idNew_n}. The double vector is {mT2_0, z_0, fPrel}.


The documentation for this class was generated from the following files: