#ifndef SHRIMPS_Main_Quasi_Elastic_Event_Generator_H #define SHRIMPS_Main_Quasi_Elastic_Event_Generator_H #include "SHRiMPS/Event_Generation/Event_Generator_Base.H" #include "SHRiMPS/Event_Generation/Elastic_Event_Generator.H" #include "SHRiMPS/Event_Generation/Single_Diffractive_Event_Generator.H" #include "SHRiMPS/Event_Generation/Double_Diffractive_Event_Generator.H" #include "ATOOLS/Phys/Blob_List.H" #include "ATOOLS/Math/Function_Base.H" #include "ATOOLS/Org/CXXFLAGS.H" #include namespace SHRIMPS { class Quasi_Elastic_Event_Generator : public Event_Generator_Base , public ATOOLS::Function_Base { private: Elastic_Event_Generator * p_elastic; Single_Diffractive_Event_Generator * p_singdiff; Double_Diffractive_Event_Generator * p_doubdiff; double m_el, m_sd, m_dd, m_stot; public: Quasi_Elastic_Event_Generator(Sigma_Base * sigma) {} Quasi_Elastic_Event_Generator(Elastic_Event_Generator * elastic, Single_Diffractive_Event_Generator * sdiff, Double_Diffractive_Event_Generator * ddiff); bool QuasiElasticEvent(ATOOLS::Blob_List * blobs,const double & xsec=0.); }; } #endif