File indexing completed on 2025-04-19 09:10:01
0001 #ifndef CSSHOWER_Showers_Splitting_Function_Group_H
0002 #define CSSHOWER_Showers_Splitting_Function_Group_H
0003
0004 #include "CSSHOWER++/Showers/Splitting_Function_Base.H"
0005 #include <list>
0006
0007 namespace CSSHOWER {
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 virtual bool FixOne(const ATOOLS::Flavour & flavA,const ATOOLS::Flavour & flavB,
0021 const cstp::code & type);
0022 virtual double operator() (const double,const double,const double,
0023 const double,const double);
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=1.,const double scale=0.,
0028 const double Q2=0.);
0029 virtual double Z();
0030 virtual void ResetLastInt();
0031 virtual void ClearSpecs();
0032
0033 virtual const ATOOLS::Flavour & GetFlavourA() const { return p_selected->GetFlavourA(); }
0034 virtual const ATOOLS::Flavour & GetFlavourB() const { return p_selected->GetFlavourB(); }
0035 virtual const ATOOLS::Flavour & GetFlavourC() const { return p_selected->GetFlavourC(); }
0036 virtual const ATOOLS::Flavour & GetFlavourSpec() const { return p_selected->GetFlavourSpec(); }
0037
0038 virtual int GetCol() const { return p_selected->GetCol(); }
0039
0040 virtual void SetMS(const ATOOLS::Mass_Selector *const ms);
0041
0042 inline Splitting_Function_Base *Selected() const { return p_selected; }
0043
0044 friend std::ostream& operator<<(std::ostream &,Splitting_Function_Group &);
0045 };
0046 std::ostream& operator<<(std::ostream &,Splitting_Function_Group &);
0047 }
0048
0049 #endif