42 JParser<> zap(
"Test program for vertex fit.");
52 catch(
const exception& error) {
53 FATAL(error.what() << endl);
57 TH1D hx(
"hx", NULL, 101, -1.0, +1.0);
58 TH1D hy(
"hy", NULL, 101, -1.0, +1.0);
59 TH1D hz(
"hz", NULL, 101, -1.0, +1.0);
60 TH1D ht(
"ht", NULL, 101, -1.0, +1.0);
72 if (inputFile !=
"") {
74 ifstream
in(inputFile.c_str());
76 for (
double x, y, z;
in >> x >> y >> z; ) {
77 detector.push_back(JVector3D(x,y,z));
84 for (
double x = -50.0; x < 100.0; x += 100.0) {
85 for (
double y = -50.0; y < 100.0; y += 100.0) {
86 for (
double z = -50.0; z < 100.0; z += 100.0) {
87 detector.push_back(JVector3D(x,y,z));
94 typedef JVertex3D JHit_t;
96 const double xmin = -1.0;
97 const double xmax = +1.0;
99 const double tmin = -1.0;
100 const double tmax = +1.0;
103 for (
int i = 0; i != numberOfEvents; ++i) {
107 const double x = gRandom->Uniform(xmin, xmax);
108 const double y = gRandom->Uniform(xmin, xmax);
109 const double z = gRandom->Uniform(xmin, xmax);
110 const double t = gRandom->Uniform(tmin, tmax);
112 JPoint4D point(JVector3D(x,y,z), t);
115 <<
FIXED(7,3) << point.getX() <<
' '
116 <<
FIXED(7,3) << point.getY() <<
' '
117 <<
FIXED(7,3) << point.getZ() <<
' '
118 <<
FIXED(7,3) << point.getT() << endl);
124 for (JDetector_t::const_iterator pos =
detector.begin(); pos !=
detector.end(); ++pos) {
125 data.push_back(JHit_t(*pos, point.getT(*pos)));
130 <<
FIXED(7,3) << hit->getX() <<
' '
131 <<
FIXED(7,3) << hit->getY() <<
' '
132 <<
FIXED(7,3) << hit->getZ() <<
' '
133 <<
FIXED(7,3) << hit->getT() << endl);
138 JEstimator<JPoint4D>
result(data.begin(), data.end());
146 hx.Fill(point.getX() -
result.getX());
147 hy.Fill(point.getY() -
result.getY());
148 hz.Fill(point.getZ() -
result.getZ());
149 ht.Fill(point.getT() -
result.getT());
151 Qx.put(point.getX() -
result.getX());
152 Qy.put(point.getY() -
result.getY());
153 Qz.put(point.getZ() -
result.getZ());
154 Qt.put(point.getT() -
result.getT());
168 out << hx << hy << hz << ht;
174 ASSERT(numberOfEvents > 0);
176 ASSERT(fabs(Qx.getMean()) <= precision);
177 ASSERT(fabs(Qy.getMean()) <= precision);
178 ASSERT(fabs(Qz.getMean()) <= precision);
179 ASSERT(fabs(Qt.getMean()) <= precision);
181 ASSERT(Qx.getSTDev() <= precision);
182 ASSERT(Qy.getSTDev() <= precision);
183 ASSERT(Qz.getSTDev() <= precision);
184 ASSERT(Qt.getSTDev() <= precision);
Utility class to parse command line options.
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Auxiliary data structure for floating point format specification.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define DEBUG(A)
Message macros.