File indexing completed on 2025-04-19 09:10:16
0001 #ifndef SHRIMPS_Tools_MinBias_Parameters_H
0002 #define SHRIMPS_Tools_MinBias_Parameters_H
0003
0004 #include "SHRiMPS/Tools/Parameter_Structures.H"
0005 #include "MODEL/Main/Strong_Coupling.H"
0006 #include "ATOOLS/Org/CXXFLAGS.H"
0007 #include <list>
0008
0009 namespace SHRIMPS {
0010 class Form_Factor;
0011 class Omega_ik;
0012 class Cross_Sections;
0013
0014 struct XSecs_Container {
0015 double xs_tot, xs_in, xs_el, xs_SD[2], xs_DD;
0016 XSecs_Container(): xs_tot(0.), xs_in(0.), xs_el(0.), xs_DD(0.)
0017 { xs_SD[0] = xs_SD[1] = 0.; }
0018 };
0019
0020 typedef std::map<std::string,double> StringDoubleMap;
0021 typedef StringDoubleMap::iterator SDiter;
0022
0023 class MinBias_Parameters {
0024 private:
0025 run_mode::code m_runmode;
0026 size_t m_NGWstates;
0027 double m_originalY, m_bmax, m_accu;
0028 FormFactor_Parameters m_ff_params;
0029 Eikonal_Parameters m_eik_params;
0030 Run_Parameters m_run_params;
0031 Ladder_Parameters m_ladder_params;
0032 ShowerLink_Parameters m_showerlink_params;
0033
0034 std::vector<Form_Factor *> m_ffs;
0035 std::vector<std::vector<Omega_ik *> > m_eikonals;
0036 XSecs_Container m_xsecs;
0037
0038 void RegisterDefaults() const;
0039 void FillRunParameters();
0040 void FillFormFactorParameters();
0041 void FillEikonalParameters();
0042 void FillLadderParameters();
0043 void FillShowerLinkParameters();
0044 public:
0045 MinBias_Parameters();
0046 ~MinBias_Parameters();
0047
0048 void Init();
0049 void Reset();
0050 void ResetEikonals(const size_t size);
0051 void AddFormFactor(Form_Factor * ff) { m_ffs.push_back(ff); }
0052 void AddEikonal(const size_t & i,const size_t & j,
0053 Omega_ik * eikonal) { m_eikonals[i][j] = eikonal; }
0054 void SetXSecs(Cross_Sections * xsecs);
0055 void UpdateForNewEnergy(const double & energy);
0056
0057 const run_mode::code & RunMode() const { return m_runmode; }
0058 const size_t & NGWStates() const { return m_NGWstates; }
0059
0060 const Run_Parameters & GetRunParameters() const {
0061 return m_run_params;
0062 }
0063 const FormFactor_Parameters & GetFFParameters() const {
0064 return m_ff_params;
0065 }
0066 const Eikonal_Parameters & GetEikonalParameters() const {
0067 return m_eik_params;
0068 }
0069 const Ladder_Parameters & GetLadderParameters() const {
0070 return m_ladder_params;
0071 }
0072 const ShowerLink_Parameters & GetShowerLinkParameters() const {
0073 return m_showerlink_params;
0074 }
0075 std::vector<Form_Factor *> * GetFormFactors() { return &m_ffs; }
0076 std::vector<std::vector<Omega_ik *> > * GetEikonals() {
0077 return &m_eikonals;
0078 }
0079 XSecs_Container * GetXSecs() { return &m_xsecs; }
0080 };
0081
0082 extern MinBias_Parameters MBpars;
0083 }
0084
0085 #endif