63 friend inline std::ostream&
operator<<(std::ostream& out,
const JTrack& track)
67 out <<
FIXED(8,2) << track.getX() <<
' '
68 <<
FIXED(8,2) << track.getY() <<
' '
69 <<
FIXED(8,2) << track.getZ() <<
' '
70 <<
FIXED(7,3) << track.getDX() <<
' '
71 <<
FIXED(7,3) << track.getDY() <<
' '
72 <<
FIXED(7,3) << track.getDZ() <<
' '
73 <<
FIXED(8,1) << track.getT();
83 int main(
int argc,
char **argv)
87 using namespace KM3NETDAQ;
90 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
92 JParallelFileScanner_t inputFile;
100 JParser<> zap(
"Auxiliary program to print fit results.");
103 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
110 catch(
const exception& error) {
111 FATAL(error.what() << endl);
116 const int WIDTH = 16;
123 center = get<JPosition3D>(
getHeader(inputFile));
124 }
catch(
const exception& error) {}
127 while (inputFile.hasNext()) {
129 cout <<
"event: " << setw(10) << inputFile.getCounter() << endl;
131 multi_pointer_type ps = inputFile.next();
142 cout <<
"trigger: " << setw(10) << tev->
getCounter() <<
' '
145 if (mc.getEntries() != 0) {
159 cout <<
LEFT(
WIDTH) <<
"neutrino" << right <<
' ' << ta << endl;
164 track = find_if(event->mc_trks.begin(),
event->mc_trks.end(),
is_muon);
166 if (track != event->mc_trks.end()) {
172 cout <<
LEFT(
WIDTH) <<
"muon" << right <<
' ' << ta << endl;
175 track = find_if(event->mc_trks.begin(),
event->mc_trks.end(),
is_electron);
177 if (track != event->mc_trks.end()) {
183 cout <<
LEFT(
WIDTH) <<
"electron" << right <<
' ' << ta << endl;
188 cout <<
"number of fits " << setw(4) << right << evt->size() << endl;
190 for (
size_t i = 0; i != min(evt->size(), numberOfFits); ++i) {
192 const JFit& fit = (*evt)[i];
198 cout <<
LEFT(
WIDTH) <<
"fit" << right <<
' ' << tb <<
' ' << fit.
getQ() <<
' ' << fit.
getE() << endl;
bool is_electron(const Trk &track)
Test whether given track is a (anti-)electron.
Auxiliary data structure for alignment of data.
Utility class to parse command line options.
JDAQUTCExtended getTimesliceStart() const
Get start of timeslice.
ROOT TTree parameter settings.
JTrack3E getTrack(const Trk &track)
Get track.
double putTime() const
Get Monte Carlo minus DAQ/trigger hit time.
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino.
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon.
General purpose sorter of fit results.
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)...
Auxiliary data structure for floating point format specification.
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
Data structure for track fit results.
Auxiliary class for defining the range of iterations of objects.
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Parallel scanning of objects from a single file or multiple files according a format that follows fro...
Reconstruction type dependent comparison of track quality.
General purpose messaging.
double getQ() const
Get quality.
Data structure for set of track fit results.
Utility class to parse command line options.
Auxiliary class to convert DAQ/trigger hit time to/from Monte Carlo hit time.
Data structure for position in three dimensions.
const JLimit & getLimit() const
Get limit.
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
const JHistory & getHistory() const
Get history.
JTriggerCounter_t getCounter() const
Get trigger counter.
double getE() const
Get energy.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
int main(int argc, char *argv[])