74 using namespace KM3NETDAQ;
78 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
83 JParallelFileScanner_t inputFile;
87 JCalibration_t calibrationFile;
95 JParser<> zap(
"Program to perform PDF fit of muon trajectory to data.");
102 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
109 catch(
const exception& error) {
110 FATAL(error.what() << endl);
129 unique_ptr<JDynamics> dynamics;
135 dynamics->load(calibrationFile);
137 catch(
const exception& error) {
138 if (!calibrationFile.empty()) {
159 JRegressor_t fit(pdfFile);
170 while (inputFile.hasNext()) {
172 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
174 multi_pointer_type ps = inputFile.next();
180 dynamics->update(*tev);
201 buildL0(*tev, router,
true, back_inserter(data));
204 for (JFIT::JEvt::iterator track = cp.begin(); track != cp.end(); ++track) {
213 for (buffer_type::const_iterator i = data.begin(); i != data.end(); ++i) {
220 top.insert(hit.getModuleIdentifier());
226 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
228 const size_t count = top.count(i->getID());
242 data.push_back(
JNPEHit(fit.getNPE(module.begin(), module.end(),
parameters.R_Hz), count));
251 double npe_total = 0.0;
261 if (track_start == data. end()) { track_start = data. begin(); }
262 if (track_end == data.rend()) { track_end = data.rbegin(); }
264 Zmin = track_start->getZ();
265 Zmax = track_end ->getZ();
269 if (i->getZ() <= 0.0) {
273 npe_total += i->getYA();
280 FIXED(6,4) << i->getY0() <<
' ' <<
281 FIXED(6,4) << i->getYA() <<
' ' <<
282 setw(1) << i->getN() <<
' ' <<
283 FIXED(6,4) << i->getP() << endl);
286 DEBUG(
" --> " <<
FIXED(6,1) << Zmin <<
' ' <<
FIXED(6,1) << Zmax << endl);
295 out.rbegin()->setW(track->getW());
305 for (JFIT::JEvt::iterator i = out.begin(); i != out.end(); ++i) {
315 copy(in->begin(), in->end(), back_inserter(out));
static const int JMUONSTART
Utility class to parse command line options.
static const int JSTART_NPE_MIP_TOTAL
number of photo-electrons along the whole track from JStart.cc
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
Data structure for a composite optical module.
double position
coverage of detector by available position calibration [0,1]
static JDetectorMechanics getMechanics
Function object to get string mechanics.
Regressor function object for JEnergy fit.
Router for direct addressing of module data in detector data structure.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
General purpose class for parallel reading of objects from a single file or multiple files...
Template specialisation of class JModel to match hit with muon trajectory along z-axis.
Auxiliary class to test history.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Auxiliary data structure for floating point format specification.
JFit & add(const int type)
Add event to history.
void transform(const JRotation3D &R, const JVector3D &pos)
Transform position.
static const int JSTART_NPE_MIP
number of photo-electrons up to the barycentre from JStart.cc
Data structure for track fit results with history and optional associated values. ...
double orientation
coverage of detector by available orientation calibration [0,1]
Auxiliary class for defining the range of iterations of objects.
static const int JCOPY_Z_M
true vertex position along track [m] from JCopy.cc
Data structure for fit parameters.
JDirection3D getDirection(const Vec &dir)
Get direction.
Auxiliary class for recursive type list generation.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary class for start or end point evaluation.
Auxiliary class to test history.
JPosition3D getPosition(const Vec &pos)
Get position.
Auxiliary class for simultaneously handling light yields and response of PMT.
void load(const std::string &file_name)
Load mechanical model parameters from file.
then usage $script[distance] fi case set_variable R
Data structure for coverage of dynamic calibrations.
static const int JPP_COVERAGE_ORIENTATION
coverage of dynamic orientation calibration from any Jpp application
Dynamic detector calibration.
const double getSpeedOfLight()
Get speed of light.
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
Data structure for set of track fit results.
General purpose class for object reading from a list of file names.
void transform(const JRotation3D &R, const JVector3D &pos)
Transformation of geometry (see method JGEOMETRY3D::JPosition3D::transform(const JRotation3D&, const JVector3D&)).
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
Data structure for fit of straight line paralel to z-axis.
void copy(const Head &from, JHead &to)
Copy header from from to to.
Reduced data structure for L1 hit.
Object reading from a list of files.
Data structure for position in three dimensions.
const JLimit & getLimit() const
Get limit.
do set_variable DETECTOR_TXT $WORKDIR detector
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
JPosition3D & rotate(const JRotation3D &R)
Rotate.
void select(const JSelector_t &selector)
Select fits.
bool qualitySorter(const JRECONSTRUCTION::JFit &first, const JRECONSTRUCTION::JFit &second)
Comparison of fit results.
static const int JPP_COVERAGE_POSITION
coverage of dynamic position calibration from any Jpp application