File indexing completed on 2025-04-19 09:10:00
0001 #ifndef BEAM_Main_Collider_Kinematics_H
0002 #define BEAM_Main_Collider_Kinematics_H
0003
0004 #include "BEAM/Main/Kinematics_Base.H"
0005
0006 namespace BEAM {
0007 class Collider_Kinematics : public Kinematics_Base {
0008 private:
0009 collidermode::code m_mode;
0010
0011 ATOOLS::Vec4D m_p_plus, m_p_minus;
0012 double m_Ecms;
0013 double m_ymin, m_ymax, m_xmin, m_xmax;
0014 ATOOLS::Info_Key m_sprimekey, m_ykey, m_xkey;
0015 double m_sprime;
0016
0017 void InitSystem();
0018 void InitIntegration() override;
0019 double CalculateTau();
0020
0021 public:
0022 Collider_Kinematics(std::array<Beam_Base *, 2> beams);
0023 ~Collider_Kinematics() = default;
0024
0025 inline const double Sprime() override { return m_sprimekey[3]; }
0026 inline const double Y() override { return m_ykey[2]; }
0027 void AssignKeys(ATOOLS::Integration_Info *const info) override;
0028 void SetLimits() override;
0029 bool operator()(ATOOLS::Vec4D_Vector& moms) override;
0030 };
0031 }
0032 #endif