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
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
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
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