33 JParser<> zap(
"Example program to test intersection of straight line with cylinder.");
42 catch(
const exception &error) {
43 FATAL(error.what() << endl);
46 gRandom->SetSeed(seed);
54 int number_of_errors = 0;
55 int number_of_events = 0;
57 for (
int i = 0; i != numberOfEvents; ++i) {
61 const double x = gRandom->Uniform(-1.0, +1.0);
62 const double y = gRandom->Uniform(-1.0, +1.0);
63 const double z = gRandom->Uniform(-1.0, +1.0);
69 gRandom->Sphere(dx, dy, dz, 1.0);
76 make_pair(intersection.first - 1*precision,
false),
77 make_pair(2*precision,
true),
78 make_pair(intersection.second - intersection.first - 2*precision,
true),
79 make_pair(2*precision,
false)
86 const int N =
sizeof(path)/
sizeof(path[0]);
90 for (
int i = 0; i != N; ++i) {
92 axis.move(path[i].first);
94 if ((
getDistance(cylinder, axis.getPosition()) < 1e-3*precision) != path[i].second) {
98 pos[i] = axis.getPosition();
103 for (
int i = 0; i != N; ++i) {
104 cout << endl <<
"point[" << noshowpos << setw(1) << i <<
"] = "
105 << showpos <<
FIXED(9,5) << pos[i].
getX() <<
' '
106 << showpos <<
FIXED(9,5) << pos[i].
getY() <<
' '
107 << showpos <<
FIXED(9,5) << pos[i].
getZ() <<
' '
108 <<
SCIENTIFIC(12,3) << cylinder.getDistance(pos[i]) <<
' '
109 << (cylinder.getDistance(pos[i]) < 1e-3*precision ?
"in" :
"out") << endl;
119 NOTICE(
"Number of errors: " << number_of_errors <<
" out of " << number_of_events <<
" events." << endl);
121 ASSERT(number_of_events > 0);
122 ASSERT(number_of_errors == 0);
#define DEBUG(A)
Message macros.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Data structure for circle in two dimensions.
Data structure for vector in two dimensions.
Data structure for vector in three dimensions.
double getY() const
Get y position.
double getZ() const
Get z position.
double getX() const
Get x position.
Data structure for normalised vector in three dimensions.
Utility class to parse command line options.
double getDistance(const JFirst_t &first, const JSecond_t &second)
Get distance between objects.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
Auxiliary data structure for floating point format specification.