Back to home page

EIC code displayed by LXR

 
 

    


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; // unnatural parity (1/2^+ --> 1/2^-)
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