File indexing completed on 2025-04-19 09:10:04
0001 #ifndef HADRONS_Current_Library_VA_B_B3_H
0002 #define HADRONS_Current_Library_VA_B_B3_H
0003
0004 #include "HADRONS++/Current_Library/Current_Base.H"
0005
0006
0007 namespace HADRONS {
0008
0009 namespace VA_B_B3_FFs
0010 {
0011 class FormFactor_Base {
0012 protected:
0013 double m0, m1;
0014 double m_V1, m_V2, m_V3, m_V4, m_A1, m_A2, m_A3, m_A4;
0015 bool m_calced;
0016 public:
0017 FormFactor_Base(struct GeneralModel model, double* masses) :
0018 m0(masses[0]), m1(masses[1]), m_calced(false) {}
0019 virtual ~FormFactor_Base();
0020 virtual void CalcFFs( ATOOLS::Vec4D p0, ATOOLS::Vec4D p1 ) = 0;
0021 double V1() { if(!m_calced) abort(); return m_V1; }
0022 double V2() { if(!m_calced) abort(); return m_V2; }
0023 double V3() { if(!m_calced) abort(); return m_V3; }
0024 double V4() { if(!m_calced) abort(); return m_V4; }
0025 double A1() { if(!m_calced) abort(); return m_A1; }
0026 double A2() { if(!m_calced) abort(); return m_A2; }
0027 double A3() { if(!m_calced) abort(); return m_A3; }
0028 double A4() { if(!m_calced) abort(); return m_A4; }
0029 };
0030 }
0031
0032 class VA_B_B3 : public Current_Base
0033 {
0034 double m_V_CKM;
0035 VA_B_B3_FFs::FormFactor_Base* p_ff;
0036 bool m_unnatural;
0037 double m_v, m_a;
0038 public:
0039 VA_B_B3(const ATOOLS::Flavour_Vector& flavs,const std::vector<int>& indices,
0040 const std::string& name) :
0041 Current_Base(flavs, indices, name) {};
0042 ~VA_B_B3();
0043 void SetModelParameters( struct GeneralModel _md );
0044 void Calc(const ATOOLS::Vec4D_Vector& moms, bool m_anti);
0045 };
0046 }
0047
0048 #endif