50 int main(
int argc,
char **argv)
56 JLimit_t& numberOfEvents = inputFile.getLimit();
65 JParser<> zap(
"Example program to test hit coincidence building with Monte Carlo events.");
69 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
77 catch(
const exception &error) {
78 FATAL(error.what() << endl);
104 TProfile hn(
"hn", NULL, 31, 0.5, +31.5);
105 TProfile hc(
"hc", NULL, 21, -1.05, +1.05);
106 TProfile ht(
"ht", NULL, 20, 0.5, +20.5);
111 typedef double hit_type;
118 JSuperFrame2D_t buffer;
123 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
125 Evt*
event = in.next();
127 const int frame_index = 1;
135 for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
137 if (moduleRouter.
hasModule(super_frame->getModuleID())) {
143 buffer(*super_frame, module);
147 buildL1(buffer, back_inserter(dataL1));
149 if (!dataL1.empty()) {
153 JFrameL1_t d1(dataL1);
156 for (
int i = 1; i <= hn.GetNbinsX(); ++i) {
162 buildL2(buffer, d1, back_inserter(d2));
164 hn.Fill((
double) buildL2.
numberOfHits, (
double) d2.size() / (double) dataL1.size());
171 if (!dataL1.empty()) {
175 JFrameL1_t d1(dataL1);
178 for (
int i = 1; i <= hc.GetNbinsX(); ++i) {
180 buildL2.
ctMin = hc.GetBinCenter(i);
184 buildL2(buffer, d1, back_inserter(d2));
186 hc.Fill(buildL2.
ctMin, (
double) d2.size() / (double) dataL1.size());
193 if (!dataL1.empty()) {
197 JFrameL1_t d1(dataL1);
200 for (
int i = ht.GetNbinsX(); i != 0; --i) {
206 buildL2(buffer, d1, back_inserter(d2));
208 ht.Fill(buildL2.
TMaxLocal_ns, (
double) d2.size() / (double) dataL1.size());