GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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:
Inheritance graph
[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. More...
 
int Z () const
 Atomic number of the target nucleus. More...
 
int A () const
 Mass number of the target nucleus. More...
 
void set_pdg (int pdg)
 Set the target nucleus PDG code. More...
 
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}$. More...
 
virtual std::complex< double > tx (double q0, double q_mag) const =0
 The tensor element $W^{0x}$. More...
 
virtual std::complex< double > ty (double q0, double q_mag) const =0
 The tensor element $W^{0y}$. More...
 
virtual std::complex< double > tz (double q0, double q_mag) const =0
 The tensor element $W^{0z}$. More...
 
virtual std::complex< double > xt (double q0, double q_mag) const =0
 The tensor element $W^{x0} = (W^{0x})^*$. More...
 
virtual std::complex< double > xx (double q0, double q_mag) const =0
 The tensor element $W^{xx}$. More...
 
virtual std::complex< double > xy (double q0, double q_mag) const =0
 The tensor element $W^{xy}$. More...
 
virtual std::complex< double > xz (double q0, double q_mag) const =0
 The tensor element $W^{xz}$. More...
 
virtual std::complex< double > yt (double q0, double q_mag) const =0
 The tensor element $W^{y0} = (W^{0y})^*$. More...
 
virtual std::complex< double > yx (double q0, double q_mag) const =0
 The tensor element $W^{yx} = (W^{xy})^*$. More...
 
virtual std::complex< double > yy (double q0, double q_mag) const =0
 The tensor element $W^{yy}$. More...
 
virtual std::complex< double > yz (double q0, double q_mag) const =0
 The tensor element $W^{yz}$. More...
 
virtual std::complex< double > zt (double q0, double q_mag) const =0
 The tensor element $W^{z0} = (W^{0z})^*$. More...
 
virtual std::complex< double > zx (double q0, double q_mag) const =0
 The tensor element $W^{zx} = (W^{xz})^*$. More...
 
virtual std::complex< double > zy (double q0, double q_mag) const =0
 The tensor element $W^{zy} = (W^{yz})^*$. More...
 
virtual std::complex< double > zz (double q0, double q_mag) const =0
 The tensor element $W^{zz}$. More...
 

Protected Member Functions

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

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 fnal.gov> Liang Liu <liangliu fnal.gov> Fermi National Accelerator Laboratory
Created:
August 23, 2018
License:
Copyright (c) 2003-2024, 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

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

Definition at line 99 of file HadronTensorI.h.

99 {}
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.
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.

Member Function Documentation

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

Mass number of the target nucleus.

Definition at line 176 of file HadronTensorI.h.

References fTargetPDG, and genie::pdg::IonPdgCodeToA().

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

int IonPdgCodeToA(int pdgc)
Definition: PDGUtils.cxx:63
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.

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

PDG code of the target nucleus.

Definition at line 170 of file HadronTensorI.h.

References fTargetPDG.

Referenced by set_pdg().

170 { return fTargetPDG; }
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::SuSAv2QELPXSec::XSec(), genie::NievesSimoVacasMECPXSec2016::XSec(), and genie::SuSAv2MECPXSec::XSec().

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::SuSAv2QELPXSec::XSec(), genie::NievesSimoVacasMECPXSec2016::XSec(), and genie::SuSAv2MECPXSec::XSec().

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::SuSAv2QELPXSec::XSec(), genie::NievesSimoVacasMECPXSec2016::XSec(), and genie::SuSAv2MECPXSec::XSec().

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::SuSAv2QELPXSec::XSec(), genie::NievesSimoVacasMECPXSec2016::XSec(), and genie::SuSAv2MECPXSec::XSec().

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

Set the target nucleus PDG code.

Definition at line 179 of file HadronTensorI.h.

References fTargetPDG, and pdg().

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

179 { fTargetPDG = pdg; }
int pdg() const
PDG code of the target nucleus.
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().

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

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

Implemented in genie::LabFrameHadronTensorI.

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

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

Implemented in genie::LabFrameHadronTensorI.

virtual std::complex<double> genie::HadronTensorI::tz ( double  q0,
double  q_mag 
) const
pure virtual
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.

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

The tensor element $W^{xz}$.

Implemented in genie::LabFrameHadronTensorI.

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.

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.

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

The tensor element $W^{yy}$.

Implemented in genie::LabFrameHadronTensorI.

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

The tensor element $W^{yz}$.

Implemented in genie::LabFrameHadronTensorI.

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

Atomic number of the target nucleus.

Definition at line 173 of file HadronTensorI.h.

References fTargetPDG, and genie::pdg::IonPdgCodeToZ().

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

int IonPdgCodeToZ(int pdgc)
Definition: PDGUtils.cxx:55
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.

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.

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.

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

int genie::HadronTensorI::fTargetPDG
protected

Definition at line 207 of file HadronTensorI.h.

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


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