10 #include "evt/Head.hh"
12 #include "evt/io_ascii.hh"
13 #include "evt/io_jpp.hh"
52 JTrack(
const JTrack3E& track) :
64 friend inline std::ostream&
operator<<(std::ostream& out,
const JTrack& track)
68 out <<
FIXED(8,2) << track.getX() <<
' '
69 <<
FIXED(8,2) << track.getY() <<
' '
70 <<
FIXED(8,2) << track.getZ() <<
' '
71 <<
FIXED(7,3) << track.getDX() <<
' '
72 <<
FIXED(7,3) << track.getDY() <<
' '
73 <<
FIXED(7,3) << track.getDZ() <<
' '
74 <<
FIXED(8,1) << track.getT();
84 int main(
int argc,
char **argv)
90 typedef JParallelFileScanner< JTypeList<JDAQEvent, JEvt> > JParallelFileScanner_t;
91 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
93 JParallelFileScanner_t inputFile;
95 JQualitySorter quality_sorter;
101 JParser<> zap(
"Auxiliary program to print fit results.");
104 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
111 catch(
const exception& error) {
112 FATAL(error.what() << endl);
117 const int WIDTH = 16;
119 JTreeScanner<Evt> mc(inputFile);
121 JPosition3D center(0,0,0);
124 center = get<JPosition3D>(
getHeader(inputFile));
125 }
catch(
const exception& error) {}
128 while (inputFile.hasNext()) {
130 cout <<
"event: " << setw(10) << inputFile.getCounter() << endl;
132 multi_pointer_type ps = inputFile.next();
137 if (quality_sorter.is_valid()) {
138 sort(evt->begin(), evt->end(), quality_sorter);
141 JTimeConverter converter;
144 if (mc.getEntries() != 0) {
150 converter = JTimeConverter(*event, *tev);
158 cout <<
LEFT(
WIDTH) <<
"neutrino" <<
' ' << ta << endl;
163 if (track != event->mc_trks.end()) {
169 cout <<
LEFT(
WIDTH) <<
"muon" <<
' ' << ta << endl;
174 cout <<
"number of fits " << setw(4) << right << evt->size() << endl;
176 for (
size_t i = 0; i != min(evt->size(), numberOfFits); ++i) {
178 const JFit& fit = (*evt)[i];
182 tb.sub(converter.putTime());
184 cout <<
LEFT(
WIDTH) <<
"fit" <<
' ' << tb <<
' ' << fit.getQ() <<
' ' << fit.getE() << endl;
185 cout << fit.getHistory() << endl;