126#include "TDirectory.h"
128#include "TGraphErrors.h"
145 void getName( std::string& name );
157 double gamHXSection(
double s,
double El,
double Eh,
int nmc = 100000 );
164 double difgamXs(
double mhds,
double sintheta );
184 double Rad1(
double s,
double x );
185 double Rad2(
double s,
double x );
190 double Ros_xs(
double mx,
double bree,
EvtId pid );
197 double Li2(
double x );
199 double lgr(
double* x,
double* y,
int n,
double t );
200 bool islgr(
double* x,
double* y,
int n,
double t );
201 double LLr(
double* x,
double* y,
int n,
double t );
202 int selectMode( std::vector<int> vmod,
double mhds );
208 double sumExc(
double mx );
215 double narrowRXS(
double mxL,
double mxH );
219 double getVP(
double cms );
220 void mk_VXS(
double Esig,
double Egamcut,
double EgamH,
226 std::vector<EvtId>
get_mode(
int mode );
231 void command( std::string cmd );
232 std::vector<std::string>
split( std::string str, std::string pattern );
235 void calAF(
double myecms );
237 double trapezoid(
double s,
double a,
double b,
int n );
242 int _mode, _ndaugs, radflag, testflag;
243 EvtId daugs[10], gamId;
244 static double _xs0, _xs1;
245 static double _er0, _er1;
247 std::vector<double> ISRXS, ISRM;
248 std::vector<bool> ISRFLAG;
252 double differ, differ2, Rad2Xs;
254 std::vector<double> BR_ee;
255 std::vector<EvtId> ResId, ISRID;
260 Double_t pgam[4], phds[4], ph1[4], ph2[4], mhds, sumxs;
261 Double_t mass1, mass2, costheta, selectmode;
267 TH1F * myth, *Xobs, *Xsum;
274 static double AF[600], AA[600], MH[600];
275 double RadXS[600], EgamH;
276 std::vector<double> myFisr;
278 double mjsi, mpsip, mpsipp, mphi, momega, mrho0, mrho3s, momega2s;
279 double wjsi, wpsip, wpsipp, wphi, womega, wrho0, wrho3s, womega2s;
283 std::vector<int> _modeFlag;
285 std::vector<int> vmode, vmd;
286 static std::vector<std::vector<double>> VXS;
287 std::vector<double> vpx, vpr, vpi;
291 static int nconexcdecays;
297 static std::string* commands;
300 double threshold, beamEnergySpread;
EvtDecayBase * EvtDecayBasePtr
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)