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:
genie::LabFrameHadronTensorI genie::TabulatedLabFrameHadronTensor

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> Fermi National Accelerator Laboratory

August 23, 2018

Copyright (c) 2003-2018, The GENIE Collaboration For the full text of the license visit http://copyright.genie-mc.org or see $GENIE/LICENSE

Definition at line 53 of file HadronTensorI.h.

Constructor & Destructor Documentation

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

Definition at line 57 of file HadronTensorI.h.

57 {}
genie::HadronTensorI::HadronTensorI ( int  pdg = 0)
inlineprotected

Definition at line 159 of file HadronTensorI.h.

159 : 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 161 of file HadronTensorI.h.

Member Function Documentation

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

Mass number of the target nucleus.

Definition at line 134 of file HadronTensorI.h.

int IonPdgCodeToA(int pdgc)
Definition: PDGUtils.cxx:60
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 128 of file HadronTensorI.h.

128 { 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.

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.

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.

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.

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

Set the target nucleus PDG code.

Definition at line 137 of file HadronTensorI.h.

137 { 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.

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

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

Implemented in genie::TabulatedLabFrameHadronTensor.

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

The tensor element $W^{xx}$.

Implemented in genie::TabulatedLabFrameHadronTensor.

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

The tensor element $W^{xy}$.

Implemented in genie::TabulatedLabFrameHadronTensor.

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 131 of file HadronTensorI.h.

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

Member Data Documentation

int genie::HadronTensorI::fTargetPDG
protected

Definition at line 165 of file HadronTensorI.h.


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