31 #include "TObjString.h"
32 #include "TObjArray.h"
38 int main(
int argc,
char** argv)
40 const unsigned int maxNmbWavesPerPage = 1;
43 map<TString, TString> isobars;
44 isobars[
"pi+" ] =
"\\pi^+";
45 isobars[
"pi-" ] =
"\\pi^-";
46 isobars[
"pi+-" ] =
"\\pi^\\pm";
47 isobars[
"pi-+" ] =
"\\pi^\\mp";
48 isobars[
"sigma" ] =
"\\sigma";
49 isobars[
"rho770" ] =
"\\rho(770)";
50 isobars[
"a11269" ] =
"a_1(1269)";
51 isobars[
"a21320" ] =
"a_2(1320)";
52 isobars[
"rho1450" ] =
"\\rho(1450)";
53 isobars[
"rho1700" ] =
"\\rho(1700)";
54 isobars[
"pi1300" ] =
"\\pi(1300)";
55 isobars[
"pi1800" ] =
"\\pi(1800)";
56 isobars[
"pi21670" ] =
"\\pi_2(1670)";
57 isobars[
"f01370" ] =
"f_0(1370)";
58 isobars[
"f01500" ] =
"f_0(1500)";
59 isobars[
"f01700" ] =
"f_0(1700)";
60 isobars[
"f11285" ] =
"f_1(1285)";
61 isobars[
"f11420" ] =
"f_1(1420)";
62 isobars[
"b11235" ] =
"b_1(1235)";
63 isobars[
"b11800" ] =
"b_1(1800)";
64 isobars[
"b11500" ] =
"b_1(1500)";
65 isobars[
"f21270" ] =
"f_2(1270)";
66 isobars[
"f21950" ] =
"f_2(1950)";
67 isobars[
"f21565" ] =
"f_2(1565)";
68 isobars[
"f21270" ] =
"f_2(1270)";
69 isobars[
"f22010" ] =
"f_2(2010)";
70 isobars[
"f11420" ] =
"f_1(1420)";
71 isobars[
"eta1440" ] =
"\\eta(1420)";
72 isobars[
"eta21645"] =
"\\eta_2(1645)";
73 isobars[
"eta11600"] =
"\\eta_1(1600)";
74 isobars[
"rho31690"] =
"\\rho_3(1690)";
75 isobars[
"rho1600"] =
"\\rho(1600)";
76 isobars[
"a21320" ] =
"a_2(1320)";
79 cout <<
"\\documentclass[10pt,a4paper]{article}" << endl
80 <<
"\\usepackage{amsmath,amsthm,amssymb}" << endl
81 <<
"\\begin{document}" << endl
86 while (!(cin >> line).eof()) {
97 if (countWave % maxNmbWavesPerPage == 0)
98 cout <<
"\\) \\\\" << endl
100 <<
"\\pagebreak" << endl
106 cerr << countWave <<
": " << line << endl;
108 l.Remove(l.Length() - 4);
110 const TString head = l(0, 7);
111 const TString I = head(0, 1);
112 const TString G = head(1, 1);
113 const TString J = head(2, 1);
114 const TString P = head(3, 1);
115 const TString C = head(4, 1);
116 const TString
M = head(5, 1);
117 const TString refl = head(6, 1);
120 cout << I <<
"^" << G <<
"("<< J <<
"^{" << P << C <<
"}" << M <<
"^" << refl <<
")\\, ";
123 TObjArray* tokens = l.Tokenize(
"_=");
125 for (
int i = 0;
i < tokens->GetEntries(); ++
i) {
126 const TString token = ((TObjString*)tokens->At(
i))->GetString();
127 cerr <<
" " << mode <<
": '" << token <<
"'" << endl;
129 if (isobars.find(token) != isobars.end())
130 cout << isobars[token];
135 l.Remove(0, token.Length());
140 }
else if (mode == 1) {
141 if (token.Length() == 1)
142 cout <<
"(" << token <<
") ";
144 cout <<
"{" << token(0, 1) <<
" \\choose "
145 << token(1, 1) <<
"}";
146 l.Remove(0, token.Length());
148 }
else if (mode == 2) {
149 cout <<
"~\\rightarrow~";
150 if (isobars.find(token) != isobars.end())
151 cout << isobars[token];
155 l.Remove(0, token.Length());
165 cout <<
"\\)" << endl
167 <<
"\\end{document}" << endl;