68 friend inline std::ostream&
operator<<(std::ostream& out,
const JTrack& track)
72 out <<
FIXED(8,2) << track.getX() <<
' '
73 <<
FIXED(8,2) << track.getY() <<
' '
74 <<
FIXED(8,2) << track.getZ() <<
' '
75 <<
FIXED(7,4) << track.getDX() <<
' '
76 <<
FIXED(7,4) << track.getDY() <<
' '
77 <<
FIXED(7,4) << track.getDZ() <<
' '
78 <<
FIXED(10,1) << track.getT() <<
' '
85 static const char*
const MONTECARLO =
"MonteCarlo";
86 static const char*
const HISTORY =
"history";
92int main(
int argc,
char **argv)
99 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
101 JParallelFileScanner_t inputFile;
111 JParser<> zap(
"Auxiliary program to print fit results.");
123 catch(
const exception& error) {
124 FATAL(error.what() << endl);
128 const int WIDTH = 16;
136 }
catch(
const exception& error) {}
139 while (inputFile.hasNext()) {
141 cout <<
"event: " << setw(10) << inputFile.getCounter() << endl;
143 multi_pointer_type ps = inputFile.next();
154 cout <<
"trigger: " << setw(10) << tev->
getCounter() <<
' '
157 if (mc.getEntries() != 0) {
165 if (option.count(MONTECARLO) != 0) {
173 cout <<
LEFT(
WIDTH) <<
"neutrino" << right <<
' ' << ta << endl;
177 for (vector<Trk>::const_iterator i = event->mc_trks.begin(); i != event->mc_trks.end(); ++i) {
185 is_hadron (*i) ?
"hadron" :
"other") << right <<
' ' << ta << endl;
191 cout <<
"number of fits " << setw(4) << right << evt->size() << endl;
193 for (
size_t i = 0; i != min(evt->size(), numberOfFits); ++i) {
195 const JFit& fit = (*evt)[i];
201 cout <<
LEFT(
WIDTH) <<
"fit" << right <<
' '
203 <<
FIXED(7,2) << fit.getQ() <<
' '
204 << setw(2) << fit.getHistory().size() <<
'/' << fit.getStatus();
206 for (
const auto& key : keys) {
212 for (
size_t row = 0; row != fit.getDimensionOfErrorMatrix(); ++row) {
213 for (
size_t col = 0; col <= row; ++col) {
214 cout <<
' ' <<
SCIENTIFIC(12,3) << fit.getV(row,col);
219 if (option.count(HISTORY) != 0) {
220 cout << fit.getHistory() << endl;
General purpose messaging.
Parallel scanning of objects from a single file or multiple files according a format that follows fro...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
int main(int argc, char **argv)
Auxiliary program to print fit results;.
I/O formatting auxiliaries.
ROOT TTree parameter settings of various packages.
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
Utility class to parse command line options.
General purpose class for parallel reading of objects from a single file or multiple files.
Template definition for direct access of elements in ROOT TChain.
JDAQUTCExtended getTimesliceStart() const
Get start of timeslice.
JTriggerCounter_t getCounter() const
Get trigger counter.
Auxiliary class to convert DAQ hit time to/from Monte Carlo hit time.
double putTime() const
Get Monte Carlo time minus DAQ/trigger time.
JTrack3E getTrack(const Trk &track)
Get track.
bool is_electron(const Trk &track)
Test whether given track is a (anti-)electron.
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino.
JPosition3D getPosition(const Vec &pos)
Get position.
bool is_muon(const Trk &track)
Test whether given track is a (anti-)muon.
Vec getOffset(const JHead &header)
Get offset.
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
bool is_hadron(const Trk &track)
Test whether given track is a hadron.
Auxiliary classes and methods for 3D geometrical objects and operations.
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JRECONSTRUCTION::JWeight getWeight
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
KM3NeT DAQ data structures and auxiliaries.
JWriter & operator<<(JWriter &out, const JDAQChronometer &chronometer)
Write DAQ chronometer to output.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Auxiliary data structure for floating point format specification.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
General purpose sorter of fit results.
Auxiliary class for defining the range of iterations of objects.
const JLimit & getLimit() const
Get limit.
static counter_type max()
Get maximum counter value.
Auxiliary data structure for floating point format specification.
The Vec class is a straightforward 3-d vector, which also works in pyroot.
Auxiliary data structure for alignment of data.
Reconstruction type dependent comparison of track quality.
Auxiliary include file for time conversion between DAQ/trigger hit and Monte Carlo hit.