74{
78
80
82 typedef JTriggeredFileScanner_t::multi_pointer_type multi_pointer_type;
83
84 JTriggeredFileScanner_t inputFile;
90
91 try {
92
93 JParser<> zap(
"Application for writing DST.");
94
98 zap[
'O'] =
make_field(option,
"bit pattern: " << endl << bits_t()) = 0xFF;
101
102 zap(argc, argv);
103 }
104 catch(const exception& error) {
105 FATAL(error.what() << endl);
106 }
107
108
110
112
114
115 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
116
117 multi_pointer_type ps = inputFile.next();
118
122
123 if (option.
has(CLEAR_MC_HITS)) {
124 event->mc_hits.clear();
125 }
126
127 if (option.
has(CLEAR_MC_TRKS)) {
128
129 vector<Trk>::iterator __end = partition(event->mc_trks.begin(), event->mc_trks.end(), [](
const Trk& trk) { return is_initialstate(trk) || is_muonbundle(trk); });
130
132
134
135 __end = partition(__end, event->mc_trks.end(), [
id](
const Trk& trk) { return is_lepton(trk) && trk.mother_id == id; });
136 }
137
138 event->mc_trks.erase(__end, event->mc_trks.end());
139 }
140
141 if (option.
has(CLEAR_DAQ_HITS)) {
143 }
144
145 if (option.
has(CLEAR_INTERMEDIATE_FITS) ||
146 option.
has(CLEAR_ALL_BUT_BEST_FITS)) {
147
149
150 if (option.
has(CLEAR_ALL_BUT_BEST_FITS) && evt->begin() != __end) {
151 __end = next(evt->begin());
152 }
153
154 if (!keep.empty()) {
155 for (JEvt::iterator i = evt->begin(), __q = __end; i != __q; ++i) {
156 __end = partition(__end, evt->end(), [i, keep](
const JFit& fit) { return i->getHistory().match(fit.getHistory()) && keep.count(fit.getHistory().rbegin()->type) != 0; });
157 }
158 }
159
160 evt->erase(__end, evt->end());
161 }
162
163
164
166
170 }
172
174
176
178}
#define DEBUG(A)
Message macros.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
int getStatus() const
Get status of the fit; negative values should refer to a bad fit.
Utility class to parse command line options.
General purpose class for object reading from a list of file names.
void setCounter(const JTriggerCounter_t counter)
Set trigger counter.
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino.
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
unsigned long long int JTriggerCounter_t
Type definition of trigger counter.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Auxiliary class for handling status.
bool has(const int bit) const
Test PMT status.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
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 class to synchronously read DAQ events and Monte Carlo events (and optionally other events)...
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.