File indexing completed on 2025-04-19 09:10:02
0001 #ifndef DIRE__Shower__Gauge_H
0002 #define DIRE__Shower__Gauge_H
0003
0004 #include "ATOOLS/Org/Getter_Function.H"
0005 #include "DIRE/Tools/Kernel_Key.H"
0006 #include "DIRE/Tools/Splitting.H"
0007
0008 namespace DIRE {
0009
0010 class Kernel;
0011 class Vertex;
0012
0013 class Gauge {
0014 protected:
0015
0016 Kernel *p_sk;
0017
0018 int m_type;
0019
0020 public:
0021
0022 Gauge(const Kernel_Key &k);
0023
0024 virtual ~Gauge();
0025
0026 double Value(const Splitting &s) const;
0027 double Estimate(const Splitting &s) const;
0028
0029 virtual double K(const Splitting &s) const;
0030 virtual double KMax(const Splitting &s) const;
0031
0032 virtual double Nf(const Splitting &s) const;
0033 virtual double Scale(const Splitting &s) const = 0;
0034 virtual double TrueScale(const Splitting &s) const;
0035
0036 virtual double Weight(const Splitting &s) const = 0;
0037 virtual double Charge(const Splitting &s) const = 0;
0038
0039 virtual double Coupling(const Splitting &s) const = 0;
0040 virtual double RenCT(const Splitting &s) const = 0;
0041 virtual double CplMax(const Splitting &s) const = 0;
0042
0043 virtual bool GeneratePoint(Splitting &s) const = 0;
0044 virtual int Construct(Splitting &s) const = 0;
0045
0046 virtual bool Allowed(const Splitting &s) const = 0;
0047
0048 virtual void SetLimits() = 0;
0049
0050 virtual double Solve(const double &cpl) const = 0;
0051
0052 };
0053
0054 typedef ATOOLS::Getter_Function
0055 <Gauge,Kernel_Key,std::less<std::string> > Gauge_Getter;
0056
0057 }
0058
0059 #endif