26#include "marley/NuclearResponses.hh"
37 ResponseTable( std::shared_ptr< std::vector<double> >& wvec,
38 std::shared_ptr< std::vector<double> >& qvec,
39 std::shared_ptr< std::vector<NuclearResponses> >& resp )
55 inline const std::vector<double>&
w_grid()
const {
return *
wvec_; }
58 inline const std::vector<double>&
q_grid()
const {
return *
qvec_; }
69 size_t num_q_points =
qvec_->size();
70 size_t r_idx = ( num_q_points * iw ) + iq;
81 std::shared_ptr< std::vector<double> >
wvec_;
84 std::shared_ptr< std::vector<double> >
qvec_;
87 std::shared_ptr< std::vector<NuclearResponses> >
responses_;
103 double val,
size_t& lower_index,
size_t& upper_index )
const;
108inline std::ostream& operator<<(std::ostream& out,
111 for (
size_t iw = 0u; iw < rt.
w_grid().size(); ++iw ) {
112 for (
size_t iq = 0u; iq < rt.
q_grid().size(); ++iq ) {
113 out << rt.
w_grid().at( iw ) <<
" " << rt.
q_grid().at( iq ) <<
" ";
A table of nuclear responses for computing inclusive cross sections.
double q_max() const
Retrieve the maximum q value.
double w_max() const
Retrieve the maximum ω value.
const std::vector< double > & q_grid() const
Access the 3-momentum transfer grid points.
std::shared_ptr< std::vector< double > > wvec_
Grid points along the w-axis.
size_t response_index(size_t iw, size_t iq) const
bool get_neighbor_indices(const std::vector< double > &vec, double val, size_t &lower_index, size_t &upper_index) const
std::shared_ptr< std::vector< NuclearResponses > > responses_
Sets of nuclear responses evaluated at each grid point.
const std::vector< double > & w_grid() const
Access the energy transfer grid points.
const std::vector< NuclearResponses > & get_responses() const
Access the nuclear responses.
std::shared_ptr< std::vector< double > > qvec_
Grid points along the q-axis.
double w_min() const
Retrieve the minimum ω value.
NuclearResponses interpolate(double w, double q) const
double q_min() const
Retrieve the minimum q value.