Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef DIRE__Tools__Amplitude_H
0002 #define DIRE__Tools__Amplitude_H
0003 
0004 #include "DIRE/Tools/Parton.H"
0005 #include "DIRE/Tools/Splitting.H"
0006 #include "ATOOLS/Phys/Cluster_Amplitude.H"
0007 
0008 namespace DIRE {
0009 
0010   class Amplitude: public Parton_Vector {
0011   private:
0012 
0013     Splitting m_s;
0014     double    m_t, m_t0;
0015 
0016     ATOOLS::Cluster_Amplitude *p_ampl;
0017     std::vector<Amplitude*>   *p_all;
0018 
0019   public:
0020 
0021     Amplitude(ATOOLS::Cluster_Amplitude *const a,
0022           std::vector<Amplitude*> *const all);
0023 
0024     ~Amplitude();
0025 
0026     void Add(Parton *const p);
0027     void Remove(Parton *const p);
0028 
0029     void Reduce();
0030 
0031     ATOOLS::Cluster_Amplitude *GetAmplitude() const;
0032 
0033     inline ATOOLS::Cluster_Amplitude *
0034     ClusterAmplitude() const { return p_ampl; }
0035 
0036     inline void SetSplit(const Splitting &s) { m_s=s; }
0037 
0038     inline const Splitting &Split() const { return m_s; }
0039 
0040     inline void SetT(const double &t)  { m_t=t;  }
0041     inline void SetT0(const double &t) { m_t0=t; }
0042 
0043     inline double T() const  { return m_t;  }
0044     inline double T0() const { return m_t0; }
0045 
0046     inline void SetJF(void *const jf) { p_ampl->SetJF(jf); }
0047     template <class Type> inline Type *JF() const 
0048     { return p_ampl->JF<Type>(); }
0049 
0050   };// end of class Amplitude
0051 
0052   std::ostream &operator<<(std::ostream &s,const Amplitude &a);
0053 
0054   typedef std::vector<Amplitude*> Amplitude_Vector;
0055 
0056 }// end of namespace DIRE
0057 
0058 #endif