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