50 int main(
int argc,
char **argv)
58 typedef JParallelFileScanner_t::multi_pointer_type multi_pointer_type;
61 JParallelFileScanner_t inputFile;
67 size_t numberOfPrefits;
74 JParser<> zap(
"Program to determine veto of muon trajectory.");
79 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
80 zap[
'R'] =
make_field(roadWidth_m) = numeric_limits<double>::max();
89 catch(
const exception& error) {
90 FATAL(error.what() << endl);
113 VS += vs->getLength() * 1.0e-9;
121 while (inputFile.hasNext()) {
123 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
125 multi_pointer_type ps = inputFile.next();
131 JEvt::iterator __end = evt->end();
137 if (evt->begin() != __end) {
139 copy(evt->begin(), __end, back_inserter(out));
141 if (numberOfPrefits > 0) {
142 advance(__end = evt->begin(), min(numberOfPrefits, out.size()));
145 partial_sort(evt->begin(), __end, evt->end(),
qualitySorter);
147 __end = partition(evt->begin(), __end,
JHistory::is_event(evt->begin()->getHistory()));
152 buildL0(*tev, moduleRouter,
true, back_inserter(dataL0));
155 for (JEvt::iterator track = evt->begin(); track != __end; ++track) {
164 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
170 bool is_veto =
false;
172 if (tz.getDistance(hit) <= roadWidth_m) {
174 const double t1 = hit.
getT() - tz.getT(hit);
190 for (JDetector::const_iterator module =
detector.begin(); module !=
detector.end(); ++module) {
196 if (tz.getDistance(pos) <= roadWidth_m) {
198 for (
unsigned int i = 0; i != module->size(); ++i) {
203 count += top.count(
id);
210 out.rbegin()->setW(track->getW());