File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_EVENT_GENERATOR_BASE_H
0002 #define SHRIMPS_EVENT_GENERATOR_BASE_H
0003
0004 #include "SHRiMPS/Cross_Sections/Sigma_Base.H"
0005 #include "SHRiMPS/Eikonals/Omega_ik.H"
0006 #include "ATOOLS/Phys/Blob_List.H"
0007
0008 namespace SHRIMPS {
0009 class Remnant_Handler;
0010 class Cluster_Algorithm;
0011
0012 class Event_Generator_Base {
0013 protected:
0014 Omega_ik * p_eikonal;
0015 double m_xsec, m_smin;
0016 public:
0017 Event_Generator_Base(Sigma_Base * sigma):
0018 p_eikonal(NULL), m_xsec(sigma->XSec()), m_smin(0.) {}
0019 ~Event_Generator_Base() {};
0020 virtual void Reset() {}
0021 virtual void Initialise(Remnant_Handler * remnants=NULL,
0022 Cluster_Algorithm * cluster=NULL) {}
0023 virtual int InitEvent(ATOOLS::Blob_List * blobs) = 0;
0024 virtual ATOOLS::Blob * GenerateEvent() = 0;
0025 virtual Omega_ik * GetEikonal() const { return p_eikonal;}
0026 virtual const double XSec() const { return m_xsec; }
0027 virtual const double Smin() const { return m_smin;}
0028 virtual const bool IsLastRescatter() const { return false; }
0029 virtual const bool IsMinBias() const { return true; }
0030 virtual const double TMax() const { return 0.; }
0031 virtual const int NLadders() const { return 1; }
0032 virtual const double Yhat() const { return 0.; }
0033 virtual const double Ymax() const { return 0.; }
0034 virtual const double KT2min() const { return 0.; }
0035 virtual const double B() const { return 0.; }
0036 };
0037 }
0038 #endif