#ifndef SHRIMPS_Ladders_Primary_Ladders_H #define SHRIMPS_Ladders_Primary_Ladders_H #include "SHRiMPS/Ladders/Ladder_Generator_Base.H" #include "SHRiMPS/Beam_Remnants/Colour_Generator.H" #include "ATOOLS/Math/Histogram.H" namespace SHRIMPS { class Primary_Ladders { private: Ladder_Generator_Base * p_laddergenerator; Colour_Generator m_colourgenerator; double m_Ecms, m_E[2]; std::list m_ladders; bool m_test; long unsigned int n_calls, n_start, n_gen; std::map m_histos; bool IsAllowed(Ladder * ladder); void Add(Ladder * ladder); void FillAnalysis(Ladder * ladder,const std::string & tag); public: Primary_Ladders(); ~Primary_Ladders(); bool operator()(Omega_ik * eikonal,const double & B,const size_t & N); void Initialise(Remnant_Handler * remnants); void Test(); void Reset(); inline void SetMaxEnergies(const double & E1,const double & E2) { m_E[0] = E1; m_E[1] = E2; } inline Colour_Generator * GetColourGenerator() { return &m_colourgenerator; } inline std::list * GetLadders() { return &m_ladders; } inline const double Yhat() const { return p_laddergenerator->Yhat(); } inline const double Ymax() const { return p_laddergenerator->Ymax(); } inline const double KT2min() const { return p_laddergenerator->KT2min(); } }; } #endif