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);
216 double getVP(
double cms);
217 void mk_VXS(
double Esig,
double Egamcut,
double EgamH,
int midx);
221 std::vector<EvtId>
get_mode(
int mode);
227 std::vector<std::string>
split(std::string str,std::string pattern);
230 void calAF(
double myecms);
232 double trapezoid(
double s,
double a,
double b,
int n);
237 int _mode,_ndaugs,radflag,testflag;
238 EvtId daugs[10],gamId;
239 static double _xs0,_xs1;
240 static double _er0,_er1;
242 std::vector<double> ISRXS,ISRM;
243 std::vector<bool> ISRFLAG;
246 double differ,differ2,Rad2Xs;
248 std::vector<double> BR_ee;
249 std::vector<EvtId > ResId,ISRID;
254 Double_t pgam[4],phds[4],ph1[4],ph2[4],mhds,sumxs;
255 Double_t mass1,mass2,costheta,selectmode;
261 TH1F* myth,*Xobs,*Xsum;
268 static double AF[600],AA[600],MH[600];
269 double RadXS[600],EgamH;
270 std::vector<double> myFisr;
272 double mjsi,mpsip,mpsipp,mphi,momega,mrho0,mrho3s,momega2s;
273 double wjsi,wpsip,wpsipp,wphi,womega,wrho0,wrho3s,womega2s;
277 std::vector<int> _modeFlag;
279 std::vector<int > vmode, vmd;
280 static std::vector<std::vector <double> > VXS;
281 std::vector<double> vpx,vpr,vpi;
285 static int nconexcdecays;
291 static std::string* commands;
294 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)
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)
static EvtXsection * staxsection
static EvtXsection * myxsection
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)
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)