Kinematical phase space. More...
Public Member Functions | |
KPhaseSpace (void) | |
KPhaseSpace (const Interaction *in) | |
~KPhaseSpace (void) | |
void | UseInteraction (const Interaction *in) |
double | Threshold (void) const |
Energy threshold. More... | |
bool | IsAboveThreshold (void) const |
Checks whether the interaction is above the energy threshold. More... | |
bool | IsAllowed (void) const |
Check whether the current kinematics is in the allowed phase space. More... | |
Range1D_t | Limits (KineVar_t kvar) const |
Return the kinematical variable limits. More... | |
double | Minimum (KineVar_t kvar) const |
double | Maximum (KineVar_t kvar) const |
Range1D_t | WLim (void) const |
W limits. More... | |
Range1D_t | Q2Lim_W (void) const |
Q2 limits @ fixed W. More... | |
Range1D_t | q2Lim_W (void) const |
q2 limits @ fixed W More... | |
Range1D_t | Q2Lim (void) const |
Q2 limits. More... | |
Range1D_t | q2Lim (void) const |
q2 limits More... | |
Range1D_t | XLim (void) const |
x limits More... | |
Range1D_t | YLim (void) const |
y limits More... | |
Range1D_t | YLim_X (void) const |
y limits @ fixed x More... | |
Range1D_t | YLim (double xsi) const |
y limits (COH) More... | |
Range1D_t | YLim_X (double xsi) const |
y limits @ fixed x (COH) More... | |
Range1D_t | TLim (void) const |
t limits More... | |
Static Public Member Functions | |
static double | GetTMaxDFR () |
Private Member Functions | |
void | Init (void) |
Private Attributes | |
const Interaction * | fInteraction |
Kinematical phase space.
May 06, 2004
Copyright (c) 2003-2019, The GENIE Collaboration For the full text of the license visit http://copyright.genie-mc.org or see $GENIE/LICENSE
Definition at line 34 of file KPhaseSpace.h.
genie::KPhaseSpace::KPhaseSpace | ( | void | ) |
KPhaseSpace::KPhaseSpace | ( | const Interaction * | in | ) |
Definition at line 47 of file KPhaseSpace.cxx.
References UseInteraction().
KPhaseSpace::~KPhaseSpace | ( | void | ) |
Definition at line 53 of file KPhaseSpace.cxx.
|
static |
Definition at line 58 of file KPhaseSpace.cxx.
References genie::AlgConfigPool::CommonList(), genie::Registry::GetDouble(), genie::AlgConfigPool::Instance(), and r().
Referenced by genie::DFRKinematicsGenerator::ProcessEventRecord(), and TLim().
bool KPhaseSpace::IsAboveThreshold | ( | void | ) | const |
Checks whether the interaction is above the energy threshold.
Definition at line 225 of file KPhaseSpace.cxx.
References E, fInteraction, genie::Interaction::InitState(), genie::ProcessInfo::IsAMNuGamma(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsIMDAnnihilation(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsInverseMuDecay(), genie::ProcessInfo::IsMEC(), genie::ProcessInfo::IsNuElectronElastic(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::ProcessInfo::IsSingleKaon(), genie::kRfHitNucRest, genie::kRfLab, LOG, pDEBUG, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), and Threshold().
Referenced by genie::COHXSecAR::Integrate(), genie::IMDXSec::Integrate(), genie::COHXSec::Integrate(), genie::RESXSec::Integrate(), genie::DISXSec::Integrate(), genie::QELXSec::Integrate(), genie::DMDISXSec::Integrate(), genie::DMELXSec::Integrate(), genie::MECXSec::Integrate(), genie::AlamSimoAtharVacasSKXSec::Integrate(), genie::DFRXSec::Integrate(), genie::NuElectronXSec::Integrate(), genie::SmithMonizQELCCXSec::Integrate(), genie::ReinSehgalRESXSec::Integrate(), genie::ReinSehgalRESXSecFast::Integrate(), genie::ReinSehgalSPPXSec::Integrate(), genie::FermiMover::KickHitNucleon(), genie::XSecAlgorithmI::ValidKinematics(), genie::StrumiaVissaniIBDPXSec::ValidKinematics(), and genie::KLVOxygenIBDPXSec::ValidKinematics().
bool KPhaseSpace::IsAllowed | ( | void | ) | const |
Check whether the current kinematics is in the allowed phase space.
Definition at line 259 of file KPhaseSpace.cxx.
References fInteraction, genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsIMDAnnihilation(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsInverseMuDecay(), genie::ProcessInfo::IsMEC(), genie::ProcessInfo::IsNuElectronElastic(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::ProcessInfo::IsSingleKaon(), genie::utils::math::IsWithinLimits(), genie::Interaction::Kine(), LOG, genie::Range1D_t::max, genie::Range1D_t::min, pDEBUG, python.hepunit::pi, genie::Interaction::ProcInfo(), genie::Kinematics::Q2(), genie::utils::kinematics::Q2(), Q2Lim(), Q2Lim_W(), genie::Kinematics::t(), confusionMatrixTree::t, moon_position_table_new3::tl(), TLim(), genie::utils::kinematics::UpdateWQ2FromXY(), W, genie::Kinematics::W(), WLim(), genie::Kinematics::x(), submit_syst::x, XLim(), genie::Kinematics::y(), submit_syst::y, and YLim().
Referenced by genie::XSecAlgorithmI::ValidKinematics().
Return the kinematical variable limits.
Definition at line 191 of file KPhaseSpace.cxx.
References ana::assert(), genie::KineVar::AsString(), fInteraction, genie::kKVQ2, genie::kKVq2, genie::kKVt, genie::kKVW, genie::kKVx, genie::kKVy, LOG, pERROR, Q2Lim(), q2Lim(), R, TLim(), WLim(), XLim(), and YLim().
Referenced by genie::ReinSehgalRESXSecWithCache::CacheResExcitationXSec(), genie::IBDKinematicsGenerator::ComputeMaxXSec(), genie::NuEKinematicsGenerator::ComputeMaxXSec(), genie::QELKinematicsGenerator::ComputeMaxXSec(), genie::DISKinematicsGenerator::ComputeMaxXSec(), genie::DMELKinematicsGenerator::ComputeMaxXSec(), genie::DMDISKinematicsGenerator::ComputeMaxXSec(), genie::IMDXSec::Integrate(), genie::COHXSecAR::Integrate(), genie::COHXSec::Integrate(), genie::RESXSec::Integrate(), genie::QELXSec::Integrate(), genie::DMELXSec::Integrate(), genie::DFRXSec::Integrate(), genie::NuElectronXSec::Integrate(), genie::SmithMonizQELCCXSec::Integrate(), genie::ReinSehgalRESXSec::Integrate(), Maximum(), Minimum(), genie::utils::kinematics::PhaseSpaceVolume(), PrintLimits(), genie::DFRKinematicsGenerator::ProcessEventRecord(), genie::NuEKinematicsGenerator::ProcessEventRecord(), genie::QELKinematicsGenerator::ProcessEventRecord(), genie::RESKinematicsGenerator::ProcessEventRecord(), genie::IBDKinematicsGenerator::ProcessEventRecord(), genie::DMELKinematicsGenerator::ProcessEventRecord(), genie::DISKinematicsGenerator::ProcessEventRecord(), genie::DMDISKinematicsGenerator::ProcessEventRecord(), genie::QELKinematicsGenerator::SpectralFuncExperimentalCode(), and genie::DMELKinematicsGenerator::SpectralFuncExperimentalCode().
double KPhaseSpace::Maximum | ( | KineVar_t | kvar | ) | const |
Definition at line 219 of file KPhaseSpace.cxx.
References Limits(), and genie::Range1D_t::max.
double KPhaseSpace::Minimum | ( | KineVar_t | kvar | ) | const |
Definition at line 213 of file KPhaseSpace.cxx.
References Limits(), and genie::Range1D_t::min.
Q2 limits.
Definition at line 500 of file KPhaseSpace.cxx.
References genie::XclsTag::CharmHadronPdg(), genie::utils::kinematics::CohQ2Lim(), genie::utils::kinematics::DarkQ2Lim(), genie::utils::kinematics::DarkQ2Lim_W(), genie::Interaction::ExclTag(), genie::PDGLibrary::Find(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelQ2Lim(), genie::utils::kinematics::InelQ2Lim_W(), genie::Interaction::InitState(), genie::PDGLibrary::Instance(), genie::XclsTag::IsCharmEvent(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsMEC(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::XclsTag::IsStrangeEvent(), genie::ProcessInfo::IsWeakCC(), genie::controls::kMinQ2Limit_VLE, kPi0Mass, genie::constants::kPionMass, genie::kRfHitNucRest, genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), genie::Interaction::RecoilNucleon(), genie::XclsTag::StrangeHadronPdg(), genie::InitialState::Tgt(), and W.
Referenced by genie::DISXSec::CacheFreeNucleonXSec(), genie::DMDISXSec::CacheFreeNucleonXSec(), genie::utils::ComputeFullQELPXSec(), genie::DISXSec::Integrate(), genie::DMDISXSec::Integrate(), IsAllowed(), Limits(), genie::COHKinematicsGenerator::MaxXSec_BergerSehgal(), genie::COHKinematicsGenerator::MaxXSec_BergerSehgalFM(), q2Lim(), and Q2Lim_W().
q2 limits
Definition at line 594 of file KPhaseSpace.cxx.
References genie::Range1D_t::max, genie::Range1D_t::min, genie::utils::kinematics::Q2(), q2, and Q2Lim().
Referenced by Limits().
Q2 limits @ fixed W.
Definition at line 439 of file KPhaseSpace.cxx.
References genie::utils::kinematics::DarkQ2Lim_W(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelQ2Lim_W(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::controls::kMinQ2Limit_VLE, genie::kRfHitNucRest, genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), Q2Lim(), genie::Interaction::RecoilNucleon(), genie::InitialState::Tgt(), and W.
Referenced by genie::DFRKinematicsGenerator::ComputeMaxXSec(), genie::RESKinematicsGenerator::ComputeMaxXSec(), genie::utils::gsl::d2XSecRESFast_dWQ2_E::DoEval(), IsAllowed(), genie::utils::kinematics::PhaseSpaceVolume(), genie::RESKinematicsGenerator::ProcessEventRecord(), and q2Lim_W().
q2 limits @ fixed W
Definition at line 489 of file KPhaseSpace.cxx.
References genie::Range1D_t::max, genie::Range1D_t::min, genie::utils::kinematics::Q2(), q2, and Q2Lim_W().
double KPhaseSpace::Threshold | ( | void | ) | const |
Energy threshold.
Definition at line 81 of file KPhaseSpace.cxx.
References ana::assert(), genie::XclsTag::CharmHadronPdg(), genie::Interaction::ExclTag(), exit(), genie::PDGLibrary::Find(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucIsSet(), genie::Target::HitNucP4Ptr(), genie::Target::HitNucPdg(), genie::Interaction::InitState(), genie::PDGLibrary::Instance(), genie::ProcessInfo::IsAMNuGamma(), genie::XclsTag::IsCharmEvent(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsGlashowResonance(), genie::ProcessInfo::IsIMDAnnihilation(), genie::XclsTag::IsInclusiveCharm(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsInverseMuDecay(), genie::ProcessInfo::IsMEC(), genie::ProcessInfo::IsNuElectronElastic(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::ProcessInfo::IsSingleKaon(), genie::ProcessInfo::IsWeakCC(), genie::controls::kASmallNum, genie::constants::kElectronMass, genie::constants::kElectronMass2, genie::constants::kLightestChmHad, genie::constants::kMuonMass2, genie::constants::kNeutronMass, genie::constants::kNucleonMass, genie::constants::kPhotontest, kPi0Mass, genie::constants::kPionMass, genie::constants::kProtonMass, m, Munits::m2, genie::XclsTag::NProtons(), genie::Target::Pdg(), pERROR, python.hepunit::pi, genie::Interaction::ProcInfo(), genie::Interaction::RecoilNucleon(), SLOG, genie::XclsTag::StrangeHadronPdg(), genie::pdg::SwitchProtonNeutron(), genie::InitialState::Tgt(), and Wmin.
Referenced by genie::DISXSec::CacheFreeNucleonXSec(), genie::DMDISXSec::CacheFreeNucleonXSec(), genie::ReinSehgalRESXSecWithCache::CacheResExcitationXSec(), genie::ReinSehgalRESXSecWithCacheFast::CacheResExcitationXSec(), genie::XSecSplineList::CreateSpline(), IsAboveThreshold(), and genie::FermiMover::KickHitNucleon().
t limits
Definition at line 809 of file KPhaseSpace.cxx.
References std::abs(), fInteraction, GetTMaxDFR(), genie::Target::HitNucMass(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDiffractive(), std::isnan(), genie::ProcessInfo::IsWeakCC(), genie::Interaction::Kine(), kPi0Mass, genie::constants::kPionMass, genie::kRfHitNucRest, LOG, genie::Range1D_t::max, genie::Range1D_t::min, pERROR, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), pWARN, genie::Kinematics::Q2(), genie::utils::kinematics::Q2(), std::sqrt(), genie::InitialState::Tgt(), moon_position_table_new3::tl(), genie::utils::kinematics::UpdateWQ2FromXY(), and genie::Kinematics::y().
Referenced by genie::DFRKinematicsGenerator::ComputeMaxXSec(), IsAllowed(), and Limits().
void KPhaseSpace::UseInteraction | ( | const Interaction * | in | ) |
Definition at line 76 of file KPhaseSpace.cxx.
References fInteraction, and in.
Referenced by KPhaseSpace().
W limits.
Definition at line 369 of file KPhaseSpace.cxx.
References genie::utils::kinematics::DarkWLim(), genie::Interaction::ExclTag(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelWLim(), genie::Interaction::InitState(), genie::XclsTag::IsCharmEvent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::constants::kLightestChmHad, genie::constants::kNeutronMass, genie::constants::kPionMass, genie::kRfHitNucRest, LOG, genie::Range1D_t::max, genie::Range1D_t::min, pDEBUG, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), genie::Interaction::RecoilNucleon(), and genie::InitialState::Tgt().
Referenced by genie::DISXSec::CacheFreeNucleonXSec(), genie::DMDISXSec::CacheFreeNucleonXSec(), genie::DFRKinematicsGenerator::ComputeMaxXSec(), genie::RESKinematicsGenerator::ComputeMaxXSec(), genie::utils::gsl::d2XSecRESFast_dWQ2_E::d2XSecRESFast_dWQ2_E(), genie::DISXSec::Integrate(), genie::DMDISXSec::Integrate(), IsAllowed(), and Limits().
x limits
Definition at line 605 of file KPhaseSpace.cxx.
References genie::utils::kinematics::CohXLim(), genie::utils::kinematics::DarkXLim(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelXLim(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDarkMatterElastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsInverseBetaDecay(), genie::ProcessInfo::IsQuasiElastic(), genie::ProcessInfo::IsResonant(), genie::controls::kASmallNum, genie::kRfHitNucRest, genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), and genie::InitialState::Tgt().
Referenced by genie::DFRKinematicsGenerator::ComputeMaxXSec(), genie::utils::gsl::d5XSecAR::DoEval(), genie::utils::gsl::d5Xsec_dEldOmegaldOmegapi::DoEval(), genie::utils::gsl::d4Xsec_dEldThetaldOmegapi::DoEval(), genie::utils::gsl::d3Xsec_dOmegaldThetapi::DoEval(), IsAllowed(), and Limits().
y limits
Definition at line 659 of file KPhaseSpace.cxx.
References genie::utils::kinematics::CohYLim(), genie::utils::kinematics::DarkYLim(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelYLim(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsDiffractive(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsIMDAnnihilation(), genie::ProcessInfo::IsInverseMuDecay(), genie::ProcessInfo::IsNuElectronElastic(), genie::ProcessInfo::IsResonant(), genie::controls::kASmallNum, genie::constants::kElectronMass, genie::constants::kPionMass, genie::kRfHitNucRest, genie::kRfLab, genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), and genie::InitialState::Tgt().
Referenced by genie::COHKinematicsGenerator::CalculateKin_BergerSehgal(), genie::COHKinematicsGenerator::CalculateKin_BergerSehgalFM(), genie::COHKinematicsGenerator::CalculateKin_ReinSehgal(), genie::DFRKinematicsGenerator::ComputeMaxXSec(), genie::COHElKinematicsGenerator::ComputeMaxXSec(), IsAllowed(), Limits(), genie::COHKinematicsGenerator::MaxXSec_AlvarezRuso(), genie::COHKinematicsGenerator::MaxXSec_BergerSehgal(), genie::COHKinematicsGenerator::MaxXSec_BergerSehgalFM(), genie::COHKinematicsGenerator::MaxXSec_ReinSehgal(), genie::COHElKinematicsGenerator::ProcessEventRecord(), YLim(), and YLim_X().
Range1D_t KPhaseSpace::YLim | ( | double | xsi | ) | const |
y limits (COH)
Definition at line 764 of file KPhaseSpace.cxx.
References genie::utils::kinematics::CohYLim(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsWeakCC(), genie::Interaction::Kine(), kPi0Mass, genie::constants::kPionMass, genie::kRfHitNucRest, genie::Target::Mass(), genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), genie::Kinematics::Q2(), genie::utils::kinematics::Q2(), genie::InitialState::Tgt(), and YLim().
y limits @ fixed x
Definition at line 719 of file KPhaseSpace.cxx.
References genie::utils::kinematics::CohYLim(), genie::utils::kinematics::DarkYLim_X(), fInteraction, genie::Interaction::FSPrimLepton(), genie::Target::HitNucP4Ptr(), genie::utils::kinematics::InelYLim_X(), genie::Interaction::InitState(), genie::ProcessInfo::IsCoherent(), genie::ProcessInfo::IsDarkMatterDeepInelastic(), genie::ProcessInfo::IsDeepInelastic(), genie::ProcessInfo::IsEM(), genie::ProcessInfo::IsResonant(), genie::Interaction::Kine(), genie::kRfHitNucRest, genie::kRfLab, genie::Range1D_t::max, genie::Range1D_t::min, python.hepunit::pi, genie::InitialState::ProbeE(), genie::Interaction::ProcInfo(), genie::InitialState::Tgt(), genie::Kinematics::x(), and submit_syst::x.
Referenced by YLim_X().
Range1D_t KPhaseSpace::YLim_X | ( | double | xsi | ) | const |
y limits @ fixed x (COH)
Definition at line 793 of file KPhaseSpace.cxx.
References fInteraction, genie::ProcessInfo::IsCoherent(), python.hepunit::pi, genie::Interaction::ProcInfo(), YLim(), and YLim_X().
|
private |
Definition at line 74 of file KPhaseSpace.h.
Referenced by IsAboveThreshold(), IsAllowed(), Limits(), Q2Lim(), Q2Lim_W(), Threshold(), TLim(), UseInteraction(), WLim(), XLim(), YLim(), and YLim_X().