Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:46

0001 #ifndef AMEGIC_DipoleSubtraction_Single_LOProcess_MHV_H
0002 #define AMEGIC_DipoleSubtraction_Single_LOProcess_MHV_H
0003 
0004 #include "AMEGIC++/DipoleSubtraction/Single_LOProcess.H"
0005 #include "AMEGIC++/Amplitude/Zfunctions/Mom.H"
0006 
0007 namespace AMEGIC {
0008   class FullAmplitude_MHV_Base;
0009   class Single_LOProcess_MHV : public Single_LOProcess {
0010   private:
0011     bool                    m_emitgluon;
0012     bool                    m_ownamps;
0013 
0014     std::vector<ATOOLS::Vec4D>* p_epol;
0015 
0016     FullAmplitude_MHV_Base    * p_MHVamp;
0017     MomentumList              * p_momlist;
0018     /*------------------------------------------------------------------------------
0019 
0020       Constructors
0021 
0022       ------------------------------------------------------------------------------*/
0023   public:
0024 
0025    Single_LOProcess_MHV(const PHASIC::Process_Info &pi,
0026                         BEAM::Beam_Spectra_Handler *const beam,
0027                         PDF::ISR_Handler *const isr,
0028                         YFS::YFS_Handler *const yfs,
0029                         const ATOOLS::sbt::subtype& st);
0030     ~Single_LOProcess_MHV();
0031 
0032 
0033     /*------------------------------------------------------------------------------
0034 
0035       Initializing libraries, amplitudes, etc.
0036 
0037       ------------------------------------------------------------------------------*/
0038   private :
0039     int         Tests(std::vector<double>* =NULL);
0040   public:
0041     int         InitAmplitude(Amegic_Model *,Topology *,
0042                   std::vector<Process_Base *> &,
0043                   std::vector<Process_Base *> &,int);
0044     int         InitAmplitude(Amegic_Model *,Topology *,
0045                   std::vector<Process_Base *> &,
0046                   std::vector<Process_Base *> &,
0047                   std::vector<ATOOLS::Vec4D>*,std::vector<double>*);
0048 
0049     /*------------------------------------------------------------------------------
0050 
0051       Calculating total cross sections
0052 
0053       ------------------------------------------------------------------------------*/
0054   private:
0055     Complex CalculateHelicityPhase(const ATOOLS::Vec4D *);
0056   public:
0057     double  operator()(const ATOOLS::Vec4D_Vector &,const ATOOLS::Vec4D *,
0058                std::vector<double>*,std::vector<ATOOLS::Vec4D>*,const int);
0059     void    Calc_AllXS(const ATOOLS::Vec4D_Vector &,
0060                        const ATOOLS::Vec4D *,
0061                        std::vector<std::vector<double> > &,
0062                        std::vector<std::vector<double> > &,
0063                        const int);
0064   };
0065 }
0066 
0067 
0068 
0069 #endif
0070