TABLE OF CONTENTS
- 1. /singlePionProductionNHVlike
- 1.1. singlePionProductionNHVlike/debug_HNV
- 1.2. singlePionProductionNHVlike/integrate_over
- 1.3. singlePionProductionNHVlike/nl_singlePionProductionNHVlike
- 1.4. singlePionProductionNHVlike/Nieves1piN_elepton_ct_Epi
- 1.5. singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi_PhiPi
- 1.6. singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi
- 1.7. singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi_star
- 1.8. singlePionProductionNHVlike/Nieves1piN_elepton_ct
- 1.9. singlePionProductionNHVlike/Nieves_MaEl_1pi
/singlePionProductionNHVlike [ Modules ]
NAME
module singlePionProductionNHVlike
PURPOSE
...
singlePionProductionNHVlike/debug_HNV [ Global module-variables ]
[ Top ] [ singlePionProductionNHVlike ] [ Global module-variables ]
SOURCE
integer, save :: debug_HNV=0
PURPOSE
level of input debug information for HNV 1-pion xsec 0 - no output, 1 - basic messages, 2 - more details
singlePionProductionNHVlike/integrate_over [ Global module-variables ]
[ Top ] [ singlePionProductionNHVlike ] [ Global module-variables ]
SOURCE
integer, save :: integrate_over=2 !1=costhetaPi , 2=Epi 3=over cosThetaPi_star_qz in CM frame
PURPOSE
which 3-pl differential cross sectio to use for integration 1= dsigma/dcostheta/dElepton/dcosThetaPion was originally used and works for nuclei
disadvantage: for some cosThetaPion there are two solutions for Epi, this leads to fluctuations on the cross section
2= dsigma/dcostheta/dElepton/dEPion has an advantage, that for a given pion energy there is
only one solution for the angle between the resonance and pion momenta. so the integration is simpler and results should be smoother
NOTES
for 1 : the only option checked for nucleus for 2 : code works better and faster, gives significantly smoother results below Delta peak disadvantage: now for the free nucleon only, TO DO : nuclei
singlePionProductionNHVlike/nl_singlePionProductionNHVlike [ Namelists ]
[ Top ] [ singlePionProductionNHVlike ] [ Namelists ]
NAME
NAMELIST /nl_singlePionProductionNHVlike/
PURPOSE
This Namelist includes:
- debug_HNV
- integrate_over !1=costhetaPi(must be for nuclei), 2=Epi, 3=over cosThetaPi_star_qz in CM frame
singlePionProductionNHVlike/Nieves1piN_elepton_ct_Epi [ Subroutines ]
[ Top ] [ singlePionProductionNHVlike ] [ Subroutines ]
NAME
subroutine Nieves1piN_elepton_ct_Epi(process_ID,k_in,k_out,p_in,position, charge_in, &
& p_out,charge_out,p_pion_out,pion_charge_out,Epi,sig)
PURPOSE
This subroutine is called by Nieves1piN_elepton_ct, and does the actual calculation of the 4-fold differential x-sec dSigma/dcostheta dElepton.dcosThetaPion.dPhiPion It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron integer :: charge_out -- charge of outgoing nucleon integer :: pion_charge_out -- charge of outgoing pion real :: Epi -- pion energy in lab frame
OUTPUT
real, dimension(0:3) :: p_out -- momentum of outgoing nucleon (directions) real, dimension(0:3) :: p_pion_out -- momentum of outgoing pion (directions generated randomly) real :: sig -- calculated cross section in 1/GeV^3
NOTES
This cross section has an advantage, because for a given pion energy there is only one solution for the angle between the resonance and pion momenta.
singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi_PhiPi [ Subroutines ]
[ Top ] [ singlePionProductionNHVlike ] [ Subroutines ]
NAME
subroutine Nieves1piN_elepton_ct_ctPi_PhiPi(process_ID,k_in,k_out,p_in,position, charge_in, &
& p_out,charge_out,p_pion_out,pion_charge_out,cosThetaPi,PhiPi,sig)
PURPOSE
This subroutine is called by Nieves1piN_elepton_ct, and does the actual calculation of the 4-fold differential x-sec dSigma/dcostheta dElepton.dcosThetaPion.dPhiPion It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron integer :: charge_out -- charge of outgoing nucleon integer :: pion_charge_out -- charge of outgoing pion real :: cosThetaPi -- cos of the polar angle of the outgoing pion real :: PhiPi -- azimuthal angle of the outgoing pion
OUTPUT
real, dimension(0:3) :: p_out -- momentum of outgoing nucleon real, dimension(0:3) :: p_pion_out -- momentum of outgoing pion real :: sig -- calculated cross section in 1/GeV^3
singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi [ Subroutines ]
[ Top ] [ singlePionProductionNHVlike ] [ Subroutines ]
NAME
subroutine Nieves1piN_elepton_ct_ctPi(process_ID,k_in,k_out,p_in,position, charge_in, &
& p_out,charge_out,p_pion_out,pion_charge_out,cosThetaPi,sig)
PURPOSE
This subroutine is called by Nieves1piN_elepton_ct does the calculation of the 3-pl differential x-sec dSigma/dcostheta dElepton.dcosThetaPion It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron integer :: charge_out -- charge of outgoing nucleon integer :: pion_charge_out -- charge of outgoing pion real :: cosThetaPi -- cos of the polar angle of the outgoing pion
OUTPUT
real, dimension(0:3) :: p_out -- momentum of outgoing nucleon real, dimension(0:3) :: p_pion_out -- momentum of outgoing pioninclude_W_dist=.false. real :: sig -- calculated cross section in 1/GeV^3
singlePionProductionNHVlike/Nieves1piN_elepton_ct_ctPi_star [ Subroutines ]
[ Top ] [ singlePionProductionNHVlike ] [ Subroutines ]
NAME
subroutine Nieves1piN_elepton_ct_ctPi_star(process_ID,k_in,k_out,p_in,position, charge_in, &
& p_out,charge_out_star,p_pion_out_star,pion_charge_out,cosThetaPi_star_qz,sig)
PURPOSE
calculates 3-fold differential cross section dsigma/d E' dcostheta_lepton d costheta_pion_star for pion angle in the CM frame with respect to the z-axis defined by the photon 3-momentum
Advantage: nothing should depend on the azimuthal angle of pion, so integration is pure 2*pi
(without assumption of 1-point Monte-Carlo integration)
It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
Useful for CM pion-angle distribution and comparison with electroproduction data like Egiyan PRC 73
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron integer :: charge_out -- charge of outgoing nucleon integer :: pion_charge_out -- charge of outgoing pion real :: cosThetaPi_star -- angle of the outgoing pion with respect to 3-momentum of q in the CM frame
OUTPUT
real, dimension(0:3) :: p_out_star_qz -- momentum of outgoing nucleon in the CM frame real, dimension(0:3) :: p_pion_star_qz -- momentum of outgoing pion in the CM frame real :: sig -- calculated cross section in 1/GeV^3
singlePionProductionNHVlike/Nieves1piN_elepton_ct [ Subroutines ]
[ Top ] [ singlePionProductionNHVlike ] [ Subroutines ]
NAME
subroutine Nieves1piN_elepton_ct(process_ID,k_in,k_out,firstTime,p_in,position, charge_in, &
& p_out,charge_out,p_pion_out,pion_charge_out,sig)
PURPOSE
This subroutine is called by XsecdCosthetadElepton, and does the calculation of the 2-bl differential x-sec dSigma/dcostheta dElepton. It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton logical, :: firstTime -- if true than lepton variables are calculated only once real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron integer :: charge_out -- charge of outgoing nucleon integer :: pion_charge_out -- charge of outgoing pion
OUTPUT
real, dimension(0:3) :: p_out -- momentum of outgoing nucleon, angles being generated randomly real, dimension(0:3) :: p_pion_out -- momentum of outgoing pion, angles being generated randomly real :: sig -- calculated cross section in 1/GeV^3
singlePionProductionNHVlike/Nieves_MaEl_1pi [ Functions ]
[ Top ] [ singlePionProductionNHVlike ] [ Functions ]
NAME
complex function Nieves_MaEl_1pi(process_ID, k_in, k_out, p_in, position, charge_in, p_out, charge_out, ppi_out, pion_charge_out)
PURPOSE
This function is called by Nieves1piN_elepton_ct_ctPi, and does the actual calculation of the matrix element of 1-pion production according to the Hernandez-Nieves-Valverde model. It is only used in the case: include1pi=.true. and singlePiModel=0 (Nieves model for 1-pion x-sec)
INPUTS
integer :: process_ID -- CC, NC or EM real, dimension(0:3):: k_in -- momentum of incoming lepton real, dimension(0:3):: k_out -- momentum of outgoing lepton real, dimension(0:3):: p_in -- momentum of incoming hadron real, dimension(1:3):: position -- position of incoming hadron integer :: charge_in -- charge of incoming hadron real, dimension(0:3):: p_out -- momentum of outgoing nucleon integer :: charge_out -- charge of outgoing nucleon real, dimension(0:3):: ppi_out -- momentum of outgoing pion integer :: pion_charge_out -- charge of outgoing pion
OUTPUT
Matrix element as a complex variable. Matrix element is real by definition, so at the end of the function the spetial warning is given if the imaginary part exceeds 10^{-6}