File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Main_Double_Diffractive_Event_Generator_H
0002 #define SHRIMPS_Main_Double_Diffractive_Event_Generator_H
0003
0004 #include "SHRiMPS/Event_Generation/Event_Generator_Base.H"
0005 #include "SHRiMPS/Beam_Remnants/Beam_Remnant_Handler.H"
0006 #include "SHRiMPS/Cross_Sections/Sigma_DD.H"
0007 #include "ATOOLS/Phys/Blob_List.H"
0008 #include "ATOOLS/Math/Function_Base.H"
0009 #include "ATOOLS/Org/CXXFLAGS.H"
0010 #include "ATOOLS/Math/Histogram.H"
0011 #include <vector>
0012 #include <map>
0013
0014 namespace SHRIMPS {
0015 class Double_Diffractive_Event_Generator : public Event_Generator_Base {
0016 private:
0017 Sigma_DD * p_sigma;
0018 Beam_Remnant_Handler * p_beams;
0019 ATOOLS::Flavour m_beam1, m_beam2, m_out1, m_out2;
0020 ATOOLS::Vec4D m_p1, m_p2, m_p1out, m_p2out;
0021 double m_pl12, m_pl22, m_sign1;
0022 bool m_needsboost;
0023 double m_accu;
0024 int m_test;
0025
0026 std::map<std::string, ATOOLS::Histogram * > m_histomap;
0027
0028 void FixKinematics();
0029 public:
0030 Double_Diffractive_Event_Generator();
0031 Double_Diffractive_Event_Generator(Sigma_DD * sigma,
0032 Beam_Remnant_Handler * beams,
0033 const int & test=0);
0034 ~Double_Diffractive_Event_Generator();
0035
0036 bool DoubleDiffractiveEvent(ATOOLS::Blob_List * blobs,
0037 const double & xsec=0.);
0038 Omega_ik * GetEikonal() const { return NULL; }
0039 double Smin() const { return 0.; }
0040 };
0041 }
0042 #endif