Jpp  17.3.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JTestL1.cc File Reference

Example program to test JTRIGGER::JBuildL1 and JTRIGGER::JBuildL2 hit coincidence building with user data. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <vector>
#include "km3net-dataformat/online/JDAQHit.hh"
#include "JDAQ/JDAQSuperFrameIO.hh"
#include "JDetector/JDetector.hh"
#include "JDetector/JDetectorToolkit.hh"
#include "JDetector/JModuleRouter.hh"
#include "JTrigger/JTriggerParameters.hh"
#include "JTrigger/JTimesliceL1.hh"
#include "JTrigger/JTimesliceRouter.hh"
#include "JTrigger/JSuperFrame1D.hh"
#include "JTrigger/JSuperFrame2D.hh"
#include "JTrigger/JBuildL1.hh"
#include "JTrigger/JBuildL2.hh"
#include "JTrigger/JHitToolkit.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to test JTRIGGER::JBuildL1 and JTRIGGER::JBuildL2 hit coincidence building with user data.

Author
mdejong

Definition in file JTestL1.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 65 of file JTestL1.cc.

66 {
67  using namespace std;
68  using namespace KM3NETDAQ;
69  using namespace JPP;
70 
71  vector<JDAQHit> data;
73  int debug;
74 
75  try {
76 
77  JParser<> zap("Example program to test hit coincidence building with user data."\
78  "\nformat: -u \"(<PMT> <time> <time-over-threshold>)+\"");
79 
80  zap['u'] = make_field(data);
82  zap['d'] = make_field(debug) = 0;
83 
84  zap(argc, argv);
85  }
86  catch(const exception &error) {
87  FATAL(error.what() << endl);
88  }
89 
90  using namespace KM3NETDAQ;
91 
92 
93  setDAQLongprint(true);
94 
95  parameters.set();
96 
97  cout << parameters << endl;
98 
99 
101 
102  const JModule module = getModule<JKM3NeT_t>(1001);
103 
104  detector.push_back(module);
105 
106  const JModuleRouter moduleRouter(detector);
107 
108 
109  typedef double hit_type;
110  typedef JSuperFrame1D<hit_type> JSuperFrame1D_t;
111  typedef JSuperFrame2D<hit_type> JSuperFrame2D_t;
112  typedef JTimeslice <hit_type> JTimeslice_t;
113  typedef JBuildL1 <hit_type> JBuildL1_t;
114  typedef JBuildL2 <hit_type> JBuildL2_t;
115 
116  const JBuildL1_t buildL1(parameters);
117  const JBuildL2_t buildL2(parameters.L2);
118 
119  JTimesliceRouter timesliceRouter(parameters.numberOfBins);
120 
121 
122  JDAQTimeslice timeslice;
123 
124  JDAQSuperFrame frame(JDAQSuperFrameHeader(timeslice.getDAQChronometer(), module.getID()));
125 
126  frame.add(data.size(), data.data());
127 
128  timeslice.push_back(frame);
129 
130  cout << timeslice << endl;
131 
132  timesliceRouter.configure(timeslice);
133 
134  const JSuperFrame2D_t& buffer = JSuperFrame2D_t::demultiplex(timeslice[0], module);
135 
136  JTimeslice_t timesliceL0;
137  JTimeslice_t timesliceL1;
138  JTimeslice_t timesliceL2;
139 
140  timesliceL0.push_back(JSuperFrame1D_t(buffer));
141  timesliceL1.push_back(JSuperFrame1D_t(JDAQChronometer(), module.getID(), module.getPosition()));
142  timesliceL2.push_back(JSuperFrame1D_t(JDAQChronometer(), module.getID(), module.getPosition()));
143 
144  buildL1(buffer, back_inserter(timesliceL1[0]));
145  buildL2(buffer, timesliceL1[0], back_inserter(timesliceL2[0]));
146 
147  print(cout, "Trigger L0", timesliceL0);
148  print(cout, "Trigger L1", timesliceL1);
149  print(cout, "Trigger L2", timesliceL2);
150 
151  JTimesliceL1<JDAQTimesliceL1> outputL1(timesliceL1, timesliceRouter, moduleRouter, parameters.TMaxLocal_ns);
152  JTimesliceL1<JDAQTimesliceL2> outputL2(timesliceL2, timesliceRouter, moduleRouter, parameters.L2.TMaxLocal_ns);
153 
154  cout << outputL1;
155  cout << outputL2;
156 }
Utility class to parse command line options.
Definition: JParser.hh:1517
Data structure for a composite optical module.
Definition: JModule.hh:68
Router for fast addressing of hits in KM3NETDAQ::JDAQTimeslice data structure as a function of the op...
Detector data structure.
Definition: JDetector.hh:89
Router for direct addressing of module data in detector data structure.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition: JParser.hh:83
1-dimensional frame with time calibrated data from one optical module.
void setDAQLongprint(const bool option)
Set DAQ print option.
Definition: JDAQPrint.hh:28
Template L2 builder.
Definition: JBuildL2.hh:45
Detector file.
Definition: JHead.hh:226
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1993
Data time slice.
print
Definition: JConvertDusj.sh:44
Template L1 hit builder.
Definition: JBuildL1.hh:85
#define FATAL(A)
Definition: JMessage.hh:67
Auxiliary class to build JDAQTimeslice for L1 timeslice.
Definition: JTimesliceL1.hh:36
2-dimensional frame with time calibrated data from one optical module.
do set_variable DETECTOR_TXT $WORKDIR detector
Data frame of one optical module.
int debug
debug level
Time slice with calibrated data.
Definition: JTimeslice.hh:26