File indexing completed on 2025-04-19 09:10:05
0001 #ifndef MCATNLO_Showers_Splitting_Function_Group_H
0002 #define MCATNLO_Showers_Splitting_Function_Group_H
0003
0004 #include "MCATNLO/Showers/Splitting_Function_Base.H"
0005 #include <list>
0006
0007 namespace MCATNLO {
0008 class Splitting_Function_Group : public Splitting_Function_Base {
0009 protected:
0010 std::vector<Splitting_Function_Base *> m_splittings;
0011 std::vector<Splitting_Function_Base *>::iterator m_splitter;
0012 Splitting_Function_Base * p_selected;
0013 std::vector<double> m_partint;
0014 public:
0015 Splitting_Function_Group(): p_selected(NULL) {}
0016
0017 virtual ~Splitting_Function_Group();
0018 virtual void Add(Splitting_Function_Base *);
0019 virtual void SelectOne();
0020
0021 virtual double operator() (const double,const double,const double,
0022 const double,const double,const Color_Info &ci,
0023 ATOOLS::Cluster_Amplitude*const);
0024 virtual double OverIntegrated(const double,const double,const double,const double);
0025 virtual double Overestimated(const double,const double);
0026 virtual double RejectionWeight(const double,const double,
0027 const double eta,const double scale,const double Q2);
0028 virtual double Z();
0029 virtual void ResetLastInt();
0030 virtual void ClearSpecs();
0031
0032 virtual const ATOOLS::Flavour & GetFlavourA() const { return p_selected->GetFlavourA(); }
0033 virtual const ATOOLS::Flavour & GetFlavourB() const { return p_selected->GetFlavourB(); }
0034 virtual const ATOOLS::Flavour & GetFlavourC() const { return p_selected->GetFlavourC(); }
0035 virtual const ATOOLS::Flavour & GetFlavourSpec() const { return p_selected->GetFlavourSpec(); }
0036
0037 virtual int GetCol() const { return p_selected->GetCol(); }
0038
0039 inline Splitting_Function_Base *Selected() const { return p_selected; }
0040
0041 friend std::ostream& operator<<(std::ostream &,Splitting_Function_Group &);
0042 };
0043 std::ostream& operator<<(std::ostream &,Splitting_Function_Group &);
0044 }
0045
0046 #endif