43{
46
48 JLimit_t& numberOfEvents = inputFile.getLimit();
51 double Tmax_s;
55
56 try {
57
59
68
69
71 }
72 catch(const exception &error) {
74 }
75
77
78 try {
80 }
83 }
84
86
89
92
94
95 for (int counter = 0; inputFile.hasNext(); ++counter) {
96
98
99 const JAHRS* parameters = inputFile.next();
100
102
104
106 data[parameters->
DOMID].push_back(*parameters);
107 }
108 }
109 }
110
118 const double phi = (
JVector3Z_t.getDot(
q1.twist) >= 0.0 ? +1.0 : -1.0) *
q1.twist.getAngle();
120 cout <<
"Heading from detector file: " <<
module->getID() << " " << module->getString() << " " << module->getFloor() << " " << phi/M_PI*180. << " [deg]" << endl;
121 }
122 }
123
125
126
131
133
134 for (map_type::iterator
module =
data.begin();
module != data.end(); ++
module) {
135
136 if (!
module->second.empty()) {
138
140
141 for (buffer_type::const_iterator p =
module->second.begin(); p !=
module->second.end(); ) {
142
144
145 buffer_type::const_iterator q = p;
147
148 for ( ; q != module->second.end() && q->UNIXTIME - p->UNIXTIME <= Tmax_s * 1.0e3; ++q) {
150 }
151
155
158 d.rotate_back(Q);
159
160 const double t1 = p->UNIXTIME * 1.0e-3 + 0.5*Tmax_s;
161
162 ZO[
module->first].put(t1, atan2(u.getDY(), u.getDX()));
163 ZA[
module->first].put(t1, sqrt(u.getDX()*u.getDX() + u.getDY()* u.getDY()));
164 PD[
module->first].put(t1, atan2(d.getDY(), d.getDX()));
166 XO[
module->first].put(t1, atan2(x.getDY(), x.getDX()));
167
168 p = q;
169 }
170 }
171 }
172
173
175
177 const JLocation location = router.getModule(i->first);
179 }
180
182 const JLocation location = router.getModule(i->first);
184 }
185
187 const JLocation location = router.getModule(i->first);
189 }
190
192 const JLocation location = router.getModule(i->first);
194 }
196
197
198 out.Write();
199 out.Close();
200}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
#define MAKE_CSTRING(A)
Make C-string.
Data structure for compass in three dimensions.
JQuaternion3D getQuaternion() const
Get quaternion.
Logical location of module.
int getFloor() const
Get floor number.
int getString() const
Get string number.
Router for direct addressing of module data in detector data structure.
Data structure for a composite optical module.
Data structure for direction in three dimensions.
Data structure for unit quaternion in three dimensions.
Template definition of a multi-dimensional oscillation probability interpolation table.
static JRotation getRotation
Function object to get rotation matrix to go from first to second module.
JDetectorBuilder & getDetectorBuilder()
Get detector builder.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
std::vector< JHitW0 > buffer_type
hits
bool is_valid(const json &js)
Check validity of JSon data.
std::map< int, range_type > map_type
Auxiliary class to map module identifier to AHRS calibration.
Auxiliary data structure to check validity of AHRS data.
long long int UNIXTIME
[ms]
Auxiliary interface for building detector.
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
Auxiliary data structure to build TGraph.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.