35 #include "TObjString.h"
37 #include "TObjArray.h"
46 TObjArray *tok = s.Tokenize(delim);
47 int N = tok->GetEntries();
50 TString token = (((TObjString*)tok->At(
i))->String()).Strip(TString::kBoth);
51 toks.push_back(token);
64 if (pts.BeginsWith(
"*")) invord=
true;
65 pts.ReplaceAll(
"*",
"");
71 pts.ReplaceAll(
"-",
"- ");
72 pts.ReplaceAll(
"+",
"+ ");
76 pts.ReplaceAll(
"-",
" -");
77 pts.ReplaceAll(
"+",
" +");
92 bool invord =
prepare(pts, exts, c, vars);
96 for (
int i=0;
i<ncmp;++
i)
99 for (
unsigned int j=0;j<vars.size();++j) invord ? r += c[
i]+vars[j] : r += vars[j]+c[
i];
101 if (
i<ncmp-1) r += last;
111 return "sqrt("+
makefml(pts,exts)+
")";
119 return "("+
makefml(pts,exts)+
")";
127 return "sqrt("+
makefml(pts,exts,3,
"+")+
")";
135 return "sqrt("+
makefml(pts,exts,2,
"+")+
")";
144 bool invord =
prepare(pts, exts, c, vars);
148 for (
unsigned int j=0;j<vars.size();++j) invord ? r += c[2]+vars[j] :r += vars[j]+c[2];
162 return "(atan2("+tpt+
","+tpz+
")*57.3)";
173 return "atan2("+tpt+
","+tpz+
")";
184 return "("+tpz+
"/"+tp+
")";
192 bool invord = (pts.BeginsWith(
"*"));
193 pts.ReplaceAll(
"*",
"");
198 if (vars.size()!=3)
return "1";
200 TString pts1=vars[0]+
"+"+vars[1];
201 TString pts2=vars[0]+
"+"+vars[2];
203 TString m01 =
m2((invord?
"*":
"")+pts1,exts);
204 TString m02 =
m2((invord?
"*":
"")+pts2,exts);
std::vector< TString > StrVec
TString pz(TString pts, TString exts="px py pz")
TString ctht(TString pts, TString exts="px py pz")
TString thtd(TString pts, TString exts="px py pz")
TString pt(TString pts, TString exts="px py pz")
TString m2(TString pts, TString exts="e px py pz")
TString m(TString pts, TString exts="e px py pz")
TString makefml(TString pts, TString exts, int ncmp=4, TString last="-")
TString tht(TString pts, TString exts="px py pz")
int SplitString(TString s, TString delim, StrVec &toks)
bool prepare(TString pts, TString exts, StrVec &c, StrVec &vars)
TString p(TString pts, TString exts="px py pz")
TString dalitz(TString pts, TString exts="e px py pz")