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);
102 TProfile hn(
"hn", NULL, 31, 0.5, +31.5);
103 TProfile hc(
"hc", NULL, 21, -1.05, +1.05);
104 TProfile ht(
"ht", NULL, 20, 0.5, +20.5);
116 JSuperFrame2D_t buffer;
121 STATUS(
"event: " << setw(10) << in.getCounter() <<
'\r');
DEBUG(endl);
123 Evt*
event = in.next();
125 const int frame_index = 1;
133 for (JDAQTimeslice::const_iterator super_frame = timeslice.begin(); super_frame != timeslice.end(); ++super_frame) {
135 if (moduleRouter.
hasModule(super_frame->getModuleID())) {
141 buffer(*super_frame, module);
145 buildL1(buffer, back_inserter(dataL1));
147 if (!dataL1.empty()) {
151 JFrameL1_t d1(dataL1);
154 for (
int i = 1; i <= hn.GetNbinsX(); ++i) {
160 buildL2(buffer, d1, back_inserter(d2));
162 hn.Fill((
double) buildL2.
numberOfHits, (
double) d2.size() / (
double) dataL1.size());
169 if (!dataL1.empty()) {
173 JFrameL1_t d1(dataL1);
176 for (
int i = 1; i <= hc.GetNbinsX(); ++i) {
178 buildL2.
ctMin = hc.GetBinCenter(i);
182 buildL2(buffer, d1, back_inserter(d2));
184 hc.Fill(buildL2.
ctMin, (
double) d2.size() / (
double) dataL1.size());
191 if (!dataL1.empty()) {
195 JFrameL1_t d1(dataL1);
198 for (
int i = ht.GetNbinsX(); i != 0; --i) {
204 buildL2(buffer, d1, back_inserter(d2));
206 ht.Fill(buildL2.
TMaxLocal_ns, (
double) d2.size() / (
double) dataL1.size());
Data structure for detector geometry and calibration.
Basic data structure for L0 hit.
Basic data structure for L1 hit.
General purpose messaging.
#define DEBUG(A)
Message macros.
Direct access to module in detector data structure.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
int main(int argc, char **argv)
ROOT TTree parameter settings of various packages.
Basic data structure for time and time over threshold information of hit.
void reset(JK40Simulator *k40Simulator)
Reset K40 simulator.
Router for direct addressing of module data in detector data structure.
const JModuleAddress & getAddress(const JObjectID &id) const
Get address of module.
bool hasModule(const JObjectID &id) const
Has module.
Data structure for a composite optical module.
Auxiliary class for map of PMT parameters.
Utility class to parse command line options.
virtual bool hasNext() override
Check availability of next element.
2-dimensional frame with time calibrated data from one optical module.
Data structure for UTC time.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
KM3NeT DAQ data structures and auxiliaries.
double getFrameTime()
Get frame time duration.
double getTimeOfFrame(const int frame_index)
Get start time of frame in ns since start of run for a given frame index.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
double mc_t
MC: time where the mc-event was put in the timeslice, since start of run (offset+frameidx*timeslice_d...
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.
Auxiliary data structure for L1 build parameters.
Data structure for L2 parameters.
double ctMin
minimal cosine space angle between PMT axes
double TMaxLocal_ns
maximal time difference [ns]
int numberOfHits
minimal number of hits
Timeslice with Monte Carlo event.