File indexing completed on 2025-04-19 09:10:10
0001 #ifndef PHASIC__Main__Enhance_Observable_Base_H
0002 #define PHASIC__Main__Enhance_Observable_Base_H
0003
0004 #include "ATOOLS/Org/Getter_Function.H"
0005
0006 #include "ATOOLS/Phys/Flavour.H"
0007 #include "ATOOLS/Math/Vector.H"
0008
0009 namespace PHASIC {
0010
0011 class Process_Base;
0012
0013 struct Enhance_Arguments {
0014 Process_Base *p_proc;
0015 std::string m_enhance;
0016 Enhance_Arguments(Process_Base *const proc=NULL,
0017 const std::string &enhance=""):
0018 p_proc(proc), m_enhance(enhance) {}
0019 };
0020
0021 class Enhance_Observable_Base {
0022 public:
0023
0024 typedef ATOOLS::Getter_Function
0025 <Enhance_Observable_Base,Enhance_Arguments> Getter_Function;
0026
0027 protected:
0028
0029 Process_Base *const p_proc;
0030
0031 public:
0032
0033 Enhance_Observable_Base(const Enhance_Arguments &args);
0034
0035 virtual ~Enhance_Observable_Base();
0036 virtual double operator()(const ATOOLS::Vec4D *p,
0037 const ATOOLS::Flavour *fl,
0038 const size_t n) = 0;
0039
0040 };
0041
0042 }
0043
0044 #endif