Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of class Enhance_Arguments
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   };// end of class Enhance_Observable_Base
0041 
0042 }// end of namespace PHASIC
0043 
0044 #endif