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_);
91 std::complex<double>
H(
unsigned int i,
unsigned int j)
const;
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;
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_n_i
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_nu
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fQ
void SolveWavefunctions()
Wave function class for AlvarezRuso Coherent pion production xsec.
double DeltaSelfEnergyRe(double density)
~AlvarezRusoCOHPiPDXSec()
double DeltaWidthFree(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
std::complex< double > DeltaPropagatorInMed(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
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)
double DeltaWidthPauliBlocked(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum, double density)
double PionMomentumCM(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > delta_momentum)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > LorentzVector
std::complex< double > fJ_hadronic[4]
static constexpr double b
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 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)
double GetLeptonMass() const
Abstract base class for Alvarez-Ruso wavefunction solution.
ARWavefunction * fUwaveDtheta
double PNVertexFactor(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > momentum, double mass)
void SetDebug(bool debug)
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_n_o
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_l
double DeltaSelfEnergyIm(double density)
double DeltaSelfEnergyConstant(double a, double b, double c, double E)
std::complex< double > H(unsigned int i, unsigned int j) const
Nucleus class for Alvarez-Ruso Coherent Pion Production xsec.
double PiDecayVertex(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > pion_momentum, double mass)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_cross
ARSampledNucleus * fNucleus
double DifferentialCrossSection()
ARWavefunction * fUwaveDr
ARConstants & GetConstants(void)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_direct
ARSampledNucleus & GetNucleus(void)
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > fP_pi
ARWFSolution * fWfsolution
formfactors_t formfactors
std::complex< double > NucleonPropagator(ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > nucleon_momentum)