19#ifndef _AR_COH_MULTIDIFF_H_
20#define _AR_COH_MULTIDIFF_H_
23#include <Math/SMatrix.h>
24#include <Math/SVector.h>
25#include <Math/LorentzVector.h>
56 double DXSec(
const double E_nu_,
const double E_l_,
const double theta_l_,
57 const double phi_l_,
const double theta_pi_,
const double phi_pi_);
85 std::complex<double>
DeltaCouplingInMed(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > delta_momentum,
86 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > pion_momentum,
double density_cent);
87 double PiDecayVertex(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > pion_momentum,
double mass);
88 std::complex<double>
DeltaPropagatorInMed(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > delta_momentum);
89 double DeltaWidthPauliBlocked(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > delta_momentum,
double density);
90 double DeltaWidthFree(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > delta_momentum);
91 std::complex<double>
H(
unsigned int i,
unsigned int j)
const;
93 double PionMomentumCM(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > delta_momentum);
94 double PNVertexFactor(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > momentum,
double mass);
98 std::complex<double>
NucleonPropagator(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > nucleon_momentum);
100 void NuclearCurrent(ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > q, ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > pdir, ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > pcrs, ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > ppi, std::complex<double> *jPtr);
138 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fQ;
139 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_nu;
140 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_l;
141 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_pi;
142 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_n_i;
143 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_n_o;
144 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_direct;
145 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> >
fP_cross;
Nucleus class for Alvarez-Ruso Coherent Pion Production xsec.
Abstract base class for Alvarez-Ruso wavefunction solution.
Wave function class for AlvarezRuso Coherent pion production xsec.
ARSampledNucleus & GetNucleus(void)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_nu
ARSampledNucleus * fNucleus
formfactors_t formfactors
std::complex< double > fJ_hadronic[4]
double PionMomentumCM(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
std::complex< double > H(unsigned int i, unsigned int j) const
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_direct
void NuclearCurrent(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > q, ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > pdir, ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > pcrs, ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > ppi, std::complex< double > *jPtr)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_l
double DeltaSelfEnergyIm(double density)
std::complex< double > NucleonPropagator(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > nucleon_momentum)
double DeltaSelfEnergyRe(double density)
double GetLeptonMass() const
double DeltaSelfEnergyConstant(double a, double b, double c, double E)
std::complex< double > DeltaCouplingInMed(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum, ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > pion_momentum, double density_cent)
void SolveWavefunctions()
double PiDecayVertex(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > pion_momentum, double mass)
void SetDebug(bool debug)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_cross
double DeltaWidthPauliBlocked(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum, double density)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_n_o
double DeltaWidthFree(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
double PNVertexFactor(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > momentum, double mass)
ARWavefunction * fUwaveDtheta
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_n_i
double DifferentialCrossSection()
AlvarezRusoCOHPiPDXSec(unsigned int Z_, unsigned int A_, const current_t current_, const flavour_t flavour_=kE, const nutype_t nutype=kNu, const formfactors_t ff_=kNieves)
~AlvarezRusoCOHPiPDXSec()
double DXSec(const double E_nu_, const double E_l_, const double theta_l_, const double phi_l_, const double theta_pi_, const double phi_pi_)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_pi
ARWavefunction * fUwaveDr
ARConstants & GetConstants(void)
ARWFSolution * fWfsolution
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fQ
std::complex< double > DeltaPropagatorInMed(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
THE MAIN GENIE PROJECT NAMESPACE