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_P_V_H
0002 #define HADRONS_Current_Library_VA_P_V_H
0003 
0004 #include "HADRONS++/Current_Library/Current_Base.H"
0005 
0006 namespace HADRONS
0007 {
0008 
0009 namespace VA_P_A_FFs
0010 {
0011   class FormFactor_Base {
0012   protected:
0013     const ATOOLS::Flavour_Vector& m_flavs;
0014     const std::vector<int>& p_i;
0015     double m_m0, m_m1;
0016     double m_V0, m_V1, m_V2, m_A;
0017     bool   m_calced;
0018   public:
0019     FormFactor_Base(GeneralModel model, double* masses,
0020                     const ATOOLS::Flavour_Vector& flavs,
0021                     const std::vector<int>& indices) :
0022       m_flavs(flavs), p_i(indices) {
0023       m_m0=masses[0];
0024       m_m1=masses[1];
0025       m_V0=m_V1=m_V2=m_A=0.0;
0026       m_calced=false;
0027     }
0028     virtual ~FormFactor_Base();
0029     virtual void CalcFFs( ATOOLS::Vec4D p0, ATOOLS::Vec4D p1 ) = 0;
0030     double V0()  { if(!m_calced) abort(); return m_V0; }
0031     double V1()  { if(!m_calced) abort(); return m_V1; }
0032     double V2()  { if(!m_calced) abort(); return m_V2; }
0033     double A()   { if(!m_calced) abort(); return m_A; }
0034   };
0035 }
0036 
0037 class VA_P_A : public Current_Base {
0038   double m_Vxx, m_cV;
0039   VA_P_A_FFs::FormFactor_Base* p_ff;
0040 public:
0041   VA_P_A(const ATOOLS::Flavour_Vector& flavs,const std::vector<int>& indices,
0042          const std::string& name) :
0043     Current_Base(flavs, indices, name) {};
0044   ~VA_P_A() {
0045     if (p_ff!=NULL) delete p_ff;
0046   }
0047   void SetModelParameters( struct GeneralModel _md );
0048   void Calc(const ATOOLS::Vec4D_Vector& moms, bool m_anti);
0049 };
0050 
0051 }
0052 #endif