File indexing completed on 2025-04-19 09:10:16
0001 #ifndef SHRIMPS_Main_Soft_Diffractive_Event_Generator_H
0002 #define SHRIMPS_Main_Soft_Diffractive_Event_Generator_H
0003
0004 #include "SHRiMPS/Event_Generation/Event_Generator_Base.H"
0005 #include "SHRiMPS/Cross_Sections/Sigma_SD.H"
0006 #include "ATOOLS/Phys/Blob_List.H"
0007 #include "ATOOLS/Math/Function_Base.H"
0008 #include "ATOOLS/Org/CXXFLAGS.H"
0009 #include "ATOOLS/Math/Histogram.H"
0010 #include <vector>
0011 #include <map>
0012 #include <cmath>
0013
0014 namespace SHRIMPS {
0015 class Soft_Diffractive_Event_Generator : public Event_Generator_Base{
0016 private:
0017 Sigma_SD * p_sigma;
0018 ATOOLS::Flavour m_beam[2], m_out[4];
0019 std::map<std::pair<ATOOLS::Flavour,ATOOLS::Flavour>,double> m_hadronmaps[2];
0020 ATOOLS::Blob * p_blob;
0021 ATOOLS::Vec4D m_p[2], m_pout[4];
0022 double m_E[2], m_abs_t;
0023 double m_rate[3], m_sigma, m_massexp;
0024 int m_sign1, m_mode;
0025 double m_Prob1440, m_Prob1710;
0026 double m_minmass2[2], m_maxmass2[2], m_expargUp[2], m_expargLow[2];
0027 bool m_contMassRange[2];
0028
0029 std::map<std::string, ATOOLS::Histogram * > m_histomap;
0030
0031 void InitialiseHadronMaps();
0032 void SelectMode();
0033 void SelectFS();
0034 void SelectFlavours(size_t beam);
0035 void FixKinematics();
0036 double SelectMass2(size_t beam);
0037 void FixBinarySystem(ATOOLS::Vec4D (& moms)[2]);
0038 void SplitQandQQ(size_t beam,ATOOLS::Vec4D & mom);
0039 void FillBlob();
0040
0041
0042
0043 public:
0044 Soft_Diffractive_Event_Generator(Sigma_SD * sigma,const int & test=0);
0045 ~Soft_Diffractive_Event_Generator();
0046
0047 int InitEvent(ATOOLS::Blob_List * blobs);
0048 ATOOLS::Blob * GenerateEvent() { return NULL; }
0049 };
0050 }
0051 #endif