Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:03

0001 #ifndef EXTRA_XS_Main_Single_Process_H
0002 #define EXTRA_XS_Main_Single_Process_H
0003 
0004 #include "PHASIC++/Process/Single_Process.H"
0005 
0006 namespace PHASIC { class Virtual_ME2_Base; }
0007 
0008 namespace EXTRAXS {
0009 
0010   class ME2_Base;
0011 
0012   class Single_Process: public PHASIC::Single_Process {
0013   private:
0014     ME2_Base                              * p_born_me2;
0015     PHASIC::Virtual_ME2_Base              * p_virtual_me2;
0016     ATOOLS::nlo_type::code                  m_nlotype;
0017     std::set<std::pair<size_t,size_t> >     m_ccombs;
0018     std::map<size_t,ATOOLS::Flavour_Vector> m_cfls;
0019 
0020     bool                   m_localFS, m_stashed;
0021     ATOOLS::Flavour_Vector m_original_flavs;
0022     ATOOLS::Vec4D_Vector   m_original_momenta;
0023     size_t                 m_original_nout;
0024 
0025     void StashOriginalFlavours();
0026     void RestoreOriginalFlavours();
0027     void OverwriteOriginalWithLocalFlavoursAndMomenta();
0028   protected:
0029     double m_sprimemin, m_sprimemax;
0030   public:
0031 
0032     // constructors
0033     Single_Process();
0034 
0035     // destructor
0036     ~Single_Process();
0037 
0038     // member functions
0039     bool Initialize();
0040     bool FillIntegrator(PHASIC::Phase_Space_Handler *const psh);
0041 
0042     double Partonic(const ATOOLS::Vec4D_Vector&,
0043                     ATOOLS::Variations_Mode varmode,
0044                     int mode);
0045 
0046     bool Combinable(const size_t &idi, const size_t &idj);
0047 
0048     const ATOOLS::Flavour_Vector &CombinedFlavour(const size_t &idij);
0049     bool FillFinalState(const ATOOLS::Vec4D_Vector &p);
0050 
0051     double CustomRelativeVariationWeightForRenormalizationScaleFactor(double) const;
0052 
0053     // functions overwritten here
0054     std::vector<std::vector<int> > * Colours() const;
0055 
0056     const bool HasInternalScale() const;
0057     const double InternalScale() const;
0058     // inline functions
0059     inline ME2_Base   * GetME()     const { return p_born_me2; }
0060     inline const double SPrimeMin() const { return m_sprimemin; }
0061     inline const double SPrimeMax() const { return m_sprimemax; }
0062 
0063     void FillAmplitudes(std::vector<METOOLS::Spin_Amplitudes> &amps,
0064                         std::vector<std::vector<Complex>> &cols) {}
0065   };
0066 }// end of namespace EXTRAXS
0067 
0068 #endif
0069 
0070 
0071