69   using namespace KM3NETDAQ;
 
   79   JCalibration_t         calibrationFile;
 
   88     JParser<> zap(
"Auxiliary program to convert fit results to Evt format.\ 
   89                   \nThe option -L corresponds to the name of a shared library \ 
   90                   \nand function so to rearrange the order of fit results.");
 
   94     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
  105   catch(
const exception& error) {
 
  106     FATAL(error.what() << endl);
 
  109   if (detectorFile == 
"" && !calibrationFile.empty()) {
 
  110     FATAL(
"Missing detector file." << endl);
 
  114   typedef JParallelFileScanner_t::multi_pointer_type                multi_pointer_type;
 
  118   if (detectorFile != 
"") {
 
  127   unique_ptr<JDynamics> dynamics;
 
  133     dynamics->load(calibrationFile);
 
  135   catch(
const exception& error) {
 
  136     if (!calibrationFile.empty()) {
 
  152   } 
catch(
const exception& error) {}
 
  160     buffer.DAQ.livetime_s = 
getLivetime(inputFile.begin(), inputFile.end());
 
  163     copy(buffer, header);
 
  166   if (detectorFile != 
"") {
 
  168     buffer.calibration.buffer = (dynamics ? calibration::dynamical() : 
calibration::statical());
 
  171     copy(buffer, header);
 
  185     STATUS(
"Processing: " << *
i << endl);
 
  187     JParallelFileScanner_t 
in(*
i);
 
  190     in.setLimit(inputFile.getLimit());
 
  200       center    = get<Vec>(head);
 
  201       mc_run_id = head.start_run.run_id;
 
  203     } 
catch(
const exception& error) {}
 
  206     while (
in.hasNext()) {
 
  208       STATUS(
"event: " << setw(10) << 
in.getCounter() << 
'\r'); 
DEBUG(endl);
 
  210       multi_pointer_type ps = 
in.next();
 
  216         dynamics->update(*tev);                                                      
 
  219       JFIT::JEvt::iterator __end = evt->end();
 
  221       if (numberOfFits > 0) {
 
  222         advance(__end = evt->begin(), min(numberOfFits, evt->size()));
 
  226         partial_sort(evt->begin(), __end, evt->end(), 
qualitySorter);
 
  231       if (mc.getEntries() != 0) {
 
  251       if (!pmt_router->empty()) {                                                    
 
  255           if (pmt_router.hasPMT(
i->pmt_id)) {
 
  257             const JPMTAddress    address = pmt_router.getAddress(
i->pmt_id);
 
  259             const JPMT&          pmt     = pmt_router.getPMT(address);
 
  261             i->dom_id     = 
id.getID();
 
  262             i->channel_id = 
id.getPMTAddress();
 
  268             FATAL(
"Missing PMT" << 
i->pmt_id << endl);
 
  273       if (!mod_router->empty()) {                                                    
 
  277           if (mod_router.hasModule(
i->dom_id)) {
 
  284             const JPMT& pmt = mod_router.getPMT(
id);
 
  294             i->tot    = hit.getToT();
 
  295             i->a      = cpu.getNPE(
i->tot);
 
  299             FATAL(
"Missing module " << 
i->dom_id << endl);
 
  304       struct : 
public set<JUUID> {
 
  306         inline int get_index(
const JUUID& element)
 const 
  308           const_iterator 
i = this->find(element);
 
  310           if (i != this->end())
 
  317       for (JFIT::JEvt::const_iterator fit = evt->begin(); fit != __end; ++fit) {
 
  318         uuid.insert(fit->getUUID());
 
  321       for (JFIT::JEvt::const_iterator fit = evt->begin(); fit != __end; ++fit) {     
 
  325         trk.
id        = uuid.get_index(fit->getUUID());
 
  326         trk.
pos       = 
Vec(fit->getX(),  fit->getY(),  fit->getZ());
 
  327         trk.
dir       = 
Vec(fit->getDX(), fit->getDY(), fit->getDZ());
 
  330         trk.
lik       = fit->getQ();
 
  334         if (fit->hasParentUUID()) {
 
  335           trk.
mother_id = uuid.get_index(fit->getParentUUID());
 
  338         for (JHistory::const_iterator i = fit->getHistory().begin(); i != fit->getHistory().end(); ++
i) {
 
  342         for (
int i = 0; i != fit->getN(); ++
i) {
 
  343           trk.
fitinf.push_back(fit->getW(i));
 
  348         out.
trks.push_back(trk);
 
  351       out.
id = ++number_of_events;
 
Router for direct addressing of PMT data in detector data structure. 
 
Utility class to parse command line options. 
 
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary. 
 
static void setSlewing(const bool slewing)
Set slewing option. 
 
double t
track time [ns] (when the particle is at pos ) 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
const JCalibration & getCalibration() const 
Get calibration. 
 
Router for direct addressing of module data in detector data structure. 
 
General purpose sorter of fit results. 
 
*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...
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Long64_t counter_type
Type definition for counter. 
 
double getTime(const Hit &hit)
Get true time of hit. 
 
double E
Energy [GeV] (either MC truth or reconstructed) 
 
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results. 
 
JAANET::calibration calibration
 
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header. 
 
int mother_id
MC id of the parent particle. 
 
Auxiliary class for defining the range of iterations of objects. 
 
bool slewing
time slewing of analogue signal 
 
The Vec class is a straightforward 3-d vector, which also works in pyroot. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
int mc_run_id
MC run identifier. 
 
Auxiliary class for recursive type list generation. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
int getID() const 
Get identifier. 
 
Data structure for PMT geometry, calibration and status. 
 
JPosition3D getPosition(const Vec &pos)
Get position. 
 
std::vector< double > fitinf
place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv 
 
Auxiliary class for map of PMT parameters. 
 
static const int TRK_ST_UNDEFINED
status was not defined for this MC track (all reco tracks have this value) 
 
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter. 
 
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
 
int status
MC status code, see km3net-dataformat/definitions/trkmembers.csv for values. 
 
PMT analogue signal processor. 
 
Dynamic detector calibration. 
 
static const int TRK_ST_FINALSTATE
for MC: the particle must be processed by detector simulation ('track_in' tag in evt files)...
 
Vec pos
postion [m] of the track at time t 
 
Address of PMT in detector data structure. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
Data structure for set of track fit results. 
 
std::vector< Trk > trks
list of reconstructed tracks (can be several because of prefits,showers, etc). 
 
double getLivetime(const std::string &file_name)
Get data taking live time. 
 
std::vector< int > rec_stages
list of identifyers of succesfull fitting stages resulting in this track 
 
General purpose class for object reading from a list of file names. 
 
std::vector< double > error_matrix
(NxN) error covariance matrix for fit parameters (stored as linear vector) 
 
double lik
likelihood or lambda value (for aafit, lambda) 
 
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
std::vector< Hit > mc_hits
MC: list of MC truth hits. 
 
static const int JPP_RECONSTRUCTION_TYPE
KM3NeT Data Definitions v3.2.0-6-ge33aafe https://git.km3net.de/common/km3net-dataformat. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to. 
 
int id
offline event identifier 
 
const JLimit & getLimit() const 
Get limit. 
 
Data structure for PMT parameters. 
 
std::vector< Hit > hits
list of hits 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower. 
 
JTriggerCounter_t getCounter() const 
Get trigger counter. 
 
std::vector< Trk > mc_trks
MC: list of MC truth tracks. 
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event. 
 
#define DEBUG(A)
Message macros. 
 
int rec_type
identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction...