7 #ifndef Pythia8_KinematicVariations_H 8 #define Pythia8_KinematicVariations_H 11 #include "Pythia8/Pythia.h" 26 settings.parm(
"StringZ:aLund"),
27 settings.parm(
"StringZ:bLund"),
28 settings.parm(
"StringZ:rFactC"),
29 settings.parm(
"StringZ:rFactB"),
30 settings.parm(
"StringPT:sigma"),
31 settings.parm(
"VariationFrag:zHead")) {}
35 double rFactB,
double sigma,
double zHead) :
39 pythia.
settings.parm(
"StringZ:aLund", aLund);
40 pythia.
settings.parm(
"StringZ:bLund", bLund);
41 pythia.
settings.parm(
"StringZ:rFactC", rFactC);
42 pythia.
settings.parm(
"StringZ:rFactB", rFactB);
43 pythia.
settings.parm(
"StringPT:sigma", sigma);
44 pythia.
settings.parm(
"VariationFrag:zHead", zHead);
49 string write(
const vector<int>& breaks) {
51 for (
const int& val : breaks) out +=
toString(val) +
",";
52 return out.substr(0, out.length() - 1) +
"}";}
53 string write(
const vector<double>& breaks) {
55 for (
const double& val : breaks) out +=
toString(val) +
",";
56 return out.substr(0, out.length() - 1) +
"}";}
59 double weight(
double aLund,
double bLund,
double rFactC,
double rFactB,
60 double sigma,
const vector<int>& zIntBreaks,
61 const vector<double>& zDblBreaks,
const vector<double>& pTBreaks) {
62 return weight(aLund, bLund, rFactC, rFactB, zIntBreaks, zDblBreaks) *
67 double weight(
double aLund,
double bLund,
double rFactC,
double rFactB,
68 const vector<int>& zIntBreaks,
const vector<double>& zDblBreaks) {
70 for (
int iBrk = 0; iBrk < int(zIntBreaks.size()/2); ++iBrk) {
71 wgt *= pythia.
info.weightContainerPtr
73 zIntBreaks[2*iBrk + 0], zIntBreaks[2*iBrk + 1],
74 zDblBreaks[3*iBrk + 0], zDblBreaks[3*iBrk + 1],
75 zDblBreaks[3*iBrk + 2]);
81 double weight(
double sigma,
const vector<double>& pTBreaks) {
83 for (
int iBrk = 0; iBrk < int(pTBreaks.size()/2); ++iBrk)
84 wgt *= pythia.
info.weightContainerPtr
86 sigma, pTBreaks[2*iBrk + 0], pTBreaks[2*iBrk + 1]);
bool flag(string keyIn)
Give back current value, with check that key exists.
Definition: Settings.cc:1615
WeightsFragmentation weightsFragmentation
Fragmentation weights.
Definition: Weights.h:495
Settings settings
Settings: databases of flags/modes/parms/words to control run.
Definition: Pythia.h:386
double weight(double aLund, double bLund, double rFactC, double rFactB, const vector< int > &zIntBreaks, const vector< double > &zDblBreaks)
Calculate just the z weight.
Definition: KinematicVariations.h:67
bool init()
Initialize.
Definition: Pythia.cc:422
double weight(double aLund, double bLund, double rFactC, double rFactB, double sigma, const vector< int > &zIntBreaks, const vector< double > &zDblBreaks, const vector< double > &pTBreaks)
Calculate the full kinematic weight.
Definition: KinematicVariations.h:59
string write(const vector< int > &breaks)
Write string breaks.
Definition: KinematicVariations.h:49
double weight(double sigma, const vector< double > &pTBreaks)
Calculate just the pT weight.
Definition: KinematicVariations.h:81
string toString(bool val)
Convert a boolean to a string.
Definition: PythiaStdlib.h:210
double pTWeight(double sigma, double pT2, double mult)
Definition: Weights.cc:1008
KinematicVariations(Settings &settings)
Constructor, given an intialized Pythia object.
Definition: KinematicVariations.h:25
KinematicVariations(double aLund, double bLund, double rFactC, double rFactB, double sigma, double zHead)
Constructor, given the default base parameters.
Definition: KinematicVariations.h:34
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The Pythia class contains the top-level routines to generate an event.
Definition: Pythia.h:72
const Info & info
Public information and statistic on the generation.
Definition: Pythia.h:380
Definition: KinematicVariations.h:20
Definition: Settings.h:196
double zWeight(double aLund, double bLund, double rFactC, double rFactB, int idOld, int idNew, double mT2, double z, double fPrel)
Calculate kinematic weights.
Definition: Weights.cc:943