GENIEGenerator
Loading...
Searching...
No Matches
genie::HadronTensorI Class Referenceabstract

Abstract interface for an object that computes the elements a hadron tensor $W^{\mu\nu}$. Also computes the contraction of the hadron tensor with the lepton tensor $L_{\mu\nu}W^{\mu\nu}$ for one or more kinds of projectile (e.g., neutrinos, electrons) More...

#include <HadronTensorI.h>

Inheritance diagram for genie::HadronTensorI:
[legend]

Public Member Functions

virtual ~HadronTensorI ()
virtual double contraction (const Interaction *interaction, double Q_value) const =0
int pdg () const
 PDG code of the target nucleus.
int Z () const
 Atomic number of the target nucleus.
int A () const
 Mass number of the target nucleus.
void set_pdg (int pdg)
 Set the target nucleus PDG code.
virtual double q0Min () const =0
virtual double q0Max () const =0
virtual double qMagMin () const =0
virtual double qMagMax () const =0
Tensor elements

Functions that return the elements of the tensor.

Parameters
[in]q0The energy transfer $q^0$ in the lab frame (GeV)
[in]q_magThe magnitude of the 3-momentum transfer $\left|\overrightarrow{q}\right|$ in the lab frame (GeV)
Return values
std::complex<double>The value of the hadronic tensor element
virtual std::complex< double > tt (double q0, double q_mag) const =0
 The tensor element $W^{00}$.
virtual std::complex< double > tx (double q0, double q_mag) const =0
 The tensor element $W^{0x}$.
virtual std::complex< double > ty (double q0, double q_mag) const =0
 The tensor element $W^{0y}$.
virtual std::complex< double > tz (double q0, double q_mag) const =0
 The tensor element $W^{0z}$.
virtual std::complex< double > xt (double q0, double q_mag) const =0
 The tensor element $W^{x0} = (W^{0x})^*$.
virtual std::complex< double > xx (double q0, double q_mag) const =0
 The tensor element $W^{xx}$.
virtual std::complex< double > xy (double q0, double q_mag) const =0
 The tensor element $W^{xy}$.
virtual std::complex< double > xz (double q0, double q_mag) const =0
 The tensor element $W^{xz}$.
virtual std::complex< double > yt (double q0, double q_mag) const =0
 The tensor element $W^{y0} = (W^{0y})^*$.
virtual std::complex< double > yx (double q0, double q_mag) const =0
 The tensor element $W^{yx} = (W^{xy})^*$.
virtual std::complex< double > yy (double q0, double q_mag) const =0
 The tensor element $W^{yy}$.
virtual std::complex< double > yz (double q0, double q_mag) const =0
 The tensor element $W^{yz}$.
virtual std::complex< double > zt (double q0, double q_mag) const =0
 The tensor element $W^{z0} = (W^{0z})^*$.
virtual std::complex< double > zx (double q0, double q_mag) const =0
 The tensor element $W^{zx} = (W^{xz})^*$.
virtual std::complex< double > zy (double q0, double q_mag) const =0
 The tensor element $W^{zy} = (W^{yz})^*$.
virtual std::complex< double > zz (double q0, double q_mag) const =0
 The tensor element $W^{zz}$.

Protected Member Functions

 HadronTensorI (int pdg=0)
 HadronTensorI (int Z, int A)
 PDG code for the target nucleus represented by the tensor.

Protected Attributes

int fTargetPDG

Detailed Description

Abstract interface for an object that computes the elements a hadron tensor $W^{\mu\nu}$. Also computes the contraction of the hadron tensor with the lepton tensor $L_{\mu\nu}W^{\mu\nu}$ for one or more kinds of projectile (e.g., neutrinos, electrons)

Author
Steven Gardiner <gardiner \at fnal.gov> Liang Liu <liangliu \at fnal.gov> Fermi National Accelerator Laboratory
Created:\n August 23, 2018
License:\n Copyright (c) 2003-2025, The GENIE Collaboration
For the full text of the license visit http://copyright.genie-mc.org or see $GENIE/LICENSE

Definition at line 95 of file HadronTensorI.h.

Constructor & Destructor Documentation

◆ ~HadronTensorI()

virtual genie::HadronTensorI::~HadronTensorI ( )
inlinevirtual

Definition at line 99 of file HadronTensorI.h.

99{}

◆ HadronTensorI() [1/2]

genie::HadronTensorI::HadronTensorI ( int pdg = 0)
inlineprotected

Definition at line 201 of file HadronTensorI.h.

201: fTargetPDG(pdg) {}
int pdg() const
PDG code of the target nucleus.

References fTargetPDG, and pdg().

Referenced by genie::LabFrameHadronTensorI::LabFrameHadronTensorI(), and genie::LabFrameHadronTensorI::LabFrameHadronTensorI().

◆ HadronTensorI() [2/2]

genie::HadronTensorI::HadronTensorI ( int Z,
int A )
inlineprotected

PDG code for the target nucleus represented by the tensor.

Definition at line 203 of file HadronTensorI.h.

References A(), fTargetPDG, pdg(), and Z().

Member Function Documentation

◆ A()

int genie::HadronTensorI::A ( ) const
inline

◆ contraction()

virtual double genie::HadronTensorI::contraction ( const Interaction * interaction,
double Q_value ) const
pure virtual

Computes the contraction $L_{\mu\nu}W^{\mu\nu}$ of the hadron tensor with the appropriate lepton tensor for a given type of projectile (e.g., neutrino, electron)

Parameters
[in]interactionAn Interaction object storing information about the initial and final states
[in]Q_valueThe Q-value that should be used to correct the energy transfer $q_0$ (GeV)
Returns
The tensor contraction $L_{\mu\nu}W^{\mu\nu}$ (GeV)

Implemented in genie::LabFrameHadronTensorI.

◆ pdg()

int genie::HadronTensorI::pdg ( ) const
inline

PDG code of the target nucleus.

Definition at line 170 of file HadronTensorI.h.

170{ return fTargetPDG; }

References fTargetPDG.

Referenced by HadronTensorI(), HadronTensorI(), genie::LabFrameHadronTensorI::LabFrameHadronTensorI(), and set_pdg().

◆ q0Max()

virtual double genie::HadronTensorI::q0Max ( ) const
pure virtual

The maximum value of the energy transfer $q^0$ for which this hadron tensor may be used to compute cross sections

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::SuSAv2MECPXSec::PairRatio(), genie::NievesSimoVacasMECPXSec2016::XSec(), genie::SuSAv2MECPXSec::XSec(), and genie::SuSAv2QELPXSec::XSec().

◆ q0Min()

virtual double genie::HadronTensorI::q0Min ( ) const
pure virtual

The minimum value of the energy transfer $q^0$ for which this hadron tensor may be used to compute cross sections

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::SuSAv2MECPXSec::PairRatio(), genie::NievesSimoVacasMECPXSec2016::XSec(), genie::SuSAv2MECPXSec::XSec(), and genie::SuSAv2QELPXSec::XSec().

◆ qMagMax()

virtual double genie::HadronTensorI::qMagMax ( ) const
pure virtual

The maximum value of the magnitude of the 3-momentum transfer $\left|\overrightarrow{q}\right|$ for which this hadron tensor may be used to compute cross sections

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::SuSAv2MECPXSec::PairRatio(), genie::NievesSimoVacasMECPXSec2016::XSec(), genie::SuSAv2MECPXSec::XSec(), and genie::SuSAv2QELPXSec::XSec().

◆ qMagMin()

virtual double genie::HadronTensorI::qMagMin ( ) const
pure virtual

The minimum value of the magnitude of the 3-momentum transfer $\left|\overrightarrow{q}\right|$ for which this hadron tensor may be used to compute cross sections

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::SuSAv2MECPXSec::PairRatio(), genie::NievesSimoVacasMECPXSec2016::XSec(), genie::SuSAv2MECPXSec::XSec(), and genie::SuSAv2QELPXSec::XSec().

◆ set_pdg()

void genie::HadronTensorI::set_pdg ( int pdg)
inline

Set the target nucleus PDG code.

Definition at line 179 of file HadronTensorI.h.

179{ fTargetPDG = pdg; }

References fTargetPDG, and pdg().

Referenced by genie::TabulatedLabFrameHadronTensor::TabulatedLabFrameHadronTensor().

◆ tt()

virtual std::complex< double > genie::HadronTensorI::tt ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{00}$.

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::utils::mec::OldTensorContraction().

◆ tx()

virtual std::complex< double > genie::HadronTensorI::tx ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{0x}$.

Implemented in genie::LabFrameHadronTensorI.

◆ ty()

virtual std::complex< double > genie::HadronTensorI::ty ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{0y}$.

Implemented in genie::LabFrameHadronTensorI.

◆ tz()

virtual std::complex< double > genie::HadronTensorI::tz ( double q0,
double q_mag ) const
pure virtual

◆ xt()

virtual std::complex< double > genie::HadronTensorI::xt ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{x0} = (W^{0x})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ xx()

virtual std::complex< double > genie::HadronTensorI::xx ( double q0,
double q_mag ) const
pure virtual

◆ xy()

virtual std::complex< double > genie::HadronTensorI::xy ( double q0,
double q_mag ) const
pure virtual

◆ xz()

virtual std::complex< double > genie::HadronTensorI::xz ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{xz}$.

Implemented in genie::LabFrameHadronTensorI.

◆ yt()

virtual std::complex< double > genie::HadronTensorI::yt ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{y0} = (W^{0y})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ yx()

virtual std::complex< double > genie::HadronTensorI::yx ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{yx} = (W^{xy})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ yy()

virtual std::complex< double > genie::HadronTensorI::yy ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{yy}$.

Implemented in genie::LabFrameHadronTensorI.

◆ yz()

virtual std::complex< double > genie::HadronTensorI::yz ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{yz}$.

Implemented in genie::LabFrameHadronTensorI.

◆ Z()

int genie::HadronTensorI::Z ( ) const
inline

◆ zt()

virtual std::complex< double > genie::HadronTensorI::zt ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{z0} = (W^{0z})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ zx()

virtual std::complex< double > genie::HadronTensorI::zx ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{zx} = (W^{xz})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ zy()

virtual std::complex< double > genie::HadronTensorI::zy ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{zy} = (W^{yz})^*$.

Implemented in genie::LabFrameHadronTensorI.

◆ zz()

virtual std::complex< double > genie::HadronTensorI::zz ( double q0,
double q_mag ) const
pure virtual

The tensor element $W^{zz}$.

Implemented in genie::TabulatedLabFrameHadronTensor.

Referenced by genie::utils::mec::OldTensorContraction().

Member Data Documentation

◆ fTargetPDG

int genie::HadronTensorI::fTargetPDG
protected

Definition at line 207 of file HadronTensorI.h.

Referenced by A(), HadronTensorI(), HadronTensorI(), pdg(), set_pdg(), and Z().


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