Back to home page

EIC code displayed by LXR

 
 

    


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