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 };
0051
0052 std::ostream &operator<<(std::ostream &s,const Amplitude &a);
0053
0054 typedef std::vector<Amplitude*> Amplitude_Vector;
0055
0056 }
0057
0058 #endif