25 #include <momemta/Module.h> 26 #include <momemta/ParameterSet.h> 27 #include <momemta/Particle.h> 28 #include <momemta/Pool.h> 29 #include <momemta/Types.h> 35 class ComputationGraph;
75 std::vector<std::pair<double, double>> computeWeights(
const std::vector<momemta::Particle>& particles,
76 const LorentzVector& met = LorentzVector());
91 const Pool& getPool()
const;
94 class integrands_output_error:
public std::runtime_error {
95 using std::runtime_error::runtime_error;
97 class cuba_configuration_error:
public std::runtime_error {
98 using std::runtime_error::runtime_error;
100 class unphysical_lorentzvector_error:
public std::exception {
102 unphysical_lorentzvector_error(
const LorentzVector& p4);
103 virtual const char* what()
const noexcept
override;
107 class invalid_inputs:
public std::runtime_error {
108 using std::runtime_error::runtime_error;
110 class integrands_nonfinite_error:
public std::runtime_error {
111 using std::runtime_error::runtime_error;
121 void checkIfPhysical(
const LorentzVector& p4);
128 int integrand(
const double* psPoints,
double* results,
const double* weights);
130 static int CUBAIntegrand(
const int *nDim,
const double* psPoint,
const int *nComp,
double *value,
void *inputs,
const int *nVec,
const int *core);
131 static int CUBAIntegrandWeighted(
const int *nDim,
const double* psPoint,
const int *nComp,
double *value,
void *inputs,
const int *nVec,
const int *core,
const double *weight);
132 static void cuba_logging(
const char*);
135 std::shared_ptr<momemta::ComputationGraph> m_computation_graph;
137 using SharedLibraryPtr = std::shared_ptr<SharedLibrary>;
138 std::vector<SharedLibraryPtr> m_libraries;
140 std::size_t m_n_dimensions;
141 std::size_t m_n_components;
147 std::shared_ptr<std::vector<double>> m_ps_points;
148 std::shared_ptr<double> m_ps_weight;
150 std::unordered_map<std::string, std::shared_ptr<LorentzVector>> m_inputs_p4;
151 std::unordered_map<std::string, std::shared_ptr<int64_t>> m_inputs_type;
152 std::shared_ptr<LorentzVector> m_met;
153 std::vector<Value<double>> m_integrands;
A class encapsulating a lua table.
A frozen snapshot of the configuration file.
IntegrationStatus
Status of the integration.