8#ifndef MODULES_RADIATIVECORRECTIONS_RCMODULE_H_
9#define MODULES_RADIATIVECORRECTIONS_RCMODULE_H_
11#include <ElementaryUtils/logger/CustomException.h>
12#include <ElementaryUtils/string_utils/Formatter.h>
13#include <partons/beans/channel/ChannelType.h>
19#include "../../beans/containers/ExperimentalConditions.h"
20#include "../../beans/containers/KinematicRange.h"
21#include "../EpicModuleObject.h"
28class ExperimentalConditions;
40template<
typename ObsKinType>
60 return m_variableRanges;
66 virtual std::tuple<double, ExperimentalConditions, ObsKinType>
evaluate(
68 const ObsKinType& obsKin,
const std::vector<double>& par)
const = 0;
85 PARTONS::ChannelType::Type channelType) :
95 other.m_variableRanges) {
105 if (par.size() != m_nVariables) {
106 throw ElemUtils::CustomException(getClassName(), __func__,
107 ElemUtils::Formatter() <<
"Wrong number of variables, is: "
108 << par.size() <<
", expected: " << m_nVariables);
118 m_nVariables = variableRanges.size();
119 m_variableRanges = variableRanges;
125 std::vector<KinematicRange> m_variableRanges;
Testable version of PARTONS::ModuleObject.
Definition: EpicModuleObject.h:26
Single event.
Definition: Event.h:36
Container to store experimental conditions.
Definition: ExperimentalConditions.h:29
Template for radiative correction module.
Definition: RCModule.h:41
virtual std::tuple< double, ExperimentalConditions, ObsKinType > evaluate(const ExperimentalConditions &experimentalConditions, const ObsKinType &obsKin, const std::vector< double > &par) const =0
RCModule(const std::string &className, PARTONS::ChannelType::Type channelType)
Definition: RCModule.h:84
void setVariableRanges(const std::vector< KinematicRange > &variableRanges)
Definition: RCModule.h:116
const std::vector< KinematicRange > & getVariableRanges() const
Definition: RCModule.h:59
RCModule(const RCModule &other)
Definition: RCModule.h:93
virtual void checkParameters(const std::vector< double > &par) const
Definition: RCModule.h:103
virtual ~RCModule()
Definition: RCModule.h:48
size_t getNVariables() const
virtual void updateEvent(Event &event, const std::vector< double > &par) const =0