Back to home page

EIC code displayed by LXR

 
 

    


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     //std::vector<ATOOLS::Vec4D> SplitIntoQandQQ(ATOOLS::Vec4D pmu, double Mqq, double Mq);
0041     //std::vector<double> ComputePxPyPz(double p, int sign1, int mode);
0042     //ATOOLS::Vec4D Get4Vector(double M2[], double Etot);
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