File indexing completed on 2025-04-19 09:10:04
0001 #ifndef HADRONS_Current_Library_VA_B_B_H
0002 #define HADRONS_Current_Library_VA_B_B_H
0003
0004 #include "HADRONS++/Current_Library/Current_Base.H"
0005
0006
0007 namespace HADRONS {
0008
0009 namespace VA_B_B_FFs
0010 {
0011 class FormFactor_Base {
0012 protected:
0013 double m0, m1;
0014 double m_V1, m_V2, m_V3, m_A1, m_A2, m_A3;
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 A1() { if(!m_calced) abort(); return m_A1; }
0025 double A2() { if(!m_calced) abort(); return m_A2; }
0026 double A3() { if(!m_calced) abort(); return m_A3; }
0027 };
0028 }
0029
0030 class VA_B_B : public Current_Base
0031 {
0032 double m_V_CKM;
0033 VA_B_B_FFs::FormFactor_Base* p_ff;
0034 bool m_unnatural;
0035 double m_v, m_a;
0036
0037 public:
0038 VA_B_B(const ATOOLS::Flavour_Vector& flavs,const std::vector<int>& indices,
0039 const std::string& name) :
0040 Current_Base(flavs, indices, name) {};
0041 ~VA_B_B();
0042 void SetModelParameters( struct GeneralModel _md );
0043 void Calc(const ATOOLS::Vec4D_Vector& moms, bool m_anti);
0044 };
0045 }
0046
0047 #endif