Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git include/Pythia8Plugins/LHAPDF6.h include/Pythia8Plugins/LHAPDF6.h
- index 8179885..7993df9 100644
- --- include/Pythia8Plugins/LHAPDF6.h
- +++ include/Pythia8Plugins/LHAPDF6.h
- @@ -120,20 +120,22 @@ private:
- // Check whether x and Q2 values fall inside the fit bounds.
- bool insideBounds(double x, double Q2) {
- - return (x > pdf->xMin() && x < pdf->xMax()
- - && Q2 > pdf->q2Min() && Q2 < pdf->q2Max());}
- + return (x > _xMin && x < _xMax && Q2 > _q2Min && Q2 < _q2Max;}
- // Return the running alpha_s shipped with the LHAPDF set.
- double alphaS(double Q2) { return pdf->alphasQ2(Q2); }
- // Return quark masses used in the PDF fit.
- double muPDFSave, mdPDFSave, mcPDFSave, msPDFSave, mbPDFSave;
- + double _xMin, _xMax, _q2Min, _q2Max;
- double mQuarkPDF(int id) {
- - if (abs(id) == 1) return mdPDFSave;
- - if (abs(id) == 2) return muPDFSave;
- - if (abs(id) == 3) return msPDFSave;
- - if (abs(id) == 4) return mcPDFSave;
- - if (abs(id) == 5) return mbPDFSave;
- + switch(abs(id)){
- + case 1: return mdPDFSave;
- + case 2: return muPDFSave;
- + case 3: return msPDFSave;
- + case 4: return mcPDFSave;
- + case 5: return mbPDFSave;
- + }
- return -1.;
- }
- @@ -179,6 +181,12 @@ void LHAPDF6::init(string setName, int member, Info *info) {
- pdf = (*pdfs)[member];
- isSet = true;
- + // Save {x, q2}{Min, Max}
- + _xMax =_xMax;
- + _xMin =_xMin;
- + _q2Max =_q2Max;
- + _q2Min =_q2Min;
- +
- // Store quark masses used in PDF fit.
- muPDFSave = pdf->info().get_entry_as<double>("MUp");
- mdPDFSave = pdf->info().get_entry_as<double>("MDown");
- @@ -197,10 +205,10 @@ void LHAPDF6::init(string setName, int member, Info *info) {
- void LHAPDF6::xfUpdate(int, double x, double Q2) {
- // Freeze at boundary value if PDF is evaluated outside the fit region.
- - if (x < pdf->xMin() && !extrapol) x = pdf->xMin();
- - if (x > pdf->xMax() ) x = pdf->xMax();
- - if (Q2 < pdf->q2Min() ) Q2 = pdf->q2Min();
- - if (Q2 > pdf->q2Max() ) Q2 = pdf->q2Max();
- + if (x <_xMin && !extrapol) x =_xMin;
- + if (x >_xMax) x =_xMax;
- + if (Q2 <_q2Min) Q2 =_q2Min;
- + if (Q2 >_q2Max) Q2 =_q2Max;
- // Update values.
- xg = pdf->xfxQ2(21, x, Q2);
- @@ -233,12 +241,10 @@ void LHAPDF6::calcPDFEnvelope(int idNow, double xNow, double Q2NowIn,
- int valSea) {
- // Freeze at boundary value if PDF is evaluated outside the fit region.
- - double x1 = (xNow < pdf->xMin() && !extrapol)
- - ? pdf->xMin() : xNow;
- - if (x1 > pdf->xMax() ) x1 = pdf->xMax();
- - double Q2Now = (Q2NowIn < pdf->q2Min() )
- - ? pdf->q2Min() : Q2NowIn;
- - if (Q2Now > pdf->q2Max() ) Q2Now = pdf->q2Max();
- + double x1 = (xNow <_xMin && !extrapol) ?_xMin : xNow;
- + if (x1 >_xMax ) x1 =_xMax;
- + double Q2Now = (Q2NowIn <_q2Min ) ? _q2Min : Q2NowIn;
- + if (Q2Now >_q2Max ) Q2Now =_q2Max;
- // Loop over the members.
- vector<double> xfCalc((*pdfs).size());
- @@ -270,15 +276,12 @@ void LHAPDF6::calcPDFEnvelope(pair<int,int> idNows, pair<double,double> xNows,
- double Q2NowIn, int valSea) {
- // Freeze at boundary value if PDF is evaluated outside the fit region.
- - double x1 = (xNows.first < pdf->xMin() && !extrapol)
- - ? pdf->xMin() : xNows.first;
- - if (x1 > pdf->xMax() ) x1 = pdf->xMax();
- - double x2 = (xNows.second < pdf->xMin() && !extrapol)
- - ? pdf->xMin() : xNows.second;
- - if (x2 > pdf->xMax() ) x2 = pdf->xMax();
- - double Q2Now = (Q2NowIn < pdf->q2Min() )
- - ? pdf->q2Min() : Q2NowIn;
- - if (Q2Now > pdf->q2Max() ) Q2Now = pdf->q2Max();
- + double x1 = (xNows.first <_xMin && !extrapol) ?_xMin : xNows.first;
- + if (x1 >_xMax ) x1 =_xMax;
- + double x2 = (xNows.second <_xMin && !extrapol) ?_xMin : xNows.second;
- + if (x2 >_xMax ) x2 =_xMax;
- + double Q2Now = (Q2NowIn <_q2Min ) ?_q2Min : Q2NowIn;
- + if (Q2Now >_q2Max ) Q2Now =_q2Max;
- // Loop over the members.
- vector<double> xfCalc((*pdfs).size());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement