File indexing completed on 2025-04-19 09:10:16
0001 #ifndef SHRIMPS_Ladders_Primary_Ladders_H
0002 #define SHRIMPS_Ladders_Primary_Ladders_H
0003
0004 #include "SHRiMPS/Ladders/Ladder_Generator_Base.H"
0005 #include "SHRiMPS/Beam_Remnants/Colour_Generator.H"
0006 #include "ATOOLS/Math/Histogram.H"
0007
0008 namespace SHRIMPS {
0009 class Primary_Ladders {
0010 private:
0011 Ladder_Generator_Base * p_laddergenerator;
0012 Colour_Generator m_colourgenerator;
0013 double m_Ecms, m_E[2];
0014 std::list<Ladder *> m_ladders;
0015
0016 bool m_test;
0017 long unsigned int n_calls, n_start, n_gen;
0018 std::map<std::string,ATOOLS::Histogram * > m_histos;
0019
0020 bool IsAllowed(Ladder * ladder);
0021 void Add(Ladder * ladder);
0022 void FillAnalysis(Ladder * ladder,const std::string & tag);
0023 public:
0024 Primary_Ladders();
0025 ~Primary_Ladders();
0026
0027 bool operator()(Omega_ik * eikonal,const double & B,const size_t & N);
0028 void Initialise(Remnant_Handler * remnants);
0029 void Test();
0030 void Reset();
0031
0032 inline void SetMaxEnergies(const double & E1,const double & E2) {
0033 m_E[0] = E1; m_E[1] = E2;
0034 }
0035 inline Colour_Generator * GetColourGenerator() { return &m_colourgenerator; }
0036 inline std::list<Ladder *> * GetLadders() { return &m_ladders; }
0037 inline const double Yhat() const { return p_laddergenerator->Yhat(); }
0038 inline const double Ymax() const { return p_laddergenerator->Ymax(); }
0039 inline const double KT2min() const { return p_laddergenerator->KT2min(); }
0040 };
0041 }
0042 #endif