Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef HADRONS_ME_Library_Three_Body_MEs_H
0002 #define HADRONS_ME_Library_Three_Body_MEs_H
0003 
0004 #include "HADRONS++/ME_Library/HD_ME_Base.H"
0005 
0006 namespace HADRONS {
0007 
0008   class B_Bpi_pwave : public HD_ME_Base {
0009     Complex m_cL, m_cR;
0010   public:
0011     B_Bpi_pwave(const ATOOLS::Flavour_Vector& flavs,
0012                 const std::vector<int>& decayindices,
0013                 const std::string& name):
0014       HD_ME_Base(flavs,decayindices,name) {};
0015     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0016     void SetModelParameters( GeneralModel _md );
0017   };
0018 
0019   class B3_Bpi_pwave : public HD_ME_Base {
0020     Complex m_cL, m_cR;
0021   public:
0022     B3_Bpi_pwave(const ATOOLS::Flavour_Vector& flavs,
0023                  const std::vector<int>& decayindices,
0024                  const std::string& name):
0025       HD_ME_Base(flavs,decayindices,name) {};
0026     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0027     void SetModelParameters( GeneralModel _md );
0028   };
0029 
0030   class B_Bpi_swave : public HD_ME_Base {
0031     Complex m_cL, m_cR;
0032   public:
0033     B_Bpi_swave(const ATOOLS::Flavour_Vector& flavs,
0034                 const std::vector<int>& decayindices,
0035                 const std::string& name):
0036       HD_ME_Base(flavs,decayindices,name) {};
0037     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0038     void SetModelParameters( GeneralModel _md );
0039   };
0040 
0041   class B3_Bpi_dwave : public HD_ME_Base {
0042     Complex m_cL, m_cR;
0043   public:
0044     B3_Bpi_dwave(const ATOOLS::Flavour_Vector& flavs,
0045                  const std::vector<int>& decayindices,
0046                  const std::string& name):
0047       HD_ME_Base(flavs,decayindices,name) {};
0048     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0049     void SetModelParameters( GeneralModel _md );
0050   };
0051 
0052   class B_Bphoton_M1 : public HD_ME_Base {
0053     double m_fac;
0054   public:
0055     B_Bphoton_M1(const ATOOLS::Flavour_Vector& flavs,
0056                  const std::vector<int>& decayindices,
0057                  const std::string& name):
0058       HD_ME_Base(flavs,decayindices,name) {};
0059     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0060     void SetModelParameters( GeneralModel _md );
0061   };
0062 
0063   class B3_Bphoton_M1 : public HD_ME_Base {
0064     Complex m_cL, m_cR;
0065   public:
0066     B3_Bphoton_M1(const ATOOLS::Flavour_Vector& flavs,
0067                   const std::vector<int>& decayindices,
0068                   const std::string& name):
0069       HD_ME_Base(flavs,decayindices,name) {};
0070     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0071     void SetModelParameters( GeneralModel _md );
0072   };
0073 
0074   class B3_Bphoton_M1_2 : public HD_ME_Base {
0075     Complex m_cL, m_cR;
0076   public:
0077     B3_Bphoton_M1_2(const ATOOLS::Flavour_Vector& flavs,
0078                     const std::vector<int>& decayindices,
0079                     const std::string& name):
0080       HD_ME_Base(flavs,decayindices,name) {};
0081     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0082     void SetModelParameters( GeneralModel _md );
0083   };
0084 
0085   class B_Bphoton_E1 : public HD_ME_Base {
0086     Complex m_cL, m_cR;
0087   public:
0088     B_Bphoton_E1(const ATOOLS::Flavour_Vector& flavs,
0089                  const std::vector<int>& decayindices,
0090                  const std::string& name):
0091       HD_ME_Base(flavs,decayindices,name) {};
0092     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0093     void SetModelParameters( GeneralModel _md );
0094   };
0095 
0096   class B3_Bphoton_E1 : public HD_ME_Base {
0097     Complex m_cL, m_cR;
0098   public:
0099     B3_Bphoton_E1(const ATOOLS::Flavour_Vector& flavs,
0100                   const std::vector<int>& decayindices,
0101                   const std::string& name):
0102       HD_ME_Base(flavs,decayindices,name) {};
0103     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0104     void SetModelParameters( GeneralModel _md );
0105   };
0106 
0107   class QQ_QVQ_Spectator : public HD_ME_Base {
0108     ATOOLS::Flavour m_decayer;
0109   public:
0110     QQ_QVQ_Spectator(const ATOOLS::Flavour_Vector& flavs,
0111              const std::vector<int>& decayindices,
0112              const std::string& name);
0113     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0114     void SetModelParameters( GeneralModel _md );
0115     bool SetColorFlow(std::vector<ATOOLS::Particle*> outparts,
0116               int n_q, int n_g, bool anti);
0117   };
0118 
0119   class QQ_PGG : public HD_ME_Base {
0120     double m_min_mass2;
0121   public:
0122     QQ_PGG(const ATOOLS::Flavour_Vector& flavs,
0123            const std::vector<int>& decayindices,
0124            const std::string& name):
0125       HD_ME_Base(flavs,decayindices,name) {};
0126     void Calculate(const ATOOLS::Vec4D_Vector& momenta, bool anti=false);
0127     void SetModelParameters( GeneralModel _md );
0128   };
0129 
0130 //   class P_GammaFF : public HD_ME_Base {
0131 //     int m_phot,m_f1,m_f2;
0132 //   public:
0133 //     P_GammaFF(int,ATOOLS::Flavour *);
0134 //     double operator()(const ATOOLS::Vec4D *);
0135 //     void   operator()( 
0136 //         const ATOOLS::Vec4D  * _p, 
0137 //         std::vector<Complex> * _ampls_tensor, 
0138 //         std::vector<std::pair<int,int> > * _indices,
0139 //         int                    k0_n );
0140 //   };
0141 // 
0142 //   class P_2PGamma : public HD_ME_Base {
0143 //     int m_phot,m_p1,m_p2;
0144 //   public:
0145 //     P_2PGamma(int,ATOOLS::Flavour *);
0146 //     void   operator()( 
0147 //         const ATOOLS::Vec4D  * _p, 
0148 //         std::vector<Complex> * _ampls_tensor, 
0149 //         std::vector<std::pair<int,int> > * _indices,
0150 //         int                    k0_n );
0151 //     double operator()(const ATOOLS::Vec4D *);
0152 //   };
0153 // 
0154 //   class P_P2Gamma : public HD_ME_Base {
0155 //     int    m_phot1, m_phot2, m_p;
0156 //     double m_mrho2, m_grho2;
0157 //   public:
0158 //     P_P2Gamma(int,ATOOLS::Flavour *);
0159 //     void   operator()( 
0160 //         const ATOOLS::Vec4D  * _p, 
0161 //         std::vector<Complex> * _ampls_tensor, 
0162 //         std::vector<std::pair<int,int> > * _indices,
0163 //         int                    k0_n );
0164 //     double operator()(const ATOOLS::Vec4D *);
0165 //   };
0166 
0167 //   class P_3P_DalitzDef : public HD_ME_Base {
0168 //   private:
0169 //     bool m_allpions, m_allsame;
0170 //     int  m_pi0, m_pip, m_pim;
0171 //   public:
0172 //     P_3P_DalitzDef(int,ATOOLS::Flavour *);
0173 //     double operator()(const ATOOLS::Vec4D *);
0174 //   };
0175 
0176   class P_3P_Dalitz : public HD_ME_Base {
0177     // indices: P0=0, P1=1, P2=2, P3=3
0178     double m_const,m_liny,m_linx,m_linyphase,m_linxphase,
0179       m_quady,m_quadx,m_quadyphase,m_quadxphase,
0180       m_phaseliny,m_phaselinx,m_phasequady,m_phasequadx;
0181   public:
0182     P_3P_Dalitz(const ATOOLS::Flavour_Vector& flavs,
0183                 const std::vector<int>& decayindices,
0184                 const std::string& name):
0185       HD_ME_Base(flavs,decayindices,name) {};
0186     double operator()(const ATOOLS::Vec4D *);
0187     void Calculate(const ATOOLS::Vec4D_Vector& p, bool m_anti);
0188     void SetModelParameters( GeneralModel _md );
0189   };
0190 
0191 }
0192 
0193 
0194 #endif