76{
80
82 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
83
85 JLimit_t& numberOfEvents = inputFile.getLimit();
90
91 try {
92
94
96
103
105 }
106 catch(const exception& error) {
108 }
109
110
111
112
115 }
116
118
119 try {
121 }
124 }
125
127
129
131
133
136
138
139 while (inputFile.hasNext()) {
140
142
143 multi_pointer_type ps = inputFile.next();
144
147
149
150 summary.update(*
tev);
151
153
155
157
158 for (JEvt::const_iterator shower = in->begin(); shower != in->end(); ++shower) {
159
161
164
166
167
168
170
171 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
172
174
176
179 }
180 }
181
182
183
184 sort(
data.begin(),
data.end(), compare);
185
187
189 <<
FIXED(12,3) <<
vx.getX() <<
' '
190 <<
FIXED(12,3) <<
vx.getY() <<
' '
191 <<
FIXED(12,3) <<
vx.getZ() <<
' '
192 <<
FIXED(12,3) <<
vx.getT() <<
' '
193 <<
FIXED( 8,3) << shower->getQ() <<
endl);
194
195 double Q = 0.0;
196
197 for (JDataW0_t::const_iterator
hit =
data.begin();
hit != __end; ++
hit) {
198
201
202 const double x =
hit->getX() -
vx.getX();
203 const double y =
hit->getY() -
vx.getY();
204 const double z =
hit->getZ() -
vx.getZ();
205 const double cd = z/D.getLength();
206
208
210
212
213 const double theta =
u.getTheta();
214 const double phi = fabs(
u.getPhi());
215
216 const double E = shower->getE();
217 const double dt = T_ns.constrain(
hit->getT() - t1);
218
219 double H1 = npe.calculate(E, D.getLength(),
cd, theta, phi);
220 double H0 =
hit->getR() * 1e-9 * T_ns.getLength();
221
222 double Vmax_npe = 20.0;
223 if (
H1 >= Vmax_npe) {
225 }
226
228
230
233 <<
FIXED(12,1) << E <<
' '
234 <<
FIXED( 9,1) << R <<
' '
235 <<
FIXED( 6,4) << theta <<
' '
236 <<
FIXED( 6,4) << phi <<
' '
239
241 }
242
244 }
245 }
247}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Router for direct addressing of module data in detector data structure.
Data structure for vertex fit.
Data structure for direction in three dimensions.
Data structure for position in three dimensions.
JPosition3D & rotate(const JRotation3D &R)
Rotate.
Template definition of a multi-dimensional oscillation probability interpolation table.
Auxiliary class for a hit with background rate value.
File router for fast addressing of summary data.
JDirection3D getDirection(const Vec &dir)
Get direction.
JPosition3D getPosition(const Vec &pos)
Get position.
double getQuality(const double chi2, const int NDF)
Get quality of fit.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
double getChi2(const double P)
Get chi2 corresponding to given probability.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
const double getInverseSpeedOfLight()
Get inverse speed of light.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
KM3NeT DAQ data structures and auxiliaries.
Auxiliary data structure for floating point format specification.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Data structure for fit parameters.
double DMax_m
maximal distance to optical module [m]
double TMax_ns
maximum time for local coincidences [ns]
double R_Hz
default rate [Hz]
double TMin_ns
minimum time for local coincidences [ns]
size_t numberOfPrefits
number of prefits
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.
Auxiliary data structure for shower PDF.