Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef EXTAMP_Process_H
0002 #define EXTAMP_Process_H
0003 
0004 #include "PHASIC++/Process/Process_Info.H"
0005 #include "PHASIC++/Process/Single_Process.H"
0006 
0007 namespace EXTAMP {
0008 
0009   class Process : public PHASIC::Single_Process {
0010 
0011   public :
0012 
0013     Process(const PHASIC::Process_Info& pi);
0014     
0015     ~Process() { };
0016 
0017     /* Inherited from PHASIC::Process_Base. Required for PS
0018        clustering. Also include a const-correct definition and
0019        implementation. */
0020     bool Combinable(const size_t &idi,const size_t &idj);
0021     
0022     /* Inherited from PHASIC::Process_Base. Required for PS
0023        clustering. */
0024     const ATOOLS::Flavour_Vector &CombinedFlavour(const size_t &idij);
0025 
0026     virtual int  PerformTests();
0027 
0028   protected:
0029 
0030     /* Factor due to spin and color averaging in the initial state,
0031        i.e. number of unobserved degrees of freedom in initial state
0032        (polarizations, colors) */
0033     double NormFac() const { return m_norm; }
0034     double m_norm;
0035     
0036     const std::vector<size_t>& PartonIndices() const
0037     { return m_parton_indices; }
0038 
0039   private :
0040 
0041     /* Given indices of external flavours i_1,i_2,i_3,... and the
0042        combined index k=(1<<i_1) & (1<<i_2) & (1<<i_3) & ...,
0043        m_cluster_flav_map[k] contains all flavours that arise from
0044        diagrammatic clusterings of the external flavours */
0045     std::map<size_t, ATOOLS::Flavour_Vector>  m_cluster_flav_map;
0046 
0047     /* Fill m_parton_indices */
0048     void FillPartonIndices();
0049 
0050     /* Holds a list of indices i, such that all m_flavs[i] are
0051        massless QCD partons */
0052     std::vector<size_t> m_parton_indices;
0053     
0054   };
0055 
0056 }
0057 
0058 #endif