122#include "EvtGenBase/EvtId.hh"
123#include "EvtGenBase/EvtDecayIncoherent.hh"
124#include "EvtGenModels/EvtXsection.hh"
132#include "TGraphErrors.h"
133#include "TDirectory.h"
147 void getName(std::string& name);
159 double gamHXSection(
double s,
double El,
double Eh,
int nmc=100000);
166 double difgamXs(
double mhds,
double sintheta);
182 double Rad1(
double s,
double x);
183 double Rad2(
double s,
double x);
195 double Li2(
double x);
197 double lgr(
double *x,
double *
y,
int n,
double t);
198 bool islgr(
double *x,
double *
y,
int n,
double t);
199 double LLr(
double *x,
double *
y,
int n,
double t);
200 int selectMode(std::vector<int> vmod,
double mhds);
217 double getVP(
double cms);
218 void mk_VXS(
double Esig,
double Egamcut,
double EgamH,
int midx);
222 std::vector<EvtId>
get_mode(
int mode);
228 std::vector<std::string>
split(std::string str,std::string pattern);
231 void calAF(
double myecms);
238 int _mode,_ndaugs,radflag,testflag;
239 EvtId daugs[10],gamId;
240 static double _xs0,_xs1;
241 static double _er0,_er1;
243 std::vector<double> ISRXS,ISRM;
244 std::vector<bool> ISRFLAG;
247 double differ,differ2,Rad2Xs;
249 std::vector<double> BR_ee;
250 std::vector<EvtId > ResId,ISRID;
255 Double_t pgam[4],phds[4],ph1[4],ph2[4],mhds,sumxs;
256 Double_t mass1,mass2,costheta,selectmode;
262 TH1F* myth,*Xobs,*Xsum;
269 static double AF[600],AA[600],MH[600];
270 double RadXS[600],EgamH;
271 std::vector<double> myFisr;
273 double mjsi,mpsip,mpsipp,mphi,momega,mrho0,mrho3s,momega2s;
274 double wjsi,wpsip,wpsipp,wphi,womega,wrho0,wrho3s,womega2s;
278 std::vector<int> _modeFlag;
280 std::vector<int > vmode, vmd;
281 static std::vector<std::vector <double> > VXS;
282 std::vector<double> vpx,vpr,vpi;
286 static int nconexcdecays;
292 static std::string* commands;
295 double threshold, beamEnergySpread;
EvtDecayBase * EvtDecayBasePtr
bool checkdecay(EvtParticle *p)
void findMaxXS(EvtParticle *p)
double addNarrowRXS(double mhi, double binwidth)
double narrowRXS(double mxL, double mxH)
bool VP_sampling(EvtVector4R pcm, EvtVector4R pi)
void command(std::string cmd)
static EvtXsection * myxsection
double gamHXSection_er(double El, double Eh)
bool islgr(double *x, double *y, int n, double t)
double lgr(double *x, double *y, int n, double t)
double baryonAng(double mx)
double Ros_xs(double mx, double bree, EvtId pid)
double Rad1(double s, double x)
void SetP4Rvalue(EvtParticle *part, double mhdr, double xeng, double theta)
bool meson_sampling(EvtVector4R pcm, EvtVector4R pi)
bool photonSampling(EvtParticle *part)
double ISR_ang_integrate(double x, double theta)
bool xs_sampling(double xs)
int selectMode(std::vector< int > vmod, double mhds)
double gamHXSection(EvtParticle *p, double El, double Eh, int nmc=100000)
double Rad1difXs(EvtParticle *p)
bool baryon_sampling(EvtVector4R pcm, EvtVector4R pi)
int get_mode_index(int mode)
double LLr(double *x, double *y, int n, double t)
double Rad2difXs(EvtParticle *p)
double SoftPhoton_xs(double s, double b)
bool angularSampling(EvtParticle *part)
static EvtXsection * staxsection
double difgamXs(EvtParticle *p)
double ISR_ang_sampling(double x)
double Mhad_sampling(double *x, double *y)
double energySpread(double mu, double sigma)
std::vector< EvtId > get_mode(int mode)
double getObsXsection(double mhds, int mode)
void mk_VXS(double Esig, double Egamcut, double EgamH, int midx)
void calAF(double myecms)
bool hadron_angle_sampling(EvtVector4R ppi, EvtVector4R pcm)
bool gam_sampling(EvtParticle *p)
double Rad2(double s, double x)
double trapezoid(double s, double a, double b, int n)
void getName(std::string &name)
void decay(EvtParticle *p)
std::vector< std::string > split(std::string str, std::string pattern)
std::string commandName()
double Egam2Mhds(double Egam)
void SetP4(EvtParticle *part, double mhdr, double xeng, double theta)