Back to home page

EIC code displayed by LXR

 
 

    


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