File indexing completed on 2025-04-19 09:10:00
0001 #ifndef COMIX_Main_Single_Dipole_Term_H
0002 #define COMIX_Main_Single_Dipole_Term_H
0003
0004 #include "COMIX/Main/Single_Process.H"
0005
0006 namespace COMIX {
0007
0008 class Single_Dipole_Term: public PHASIC::Single_Process {
0009 protected:
0010
0011 Single_Process *p_proc;
0012
0013 Amplitude *p_bg;
0014
0015 ATOOLS::NLO_subevt *p_sub, *p_msub;
0016
0017 PHASIC::Process_Integrator *p_rsint;
0018
0019 double m_w;
0020
0021 Combination_Set m_ccombs;
0022 CFlavVector_Map m_cflavs;
0023
0024 SizeT_Map m_brs;
0025
0026 public:
0027
0028
0029 Single_Dipole_Term(COMIX::Single_Process *const rs,
0030 ATOOLS::NLO_subevt *const sub,
0031 ATOOLS::NLO_subevt *const msub);
0032
0033
0034 ~Single_Dipole_Term();
0035
0036
0037 double Partonic(const ATOOLS::Vec4D_Vector&,
0038 ATOOLS::Variations_Mode varmode,
0039 int mode);
0040 ATOOLS::Weights_Map Differential(const ATOOLS::Cluster_Amplitude& ampl,
0041 ATOOLS::Variations_Mode type=ATOOLS::Variations_Mode::nominal_only,
0042 int mode=0);
0043
0044 bool Trigger(const ATOOLS::Vec4D_Vector &p);
0045
0046 bool GeneratePoint();
0047
0048 bool Combinable(const size_t &idi,const size_t &idj);
0049
0050 const ATOOLS::Flavour_Vector &CombinedFlavour(const size_t &idij);
0051
0052 ATOOLS::NLO_subevtlist *GetRSSubevtList();
0053
0054 inline void SetScaleSetter(PHASIC::Scale_Setter_Base *const scale)
0055 { p_scale=scale; }
0056
0057 inline Amplitude *GetAmplitude() const { return p_bg; }
0058
0059 inline Single_Process *Process() const { return p_proc; }
0060
0061 inline NLO_subevt *Sub() const { return p_sub; }
0062
0063 inline const SizeT_Map &BRSMap() const { return m_brs; }
0064
0065 };
0066
0067 }
0068
0069 #endif
0070
0071
0072