#ifndef _PPIONBEAMAMPLITUDE_H_
#define _PPIONBEAMAMPLITUDE_H_
#include "PChannelModel.h"
#include "PDynamicData.h"
#include "TComplex.h"
#include "TGraph.h"
class PPionBeamAmplitude : public PChannelModel
{
public:
PPionBeamAmplitude(const Char_t *id, const Char_t *de, Int_t key);
PDistribution *Clone(const char *delme=NULL) const;
using PChannelModel::GetWeight;
Double_t GetWeight(Double_t *mass, Int_t *didx=NULL);
Bool_t Init();
Double_t GetWeight(void);
void SetGraph_Rho_Re_T11(TGraph * f) {
Graph_Rho_Re_T11 = f;
};
void SetGraph_Rho_Im_T11(TGraph * f) {
Graph_Rho_Im_T11 = f;
};
void SetGraph_Rho_Re_T13(TGraph * f) {
Graph_Rho_Re_T13 = f;
};
void SetGraph_Rho_Im_T13(TGraph * f) {
Graph_Rho_Im_T13 = f;
};
void SetGraph_Rho_Re_T31(TGraph * f) {
Graph_Rho_Re_T31 = f;
};
void SetGraph_Rho_Im_T31(TGraph * f) {
Graph_Rho_Im_T31 = f;
};
void SetGraph_Rho_Re_T33(TGraph * f) {
Graph_Rho_Re_T33 = f;
};
void SetGraph_Rho_Im_T33(TGraph * f) {
Graph_Rho_Im_T33 = f;
};
void SetGraph_Om_Re_T11(TGraph * f) {
Graph_Om_Re_T11 = f;
};
void SetGraph_Om_Im_T11(TGraph * f) {
Graph_Om_Im_T11 = f;
};
void SetGraph_Om_Re_T13(TGraph * f) {
Graph_Om_Re_T13 = f;
};
void SetGraph_Om_Im_T13(TGraph * f) {
Graph_Om_Im_T13 = f;
};
void SetS(double f) {
s = f;
};
void SetTerm(int f) {
term = f;
};
void SetMode(int f) {
mode = f;
};
private:
TGraph *Graph_Rho_Re_T11;
TGraph *Graph_Rho_Im_T11;
TGraph *Graph_Rho_Re_T13;
TGraph *Graph_Rho_Im_T13;
TGraph *Graph_Rho_Re_T31;
TGraph *Graph_Rho_Im_T31;
TGraph *Graph_Rho_Re_T33;
TGraph *Graph_Rho_Im_T33;
TGraph *Graph_Om_Re_T11;
TGraph *Graph_Om_Im_T11;
TGraph *Graph_Om_Re_T13;
TGraph *Graph_Om_Im_T13;
PChannelModel *RhoPropagator;
PChannelModel *OmPropagator;
PParticle *dilepton, *parent, *p_in, *pion, *p_out;
Double_t p_bar_p;
Double_t q_bar_p;
Double_t p_0;
Double_t p_bar_0;
Double_t p_p;
Double_t s;
Int_t term, monte_carlo;
Int_t mode;
Double_t f_Rho, f_Om;
Double_t M_Rho, M_Om, M_p, M_n, m_e, m_pi_minus, m_pi_plus;
ClassDef(PPionBeamAmplitude, 0)
};
#endif // _PPIONBEAMAMPLITUDE_H_