yadism.coefficient_functions.heavy package

The main NC reference used is: [Hek19].

The main CC reference used is: [GKR96]

Subpackages

Submodules

yadism.coefficient_functions.heavy.f2_cc module

class yadism.coefficient_functions.heavy.f2_cc.Gluon(*args, m2hq)[source]

Bases: ChargedCurrentGluon

NLO()[source]

Reference: implements A.5-7 with Table 2, [GKR96].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f2_cc.NonSinglet(*args, m2hq)[source]

Bases: ChargedCurrentNonSinglet

NLO()[source]

Reference: implements A.1-4 with Table 1, [GKR96].

__annotations__ = {}

yadism.coefficient_functions.heavy.f2_nc module

Massive \(F_2^{NC}\) components.

class yadism.coefficient_functions.heavy.f2_nc.GluonAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: GluonVV

Axial-vector-axial-vector gluon component.

NLO()[source]

Reference: implements D.4, [Hek19].

NNLO()[source]

Reference: implements NLO (heavy) gluon coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f2_nc.GluonVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

Vector-vector gluon component.

N3LO()[source]

Reference: implements NNLO (heavy) gluon coefficient function, from N.Laurenti thesis.

NLO()[source]

Reference: implements D.1, [Hek19].

NNLO()[source]

Reference: implements NLO (heavy) gluon coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f2_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

Non-singlet, aka missing component.

NNLO()[source]

Reference: implements NLO (heavy) non-singlet coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f2_nc.SingletAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

Axial-vector-axial-vector singlet component.

NNLO()[source]

Reference: implements NLO (heavy) singlet coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f2_nc.SingletVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

Vector-vector singlet component.

N3LO()[source]

Reference: implements NNLO (heavy) singlet coefficient function, from N.Laurenti thesis.

NNLO()[source]

Reference: implements NLO (heavy) singlet coefficient function, [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.f3_cc module

class yadism.coefficient_functions.heavy.f3_cc.Gluon(*args, m2hq)[source]

Bases: ChargedCurrentGluon

NLO()[source]

Reference: implements A.5-7 with Table 2, [GKR96].

__annotations__ = {}
class yadism.coefficient_functions.heavy.f3_cc.NonSinglet(*args, **kwargs)[source]

Bases: ChargedCurrentNonSinglet

NLO()[source]

Reference: implements A.1-4 with Table 1, [GKR96].

__annotations__ = {}

yadism.coefficient_functions.heavy.f3_nc module

class yadism.coefficient_functions.heavy.f3_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NLO (heavy) non-singlet coefficient function, [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.fl_cc module

class yadism.coefficient_functions.heavy.fl_cc.Gluon(*args, **kwargs)[source]

Bases: ChargedCurrentGluon

NLO()[source]

Reference: implements A.5-7 with Table 2, [GKR96].

__annotations__ = {}
class yadism.coefficient_functions.heavy.fl_cc.NonSinglet(*args, **kwargs)[source]

Bases: ChargedCurrentNonSinglet

NLO()[source]

Reference: implements A.1-4 with Table 1, [GKR96].

__annotations__ = {}

yadism.coefficient_functions.heavy.fl_nc module

class yadism.coefficient_functions.heavy.fl_nc.GluonAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: GluonVV

NLO()[source]

Reference: implements D.5, [Hek19].

NNLO()[source]

Reference: implements NLO (heavy) gluon coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.fl_nc.GluonVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

N3LO()[source]

Reference: implements NNLO (heavy) gluon coefficient function, from N.Laurenti thesis.

NLO()[source]

Reference: implements D.2, [Hek19].

NNLO()[source]

Reference: implements NLO (heavy) gluon coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.fl_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NLO (heavy) non-singlet coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.fl_nc.SingletAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NLO (heavy) singlet coefficient function, [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.fl_nc.SingletVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

N3LO()[source]

Reference: implements NNLO (heavy) singlet coefficient function, from N.Laurenti thesis.

NNLO()[source]

Reference: implements NLO (heavy) singlet coefficient function, [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.g1_nc module

class yadism.coefficient_functions.heavy.g1_nc.GluonAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: GluonVV

NLO()[source]

Reference: implements D.6, [Hek19].

NNLO()[source]

Reference: implements NNLO (heavy) gluon coefficient function, D.14 of [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.g1_nc.GluonVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NLO()[source]

Reference: implements D.3, [Hek19].

NNLO()[source]

Reference: implements NNLO (heavy) gluon coefficient function, D.14 of [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.g1_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NNLO (heavy) NS coefficient function, D.64 of [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.g1_nc.SingletAA(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NNLO (heavy) singlet coefficient function, D.43 of [Hek19].

__annotations__ = {}
class yadism.coefficient_functions.heavy.g1_nc.SingletVV(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NNLO (heavy) singlet coefficient function, D.43 of [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.g4_nc module

class yadism.coefficient_functions.heavy.g4_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NNLO (heavy) NS coefficient function, D.58 of [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.gl_nc module

class yadism.coefficient_functions.heavy.gl_nc.NonSinglet(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: NeutralCurrentBase

NNLO()[source]

Reference: implements NNLO (heavy) NS coefficient function, D.59 of [Hek19].

__annotations__ = {}

yadism.coefficient_functions.heavy.kernels module

Truely heavy structure function kernels.

yadism.coefficient_functions.heavy.kernels.generate(esf, nf, ihq)[source]

Collect the heavy coefficient functions.

Parameters:
Returns:

elems – list of elements

Return type:

list(yadism.kernels.Kernel)

yadism.coefficient_functions.heavy.kernels.generate_missing(esf, nf, ihq, icoupl=None)[source]

Collect the missing coefficient functions.

Parameters:
  • esf (EvaluatedStructureFunction) – kinematic point

  • nf (int) – number of light flavors

  • ihq (int) – PID of heavy flavor

  • icoupl (None or int) – PID of the flavor coupling (default: None)

Returns:

elems – list of elements

Return type:

list(yadism.kernels.Kernel)

yadism.coefficient_functions.heavy.kernels.import_pc_module(kind, process)[source]

Import structure function submodule.

Parameters:
  • kind (str) – structure functions kind

  • process (str) – DIS process type

Returns:

suitable submodule

Return type:

module

yadism.coefficient_functions.heavy.kernels.nc_weights(coupling_constants, Q2, nf, ihq, is_pv)[source]

Compute heavy NC weights.

Parameters:
  • coupling_constants (CouplingConstants) – manager for coupling constants

  • Q2 (float) – boson virtuality

  • nf (int) – number of light flavors

  • ihq (int) – quark flavor to activate

  • is_pv (bool) – True if observable violates parity conservation

Returns:

weights – mapping pid -> weight

Return type:

dict

yadism.coefficient_functions.heavy.partonic_channel module

class yadism.coefficient_functions.heavy.partonic_channel.ChargedCurrentBase(*args, m2hq)[source]

Bases: PartonicChannel

Heavy partonic coefficient functions that respect hadronic and partonic thresholds.

From [GKR96] we see that the partonic coefficient functions have to be multiplied by different factors for the different structure functions. In order to keep track of this we use the sf_prefactor attribute. Coefficients that to not explicitly depend on the structure function kind are mulitplied by this factor (\(B_{3,i}\) and the explicit factorization bits). For all the other the factors have to be applied explicitly: e.g. \(A_L = A_2 - \lambda A_1\).

Parameters:

m2hq (float) – heavy quark mass

__annotations__ = {}
convolution_point()[source]

Change convolution point due to massive particles

class yadism.coefficient_functions.heavy.partonic_channel.ChargedCurrentGluon(*args, m2hq)[source]

Bases: ChargedCurrentBase

Gluon contributions

__annotations__ = {}
h_g(z, cs)[source]
class yadism.coefficient_functions.heavy.partonic_channel.ChargedCurrentNonSinglet(*args, m2hq)[source]

Bases: ChargedCurrentBase

Quark contributions

LO()[source]
__annotations__ = {}
h_q(a, b1, b2)[source]
r_integral(x)[source]

-Power(Pi,2)/6. + Li2([Lambda]) + Li2((1 - [Lambda])/(1 - x*[Lambda])) + ln(1 - [Lambda])*ln([Lambda]) - ln(1 - x)*ln(1 - x*[Lambda]) - ln([Lambda])*ln(1 - x*[Lambda]) + Power(ln(1 - x*[Lambda]),2)/2.

class yadism.coefficient_functions.heavy.partonic_channel.NeutralCurrentBase(*args, m2hq, n3lo_cf_variation=0)[source]

Bases: PartonicChannel

Heavy partonic coefficient functions that respect hadronic and partonic thresholds.

__annotations__ = {}
decorator(f)[source]

Apply hadronic threshold

Parameters:

f (callable) – input

Returns:

f – output

Return type:

callable

is_below_pair_threshold(z)[source]

Checks if the available energy is below production threshold or not

Parameters:

z (float) – partonic momentum fraction

Returns:

is_below_pair_threshold – is the partonic energy sufficient to create the heavy quark pair?

Return type:

bool

Todo

use threshold on shat or using FH’s zmax?