File indexing completed on 2025-04-19 09:09:48
0001 #ifndef AMISIC_Tools_MI_Parameters_H
0002 #define AMISIC_Tools_MI_Parameters_H
0003
0004 #include <map>
0005 #include <string>
0006
0007 namespace AMISIC {
0008 struct mitype {
0009 enum code {
0010 none = 0,
0011 hadron_hadron = 1,
0012 gamma_hadron = 2,
0013 gamma_gamma = 3
0014 };
0015 };
0016 struct overlap_form {
0017 enum code {
0018 Single_Gaussian = 1,
0019 Double_Gaussian = 2,
0020 unknown = -1
0021 };
0022 };
0023 std::ostream &operator<<(std::ostream&, const overlap_form::code&);
0024 std::istream &operator>>(std::istream&, overlap_form::code&);
0025 struct scale_scheme {
0026 enum class code {
0027 PT,
0028 PT_with_Raps
0029 };
0030 };
0031 std::ostream &operator<<(std::ostream&, const scale_scheme::code&);
0032 std::istream &operator>>(std::istream&, scale_scheme::code&);
0033
0034 class MI_Parameters {
0035 private:
0036 double m_pt02ref, m_pt02IR, m_ptmin2ref, m_ptmin2IR;
0037 double m_Eref, m_Sref, m_Ecms, m_Scms, m_eta;
0038 overlap_form::code m_overlapform;
0039 scale_scheme::code m_scalescheme;
0040 std::map<std::string,double> m_parameters;
0041
0042 public:
0043 MI_Parameters();
0044 ~MI_Parameters() = default;
0045
0046 double operator()(const std::string& keyword) const;
0047 double CalculatePT02(const double & s=-1) const;
0048
0049 const overlap_form::code & GetOverlapForm() const { return m_overlapform; }
0050 const scale_scheme::code & GetScaleScheme() const { return m_scalescheme; }
0051 };
0052
0053 extern const MI_Parameters * mipars;
0054 }
0055 #endif