File indexing completed on 2025-04-19 09:10:03
0001 #ifndef HADRONS_Current_Library_VA_0_PiPiPiPi1Charged_H
0002 #define HADRONS_Current_Library_VA_0_PiPiPiPi1Charged_H
0003
0004 #include "HADRONS++/Current_Library/Current_Base.H"
0005 #include "HADRONS++/PS_Library/ResonanceFlavour.H"
0006 #include "HADRONS++/Main/Tools.H"
0007 #include "ATOOLS/Math/Histogram.H"
0008
0009 namespace HADRONS {
0010 class VA_0_PiPiPiPi1Charged : public Current_Base {
0011
0012
0013 class LorenzBase {
0014 public :
0015 const ATOOLS::Vec4D * p_p;
0016 int * p_i;
0017 ATOOLS::Vec4D m_q;
0018 ATOOLS::Vec4D m_r[4];
0019 double m_s[4];
0020 double m_q2;
0021
0022 LorenzBase( ) {};
0023 virtual ~LorenzBase() {};
0024 virtual ATOOLS::Vec4C operator()() { return ATOOLS::Vec4C(); };
0025 void SetPrivates(const ATOOLS::Vec4D *, int* i);
0026 };
0027
0028 class Novo : public LorenzBase {
0029
0030 double m_mpi2;
0031 SimpleResonanceFlavour m_rho, m_sigma;
0032 SimpleResonanceFlavour m_a1;
0033 ATOOLS::Histogram * p_G, * p_a1width, * p_zforma1;
0034 Complex m_z;
0035 double m_Lambda2;
0036
0037 double G( double q2 );
0038 double F2_a1( double s );
0039 Complex Da1( double s );
0040 double hrho( double s );
0041 Complex Drho( double s );
0042 Complex Dsigma( double s );
0043 ATOOLS::Vec4C t1( int a, int b, int c, int d );
0044 ATOOLS::Vec4C t2( int a, int b, int c, int d );
0045
0046 public :
0047 Novo(GeneralModel _md);
0048 ~Novo() {
0049 delete p_G;
0050 delete p_zforma1;
0051 delete p_a1width;
0052 }
0053 ATOOLS::Vec4C operator()();
0054 };
0055
0056 class KS : public LorenzBase {
0057
0058
0059 double m_fpi2;
0060 double m_mpi2, m_mpi02;
0061 ResonanceFlavour m_Rho, m_RR, m_RRR;
0062 double m_beta, m_gamma;
0063
0064 double Dots( int, int );
0065 Complex Trho( double );
0066
0067 public :
0068
0069 KS(GeneralModel _md);
0070 ATOOLS::Vec4C operator()();
0071 };
0072
0073 static const int m_ncontrib = 4;
0074 int m_nutau, m_pion1, m_pion2, m_pion3, m_pion0;
0075
0076 double m_global;
0077 LorenzBase * p_lorenz;
0078
0079 public:
0080 VA_0_PiPiPiPi1Charged(const ATOOLS::Flavour_Vector& flavs,
0081 const std::vector<int>& indices,
0082 const std::string& name) :
0083 Current_Base(flavs, indices, name) {};
0084 ~VA_0_PiPiPiPi1Charged() {
0085 if (p_lorenz!=NULL) delete p_lorenz;
0086 }
0087 void SetModelParameters( struct GeneralModel _md );
0088 void Calc(const ATOOLS::Vec4D_Vector& moms, bool m_anti);
0089 };
0090 }
0091 #endif
0092
0093