10 #include "reportingUtils.hpp"
23 testFitResult(TTree* oldTree,
25 const bool verbose =
true,
26 const string& oldBranchName =
"fitResult",
27 const string& newBranchName =
"fitResult_v2")
30 const bool copyBin =
false;
32 TFitResult* oldResult = 0;
33 oldTree->SetBranchAddress(oldBranchName.c_str(), &oldResult);
37 newTree->SetBranchAddress(newBranchName.c_str(), &newResult);
41 const unsigned int n = newResult->
nmbWaves();
44 cout << *newResult << endl;
47 complex<double> maxDelta = 0;
48 for (
unsigned int i = 0;
i <
n; ++
i)
49 for (
unsigned int j = 0; j <
n; ++j) {
52 const complex<double> delta = oldVal - newVal;
53 maxDelta.real() = (fabs(maxDelta.real()) < fabs(delta.real())) ? delta.real() : maxDelta.real();
54 maxDelta.imag() = (fabs(maxDelta.imag()) < fabs(delta.imag())) ? delta.imag() : maxDelta.imag();
56 cout <<
"spinDensityMatrixElem(" << newResult->
waveName(
i) <<
", " << newResult->
waveName(j) <<
"): "
57 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << delta << endl;
59 cout <<
"spinDensityMatrixElem() max. deviation = " << maxDelta << endl << endl;
64 for (
unsigned int i = 0;
i <
n; ++
i) {
65 const double oldVal = oldResult->intensity(
i);
67 const double delta = oldVal - newVal;
68 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
70 cout <<
"intensity(" << newResult->
waveName(
i) <<
"): "
71 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << oldVal - newVal << endl;
73 cout <<
"intensity() max. deviation = " << maxDelta << endl << endl;
78 for (
unsigned int i = 0;
i <
n; ++
i) {
79 const double oldVal = oldResult->intensityErr(
i);
81 const double delta = oldVal - newVal;
82 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
84 cout <<
"intensityErr(" << newResult->
waveName(
i) <<
"): "
85 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << oldVal - newVal << endl;
87 cout <<
"intensityErr() max. deviation = " << maxDelta << endl << endl;
92 const string waveNamePatterns[] = {
"",
107 for (
unsigned int i = 0;
i <
sizeof(waveNamePatterns) /
sizeof(
string); ++
i) {
108 const double oldVal = oldResult->intensity(waveNamePatterns[
i].c_str());
109 const double newVal = newResult->
intensity(waveNamePatterns[
i].c_str());
110 const double delta = oldVal - newVal;
111 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
113 cout <<
"intensity(" << waveNamePatterns[
i] <<
"): "
114 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << oldVal - newVal << endl;
116 cout <<
"intensity() max. deviation = " << maxDelta << endl << endl;
121 const string waveNamePatterns[] = {
"",
136 for (
unsigned int i = 0;
i <
sizeof(waveNamePatterns) /
sizeof(
string); ++
i) {
137 const double oldVal = oldResult->intensityErr(waveNamePatterns[
i].c_str());
138 const double newVal = newResult->
intensityErr(waveNamePatterns[
i].c_str());
139 const double delta = oldVal - newVal;
140 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
142 cout <<
"intensityErr(" << waveNamePatterns[
i] <<
"): "
143 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << oldVal - newVal << endl;
145 cout <<
"intensityErr() max. deviation = " << maxDelta << endl << endl;
150 for (
unsigned int i = 0;
i <
n; ++
i)
151 for (
unsigned int j = 0; j <
n; ++j) {
152 const double oldVal = oldResult->phase(
i, j);
153 const double newVal = newResult->
phase(
i, j);
154 const double delta = oldVal - newVal;
155 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
157 cout <<
"phase(" << newResult->
waveName(
i) <<
", " << newResult->
waveName(j) <<
"): "
158 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << delta << endl;
160 cout <<
"phase() max. deviation = " << maxDelta << endl << endl;
165 for (
unsigned int i = 0;
i <
n; ++
i)
166 for (
unsigned int j = 0; j <
n; ++j) {
167 const double oldVal = oldResult->phaseErr(
i, j);
168 const double newVal = newResult->
phaseErr(
i, j);
169 const double delta = oldVal - newVal;
170 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
172 cout <<
"phaseErr(" << newResult->
waveName(
i) <<
", " << newResult->
waveName(j) <<
"): "
173 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << delta << endl;
175 cout <<
"phaseErr() max. deviation = " << maxDelta << endl << endl;
180 for (
unsigned int i = 0;
i <
n; ++
i)
181 for (
unsigned int j = 0; j <
n; ++j) {
182 const double oldVal = oldResult->coherence(
i, j);
183 const double newVal = newResult->
coherence(
i, j);
184 const double delta = oldVal - newVal;
185 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
187 cout <<
"coherence(" << newResult->
waveName(
i) <<
", " << newResult->
waveName(j) <<
"): "
188 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << delta << endl;
190 cout <<
"coherence() max. deviation = " << maxDelta << endl << endl;
195 for (
unsigned int i = 0;
i <
n; ++
i)
196 for (
unsigned int j = 0; j <
n; ++j) {
197 const double oldVal = oldResult->coherenceErr(
i, j);
199 const double delta = oldVal - newVal;
200 maxDelta = (fabs(maxDelta) < fabs(delta)) ? delta : maxDelta;
202 cout <<
"coherenceErr(" << newResult->
waveName(
i) <<
", " << newResult->
waveName(j) <<
"): "
203 << setprecision(12) << newVal <<
" vs. " << oldVal <<
", delta = " << delta << endl;
205 cout <<
"coherenceErr() max. deviation = " << maxDelta << endl << endl;
210 #endif // USE_TFITRESULT