3#define R__DICTIONARY_FILENAME G__KM3NeTROOT
4#define R__NO_DEPRECATION
13#include "ROOT/RConfig.hxx"
15#include "TDictAttributeMap.h"
16#include "TInterpreter.h"
19#include "TMemberInspector.h"
20#include "TInterpreter.h"
21#include "TVirtualMutex.h"
30#include "TFileMergeInfo.h"
32#include "TCollectionProxyInfo.h"
35#include "TDataMember.h"
38#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQ.hh"
39#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQAbstractPreamble.hh"
40#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQChronometer.hh"
41#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQClock.hh"
42#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQDataTypes.hh"
43#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQEvent.hh"
44#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQEventHeader.hh"
45#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQException.hh"
46#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQFrame.hh"
47#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQFrameStatus.hh"
48#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQHeader.hh"
49#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQHit.hh"
50#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQKeyHit.hh"
51#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQModuleIdentifier.hh"
52#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQPMTIdentifier.hh"
53#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQPreamble.hh"
54#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQPrint.hh"
55#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQRoot.hh"
56#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQSummaryFrame.hh"
57#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQSummaryslice.hh"
58#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQSummarysliceHeader.hh"
59#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQSuperFrame.hh"
60#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQSuperFrameHeader.hh"
61#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQTimeslice.hh"
62#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQTimesliceHeader.hh"
63#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQTriggerCounter.hh"
64#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQTriggerMask.hh"
65#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQTriggeredHit.hh"
66#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/online/JDAQUTCExtended.hh"
67#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/AAObject.hh"
68#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Evt.hh"
69#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Exception.hh"
70#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Head.hh"
71#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Hit.hh"
72#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/MultiHead.hh"
73#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Trk.hh"
74#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/Vec.hh"
75#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/io_ascii.hh"
76#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/offline/io_online.hh"
77#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/tools/multiplicity.hh"
78#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/tools/reconstruction.hh"
79#include "/builds/common/jpp/externals/km3net-dataformat/build/km3net-dataformat/tools/time_converter.hh"
84namespace std {}
using namespace std;
98 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQAbstractPreamble >(
nullptr);
99 static ::ROOT::TGenericClassInfo
100 instance(
"KM3NETDAQ::JDAQAbstractPreamble", ::KM3NETDAQ::JDAQAbstractPreamble::Class_Version(),
"", 306,
102 &::KM3NETDAQ::JDAQAbstractPreamble::Dictionary, isa_proxy, 17,
131 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQUTCExtended >(
nullptr);
132 static ::ROOT::TGenericClassInfo
133 instance(
"KM3NETDAQ::JDAQUTCExtended", ::KM3NETDAQ::JDAQUTCExtended::Class_Version(),
"km3net-dataformat/online/JDAQUTCExtended.hh", 22,
135 &::KM3NETDAQ::JDAQUTCExtended::Dictionary, isa_proxy, 4,
163 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQChronometer >(
nullptr);
164 static ::ROOT::TGenericClassInfo
165 instance(
"KM3NETDAQ::JDAQChronometer", ::KM3NETDAQ::JDAQChronometer::Class_Version(),
"", 381,
167 &::KM3NETDAQ::JDAQChronometer::Dictionary, isa_proxy, 4,
196 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQPreamble >(
nullptr);
197 static ::ROOT::TGenericClassInfo
198 instance(
"KM3NETDAQ::JDAQPreamble", ::KM3NETDAQ::JDAQPreamble::Class_Version(),
"km3net-dataformat/online/JDAQPreamble.hh", 26,
200 &::KM3NETDAQ::JDAQPreamble::Dictionary, isa_proxy, 17,
229 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQHeader >(
nullptr);
230 static ::ROOT::TGenericClassInfo
231 instance(
"KM3NETDAQ::JDAQHeader", ::KM3NETDAQ::JDAQHeader::Class_Version(),
"km3net-dataformat/online/JDAQHeader.hh", 17,
233 &::KM3NETDAQ::JDAQHeader::Dictionary, isa_proxy, 4,
261 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTriggerCounter >(
nullptr);
262 static ::ROOT::TGenericClassInfo
263 instance(
"KM3NETDAQ::JDAQTriggerCounter", ::KM3NETDAQ::JDAQTriggerCounter::Class_Version(),
"km3net-dataformat/online/JDAQTriggerCounter.hh", 23,
265 &::KM3NETDAQ::JDAQTriggerCounter::Dictionary, isa_proxy, 4,
293 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTriggerMask >(
nullptr);
294 static ::ROOT::TGenericClassInfo
295 instance(
"KM3NETDAQ::JDAQTriggerMask", ::KM3NETDAQ::JDAQTriggerMask::Class_Version(),
"km3net-dataformat/online/JDAQTriggerMask.hh", 48,
297 &::KM3NETDAQ::JDAQTriggerMask::Dictionary, isa_proxy, 4,
325 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQEventHeader >(
nullptr);
326 static ::ROOT::TGenericClassInfo
327 instance(
"KM3NETDAQ::JDAQEventHeader", ::KM3NETDAQ::JDAQEventHeader::Class_Version(),
"km3net-dataformat/online/JDAQEventHeader.hh", 19,
329 &::KM3NETDAQ::JDAQEventHeader::Dictionary, isa_proxy, 4,
358 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQHit >(
nullptr);
359 static ::ROOT::TGenericClassInfo
360 instance(
"KM3NETDAQ::JDAQHit", ::KM3NETDAQ::JDAQHit::Class_Version(),
"km3net-dataformat/online/JDAQHit.hh", 34,
362 &::KM3NETDAQ::JDAQHit::Dictionary, isa_proxy, 17,
392 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQModuleIdentifier >(
nullptr);
393 static ::ROOT::TGenericClassInfo
394 instance(
"KM3NETDAQ::JDAQModuleIdentifier", ::KM3NETDAQ::JDAQModuleIdentifier::Class_Version(),
"km3net-dataformat/online/JDAQModuleIdentifier.hh", 19,
396 &::KM3NETDAQ::JDAQModuleIdentifier::Dictionary, isa_proxy, 17,
426 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQPMTIdentifier >(
nullptr);
427 static ::ROOT::TGenericClassInfo
428 instance(
"KM3NETDAQ::JDAQPMTIdentifier", ::KM3NETDAQ::JDAQPMTIdentifier::Class_Version(),
"km3net-dataformat/online/JDAQPMTIdentifier.hh", 20,
430 &::KM3NETDAQ::JDAQPMTIdentifier::Dictionary, isa_proxy, 17,
460 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQKeyHit >(
nullptr);
461 static ::ROOT::TGenericClassInfo
462 instance(
"KM3NETDAQ::JDAQKeyHit", ::KM3NETDAQ::JDAQKeyHit::Class_Version(),
"km3net-dataformat/online/JDAQKeyHit.hh", 19,
464 &::KM3NETDAQ::JDAQKeyHit::Dictionary, isa_proxy, 17,
494 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTriggeredHit >(
nullptr);
495 static ::ROOT::TGenericClassInfo
496 instance(
"KM3NETDAQ::JDAQTriggeredHit", ::KM3NETDAQ::JDAQTriggeredHit::Class_Version(),
"km3net-dataformat/online/JDAQTriggeredHit.hh", 20,
498 &::KM3NETDAQ::JDAQTriggeredHit::Dictionary, isa_proxy, 17,
527 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQEvent >(
nullptr);
528 static ::ROOT::TGenericClassInfo
529 instance(
"KM3NETDAQ::JDAQEvent", ::KM3NETDAQ::JDAQEvent::Class_Version(),
"", 1059,
531 &::KM3NETDAQ::JDAQEvent::Dictionary, isa_proxy, 4,
559 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQFrame >(
nullptr);
560 static ::ROOT::TGenericClassInfo
561 instance(
"KM3NETDAQ::JDAQFrame", ::KM3NETDAQ::JDAQFrame::Class_Version(),
"", 1595,
563 &::KM3NETDAQ::JDAQFrame::Dictionary, isa_proxy, 4,
591 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQFrameStatus >(
nullptr);
592 static ::ROOT::TGenericClassInfo
593 instance(
"KM3NETDAQ::JDAQFrameStatus", ::KM3NETDAQ::JDAQFrameStatus::Class_Version(),
"", 1883,
595 &::KM3NETDAQ::JDAQFrameStatus::Dictionary, isa_proxy, 4,
623 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQSuperFrameHeader >(
nullptr);
624 static ::ROOT::TGenericClassInfo
625 instance(
"KM3NETDAQ::JDAQSuperFrameHeader", ::KM3NETDAQ::JDAQSuperFrameHeader::Class_Version(),
"km3net-dataformat/online/JDAQSuperFrameHeader.hh", 19,
627 &::KM3NETDAQ::JDAQSuperFrameHeader::Dictionary, isa_proxy, 4,
655 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQSuperFrame >(
nullptr);
656 static ::ROOT::TGenericClassInfo
657 instance(
"KM3NETDAQ::JDAQSuperFrame", ::KM3NETDAQ::JDAQSuperFrame::Class_Version(),
"km3net-dataformat/online/JDAQSuperFrame.hh", 22,
659 &::KM3NETDAQ::JDAQSuperFrame::Dictionary, isa_proxy, 4,
690 static ::ROOT::TGenericClassInfo
691 instance(
"KM3NETDAQ::JDAQRate",
"", 3317,
733 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQSummaryFrame >(
nullptr);
734 static ::ROOT::TGenericClassInfo
735 instance(
"KM3NETDAQ::JDAQSummaryFrame", ::KM3NETDAQ::JDAQSummaryFrame::Class_Version(),
"", 3613,
737 &::KM3NETDAQ::JDAQSummaryFrame::Dictionary, isa_proxy, 17,
766 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQSummarysliceHeader >(
nullptr);
767 static ::ROOT::TGenericClassInfo
768 instance(
"KM3NETDAQ::JDAQSummarysliceHeader", ::KM3NETDAQ::JDAQSummarysliceHeader::Class_Version(),
"km3net-dataformat/online/JDAQSummarysliceHeader.hh", 17,
770 &::KM3NETDAQ::JDAQSummarysliceHeader::Dictionary, isa_proxy, 4,
798 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimesliceHeader >(
nullptr);
799 static ::ROOT::TGenericClassInfo
800 instance(
"KM3NETDAQ::JDAQTimesliceHeader", ::KM3NETDAQ::JDAQTimesliceHeader::Class_Version(),
"km3net-dataformat/online/JDAQTimesliceHeader.hh", 16,
802 &::KM3NETDAQ::JDAQTimesliceHeader::Dictionary, isa_proxy, 4,
830 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimeslice >(
nullptr);
831 static ::ROOT::TGenericClassInfo
832 instance(
"KM3NETDAQ::JDAQTimeslice", ::KM3NETDAQ::JDAQTimeslice::Class_Version(),
"km3net-dataformat/online/JDAQTimeslice.hh", 30,
834 &::KM3NETDAQ::JDAQTimeslice::Dictionary, isa_proxy, 4,
862 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimesliceL0 >(
nullptr);
863 static ::ROOT::TGenericClassInfo
864 instance(
"KM3NETDAQ::JDAQTimesliceL0", ::KM3NETDAQ::JDAQTimesliceL0::Class_Version(),
"km3net-dataformat/online/JDAQTimeslice.hh", 259,
866 &::KM3NETDAQ::JDAQTimesliceL0::Dictionary, isa_proxy, 4,
894 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimesliceL1 >(
nullptr);
895 static ::ROOT::TGenericClassInfo
896 instance(
"KM3NETDAQ::JDAQTimesliceL1", ::KM3NETDAQ::JDAQTimesliceL1::Class_Version(),
"km3net-dataformat/online/JDAQTimeslice.hh", 265,
898 &::KM3NETDAQ::JDAQTimesliceL1::Dictionary, isa_proxy, 4,
926 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimesliceL2 >(
nullptr);
927 static ::ROOT::TGenericClassInfo
928 instance(
"KM3NETDAQ::JDAQTimesliceL2", ::KM3NETDAQ::JDAQTimesliceL2::Class_Version(),
"km3net-dataformat/online/JDAQTimeslice.hh", 271,
930 &::KM3NETDAQ::JDAQTimesliceL2::Dictionary, isa_proxy, 4,
958 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQTimesliceSN >(
nullptr);
959 static ::ROOT::TGenericClassInfo
960 instance(
"KM3NETDAQ::JDAQTimesliceSN", ::KM3NETDAQ::JDAQTimesliceSN::Class_Version(),
"km3net-dataformat/online/JDAQTimeslice.hh", 277,
962 &::KM3NETDAQ::JDAQTimesliceSN::Dictionary, isa_proxy, 4,
990 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::KM3NETDAQ::JDAQSummaryslice >(
nullptr);
991 static ::ROOT::TGenericClassInfo
992 instance(
"KM3NETDAQ::JDAQSummaryslice", ::KM3NETDAQ::JDAQSummaryslice::Class_Version(),
"", 3860,
994 &::KM3NETDAQ::JDAQSummaryslice::Dictionary, isa_proxy, 4,
1022 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::AAObject >(
nullptr);
1023 static ::ROOT::TGenericClassInfo
1024 instance(
"AAObject", ::AAObject::Class_Version(),
"", 5696,
1025 typeid(
::AAObject), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1026 &::AAObject::Dictionary, isa_proxy, 4,
1044 static void *
new_Vec(
void *p =
nullptr);
1053 ::Vec *ptr =
nullptr;
1054 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::Vec >(
nullptr);
1055 static ::ROOT::TGenericClassInfo
1056 instance(
"Vec", ::Vec::Class_Version(),
"km3net-dataformat/offline/Vec.hh", 12,
1057 typeid(
::Vec), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1058 &::Vec::Dictionary, isa_proxy, 4,
1076 static void *
new_Hit(
void *p =
nullptr);
1085 ::Hit *ptr =
nullptr;
1086 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::Hit >(
nullptr);
1087 static ::ROOT::TGenericClassInfo
1088 instance(
"Hit", ::Hit::Class_Version(),
"km3net-dataformat/offline/Hit.hh", 8,
1089 typeid(
::Hit), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1090 &::Hit::Dictionary, isa_proxy, 4,
1108 static void *
new_Trk(
void *p =
nullptr);
1117 ::Trk *ptr =
nullptr;
1118 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::Trk >(
nullptr);
1119 static ::ROOT::TGenericClassInfo
1120 instance(
"Trk", ::Trk::Class_Version(),
"km3net-dataformat/offline/Trk.hh", 14,
1121 typeid(
::Trk), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1122 &::Trk::Dictionary, isa_proxy, 4,
1140 static void *
new_Evt(
void *p =
nullptr);
1149 ::Evt *ptr =
nullptr;
1150 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::Evt >(
nullptr);
1151 static ::ROOT::TGenericClassInfo
1152 instance(
"Evt", ::Evt::Class_Version(),
"", 5875,
1153 typeid(
::Evt), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1154 &::Evt::Dictionary, isa_proxy, 4,
1172 static void *
new_Head(
void *p =
nullptr);
1182 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::Head >(
nullptr);
1183 static ::ROOT::TGenericClassInfo
1184 instance(
"Head", ::Head::Class_Version(),
"", 6281,
1185 typeid(
::Head), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1186 &::Head::Dictionary, isa_proxy, 4,
1214 static ::TVirtualIsAProxy* isa_proxy = new ::TInstrumentedIsAProxy< ::MultiHead >(
nullptr);
1215 static ::ROOT::TGenericClassInfo
1216 instance(
"MultiHead", ::MultiHead::Class_Version(),
"", 6755,
1217 typeid(
::MultiHead), ::ROOT::Internal::DefineBehavior(ptr, ptr),
1218 &::MultiHead::Dictionary, isa_proxy, 4,
1237atomic_TClass_ptr JDAQAbstractPreamble::fgIsA(
nullptr);
1240const char *JDAQAbstractPreamble::Class_Name()
1242 return "KM3NETDAQ::JDAQAbstractPreamble";
1246const char *JDAQAbstractPreamble::ImplFileName()
1248 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQAbstractPreamble*)
nullptr)->GetImplFileName();
1252int JDAQAbstractPreamble::ImplFileLine()
1254 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQAbstractPreamble*)
nullptr)->GetImplFileLine();
1258TClass *JDAQAbstractPreamble::Dictionary()
1265TClass *JDAQAbstractPreamble::Class()
1267 if (!fgIsA.load()) { R__LOCKGUARD(gInterpreterMutex); fgIsA =
::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQAbstractPreamble*)
nullptr)->GetClass(); }
1274atomic_TClass_ptr JDAQUTCExtended::fgIsA(
nullptr);
1277const char *JDAQUTCExtended::Class_Name()
1279 return "KM3NETDAQ::JDAQUTCExtended";
1283const char *JDAQUTCExtended::ImplFileName()
1285 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQUTCExtended*)
nullptr)->GetImplFileName();
1289int JDAQUTCExtended::ImplFileLine()
1291 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQUTCExtended*)
nullptr)->GetImplFileLine();
1295TClass *JDAQUTCExtended::Dictionary()
1302TClass *JDAQUTCExtended::Class()
1311atomic_TClass_ptr JDAQChronometer::fgIsA(
nullptr);
1314const char *JDAQChronometer::Class_Name()
1316 return "KM3NETDAQ::JDAQChronometer";
1320const char *JDAQChronometer::ImplFileName()
1322 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQChronometer*)
nullptr)->GetImplFileName();
1326int JDAQChronometer::ImplFileLine()
1328 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQChronometer*)
nullptr)->GetImplFileLine();
1332TClass *JDAQChronometer::Dictionary()
1339TClass *JDAQChronometer::Class()
1348atomic_TClass_ptr JDAQPreamble::fgIsA(
nullptr);
1351const char *JDAQPreamble::Class_Name()
1353 return "KM3NETDAQ::JDAQPreamble";
1357const char *JDAQPreamble::ImplFileName()
1359 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQPreamble*)
nullptr)->GetImplFileName();
1363int JDAQPreamble::ImplFileLine()
1365 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQPreamble*)
nullptr)->GetImplFileLine();
1369TClass *JDAQPreamble::Dictionary()
1376TClass *JDAQPreamble::Class()
1385atomic_TClass_ptr JDAQHeader::fgIsA(
nullptr);
1388const char *JDAQHeader::Class_Name()
1390 return "KM3NETDAQ::JDAQHeader";
1394const char *JDAQHeader::ImplFileName()
1396 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQHeader*)
nullptr)->GetImplFileName();
1400int JDAQHeader::ImplFileLine()
1402 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQHeader*)
nullptr)->GetImplFileLine();
1406TClass *JDAQHeader::Dictionary()
1413TClass *JDAQHeader::Class()
1422atomic_TClass_ptr JDAQTriggerCounter::fgIsA(
nullptr);
1425const char *JDAQTriggerCounter::Class_Name()
1427 return "KM3NETDAQ::JDAQTriggerCounter";
1431const char *JDAQTriggerCounter::ImplFileName()
1433 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggerCounter*)
nullptr)->GetImplFileName();
1437int JDAQTriggerCounter::ImplFileLine()
1439 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggerCounter*)
nullptr)->GetImplFileLine();
1443TClass *JDAQTriggerCounter::Dictionary()
1450TClass *JDAQTriggerCounter::Class()
1459atomic_TClass_ptr JDAQTriggerMask::fgIsA(
nullptr);
1462const char *JDAQTriggerMask::Class_Name()
1464 return "KM3NETDAQ::JDAQTriggerMask";
1468const char *JDAQTriggerMask::ImplFileName()
1470 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggerMask*)
nullptr)->GetImplFileName();
1474int JDAQTriggerMask::ImplFileLine()
1476 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggerMask*)
nullptr)->GetImplFileLine();
1480TClass *JDAQTriggerMask::Dictionary()
1487TClass *JDAQTriggerMask::Class()
1496atomic_TClass_ptr JDAQEventHeader::fgIsA(
nullptr);
1499const char *JDAQEventHeader::Class_Name()
1501 return "KM3NETDAQ::JDAQEventHeader";
1505const char *JDAQEventHeader::ImplFileName()
1507 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQEventHeader*)
nullptr)->GetImplFileName();
1511int JDAQEventHeader::ImplFileLine()
1513 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQEventHeader*)
nullptr)->GetImplFileLine();
1517TClass *JDAQEventHeader::Dictionary()
1524TClass *JDAQEventHeader::Class()
1533atomic_TClass_ptr JDAQHit::fgIsA(
nullptr);
1536const char *JDAQHit::Class_Name()
1538 return "KM3NETDAQ::JDAQHit";
1542const char *JDAQHit::ImplFileName()
1544 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQHit*)
nullptr)->GetImplFileName();
1548int JDAQHit::ImplFileLine()
1550 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQHit*)
nullptr)->GetImplFileLine();
1554TClass *JDAQHit::Dictionary()
1561TClass *JDAQHit::Class()
1570atomic_TClass_ptr JDAQModuleIdentifier::fgIsA(
nullptr);
1573const char *JDAQModuleIdentifier::Class_Name()
1575 return "KM3NETDAQ::JDAQModuleIdentifier";
1579const char *JDAQModuleIdentifier::ImplFileName()
1581 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQModuleIdentifier*)
nullptr)->GetImplFileName();
1585int JDAQModuleIdentifier::ImplFileLine()
1587 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQModuleIdentifier*)
nullptr)->GetImplFileLine();
1591TClass *JDAQModuleIdentifier::Dictionary()
1598TClass *JDAQModuleIdentifier::Class()
1600 if (!fgIsA.load()) { R__LOCKGUARD(gInterpreterMutex); fgIsA =
::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQModuleIdentifier*)
nullptr)->GetClass(); }
1607atomic_TClass_ptr JDAQPMTIdentifier::fgIsA(
nullptr);
1610const char *JDAQPMTIdentifier::Class_Name()
1612 return "KM3NETDAQ::JDAQPMTIdentifier";
1616const char *JDAQPMTIdentifier::ImplFileName()
1618 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQPMTIdentifier*)
nullptr)->GetImplFileName();
1622int JDAQPMTIdentifier::ImplFileLine()
1624 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQPMTIdentifier*)
nullptr)->GetImplFileLine();
1628TClass *JDAQPMTIdentifier::Dictionary()
1635TClass *JDAQPMTIdentifier::Class()
1644atomic_TClass_ptr JDAQKeyHit::fgIsA(
nullptr);
1647const char *JDAQKeyHit::Class_Name()
1649 return "KM3NETDAQ::JDAQKeyHit";
1653const char *JDAQKeyHit::ImplFileName()
1655 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQKeyHit*)
nullptr)->GetImplFileName();
1659int JDAQKeyHit::ImplFileLine()
1661 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQKeyHit*)
nullptr)->GetImplFileLine();
1665TClass *JDAQKeyHit::Dictionary()
1672TClass *JDAQKeyHit::Class()
1681atomic_TClass_ptr JDAQTriggeredHit::fgIsA(
nullptr);
1684const char *JDAQTriggeredHit::Class_Name()
1686 return "KM3NETDAQ::JDAQTriggeredHit";
1690const char *JDAQTriggeredHit::ImplFileName()
1692 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggeredHit*)
nullptr)->GetImplFileName();
1696int JDAQTriggeredHit::ImplFileLine()
1698 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTriggeredHit*)
nullptr)->GetImplFileLine();
1702TClass *JDAQTriggeredHit::Dictionary()
1709TClass *JDAQTriggeredHit::Class()
1718atomic_TClass_ptr JDAQEvent::fgIsA(
nullptr);
1721const char *JDAQEvent::Class_Name()
1723 return "KM3NETDAQ::JDAQEvent";
1727const char *JDAQEvent::ImplFileName()
1729 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQEvent*)
nullptr)->GetImplFileName();
1733int JDAQEvent::ImplFileLine()
1735 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQEvent*)
nullptr)->GetImplFileLine();
1739TClass *JDAQEvent::Dictionary()
1746TClass *JDAQEvent::Class()
1755atomic_TClass_ptr JDAQFrame::fgIsA(
nullptr);
1758const char *JDAQFrame::Class_Name()
1760 return "KM3NETDAQ::JDAQFrame";
1764const char *JDAQFrame::ImplFileName()
1766 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQFrame*)
nullptr)->GetImplFileName();
1770int JDAQFrame::ImplFileLine()
1772 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQFrame*)
nullptr)->GetImplFileLine();
1776TClass *JDAQFrame::Dictionary()
1783TClass *JDAQFrame::Class()
1792atomic_TClass_ptr JDAQFrameStatus::fgIsA(
nullptr);
1795const char *JDAQFrameStatus::Class_Name()
1797 return "KM3NETDAQ::JDAQFrameStatus";
1801const char *JDAQFrameStatus::ImplFileName()
1803 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQFrameStatus*)
nullptr)->GetImplFileName();
1807int JDAQFrameStatus::ImplFileLine()
1809 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQFrameStatus*)
nullptr)->GetImplFileLine();
1813TClass *JDAQFrameStatus::Dictionary()
1820TClass *JDAQFrameStatus::Class()
1829atomic_TClass_ptr JDAQSuperFrameHeader::fgIsA(
nullptr);
1832const char *JDAQSuperFrameHeader::Class_Name()
1834 return "KM3NETDAQ::JDAQSuperFrameHeader";
1838const char *JDAQSuperFrameHeader::ImplFileName()
1840 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSuperFrameHeader*)
nullptr)->GetImplFileName();
1844int JDAQSuperFrameHeader::ImplFileLine()
1846 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSuperFrameHeader*)
nullptr)->GetImplFileLine();
1850TClass *JDAQSuperFrameHeader::Dictionary()
1857TClass *JDAQSuperFrameHeader::Class()
1859 if (!fgIsA.load()) { R__LOCKGUARD(gInterpreterMutex); fgIsA =
::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSuperFrameHeader*)
nullptr)->GetClass(); }
1866atomic_TClass_ptr JDAQSuperFrame::fgIsA(
nullptr);
1869const char *JDAQSuperFrame::Class_Name()
1871 return "KM3NETDAQ::JDAQSuperFrame";
1875const char *JDAQSuperFrame::ImplFileName()
1877 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSuperFrame*)
nullptr)->GetImplFileName();
1881int JDAQSuperFrame::ImplFileLine()
1883 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSuperFrame*)
nullptr)->GetImplFileLine();
1887TClass *JDAQSuperFrame::Dictionary()
1894TClass *JDAQSuperFrame::Class()
1903atomic_TClass_ptr JDAQSummaryFrame::fgIsA(
nullptr);
1906const char *JDAQSummaryFrame::Class_Name()
1908 return "KM3NETDAQ::JDAQSummaryFrame";
1912const char *JDAQSummaryFrame::ImplFileName()
1914 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummaryFrame*)
nullptr)->GetImplFileName();
1918int JDAQSummaryFrame::ImplFileLine()
1920 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummaryFrame*)
nullptr)->GetImplFileLine();
1924TClass *JDAQSummaryFrame::Dictionary()
1931TClass *JDAQSummaryFrame::Class()
1940atomic_TClass_ptr JDAQSummarysliceHeader::fgIsA(
nullptr);
1943const char *JDAQSummarysliceHeader::Class_Name()
1945 return "KM3NETDAQ::JDAQSummarysliceHeader";
1949const char *JDAQSummarysliceHeader::ImplFileName()
1951 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummarysliceHeader*)
nullptr)->GetImplFileName();
1955int JDAQSummarysliceHeader::ImplFileLine()
1957 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummarysliceHeader*)
nullptr)->GetImplFileLine();
1961TClass *JDAQSummarysliceHeader::Dictionary()
1968TClass *JDAQSummarysliceHeader::Class()
1970 if (!fgIsA.load()) { R__LOCKGUARD(gInterpreterMutex); fgIsA =
::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummarysliceHeader*)
nullptr)->GetClass(); }
1977atomic_TClass_ptr JDAQTimesliceHeader::fgIsA(
nullptr);
1980const char *JDAQTimesliceHeader::Class_Name()
1982 return "KM3NETDAQ::JDAQTimesliceHeader";
1986const char *JDAQTimesliceHeader::ImplFileName()
1988 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceHeader*)
nullptr)->GetImplFileName();
1992int JDAQTimesliceHeader::ImplFileLine()
1994 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceHeader*)
nullptr)->GetImplFileLine();
1998TClass *JDAQTimesliceHeader::Dictionary()
2005TClass *JDAQTimesliceHeader::Class()
2007 if (!fgIsA.load()) { R__LOCKGUARD(gInterpreterMutex); fgIsA =
::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceHeader*)
nullptr)->GetClass(); }
2014atomic_TClass_ptr JDAQTimeslice::fgIsA(
nullptr);
2017const char *JDAQTimeslice::Class_Name()
2019 return "KM3NETDAQ::JDAQTimeslice";
2023const char *JDAQTimeslice::ImplFileName()
2025 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimeslice*)
nullptr)->GetImplFileName();
2029int JDAQTimeslice::ImplFileLine()
2031 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimeslice*)
nullptr)->GetImplFileLine();
2035TClass *JDAQTimeslice::Dictionary()
2042TClass *JDAQTimeslice::Class()
2051atomic_TClass_ptr JDAQTimesliceL0::fgIsA(
nullptr);
2054const char *JDAQTimesliceL0::Class_Name()
2056 return "KM3NETDAQ::JDAQTimesliceL0";
2060const char *JDAQTimesliceL0::ImplFileName()
2062 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL0*)
nullptr)->GetImplFileName();
2066int JDAQTimesliceL0::ImplFileLine()
2068 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL0*)
nullptr)->GetImplFileLine();
2072TClass *JDAQTimesliceL0::Dictionary()
2079TClass *JDAQTimesliceL0::Class()
2088atomic_TClass_ptr JDAQTimesliceL1::fgIsA(
nullptr);
2091const char *JDAQTimesliceL1::Class_Name()
2093 return "KM3NETDAQ::JDAQTimesliceL1";
2097const char *JDAQTimesliceL1::ImplFileName()
2099 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL1*)
nullptr)->GetImplFileName();
2103int JDAQTimesliceL1::ImplFileLine()
2105 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL1*)
nullptr)->GetImplFileLine();
2109TClass *JDAQTimesliceL1::Dictionary()
2116TClass *JDAQTimesliceL1::Class()
2125atomic_TClass_ptr JDAQTimesliceL2::fgIsA(
nullptr);
2128const char *JDAQTimesliceL2::Class_Name()
2130 return "KM3NETDAQ::JDAQTimesliceL2";
2134const char *JDAQTimesliceL2::ImplFileName()
2136 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL2*)
nullptr)->GetImplFileName();
2140int JDAQTimesliceL2::ImplFileLine()
2142 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceL2*)
nullptr)->GetImplFileLine();
2146TClass *JDAQTimesliceL2::Dictionary()
2153TClass *JDAQTimesliceL2::Class()
2162atomic_TClass_ptr JDAQTimesliceSN::fgIsA(
nullptr);
2165const char *JDAQTimesliceSN::Class_Name()
2167 return "KM3NETDAQ::JDAQTimesliceSN";
2171const char *JDAQTimesliceSN::ImplFileName()
2173 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceSN*)
nullptr)->GetImplFileName();
2177int JDAQTimesliceSN::ImplFileLine()
2179 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQTimesliceSN*)
nullptr)->GetImplFileLine();
2183TClass *JDAQTimesliceSN::Dictionary()
2190TClass *JDAQTimesliceSN::Class()
2199atomic_TClass_ptr JDAQSummaryslice::fgIsA(
nullptr);
2202const char *JDAQSummaryslice::Class_Name()
2204 return "KM3NETDAQ::JDAQSummaryslice";
2208const char *JDAQSummaryslice::ImplFileName()
2210 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummaryslice*)
nullptr)->GetImplFileName();
2214int JDAQSummaryslice::ImplFileLine()
2216 return ::ROOT::GenerateInitInstanceLocal((const ::KM3NETDAQ::JDAQSummaryslice*)
nullptr)->GetImplFileLine();
2220TClass *JDAQSummaryslice::Dictionary()
2227TClass *JDAQSummaryslice::Class()
2235atomic_TClass_ptr AAObject::fgIsA(
nullptr);
2238const char *AAObject::Class_Name()
2244const char *AAObject::ImplFileName()
2246 return ::ROOT::GenerateInitInstanceLocal((const ::AAObject*)
nullptr)->GetImplFileName();
2250int AAObject::ImplFileLine()
2252 return ::ROOT::GenerateInitInstanceLocal((const ::AAObject*)
nullptr)->GetImplFileLine();
2256TClass *AAObject::Dictionary()
2263TClass *AAObject::Class()
2270atomic_TClass_ptr Vec::fgIsA(
nullptr);
2273const char *Vec::Class_Name()
2279const char *Vec::ImplFileName()
2281 return ::ROOT::GenerateInitInstanceLocal((const ::Vec*)
nullptr)->GetImplFileName();
2285int Vec::ImplFileLine()
2287 return ::ROOT::GenerateInitInstanceLocal((const ::Vec*)
nullptr)->GetImplFileLine();
2291TClass *Vec::Dictionary()
2305atomic_TClass_ptr Hit::fgIsA(
nullptr);
2308const char *Hit::Class_Name()
2314const char *Hit::ImplFileName()
2316 return ::ROOT::GenerateInitInstanceLocal((const ::Hit*)
nullptr)->GetImplFileName();
2320int Hit::ImplFileLine()
2322 return ::ROOT::GenerateInitInstanceLocal((const ::Hit*)
nullptr)->GetImplFileLine();
2326TClass *Hit::Dictionary()
2340atomic_TClass_ptr Trk::fgIsA(
nullptr);
2343const char *Trk::Class_Name()
2349const char *Trk::ImplFileName()
2351 return ::ROOT::GenerateInitInstanceLocal((const ::Trk*)
nullptr)->GetImplFileName();
2355int Trk::ImplFileLine()
2357 return ::ROOT::GenerateInitInstanceLocal((const ::Trk*)
nullptr)->GetImplFileLine();
2361TClass *Trk::Dictionary()
2375atomic_TClass_ptr Evt::fgIsA(
nullptr);
2378const char *Evt::Class_Name()
2384const char *Evt::ImplFileName()
2386 return ::ROOT::GenerateInitInstanceLocal((const ::Evt*)
nullptr)->GetImplFileName();
2390int Evt::ImplFileLine()
2392 return ::ROOT::GenerateInitInstanceLocal((const ::Evt*)
nullptr)->GetImplFileLine();
2396TClass *Evt::Dictionary()
2410atomic_TClass_ptr Head::fgIsA(
nullptr);
2413const char *Head::Class_Name()
2419const char *Head::ImplFileName()
2421 return ::ROOT::GenerateInitInstanceLocal((const ::Head*)
nullptr)->GetImplFileName();
2425int Head::ImplFileLine()
2427 return ::ROOT::GenerateInitInstanceLocal((const ::Head*)
nullptr)->GetImplFileLine();
2431TClass *Head::Dictionary()
2438TClass *Head::Class()
2445atomic_TClass_ptr MultiHead::fgIsA(
nullptr);
2448const char *MultiHead::Class_Name()
2454const char *MultiHead::ImplFileName()
2456 return ::ROOT::GenerateInitInstanceLocal((const ::MultiHead*)
nullptr)->GetImplFileName();
2460int MultiHead::ImplFileLine()
2462 return ::ROOT::GenerateInitInstanceLocal((const ::MultiHead*)
nullptr)->GetImplFileLine();
2466TClass *MultiHead::Dictionary()
2473TClass *MultiHead::Class()
2485 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQAbstractPreamble[nElements] : new ::KM3NETDAQ::JDAQAbstractPreamble[nElements];
2496 (
static_cast<current_t*
>(p))->~current_t();
2506void JDAQUTCExtended::Streamer(
TBuffer &R__b)
2511 R__b.ReadClassBuffer(KM3NETDAQ::JDAQUTCExtended::Class(),
this);
2513 R__b.WriteClassBuffer(KM3NETDAQ::JDAQUTCExtended::Class(),
this);
2521 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQUTCExtended : new ::KM3NETDAQ::JDAQUTCExtended;
2524 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQUTCExtended[nElements] : new ::KM3NETDAQ::JDAQUTCExtended[nElements];
2535 (
static_cast<current_t*
>(p))->~current_t();
2541void JDAQChronometer::Streamer(
TBuffer &R__b)
2546 R__b.ReadClassBuffer(KM3NETDAQ::JDAQChronometer::Class(),
this);
2548 R__b.WriteClassBuffer(KM3NETDAQ::JDAQChronometer::Class(),
this);
2556 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQChronometer : new ::KM3NETDAQ::JDAQChronometer;
2559 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQChronometer[nElements] : new ::KM3NETDAQ::JDAQChronometer[nElements];
2570 (
static_cast<current_t*
>(p))->~current_t();
2591 (
static_cast<current_t*
>(p))->~current_t();
2601void JDAQHeader::Streamer(
TBuffer &R__b)
2606 R__b.ReadClassBuffer(KM3NETDAQ::JDAQHeader::Class(),
this);
2608 R__b.WriteClassBuffer(KM3NETDAQ::JDAQHeader::Class(),
this);
2616 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQHeader : new ::KM3NETDAQ::JDAQHeader;
2619 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQHeader[nElements] : new ::KM3NETDAQ::JDAQHeader[nElements];
2630 (
static_cast<current_t*
>(p))->~current_t();
2636void JDAQTriggerCounter::Streamer(
TBuffer &R__b)
2641 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTriggerCounter::Class(),
this);
2643 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTriggerCounter::Class(),
this);
2651 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggerCounter : new ::KM3NETDAQ::JDAQTriggerCounter;
2654 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggerCounter[nElements] : new ::KM3NETDAQ::JDAQTriggerCounter[nElements];
2665 (
static_cast<current_t*
>(p))->~current_t();
2671void JDAQTriggerMask::Streamer(
TBuffer &R__b)
2676 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTriggerMask::Class(),
this);
2678 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTriggerMask::Class(),
this);
2686 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggerMask : new ::KM3NETDAQ::JDAQTriggerMask;
2689 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggerMask[nElements] : new ::KM3NETDAQ::JDAQTriggerMask[nElements];
2700 (
static_cast<current_t*
>(p))->~current_t();
2706void JDAQEventHeader::Streamer(
TBuffer &R__b)
2711 R__b.ReadClassBuffer(KM3NETDAQ::JDAQEventHeader::Class(),
this);
2713 R__b.WriteClassBuffer(KM3NETDAQ::JDAQEventHeader::Class(),
this);
2721 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQEventHeader : new ::KM3NETDAQ::JDAQEventHeader;
2724 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQEventHeader[nElements] : new ::KM3NETDAQ::JDAQEventHeader[nElements];
2735 (
static_cast<current_t*
>(p))->~current_t();
2742 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQHit : new ::KM3NETDAQ::JDAQHit;
2745 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQHit[nElements] : new ::KM3NETDAQ::JDAQHit[nElements];
2756 (
static_cast<current_t*
>(p))->~current_t();
2770 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQModuleIdentifier[nElements] : new ::KM3NETDAQ::JDAQModuleIdentifier[nElements];
2781 (
static_cast<current_t*
>(p))->~current_t();
2792 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQPMTIdentifier : new ::KM3NETDAQ::JDAQPMTIdentifier;
2795 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQPMTIdentifier[nElements] : new ::KM3NETDAQ::JDAQPMTIdentifier[nElements];
2806 (
static_cast<current_t*
>(p))->~current_t();
2817 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQKeyHit : new ::KM3NETDAQ::JDAQKeyHit;
2820 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQKeyHit[nElements] : new ::KM3NETDAQ::JDAQKeyHit[nElements];
2831 (
static_cast<current_t*
>(p))->~current_t();
2842 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggeredHit : new ::KM3NETDAQ::JDAQTriggeredHit;
2845 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTriggeredHit[nElements] : new ::KM3NETDAQ::JDAQTriggeredHit[nElements];
2856 (
static_cast<current_t*
>(p))->~current_t();
2866void JDAQEvent::Streamer(
TBuffer &R__b)
2871 R__b.ReadClassBuffer(KM3NETDAQ::JDAQEvent::Class(),
this);
2873 R__b.WriteClassBuffer(KM3NETDAQ::JDAQEvent::Class(),
this);
2895 (
static_cast<current_t*
>(p))->~current_t();
2901void JDAQFrame::Streamer(
TBuffer &R__b)
2906 R__b.ReadClassBuffer(KM3NETDAQ::JDAQFrame::Class(),
this);
2908 R__b.WriteClassBuffer(KM3NETDAQ::JDAQFrame::Class(),
this);
2916 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQFrame : new ::KM3NETDAQ::JDAQFrame;
2919 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQFrame[nElements] : new ::KM3NETDAQ::JDAQFrame[nElements];
2930 (
static_cast<current_t*
>(p))->~current_t();
2936void JDAQFrameStatus::Streamer(
TBuffer &R__b)
2941 R__b.ReadClassBuffer(KM3NETDAQ::JDAQFrameStatus::Class(),
this);
2943 R__b.WriteClassBuffer(KM3NETDAQ::JDAQFrameStatus::Class(),
this);
2951 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQFrameStatus : new ::KM3NETDAQ::JDAQFrameStatus;
2954 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQFrameStatus[nElements] : new ::KM3NETDAQ::JDAQFrameStatus[nElements];
2965 (
static_cast<current_t*
>(p))->~current_t();
2971void JDAQSuperFrameHeader::Streamer(
TBuffer &R__b)
2976 R__b.ReadClassBuffer(KM3NETDAQ::JDAQSuperFrameHeader::Class(),
this);
2978 R__b.WriteClassBuffer(KM3NETDAQ::JDAQSuperFrameHeader::Class(),
this);
2989 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQSuperFrameHeader[nElements] : new ::KM3NETDAQ::JDAQSuperFrameHeader[nElements];
3000 (
static_cast<current_t*
>(p))->~current_t();
3006void JDAQSuperFrame::Streamer(
TBuffer &R__b)
3011 R__b.ReadClassBuffer(KM3NETDAQ::JDAQSuperFrame::Class(),
this);
3013 R__b.WriteClassBuffer(KM3NETDAQ::JDAQSuperFrame::Class(),
this);
3035 (
static_cast<current_t*
>(p))->~current_t();
3042 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQRate : new ::KM3NETDAQ::JDAQRate;
3045 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQRate[nElements] : new ::KM3NETDAQ::JDAQRate[nElements];
3056 (
static_cast<current_t*
>(p))->~current_t();
3063 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQSummaryFrame : new ::KM3NETDAQ::JDAQSummaryFrame;
3066 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQSummaryFrame[nElements] : new ::KM3NETDAQ::JDAQSummaryFrame[nElements];
3077 (
static_cast<current_t*
>(p))->~current_t();
3087void JDAQSummarysliceHeader::Streamer(
TBuffer &R__b)
3092 R__b.ReadClassBuffer(KM3NETDAQ::JDAQSummarysliceHeader::Class(),
this);
3094 R__b.WriteClassBuffer(KM3NETDAQ::JDAQSummarysliceHeader::Class(),
this);
3105 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQSummarysliceHeader[nElements] : new ::KM3NETDAQ::JDAQSummarysliceHeader[nElements];
3116 (
static_cast<current_t*
>(p))->~current_t();
3122void JDAQTimesliceHeader::Streamer(
TBuffer &R__b)
3127 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimesliceHeader::Class(),
this);
3129 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimesliceHeader::Class(),
this);
3140 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p)) ::
KM3NETDAQ::JDAQTimesliceHeader[nElements] : new ::KM3NETDAQ::JDAQTimesliceHeader[nElements];
3151 (
static_cast<current_t*
>(p))->~current_t();
3157void JDAQTimeslice::Streamer(
TBuffer &R__b)
3162 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimeslice::Class(),
this);
3164 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimeslice::Class(),
this);
3186 (
static_cast<current_t*
>(p))->~current_t();
3192void JDAQTimesliceL0::Streamer(
TBuffer &R__b)
3197 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimesliceL0::Class(),
this);
3199 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimesliceL0::Class(),
this);
3221 (
static_cast<current_t*
>(p))->~current_t();
3227void JDAQTimesliceL1::Streamer(
TBuffer &R__b)
3232 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimesliceL1::Class(),
this);
3234 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimesliceL1::Class(),
this);
3256 (
static_cast<current_t*
>(p))->~current_t();
3262void JDAQTimesliceL2::Streamer(
TBuffer &R__b)
3267 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimesliceL2::Class(),
this);
3269 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimesliceL2::Class(),
this);
3291 (
static_cast<current_t*
>(p))->~current_t();
3297void JDAQTimesliceSN::Streamer(
TBuffer &R__b)
3302 R__b.ReadClassBuffer(KM3NETDAQ::JDAQTimesliceSN::Class(),
this);
3304 R__b.WriteClassBuffer(KM3NETDAQ::JDAQTimesliceSN::Class(),
this);
3326 (
static_cast<current_t*
>(p))->~current_t();
3332void JDAQSummaryslice::Streamer(
TBuffer &R__b)
3337 R__b.ReadClassBuffer(KM3NETDAQ::JDAQSummaryslice::Class(),
this);
3339 R__b.WriteClassBuffer(KM3NETDAQ::JDAQSummaryslice::Class(),
this);
3361 (
static_cast<current_t*
>(p))->~current_t();
3366void AAObject::Streamer(
TBuffer &R__b)
3371 R__b.ReadClassBuffer(AAObject::Class(),
this);
3373 R__b.WriteClassBuffer(AAObject::Class(),
this);
3380 return p ?
new(p)
::AAObject : new ::AAObject;
3383 return p ?
new(p)
::AAObject[nElements] : new ::AAObject[nElements];
3387 delete (
static_cast<::
AAObject*
>(p));
3390 delete [] (
static_cast<::
AAObject*
>(p));
3394 (
static_cast<current_t*
>(p))->~current_t();
3399void Vec::Streamer(
TBuffer &R__b)
3404 R__b.ReadClassBuffer(Vec::Class(),
this);
3406 R__b.WriteClassBuffer(Vec::Class(),
this);
3413 return p ?
new(p)
::Vec : new ::Vec;
3416 return p ?
new(p)
::Vec[nElements] : new ::Vec[nElements];
3420 delete (
static_cast<::
Vec*
>(p));
3423 delete [] (
static_cast<::
Vec*
>(p));
3426 typedef ::Vec current_t;
3427 (
static_cast<current_t*
>(p))->~current_t();
3432void Hit::Streamer(
TBuffer &R__b)
3437 R__b.ReadClassBuffer(Hit::Class(),
this);
3439 R__b.WriteClassBuffer(Hit::Class(),
this);
3446 return p ?
new(p)
::Hit : new ::Hit;
3449 return p ?
new(p)
::Hit[nElements] : new ::Hit[nElements];
3453 delete (
static_cast<::
Hit*
>(p));
3456 delete [] (
static_cast<::
Hit*
>(p));
3459 typedef ::Hit current_t;
3460 (
static_cast<current_t*
>(p))->~current_t();
3465void Trk::Streamer(
TBuffer &R__b)
3470 R__b.ReadClassBuffer(Trk::Class(),
this);
3472 R__b.WriteClassBuffer(Trk::Class(),
this);
3479 return p ?
new(p)
::Trk : new ::Trk;
3482 return p ?
new(p)
::Trk[nElements] : new ::Trk[nElements];
3486 delete (
static_cast<::
Trk*
>(p));
3489 delete [] (
static_cast<::
Trk*
>(p));
3492 typedef ::Trk current_t;
3493 (
static_cast<current_t*
>(p))->~current_t();
3498void Evt::Streamer(
TBuffer &R__b)
3503 R__b.ReadClassBuffer(Evt::Class(),
this);
3505 R__b.WriteClassBuffer(Evt::Class(),
this);
3512 return p ?
new(p)
::Evt : new ::Evt;
3515 return p ?
new(p)
::Evt[nElements] : new ::Evt[nElements];
3519 delete (
static_cast<::
Evt*
>(p));
3522 delete [] (
static_cast<::
Evt*
>(p));
3525 typedef ::Evt current_t;
3526 (
static_cast<current_t*
>(p))->~current_t();
3531void Head::Streamer(
TBuffer &R__b)
3536 R__b.ReadClassBuffer(Head::Class(),
this);
3538 R__b.WriteClassBuffer(Head::Class(),
this);
3545 return p ?
new(p)
::Head : new ::Head;
3548 return p ?
new(p)
::Head[nElements] : new ::Head[nElements];
3552 delete (
static_cast<::
Head*
>(p));
3555 delete [] (
static_cast<::
Head*
>(p));
3558 typedef ::Head current_t;
3559 (
static_cast<current_t*
>(p))->~current_t();
3564void MultiHead::Streamer(
TBuffer &R__b)
3569 R__b.ReadClassBuffer(MultiHead::Class(),
this);
3571 R__b.WriteClassBuffer(MultiHead::Class(),
this);
3581 return p ?
new(p)
::MultiHead[nElements] : new ::MultiHead[nElements];
3588 delete [] (
static_cast<::
MultiHead*
>(p));
3592 (
static_cast<current_t*
>(p))->~current_t();
3609 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<string>));
3610 static ::ROOT::TGenericClassInfo
3611 instance(
"vector<string>", -2,
"vector", 389,
3612 typeid(
vector<string>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3620 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<string> >()));
3622 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<string>",
"std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >"));
3657 (
static_cast<current_t*
>(p))->~current_t();
3674 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<int>));
3675 static ::ROOT::TGenericClassInfo
3676 instance(
"vector<int>", -2,
"vector", 389,
3677 typeid(
vector<int>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3685 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<int> >()));
3687 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<int>",
"std::vector<int, std::allocator<int> >"));
3711 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<int>[nElements] :
new vector<int>[nElements];
3722 (
static_cast<current_t*
>(p))->~current_t();
3739 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<double>));
3740 static ::ROOT::TGenericClassInfo
3741 instance(
"vector<double>", -2,
"vector", 389,
3742 typeid(
vector<double>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3750 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<double> >()));
3752 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<double>",
"std::vector<double, std::allocator<double> >"));
3787 (
static_cast<current_t*
>(p))->~current_t();
3804 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Vec>));
3805 static ::ROOT::TGenericClassInfo
3806 instance(
"vector<Vec>", -2,
"vector", 389,
3807 typeid(
vector<Vec>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3815 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Vec> >()));
3817 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Vec>",
"std::vector<Vec, std::allocator<Vec> >"));
3841 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Vec>[nElements] :
new vector<Vec>[nElements];
3852 (
static_cast<current_t*
>(p))->~current_t();
3869 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Trk>));
3870 static ::ROOT::TGenericClassInfo
3871 instance(
"vector<Trk>", -2,
"vector", 389,
3872 typeid(
vector<Trk>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3880 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Trk> >()));
3882 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Trk>",
"std::vector<Trk, std::allocator<Trk> >"));
3906 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Trk>[nElements] :
new vector<Trk>[nElements];
3917 (
static_cast<current_t*
>(p))->~current_t();
3935 static ::ROOT::TGenericClassInfo
3936 instance(
"vector<KM3NETDAQ::JDAQTriggeredHit>", -2,
"vector", 389,
3947 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQTriggeredHit>",
"std::vector<KM3NETDAQ::JDAQTriggeredHit, std::allocator<KM3NETDAQ::JDAQTriggeredHit> >"));
3982 (
static_cast<current_t*
>(p))->~current_t();
4000 static ::ROOT::TGenericClassInfo
4001 instance(
"vector<KM3NETDAQ::JDAQSuperFrame>", -2,
"vector", 389,
4012 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSuperFrame>",
"std::vector<KM3NETDAQ::JDAQSuperFrame, std::allocator<KM3NETDAQ::JDAQSuperFrame> >"));
4047 (
static_cast<current_t*
>(p))->~current_t();
4065 static ::ROOT::TGenericClassInfo
4066 instance(
"vector<KM3NETDAQ::JDAQSummaryFrame>", -2,
"vector", 389,
4077 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSummaryFrame>",
"std::vector<KM3NETDAQ::JDAQSummaryFrame, std::allocator<KM3NETDAQ::JDAQSummaryFrame> >"));
4112 (
static_cast<current_t*
>(p))->~current_t();
4130 static ::ROOT::TGenericClassInfo
4131 instance(
"vector<KM3NETDAQ::JDAQKeyHit>", -2,
"vector", 389,
4142 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQKeyHit>",
"std::vector<KM3NETDAQ::JDAQKeyHit, std::allocator<KM3NETDAQ::JDAQKeyHit> >"));
4177 (
static_cast<current_t*
>(p))->~current_t();
4194 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Hit>));
4195 static ::ROOT::TGenericClassInfo
4196 instance(
"vector<Hit>", -2,
"vector", 389,
4197 typeid(
vector<Hit>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4205 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Hit> >()));
4207 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Hit>",
"std::vector<Hit, std::allocator<Hit> >"));
4231 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Hit>[nElements] :
new vector<Hit>[nElements];
4242 (
static_cast<current_t*
>(p))->~current_t();
4259 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Head>));
4260 static ::ROOT::TGenericClassInfo
4261 instance(
"vector<Head>", -2,
"vector", 389,
4262 typeid(
vector<Head>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4270 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Head> >()));
4272 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Head>",
"std::vector<Head, std::allocator<Head> >"));
4296 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Head>[nElements] :
new vector<Head>[nElements];
4307 (
static_cast<current_t*
>(p))->~current_t();
4325 static ::ROOT::TGenericClassInfo
4326 instance(
"map<string,string>", -2,
"map", 100,
4335 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::MapInsert<
map<string,string> >()));
4337 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"map<string,string>",
"std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >"));
4372 (
static_cast<current_t*
>(p))->~current_t();
4377 void TriggerDictionaryInitialization_G__KM3NeTROOT_Impl() {
4378 static const char* headers[] = {
4382 static const char* includePaths[] = {
4383"/builds/common/jpp/externals/km3net-dataformat/build",
4385"/usr/local/include/",
4386"/builds/common/jpp/externals/km3net-dataformat/build/src/",
4389 static const char* fwdDeclCode = R
"DICTFWDDCLS(
4390#line 1 "G__KM3NeTROOT dictionary forward declarations' payload"
4391#pragma clang diagnostic ignored "-Wkeyword-compat"
4392#pragma clang diagnostic ignored "-Wignored-attributes"
4393#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
4394extern int __Cling_AutoLoading_Map;
4395struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Vec.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Vec;
4396namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h"))) __attribute__((annotate("$clingAutoload$string"))) allocator;
4398namespace KM3NETDAQ{class JDAQAbstractPreamble;}
4399namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQUTCExtended.hh"))) JDAQUTCExtended;}
4400namespace KM3NETDAQ{class JDAQChronometer;}
4401namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPreamble.hh"))) JDAQPreamble;}
4402namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQHeader;}
4403namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerCounter.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerCounter;}
4404namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerMask.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerMask;}
4405namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQEventHeader;}
4406namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHit.hh"))) JDAQHit;}
4407namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQModuleIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQModuleIdentifier;}
4408namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPMTIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQPMTIdentifier;}
4409namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQKeyHit;}
4410namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggeredHit.hh"))) JDAQTriggeredHit;}
4411namespace KM3NETDAQ{class JDAQEvent;}
4412namespace KM3NETDAQ{class JDAQFrame;}
4413namespace KM3NETDAQ{class JDAQFrameStatus;}
4414namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrameHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrameHeader;}
4415namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrame;}
4416namespace KM3NETDAQ{class JDAQRate;}
4417namespace KM3NETDAQ{class JDAQSummaryFrame;}
4418namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSummarysliceHeader.hh"))) JDAQSummarysliceHeader;}
4419namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimesliceHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceHeader;}
4420namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimeslice;}
4421namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL0;}
4422namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL1;}
4423namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL2;}
4424namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceSN;}
4425namespace KM3NETDAQ{class JDAQSummaryslice;}
4427struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Hit;
4428struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Trk.hh"))) Trk;
4433 static const char* payloadCode = R
"DICTPAYLOAD(
4434#line 1 "G__KM3NeTROOT dictionary payload"
4437#define _BACKWARD_BACKWARD_WARNING_H
4442#include "km3net-dataformat/online/JDAQException.hh"
4456namespace KM3NETDAQ {
4461#if NAMESPACE == ANTARES
4462 static const int NUMBER_OF_PMTS = 3; //!< Total number of PMTs in module
4464 static const int NUMBER_OF_PMTS = 31; //!< Total number of PMTs in module
4491 if (bit < 0 || bit > 31) {
4492 throw JDAQException("JBit: illegal bit range.");
4515 void set(int& mask) const
4526 void unset(int& mask) const
4538 void set(int& mask, const bool value) const
4553 int write(const int value) const
4555 return (value << bit) & get();
4565 int read(const int mask) const
4567 return (mask & get()) >> bit;
4577 bool has(const int mask) const
4579 return (mask & get()) != 0;
4606 JBits(int __lsb, int __msb) :
4610 if (lsb < 0 || lsb > 31 ||
4611 msb < lsb || msb > 31) {
4612 throw JDAQException("JBits: illegal bit range.");
4626 static const unsigned int mask[] = { 0x00000001,
4666 return (int) (mask[msb-lsb] << lsb);
4676 int write(const int value) const
4678 return (value << lsb) & get();
4688 int read(const int mask) const
4690 return (mask & get()) >> lsb;
4700 bool has(const int mask) const
4702 return (get() & mask) != 0;
4706 int lsb; //!< least significant bit
4707 int msb; //!< most significant bit
4711 static const JBit DAQ_WHITE_RABBIT (31); //!< White Rabbit status
4712 static const JBits DAQ_TDC ( 0, 30); //!< TDC high-rate veto status
4713 static const JBits DAQ_FIFO ( 0, 30); //!< FIFO almost full bits
4715 static const JBit DAQ_UDP_TRAILER (31); //!< UDP trailer
4716 static const JBits DAQ_UDP_RECEIVED_PACKETS( 0, 15); //!< Mask of UDP received packets
4717 static const JBits DAQ_UDP_SEQUENCE_NUMBER (16, 31); //!< Mask of UDP sequence number
4721#ifndef __JDAQABSTRACTPREAMBLE__
4722#define __JDAQABSTRACTPREAMBLE__
4724#include "km3net-dataformat/online/JDAQDataTypes.hh"
4725#include "km3net-dataformat/online/JDAQRoot.hh"
4732namespace KM3NETDAQ {
4741 class JDAQAbstractPreamble {
4749 JDAQAbstractPreamble(JDAQType<T> type) :
4751 type (KM3NETDAQ::getDataType(type))
4758 JDAQAbstractPreamble() :
4769 int getLength() const
4780 int getDataType() const
4786 ClassDefNV(JDAQAbstractPreamble,1);
4795#ifndef __JDAQCHRONOMETER__
4796#define __JDAQCHRONOMETER__
4801#include "km3net-dataformat/online/JDAQRoot.hh"
4802#include "km3net-dataformat/online/JDAQUTCExtended.hh"
4803#include "km3net-dataformat/online/JDAQClock.hh"
4810namespace KM3NETDAQ {
4815 class JDAQChronometer
4819 friend size_t getSizeof<JDAQChronometer>();
4820 friend JReader& operator>>(JReader&, JDAQChronometer&);
4821 friend JWriter& operator<<(JWriter&, const JDAQChronometer&);
4841 JDAQChronometer(const int __detector_id,
4843 const int __frame_index) :
4844 detector_id(__detector_id),
4846 frame_index(__frame_index),
4847 timeslice_start(getTimeOfFrame(__frame_index))
4859 JDAQChronometer(const int __detector_id,
4861 const int __frame_index,
4862 const JDAQUTCExtended& __timeslice_start) :
4863 detector_id(__detector_id),
4865 frame_index(__frame_index),
4866 timeslice_start(__timeslice_start)
4873 virtual ~JDAQChronometer()
4882 const JDAQChronometer& getDAQChronometer() const
4884 return static_cast<const JDAQChronometer&>(*this);
4893 void setDAQChronometer(const JDAQChronometer& chronometer)
4895 static_cast<JDAQChronometer&>(*this) = chronometer;
4904 int getDetectorID() const
4915 int getRunNumber() const
4926 int getFrameIndex() const
4938 JDAQUTCExtended getTimesliceStart() const
4940 return timeslice_start;
4949 void setRunNumber(const int run)
4960 void setFrameIndex(const int frame_index)
4962 this->frame_index = frame_index;
4971 void setTimesliceStart(const JDAQUTCExtended& timeslice_start)
4973 this->timeslice_start = timeslice_start;
4977 ClassDef(JDAQChronometer,3);
4984 JDAQUTCExtended timeslice_start;
4995 inline std::ostream& operator<<(std::ostream& out, const JDAQChronometer& chronometer)
4997 using namespace std;
4999 out << setw(8) << chronometer.getDetectorID();
5001 out << setw(8) << chronometer.getRunNumber();
5003 out << setw(8) << chronometer.getFrameIndex();
5005 out << chronometer.getTimesliceStart();
5017 inline double getTimeOfRTS(const JDAQChronometer& chronometer)
5019 return getTimeOfRTS(chronometer.getFrameIndex());
5030 inline bool operator==(const JDAQChronometer& first,
5031 const JDAQChronometer& second)
5033 return (first.getDetectorID() == second.getDetectorID() &&
5034 first.getRunNumber() == second.getRunNumber() &&
5035 first.getFrameIndex() == second.getFrameIndex() &&
5036 first.getTimesliceStart() == second.getTimesliceStart());
5047 inline bool operator!=(const JDAQChronometer& first,
5048 const JDAQChronometer& second)
5050 return !(first == second);
5061 inline double getTimeDifference(const JDAQChronometer& first, const JDAQChronometer& second)
5063 return getTimeDifference(first.getTimesliceStart(), second.getTimesliceStart());
5068#ifndef __JDAQCLOCK__
5069#define __JDAQCLOCK__
5076#include "km3net-dataformat/online/JDAQException.hh"
5083namespace KM3NETDAQ {
5086 static double FRAME_TIME_NS = 100000000.0; //!< Frame time [ns]
5087 static double RESET_TIME_NS = FRAME_TIME_NS; //!< TDC dynamic range [ns]
5099 enum JDAQClock_t { KM3NET = 1, PPM_DU = 3, ANTARES = 101 };
5107 JDAQClock(const JDAQClock_t clock = KM3NET)
5109 this->clock = clock;
5120 JDAQClock_t get() const
5131 void set(const JDAQClock_t clock)
5133 this->clock = clock;
5144 switch (this->clock) {
5147 FRAME_TIME_NS = 100000000.0;
5148 RESET_TIME_NS = FRAME_TIME_NS;
5152 FRAME_TIME_NS = (1<<27);
5153 RESET_TIME_NS = FRAME_TIME_NS;
5157 FRAME_TIME_NS = 13107200.0 * 8;
5158 RESET_TIME_NS = 419430400.0;
5162 throw JDAQException("Undefined clock.");
5174 friend inline std::istream& operator>>(std::istream& in, JDAQClock& clock)
5176 using namespace std;
5183 clock.set((JDAQClock_t) clk);
5185 catch(const std::exception& error) {
5186 in.setstate(ios_base::badbit);
5200 friend inline std::ostream& operator<<(std::ostream& out, const JDAQClock& clock)
5202 return out << clock.clock;
5218 inline bool operator==(const JDAQClock& first, const JDAQClock& second)
5220 return first.get() == second.get();
5229 inline double getFrameTime()
5231 return FRAME_TIME_NS;
5240 inline double getRTS()
5242 return RESET_TIME_NS;
5252 inline double getTimeOfFrame(const int frame_index)
5254 if (frame_index != 0)
5255 return (double) (frame_index - 1) * FRAME_TIME_NS;
5267 inline double getTimeOfFrame(const unsigned int frame_index)
5269 if (frame_index != 0)
5270 return (double) (frame_index - 1) * FRAME_TIME_NS;
5282 inline double getTimeOfRTS(const double t_ns)
5284 return std::floor(t_ns/RESET_TIME_NS) * RESET_TIME_NS;
5294 inline double getTimeOfRTS(const int frame_index)
5296 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5306 inline double getTimeOfRTS(const unsigned int frame_index)
5308 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5318 inline int getFrameIndex(const double t_ns)
5320 return (int) (t_ns / FRAME_TIME_NS) + 1;
5330 inline double getTimeSinceRTS(const int frame_index)
5332 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5342 inline double getTimeSinceRTS(const unsigned int frame_index)
5344 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5354 inline double getTimeSinceRTS(const double& t_ns)
5356 return std::fmod(t_ns, RESET_TIME_NS);
5364 inline void setClock()
5366 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::ANTARES);
5369 using KM3NETDAQ::getFrameTime;
5370 using KM3NETDAQ::getRTS;
5371 using KM3NETDAQ::getTimeOfFrame;
5372 using KM3NETDAQ::getTimeOfRTS;
5373 using KM3NETDAQ::getFrameIndex;
5374 using KM3NETDAQ::getTimeSinceRTS;
5381 inline void setClock()
5383 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::KM3NET);
5386 using KM3NETDAQ::getFrameTime;
5387 using KM3NETDAQ::getRTS;
5388 using KM3NETDAQ::getTimeOfFrame;
5389 using KM3NETDAQ::getTimeOfRTS;
5390 using KM3NETDAQ::getFrameIndex;
5391 using KM3NETDAQ::getTimeSinceRTS;
5395#ifndef __JDAQDATATYPES__
5396#define __JDAQDATATYPES__
5398#include "km3net-dataformat/definitions/daqdatatypes.hh"
5404namespace KM3NETDAQ {
5412 typedef T data_type;
5421 inline int getDataType()
5423 return getDataType(JDAQType<T>());
5435 inline int getDataType(const JDAQType<T>& type);
5438 class JDAQSuperFrame;
5439 class JDAQSummaryFrame;
5440 class JDAQTimeslice;
5441 struct JDAQTimesliceL0;
5442 struct JDAQTimesliceL1;
5443 struct JDAQTimesliceL2;
5444 struct JDAQTimesliceSN;
5445 class JDAQSummaryslice;
5449 inline int getDataType(const JDAQType<JDAQSuperFrame>&) { return DAQSUPERFRAME; }
5450 inline int getDataType(const JDAQType<JDAQSummaryFrame>&) { return DAQSUMMARYFRAME; }
5451 inline int getDataType(const JDAQType<JDAQTimeslice>&) { return DAQTIMESLICE; }
5452 inline int getDataType(const JDAQType<JDAQTimesliceL0>&) { return DAQTIMESLICEL0; }
5453 inline int getDataType(const JDAQType<JDAQTimesliceL1>&) { return DAQTIMESLICEL1; }
5454 inline int getDataType(const JDAQType<JDAQTimesliceL2>&) { return DAQTIMESLICEL2; }
5455 inline int getDataType(const JDAQType<JDAQTimesliceSN>&) { return DAQTIMESLICESN; }
5456 inline int getDataType(const JDAQType<JDAQSummaryslice>&) { return DAQSUMMARYSLICE; }
5457 inline int getDataType(const JDAQType<JDAQEvent>&) { return DAQEVENT; }
5461#ifndef __JDAQEVENT__
5462#define __JDAQEVENT__
5468#include "km3net-dataformat/online/JDAQRoot.hh"
5469#include "km3net-dataformat/online/JDAQPreamble.hh"
5470#include "km3net-dataformat/online/JDAQEventHeader.hh"
5471#include "km3net-dataformat/online/JDAQHit.hh"
5472#include "km3net-dataformat/online/JDAQKeyHit.hh"
5473#include "km3net-dataformat/online/JDAQTriggeredHit.hh"
5474#include "km3net-dataformat/online/JDAQPrint.hh"
5481namespace KM3NETDAQ {
5484 typedef JDAQKeyHit JDAQSnapshotHit;
5491 public JDAQPreamble,
5492 public JDAQEventHeader
5496 using JDAQTriggerMask::getTriggerMask;
5498 friend size_t getSizeof(const JDAQEvent&);
5499 friend JReader& operator>>(JReader&, JDAQEvent&);
5500 friend JWriter& operator<<(JWriter&, const JDAQEvent&);
5506 JDAQPreamble(JDAQType<JDAQEvent>()),
5516 JDAQEvent(const JDAQEventHeader& header) :
5517 JDAQPreamble(JDAQType<JDAQEvent>()),
5518 JDAQEventHeader(header)
5526 class const_iterator :
5527 public std::vector<T>::const_iterator
5534 std::vector<T>::const_iterator()
5543 const_iterator(const typename std::vector<T>::const_iterator& i) :
5544 std::vector<T>::const_iterator(i)
5553 class const_reverse_iterator :
5554 public std::vector<T>::const_reverse_iterator
5560 const_reverse_iterator() :
5561 std::vector<T>::const_reverse_iterator()
5570 const_reverse_iterator(const typename std::vector<T>::const_reverse_iterator& i) :
5571 std::vector<T>::const_reverse_iterator(i)
5582 const std::vector<T>& getHits() const;
5591 std::vector<T>& getHits();
5600 const_iterator<T> begin() const;
5609 const_iterator<T> end() const;
5618 const_reverse_iterator<T> rbegin() const;
5627 const_reverse_iterator<T> rend() const;
5636 unsigned int size() const;
5653 snapshotHits .clear();
5654 triggeredHits.clear();
5663 void push_back(const JDAQKeyHit& hit)
5665 snapshotHits.push_back(hit);
5674 void push_back(const JDAQTriggeredHit& hit)
5676 triggeredHits.push_back(hit);
5686 static JTriggerMask_t getTriggerMask(const JDAQTriggeredHit& hit)
5688 return hit.getTriggerMask();
5698 JTriggerMask_t getTriggerMask(const JDAQSnapshotHit& hit) const
5700 for (std::vector<JDAQTriggeredHit>::const_iterator i = triggeredHits.begin(); i != triggeredHits.end(); ++i) {
5702 return i->getTriggerMask();
5706 return JTriggerMask_t(0);
5717 std::ostream& print(std::ostream& out, const bool lpr = false) const;
5720 ClassDef(JDAQEvent,4);
5724 std::vector<JDAQTriggeredHit> triggeredHits;
5725 std::vector<JDAQSnapshotHit> snapshotHits;
5736 bool operator==(const JDAQEvent& first,
5737 const JDAQEvent& second);
5747 inline bool operator!=(const JDAQEvent& first,
5748 const JDAQEvent& second)
5750 return !(first == second);
5761 inline std::ostream& operator<<(std::ostream& out, const JDAQEvent& event)
5763 return event.print(out, getDAQLongprint());
5774 inline double getTimeDifference(const JDAQEvent& first, const JDAQEvent& second);
5778#ifndef __JDAQEVENTHEADER__
5779#define __JDAQEVENTHEADER__
5781#include "km3net-dataformat/online/JDAQRoot.hh"
5782#include "km3net-dataformat/online/JDAQHeader.hh"
5783#include "km3net-dataformat/online/JDAQTriggerCounter.hh"
5784#include "km3net-dataformat/online/JDAQTriggerMask.hh"
5791namespace KM3NETDAQ {
5796 class JDAQEventHeader :
5798 public JDAQTriggerCounter,
5799 public JDAQTriggerMask
5803 friend size_t getSizeof<JDAQEventHeader>();
5804 friend JReader& operator>>(JReader&, JDAQEventHeader&);
5805 friend JWriter& operator<<(JWriter&, const JDAQEventHeader&);
5812 JDAQTriggerCounter(),
5823 const JDAQEventHeader& getDAQEventHeader() const
5825 return static_cast<const JDAQEventHeader&>(*this);
5835 inline bool is_same(const JDAQEventHeader& header) const
5837 return (this->getDetectorID() == header.getDetectorID() &&
5838 this->getRunNumber() == header.getRunNumber() &&
5839 this->getFrameIndex() == header.getFrameIndex() &&
5840 this->getCounter() == header.getCounter());
5849 unsigned int getOverlays() const
5855 ClassDef(JDAQEventHeader,3);
5859 unsigned int overlays;
5870 inline bool operator==(const JDAQEventHeader& first,
5871 const JDAQEventHeader& second)
5873 return (first.getDAQHeader() == second.getDAQHeader() &&
5874 first.getDAQTriggerCounter() == second.getDAQTriggerCounter() &&
5875 first.getDAQTriggerMask() == second.getDAQTriggerMask());
5886 inline bool operator!=(const JDAQEventHeader& first,
5887 const JDAQEventHeader& second)
5889 return !(first == second);
5894#ifndef __JDAQEXCEPTION__
5895#define __JDAQEXCEPTION__
5905namespace KM3NETDAQ {
5911 class JDAQException : public std::exception {
5918 JDAQException(const std::string& error) :
5927 ~JDAQException() throw()
5936 virtual const char* what() const throw()
5938 return buffer.c_str();
5948 friend inline std::ostream& operator<<(std::ostream& out, const JDAQException& exception)
5950 return out << exception.what();
5954 const std::string buffer;
5959#ifndef __JDAQFRAME__
5960#define __JDAQFRAME__
5968#include "km3net-dataformat/online/JDAQHit.hh"
5969#include "km3net-dataformat/online/JDAQRoot.hh"
5970#include "km3net-dataformat/online/JDAQException.hh"
5976namespace KM3NETDAQ {
5981 class JDAQFrameSubset
5985 typedef const JDAQHit* const_iterator;
5986 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
5995 JDAQFrameSubset(const int number_of_hits, const JDAQHit* data) :
5996 numberOfHits(number_of_hits),
6001 const_iterator begin() const { return buffer; }
6002 const_iterator end() const { return buffer + numberOfHits; }
6004 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
6005 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
6007 bool empty() const { return numberOfHits == 0; }
6009 int size() const { return numberOfHits; }
6011 const JDAQHit* data() const { return buffer; }
6015 const int numberOfHits;
6016 const JDAQHit* buffer;
6027 typedef const JDAQHit* const_iterator;
6028 typedef JDAQHit* iterator;
6029 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
6030 typedef std::reverse_iterator<iterator> reverse_iterator;
6032 friend size_t getSizeof(const JDAQFrame&);
6033 friend JReader& operator>>(JReader&, JDAQFrame&);
6034 friend JWriter& operator<<(JWriter&, const JDAQFrame&);
6050 JDAQFrame(const JDAQFrame& frame) :
6063 JDAQFrame(JDAQFrame&& frame) :
6064 numberOfHits(frame.numberOfHits),
6065 buffer (frame.buffer)
6067 frame.numberOfHits = 0;
6068 frame.buffer = NULL;
6078 JDAQFrame(const int number_of_hits, const JDAQHit* data) :
6082 add(number_of_hits, data);
6089 virtual ~JDAQFrame()
6101 JDAQFrame& operator=(const JDAQFrame& frame)
6114 if (buffer != NULL) {
6123 const_iterator begin() const { return buffer; }
6124 const_iterator end() const { return buffer + numberOfHits; }
6127 iterator begin() { return buffer; }
6128 iterator end() { return buffer + numberOfHits; }
6131 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
6132 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
6135 reverse_iterator rbegin() { return reverse_iterator(end()); }
6136 reverse_iterator rend() { return reverse_iterator(begin()); }
6139 bool empty() const { return numberOfHits == 0; }
6141 int size() const { return numberOfHits; }
6143 const JDAQHit* data() const { return buffer; }
6144 JDAQHit* data() { return buffer; }
6153 const JDAQHit& operator[](int index) const
6155 return buffer[index];
6165 JDAQFrameSubset subset(const int i1, const int i2) const
6167 return JDAQFrameSubset(i2 - i1, buffer + i1);
6177 JDAQFrame& add(const JDAQFrame& frame)
6179 return add(frame.numberOfHits, frame.buffer);
6190 JDAQFrame& add(const int number_of_hits, const JDAQHit* data)
6192 if (number_of_hits > 0) {
6194 resize(numberOfHits + number_of_hits);
6196 memcpy(buffer + numberOfHits - number_of_hits, data, number_of_hits * sizeof(JDAQHit));
6208 void swap(JDAQFrame& frame)
6210 std::swap(numberOfHits, frame.numberOfHits);
6211 std::swap(buffer, frame.buffer);
6215 int numberOfHits; // following comment line is used by rootcint
6216 JDAQHit* buffer; // [numberOfHits]
6219 ClassDef(JDAQFrame,1);
6231 void resize(const int number_of_hits)
6233 if (number_of_hits > numberOfHits) {
6235 const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
6238 buffer = (JDAQHit*) malloc(number_of_bytes);
6240 buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
6242 if (buffer == NULL) {
6243 throw JDAQException("JDAQFrame::resize(): Memory exception - number of hits = " + std::to_string(number_of_hits));
6246 numberOfHits = number_of_hits;
6259 inline bool operator==(const JDAQFrame& first,
6260 const JDAQFrame& second)
6262 if (first.size() == second.size()) {
6264 for (JDAQFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
6286 inline bool operator!=(const JDAQFrame& first,
6287 const JDAQFrame& second)
6289 return !(first == second);
6294#ifndef __JDAQFRAMESTATUS__
6295#define __JDAQFRAMESTATUS__
6297#include "km3net-dataformat/online/JDAQ.hh"
6298#include "km3net-dataformat/online/JDAQException.hh"
6299#include "km3net-dataformat/online/JDAQRoot.hh"
6305namespace KM3NETDAQ {
6310 class JDAQFrameStatus {
6313 friend size_t getSizeof<JDAQFrameStatus>();
6314 friend JReader& operator>>(JReader&, JDAQFrameStatus&);
6315 friend JWriter& operator<<(JWriter&, const JDAQFrameStatus&);
6338 JDAQFrameStatus(const int __daq,
6341 const int __status_3 = 0,
6342 const int __status_4 = 0) :
6346 status_3(__status_3),
6347 status_4(__status_4)
6358 static const JDAQFrameStatus& getInstance()
6360 static const JDAQFrameStatus status(DAQ_UDP_RECEIVED_PACKETS.write(2) | DAQ_UDP_SEQUENCE_NUMBER.write(1),
6361 DAQ_WHITE_RABBIT.write(1),
6362 DAQ_FIFO.write(0) | DAQ_UDP_TRAILER.write(1));
6373 const JDAQFrameStatus& getDAQFrameStatus() const
6375 return static_cast<const JDAQFrameStatus&>(*this);
6384 void setDAQFrameStatus(const JDAQFrameStatus& status)
6386 static_cast<JDAQFrameStatus&>(*this) = status;
6395 int getDAQStatus() const
6406 int getStatus() const
6408 return this->status;
6417 int getFIFOStatus() const
6428 bool testDAQStatus() const
6430 return (getUDPNumberOfReceivedPackets() == (getUDPMaximalSequenceNumber() + 1)) && hasUDPTrailer();
6439 bool testStatus() const
6441 return testWhiteRabbitStatus() && testTDCStatus();
6450 int getUDPNumberOfReceivedPackets() const
6452 return DAQ_UDP_RECEIVED_PACKETS.read(this->daq);
6461 int getUDPMaximalSequenceNumber() const
6463 return DAQ_UDP_SEQUENCE_NUMBER.read(this->daq);
6472 bool testWhiteRabbitStatus() const
6474 return DAQ_WHITE_RABBIT.has(this->status);
6483 bool testTDCStatus() const
6485 return !testHighRateVeto();
6494 bool testHighRateVeto() const
6496 return DAQ_TDC.has(this->status);
6506 bool testHighRateVeto(const int tdc) const
6508 return JBit(tdc).has(this->status);
6517 int countHighRateVeto() const
6521 if (testHighRateVeto()) {
6522 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6523 if (JBit(pmt).has(this->status)) {
6538 bool testFIFOStatus() const
6540 return DAQ_FIFO.has(this->fifo);
6550 bool testFIFOStatus(const int tdc) const
6552 return JBit(tdc).has(this->fifo);
6561 int countFIFOStatus() const
6565 if (testFIFOStatus()) {
6566 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6567 if (JBit(pmt).has(this->fifo)) {
6580 int countActiveChannels() const
6582 int n = NUMBER_OF_PMTS;
6584 if (testHighRateVeto() || testFIFOStatus()) {
6585 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6586 if ( JBit(pmt).has(this->status) || JBit(pmt).has(this->fifo) ) {
6602 bool hasUDPTrailer() const
6604 return DAQ_UDP_TRAILER.has(this->fifo);
6614 void setHighRateVeto(const int tdc, const bool value)
6616 JBit(tdc).set(this->status, value);
6620 ClassDefNV(JDAQFrameStatus,1);
6623 int daq; // DAQ status
6624 int status; // TDC status
6625 int fifo; // FIFO status
6626 int status_3; // spare
6627 int status_4; // spare
6638 inline bool operator==(const JDAQFrameStatus& first,
6639 const JDAQFrameStatus& second)
6641 return (first.getDAQStatus() == second.getDAQStatus() &&
6642 first.getStatus() == second.getStatus() &&
6643 first.getFIFOStatus() == second.getFIFOStatus());
6654 inline bool operator!=(const JDAQFrameStatus& first,
6655 const JDAQFrameStatus& second)
6657 return !(first == second);
6662#ifndef __JDAQHEADER__
6663#define __JDAQHEADER__
6665#include "km3net-dataformat/online/JDAQRoot.hh"
6666#include "km3net-dataformat/online/JDAQChronometer.hh"
6673namespace KM3NETDAQ {
6679 public JDAQChronometer
6683 friend size_t getSizeof<JDAQHeader>();
6684 friend JReader& operator>>(JReader&, JDAQHeader&);
6685 friend JWriter& operator<<(JWriter&, const JDAQHeader&);
6700 JDAQHeader(const JDAQChronometer& chronometer) :
6701 JDAQChronometer(chronometer)
6710 const JDAQHeader& getDAQHeader() const
6712 return static_cast<const JDAQHeader&>(*this);
6721 void setDAQHeader(const JDAQHeader& header)
6723 static_cast<JDAQHeader&>(*this) = header;
6727 ClassDef(JDAQHeader,2);
6738 inline bool operator==(const JDAQHeader& first,
6739 const JDAQHeader& second)
6741 return (first.getDAQChronometer() == second.getDAQChronometer());
6752 inline bool operator!=(const JDAQHeader& first,
6753 const JDAQHeader& second)
6755 return !(first == second);
6768#include <netinet/in.h>
6771#include "km3net-dataformat/online/JDAQ.hh"
6772#include "km3net-dataformat/online/JDAQRoot.hh"
6773#include "km3net-dataformat/online/JDAQException.hh"
6780namespace KM3NETDAQ {
6797 typedef unsigned char JPMT_t; //!< PMT channel in FPGA
6798 typedef unsigned int JTDC_t; //!< leading edge [ns]
6799 typedef unsigned char JTOT_t; //!< time over threshold [ns]
6801 friend size_t getSizeof<JDAQHit>();
6802 friend JReader& operator>>(JReader&, JDAQHit&);
6803 friend JWriter& operator<<(JWriter&, const JDAQHit&);
6819 JDAQHit(const JPMT_t pmt_id,
6820 const JTDC_t tdc_ns,
6821 const JTOT_t tot_ns) :
6834 inline JPMT_t getPMT() const
6845 inline JTDC_t getT() const
6856 inline JTOT_t getToT() const
6867 static JTOT_t getMaximalToT()
6880 friend inline std::istream& operator>>(std::istream& in, JDAQHit& hit)
6886 if (in >> pmt >> tdc >> tot) {
6887 hit = JDAQHit(pmt, tdc, tot);
6901 friend inline std::ostream& operator<<(std::ostream& out, const JDAQHit& hit)
6903 using namespace std;
6905 out << setw(2) << (int) hit.getPMT() << ' '
6906 << setw(8) << (int) hit.getT() << ' '
6907 << setw(3) << (int) hit.getToT();
6913 ClassDefNV(JDAQHit,2);
6917 JPMT_t pmt; //!< PMT readout channel in FPGA
6918 JTDC_t tdc; //!< leading edge [ns]
6919 JTOT_t tot; //!< time over threshold [ns]
6933 inline bool operator<(const JDAQHit& first,
6934 const JDAQHit& second)
6936 if (first.getT() != second.getT())
6937 return first.getT() < second.getT();
6939 return first.getPMT() < second.getPMT();
6950 inline bool operator==(const JDAQHit& first,
6951 const JDAQHit& second)
6953 return (first.getPMT() == second.getPMT() &&
6954 first.getT() == second.getT() &&
6955 first.getToT() == second.getToT());
6966 inline bool operator!=(const JDAQHit& first,
6967 const JDAQHit& second)
6969 return !(first == second);
6974#ifndef __JDAQKEYHIT__
6975#define __JDAQKEYHIT__
6977#include "km3net-dataformat/online/JDAQRoot.hh"
6978#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
6979#include "km3net-dataformat/online/JDAQHit.hh"
6980#include "km3net-dataformat/online/JDAQPMTIdentifier.hh"
6987namespace KM3NETDAQ {
6993 public JDAQModuleIdentifier,
6998 friend size_t getSizeof<JDAQKeyHit>();
6999 friend JReader& operator>>(JReader&, JDAQKeyHit&);
7000 friend JWriter& operator<<(JWriter&, const JDAQKeyHit&);
7006 JDAQModuleIdentifier(),
7017 JDAQKeyHit(const JDAQModuleIdentifier& id,
7018 const JDAQHit& hit) :
7019 JDAQModuleIdentifier(id),
7027 virtual ~JDAQKeyHit()
7036 operator JDAQPMTIdentifier () const
7038 return JDAQPMTIdentifier(this->getModuleID(), this->getPMT());
7042 ClassDef(JDAQKeyHit,1);
7056 inline bool operator<(const JDAQKeyHit& first,
7057 const JDAQKeyHit& second)
7059 if (first.getModuleID() == second.getModuleID()) {
7060 if (first.getPMT() == second.getPMT())
7061 return first.getT() < second.getT();
7063 return first.getPMT() < second.getPMT();
7065 return first.getModuleID() < second.getModuleID();
7079 inline bool operator==(const JDAQKeyHit& first,
7080 const JDAQKeyHit& second)
7082 return (first.getModuleID() == second.getModuleID() &&
7083 first.getPMT() == second.getPMT() &&
7084 first.getT() == second.getT());
7095 inline bool operator!=(const JDAQKeyHit& first,
7096 const JDAQKeyHit& second)
7098 return !(first == second);
7103#ifndef __JDAQMODULEIDENTIFIER__
7104#define __JDAQMODULEIDENTIFIER__
7109#include "km3net-dataformat/online/JDAQRoot.hh"
7116namespace KM3NETDAQ {
7121 class JDAQModuleIdentifier
7125 friend size_t getSizeof<JDAQModuleIdentifier>();
7126 friend JReader& operator>>(JReader&, JDAQModuleIdentifier&);
7127 friend JWriter& operator<<(JWriter&, const JDAQModuleIdentifier&);
7132 JDAQModuleIdentifier() :
7142 JDAQModuleIdentifier(const int __id) :
7152 const JDAQModuleIdentifier& getModuleIdentifier() const
7163 void setModuleIdentifier(const JDAQModuleIdentifier& module)
7174 int getModuleID() const
7187 friend inline std::istream& operator>>(std::istream& in, JDAQModuleIdentifier& module)
7202 friend inline std::ostream& operator<<(std::ostream& out, const JDAQModuleIdentifier& module)
7210 ClassDefNV(JDAQModuleIdentifier,1);
7225 inline bool operator==(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7227 return first.getModuleID() == second.getModuleID();
7238 inline bool operator!=(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7240 return first.getModuleID() != second.getModuleID();
7251 inline bool operator==(const JDAQModuleIdentifier& module, const int id)
7253 return module.getModuleID() == id;
7264 inline bool operator!=(const JDAQModuleIdentifier& module, const int id)
7266 return module.getModuleID() != id;
7277 inline bool operator<(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7279 return first.getModuleID() < second.getModuleID();
7290 inline bool operator<(const JDAQModuleIdentifier& module, const int id)
7292 return module.getModuleID() < id;
7299 struct JDAQModuleComparator {
7301 * Default constructor.
7303 JDAQModuleComparator()
7314 bool operator()(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second) const
7316 return first.getModuleID() < second.getModuleID();
7322#ifndef __JDAQPMTIDENTIFIER__
7323#define __JDAQPMTIDENTIFIER__
7328#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7329#include "km3net-dataformat/online/JDAQRoot.hh"
7336namespace KM3NETDAQ {
7341 class JDAQPMTIdentifier :
7342 public JDAQModuleIdentifier
7346 friend size_t getSizeof<JDAQPMTIdentifier>();
7347 friend JReader& operator>>(JReader&, JDAQPMTIdentifier&);
7348 friend JWriter& operator<<(JWriter&, const JDAQPMTIdentifier&);
7353 JDAQPMTIdentifier() :
7354 JDAQModuleIdentifier(),
7365 JDAQPMTIdentifier(const JDAQModuleIdentifier& id,
7366 const int pmt_address) :
7367 JDAQModuleIdentifier(id),
7368 address (pmt_address)
7377 const JDAQPMTIdentifier& getPMTIdentifier() const
7388 void setPMTIdentifier(const JDAQPMTIdentifier& pmt)
7399 int getPMTAddress() const
7412 friend inline std::istream& operator>>(std::istream& in, JDAQPMTIdentifier& pmt)
7414 in >> static_cast<JDAQModuleIdentifier&>(pmt);
7428 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPMTIdentifier& pmt)
7430 out << static_cast<const JDAQModuleIdentifier&>(pmt) << ' ';
7447 static inline bool compare(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7449 return ((first .getModuleIdentifier() == second.getModuleIdentifier() ||
7450 first .getModuleIdentifier() == -1 ||
7451 second.getModuleIdentifier() == -1) &&
7452 (first .getPMTAddress() == second.getPMTAddress() ||
7453 first .getPMTAddress() == -1 ||
7454 second.getPMTAddress() == -1));
7458 ClassDefNV(JDAQPMTIdentifier,1);
7475 inline bool operator<(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7477 if (first.getModuleIdentifier() == second.getModuleIdentifier())
7478 return first.getPMTAddress() < second.getPMTAddress();
7480 return first.getModuleIdentifier() < second.getModuleIdentifier();
7493 inline bool operator==(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7495 return (first.getModuleIdentifier() == second.getModuleIdentifier() &&
7496 first.getPMTAddress() == second.getPMTAddress());
7507 inline bool operator!=(const JDAQPMTIdentifier& first,
7508 const JDAQPMTIdentifier& second)
7510 return !(first == second);
7515#ifndef __JDAQPREAMBLE__
7516#define __JDAQPREAMBLE__
7521#include "km3net-dataformat/online/JDAQRoot.hh"
7522#include "km3net-dataformat/online/JDAQDataTypes.hh"
7523#include "km3net-dataformat/online/JDAQAbstractPreamble.hh"
7530namespace KM3NETDAQ {
7540 class JDAQPreamble :
7541 public JDAQAbstractPreamble,
7552 JDAQPreamble(const JDAQType<T>& type) :
7553 JDAQAbstractPreamble(type)
7558 friend size_t getSizeof<JDAQPreamble>();
7559 friend JReader& operator>>(JReader&, JDAQPreamble&);
7560 friend JWriter& operator<<(JWriter&, const JDAQPreamble&);
7566 JDAQAbstractPreamble()
7573 virtual ~JDAQPreamble()
7590 static JDAQPreamble getDAQPreamble(const T& object)
7592 static JDAQPreamble preamble;
7594 preamble.length = getSizeof(object);
7595 preamble.type = KM3NETDAQ::getDataType<T>();
7608 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPreamble& preamble)
7610 using namespace std;
7612 out << setw(8) << preamble.length;
7614 out << setw(6) << preamble.type;
7620 ClassDef(JDAQPreamble,1);
7625#ifndef __JDAQPRINT__
7626#define __JDAQPRINT__
7632namespace KM3NETDAQ {
7639 inline bool& getDAQLongprint()
7652 inline void setDAQLongprint(const bool option)
7654 getDAQLongprint() = option;
7665#include "km3net-dataformat/online/JDAQException.hh"
7673 class JReader; // forward declaration for friend
7674 class JWriter; // forward declaration for friend
7677namespace KM3NETDAQ {
7687 inline size_t getSizeof();
7697using namespace KM3NETDAQ;
7700#ifndef __JDAQSUMMARYFRAME__
7701#define __JDAQSUMMARYFRAME__
7707#include "km3net-dataformat/online/JDAQException.hh"
7708#include "km3net-dataformat/online/JDAQ.hh"
7709#include "km3net-dataformat/online/JDAQClock.hh"
7710#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7711#include "km3net-dataformat/online/JDAQFrameStatus.hh"
7712#include "km3net-dataformat/online/JDAQSuperFrame.hh"
7719namespace KM3NETDAQ {
7725 class JDAQSummaryFrame;
7738 friend class JDAQSummaryFrame;
7741 typedef unsigned char JRate_t; // type of value to store rate
7749 static double getMinimalRate()
7760 static double getMaximalRate()
7773 static JRate_t getValue(const int numberOfHits, const double frameTime_ns)
7775 return getValue(numberOfHits * 1.0e9 / frameTime_ns);
7785 static JRate_t getValue(const double rate_Hz)
7787 if (rate_Hz <= getMinimalRate())
7789 else if (rate_Hz >= getMaximalRate())
7790 return std::numeric_limits<JRate_t>::max();
7792 return (JRate_t) (log(rate_Hz/getMinimalRate()) / getFactor() + 0.5);
7802 static double getRate(const JRate_t value)
7807 return get_rate(value);
7817 static double getWeight(const JRate_t value)
7822 W = get_rate(0.5) - getMinimalRate();
7823 else if (value == std::numeric_limits<JRate_t>::max())
7824 W = getMaximalRate() - get_rate(std::numeric_limits<JRate_t>::max() - 0.5);
7826 W = get_rate((double) value + 0.5) - get_rate((double) value - 0.5);
7839 return (int) std::numeric_limits<JRate_t>::max() + 1;
7849 static const double* getData(const double factor = 1.0)
7851 static std::vector<double> buffer;
7855 buffer.push_back(getMinimalRate() * factor);
7857 for (int i = 1; i != JDAQRate::getN(); ++i) {
7858 buffer.push_back(get_rate(i - 0.5) * factor);
7861 buffer.push_back(getMaximalRate() * factor);
7863 return buffer.data();
7880 JRate_t getValue() const
7892 void setValue(const int numberOfHits, const double frameTime_ns)
7894 value = getValue(numberOfHits, frameTime_ns);
7903 void setValue(const double rate_Hz)
7905 value = getValue(rate_Hz);
7914 double getRate() const
7916 return getRate(value);
7925 double getWeight() const
7927 return getWeight(value);
7937 JDAQRate& mul(const double factor)
7939 setValue(getRate() * factor);
7951 JDAQRate& div(const double factor)
7953 setValue(getRate() / factor);
7965 bool is_valid() const
7967 return (value != 0 && value != std::numeric_limits<JRate_t>::max());
7981 static const double getFactor()
7983 return std::log(getMaximalRate() / getMinimalRate()) / std::numeric_limits<JRate_t>::max();
7993 static double get_rate(const double value)
7995 return getMinimalRate() * std::exp(value * getFactor());
8007 inline bool operator==(const JDAQRate& first,
8008 const JDAQRate& second)
8010 return (first.getValue() == second.getValue());
8021 inline bool operator!=(const JDAQRate& first,
8022 const JDAQRate& second)
8024 return (first.getValue() != second.getValue());
8031 class JDAQSummaryFrame :
8032 public JDAQModuleIdentifier,
8033 public JDAQFrameStatus
8037 typedef JDAQRate::JRate_t JRate_t;
8039 friend size_t getSizeof<JDAQSummaryFrame>();
8040 friend JReader& operator>>(JReader&, JDAQSummaryFrame&);
8041 friend JWriter& operator<<(JWriter&, const JDAQSummaryFrame&);
8046 JDAQSummaryFrame() :
8047 JDAQModuleIdentifier(),
8057 JDAQSummaryFrame(const JDAQModuleIdentifier& id) :
8058 JDAQModuleIdentifier(id),
8059 JDAQFrameStatus(JDAQFrameStatus::getInstance())
8072 JDAQSummaryFrame(const JDAQSuperFrame& input) :
8073 JDAQModuleIdentifier(input.getModuleID()),
8074 JDAQFrameStatus (input.getDAQFrameStatus())
8076 using namespace std;
8078 typedef JDAQHit::JPMT_t JPMT_t;
8079 typedef JDAQHit::JTDC_t JTDC_t;
8081 vector<int> counter(numeric_limits<JPMT_t>::max(), 0);
8083 int n = input.size();
8085 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8086 ++counter[i->getPMT()];
8089 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8090 data[i].setValue(counter[i], getFrameTime());
8093 if (input.testHighRateVeto() || input.testFIFOStatus()) {
8095 // determine last hit for each PMT
8097 vector<JTDC_t> limit(numeric_limits<JPMT_t>::max(), 0);
8099 int n = input.size();
8101 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8102 if (i->getT() > limit[i->getPMT()]) {
8103 limit[i->getPMT()] = i->getT();
8107 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8108 if (input.testHighRateVeto(i) || input.testFIFOStatus(i)) {
8109 if (limit[i] != 0) {
8110 data[i].setValue((double) counter[i] * 1.0e9 / (double) limit[i]);
8124 const JDAQRate& operator[](const int tdc) const
8126 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8129 throw JDAQException("TDC out of range.");
8139 JDAQRate& operator[](const int tdc)
8141 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8144 throw JDAQException("TDC out of range.");
8154 JRate_t getValue(const int tdc) const
8156 return data[tdc].getValue();
8167 double getRate(const int tdc, const double factor = 1.0) const
8169 return data[tdc].getRate() * factor;
8180 double getWeight(const int tdc, const double factor = 1.0) const
8182 return data[tdc].getWeight() / factor;
8192 void setRate(const int tdc, const double rate_Hz)
8194 return data[tdc].setValue(rate_Hz);
8198 static int ROOT_IO_VERSION; //!< Streamer version of JDAQSummaryslice as obtained from ROOT file.
8201 ClassDefNV(JDAQSummaryFrame,2);
8206 JDAQRate data[NUMBER_OF_PMTS];
8217 inline bool operator==(const JDAQSummaryFrame& first,
8218 const JDAQSummaryFrame& second)
8220 if (first.getModuleIdentifier() == second.getModuleIdentifier() &&
8221 first.getDAQFrameStatus() == second.getDAQFrameStatus()) {
8223 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8224 if (first[i] != second[i]) {
8245 inline bool operator!=(const JDAQSummaryFrame& first,
8246 const JDAQSummaryFrame& second)
8248 return !(first == second);
8253#ifndef __JDAQSUMMARYSLICE__
8254#define __JDAQSUMMARYSLICE__
8260#include "km3net-dataformat/online/JDAQRoot.hh"
8261#include "km3net-dataformat/online/JDAQPreamble.hh"
8262#include "km3net-dataformat/online/JDAQSummaryFrame.hh"
8263#include "km3net-dataformat/online/JDAQSummarysliceHeader.hh"
8264#include "km3net-dataformat/online/JDAQTimeslice.hh"
8265#include "km3net-dataformat/online/JDAQClock.hh"
8272namespace KM3NETDAQ {
8277 class JDAQSummaryslice :
8278 public JDAQPreamble,
8279 public JDAQSummarysliceHeader,
8280 public std::vector<JDAQSummaryFrame>
8284 friend size_t getSizeof(const JDAQSummaryslice&);
8285 friend JReader& operator>>(JReader&, JDAQSummaryslice&);
8286 friend JWriter& operator<<(JWriter&, const JDAQSummaryslice&);
8291 JDAQSummaryslice() :
8292 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8293 JDAQSummarysliceHeader(),
8294 std::vector<JDAQSummaryFrame>()
8303 JDAQSummaryslice(const JDAQChronometer& chronometer) :
8304 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8305 JDAQSummarysliceHeader(chronometer),
8306 std::vector<JDAQSummaryFrame>()
8315 JDAQSummaryslice(const JDAQTimeslice& timeslice) :
8316 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8317 JDAQSummarysliceHeader(timeslice),
8318 std::vector<JDAQSummaryFrame>()
8320 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8321 this->push_back(JDAQSummaryFrame(*i));
8329 virtual ~JDAQSummaryslice()
8340 std::ostream& print(std::ostream& out, const bool lpr = false) const
8342 using namespace std;
8344 out << this->ClassName() << endl;
8345 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8346 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8348 for (JDAQSummaryslice::const_iterator module = this->begin(); module != this->end(); ++module) {
8350 out << ' ' << setw(10) << module->getModuleID();
8351 out << ' ' << setw(8) << setfill('0') << hex << module->getStatus() << dec << setfill(' ');
8352 out << '|' << setw(8) << setfill('0') << hex << module->getFIFOStatus() << dec << setfill(' ');
8353 out << ' ' << setw(2) << module->getUDPNumberOfReceivedPackets();
8354 out << ' ' << setw(2) << module->getUDPMaximalSequenceNumber();
8357 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
8358 out << ' ' << fixed << showpoint << setw(4) << setprecision(1) << module->getRate(pmt) * 1.0e-3;
8374 static void actionAtFileOpen(int version)
8376 JDAQSummaryFrame::ROOT_IO_VERSION = version;
8380 ClassDef(JDAQSummaryslice,6);
8391 inline std::ostream& operator<<(std::ostream& out, const KM3NETDAQ::JDAQSummaryslice& summary)
8393 return summary.print(out, getDAQLongprint());
8404 inline bool operator==(const JDAQSummaryslice& first,
8405 const JDAQSummaryslice& second)
8407 return (first.getDAQSummarysliceHeader() == second.getDAQSummarysliceHeader() &&
8408 static_cast<const std::vector<JDAQSummaryFrame>&>(first) == static_cast<const std::vector<JDAQSummaryFrame>&>(second));
8419 inline bool operator!=(const JDAQSummaryslice& first,
8420 const JDAQSummaryslice& second)
8422 return !(first == second);
8427#ifndef __JDAQSUMMARYSLICEHEADER__
8428#define __JDAQSUMMARYSLICEHEADER__
8430#include "km3net-dataformat/online/JDAQRoot.hh"
8431#include "km3net-dataformat/online/JDAQHeader.hh"
8438namespace KM3NETDAQ {
8443 class JDAQSummarysliceHeader :
8450 JDAQSummarysliceHeader() :
8460 JDAQSummarysliceHeader(const JDAQChronometer& chronometer) :
8461 JDAQHeader(chronometer)
8470 const JDAQSummarysliceHeader& getDAQSummarysliceHeader() const
8472 return static_cast<const JDAQSummarysliceHeader&>(*this);
8476 ClassDef(JDAQSummarysliceHeader,2);
8487 inline bool operator==(const JDAQSummarysliceHeader& first,
8488 const JDAQSummarysliceHeader& second)
8490 return (first.getDAQHeader() == second.getDAQHeader());
8501 inline bool operator!=(const JDAQSummarysliceHeader& first,
8502 const JDAQSummarysliceHeader& second)
8504 return !(first == second);
8509#ifndef __JDAQSUPERFRAME__
8510#define __JDAQSUPERFRAME__
8512#include "km3net-dataformat/online/JDAQ.hh"
8513#include "km3net-dataformat/online/JDAQPreamble.hh"
8514#include "km3net-dataformat/online/JDAQSuperFrameHeader.hh"
8515#include "km3net-dataformat/online/JDAQFrame.hh"
8516#include "km3net-dataformat/online/JDAQHit.hh"
8517#include "km3net-dataformat/online/JDAQRoot.hh"
8518#include "km3net-dataformat/online/JDAQException.hh"
8525namespace KM3NETDAQ {
8530 class JDAQSuperFrame :
8531 public JDAQPreamble,
8532 public JDAQSuperFrameHeader,
8537 typedef JDAQFrame::const_iterator const_iterator;
8538 typedef JDAQFrame::iterator iterator;
8539 typedef JDAQFrame::const_reverse_iterator const_reverse_iterator;
8540 typedef JDAQFrame::reverse_iterator reverse_iterator;
8542 friend size_t getSizeof(const JDAQSuperFrame&);
8543 friend JReader& operator>>(JReader&, JDAQSuperFrame&);
8544 friend JWriter& operator<<(JWriter&, const JDAQSuperFrame&);
8550 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8551 JDAQSuperFrameHeader(),
8561 JDAQSuperFrame(const JDAQSuperFrameHeader& header) :
8562 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8563 JDAQSuperFrameHeader(header),
8573 JDAQSuperFrame(const JDAQSuperFrame& super_frame) :
8574 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8575 JDAQSuperFrameHeader(super_frame.getDAQSuperFrameHeader()),
8576 JDAQFrame(super_frame)
8586 JDAQSuperFrame& add(const JDAQSuperFrame& super_frame)
8588 if (this->getModuleID() != super_frame.getModuleID())
8589 throw JDAQException("JDAQSuperFrame::add(): Different module identifiers.");
8591 return add(static_cast<const JDAQFrame&>(super_frame));
8601 JDAQSuperFrame& add(const JDAQHit& hit)
8603 return add(1, &hit);
8613 JDAQSuperFrame& add(const JDAQFrame& frame)
8615 return add(frame.numberOfHits, frame.buffer);
8626 JDAQSuperFrame& add(const int number_of_hits, const JDAQHit* data)
8628 JDAQFrame::add(number_of_hits, data);
8634 ClassDef(JDAQSuperFrame,3);
8645 inline bool operator==(const JDAQSuperFrame& first,
8646 const JDAQSuperFrame& second)
8648 if (first.getDAQSuperFrameHeader() == second.getDAQSuperFrameHeader() &&
8649 first.size() == second.size()) {
8651 for (JDAQSuperFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
8673 inline bool operator!=(const JDAQSuperFrame& first,
8674 const JDAQSuperFrame& second)
8676 return !(first == second);
8681#ifndef __JDAQSUPERFRAMEHEADER__
8682#define __JDAQSUPERFRAMEHEADER__
8684#include "km3net-dataformat/online/JDAQ.hh"
8685#include "km3net-dataformat/online/JDAQHeader.hh"
8686#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
8687#include "km3net-dataformat/online/JDAQFrameStatus.hh"
8688#include "km3net-dataformat/online/JDAQRoot.hh"
8694namespace KM3NETDAQ {
8699 class JDAQSuperFrameHeader :
8701 public JDAQModuleIdentifier,
8702 public JDAQFrameStatus
8706 friend size_t getSizeof<JDAQSuperFrameHeader>();
8707 friend JReader& operator>>(JReader&, JDAQSuperFrameHeader&);
8708 friend JWriter& operator<<(JWriter&, const JDAQSuperFrameHeader&);
8713 JDAQSuperFrameHeader() :
8715 JDAQModuleIdentifier(),
8726 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8728 JDAQHeader (chronometer),
8729 JDAQModuleIdentifier(id),
8730 JDAQFrameStatus (JDAQFrameStatus::getInstance())
8741 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8743 const JDAQFrameStatus& status) :
8744 JDAQHeader (chronometer),
8745 JDAQModuleIdentifier(id),
8746 JDAQFrameStatus (status)
8755 const JDAQSuperFrameHeader& getDAQSuperFrameHeader() const
8757 return static_cast<const JDAQSuperFrameHeader&>(*this);
8766 void setDAQSuperFrameHeader(const JDAQSuperFrameHeader& header)
8768 static_cast<JDAQSuperFrameHeader&>(*this) = header;
8772 ClassDef(JDAQSuperFrameHeader,2);
8783 inline bool operator==(const JDAQSuperFrameHeader& first,
8784 const JDAQSuperFrameHeader& second)
8786 return (first.getDAQHeader() == second.getDAQHeader() &&
8787 first.getModuleIdentifier() == second.getModuleIdentifier() &&
8788 first.getDAQFrameStatus() == second.getDAQFrameStatus());
8799 inline bool operator!=(const JDAQSuperFrameHeader& first,
8800 const JDAQSuperFrameHeader& second)
8802 return !(first == second);
8807#ifndef __JDAQTIMESLICE__
8808#define __JDAQTIMESLICE__
8815#include "km3net-dataformat/online/JDAQRoot.hh"
8816#include "km3net-dataformat/online/JDAQPreamble.hh"
8817#include "km3net-dataformat/online/JDAQTimesliceHeader.hh"
8818#include "km3net-dataformat/online/JDAQSuperFrame.hh"
8819#include "km3net-dataformat/online/JDAQException.hh"
8820#include "km3net-dataformat/online/JDAQPrint.hh"
8827namespace KM3NETDAQ {
8830 class JDAQSummaryslice;
8836 class JDAQTimeslice :
8837 public JDAQPreamble,
8838 public JDAQTimesliceHeader,
8839 public std::vector<JDAQSuperFrame>
8843 friend size_t getSizeof(const JDAQTimeslice&);
8844 friend JReader& operator>>(JReader&, JDAQTimeslice&);
8845 friend JWriter& operator<<(JWriter&, const JDAQTimeslice&);
8851 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8852 JDAQTimesliceHeader(),
8853 std::vector<JDAQSuperFrame>()
8862 JDAQTimeslice(const JDAQChronometer& chronometer) :
8863 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8864 JDAQTimesliceHeader(chronometer),
8865 std::vector<JDAQSuperFrame>()
8875 JDAQTimeslice(const JDAQEvent& event,
8876 const bool snapshot = true);
8886 JDAQTimeslice(const JDAQEvent& event,
8887 const JDAQSummaryslice& summary,
8888 const bool snapshot = true);
8894 virtual ~JDAQTimeslice()
8905 for (iterator i = this->begin(); i != this->end(); ++i) {
8909 std::vector<JDAQSuperFrame>::clear();
8919 JDAQTimeslice& operator=(const JDAQTimeslice& timeslice)
8923 setDAQChronometer(timeslice.getDAQChronometer());
8925 for (const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8939 JDAQTimeslice& add(const JDAQTimeslice& timeslice)
8941 using namespace std;
8943 map<JDAQModuleIdentifier, int> buffer;
8945 for (const_iterator i = this->begin(); i != this->end(); ++i) {
8946 buffer[i->getModuleIdentifier()] = distance(static_cast<const JDAQTimeslice&>(*this).begin(),i);
8949 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8951 map<JDAQModuleIdentifier, int>::const_iterator p = buffer.find(i->getModuleIdentifier());
8953 if (p != buffer.end()) {
8955 JDAQSuperFrame& frame = this->at(p->second);
8959 sort(frame.begin(), frame.end());
8963 this->push_back(*i);
8978 std::ostream& print(std::ostream& out, const bool lpr = false) const
8980 using namespace std;
8982 out << this->ClassName() << endl;
8983 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8984 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8986 for (JDAQTimeslice::const_iterator frame = this->begin(); frame != this->end(); ++frame) {
8988 out << ' ' << setw(10) << frame->getModuleID();
8989 out << ' ' << setw(6) << frame->getLength();
8990 out << ' ' << setw(6) << frame->getDataType();
8991 out << ' ' << setw(6) << frame->getTimesliceStart();
8992 out << ' ' << setw(8) << setfill('0') << hex << frame->getStatus() << dec << setfill(' ');
8993 out << '|' << setw(8) << setfill('0') << hex << frame->getFIFOStatus() << dec << setfill(' ');
8994 out << ' ' << setw(2) << frame->getUDPNumberOfReceivedPackets();
8995 out << '/' << setw(2) << frame->getUDPMaximalSequenceNumber();
8996 out << ' ' << setw(6) << frame->size();
9000 if (!frame->empty()) {
9002 out << ' ' << setw(10) << frame-> begin()->getT();
9004 out << ' ' << setw(10) << frame->rbegin()->getT();
9015 for (JDAQFrame::const_iterator hit = frame->begin(); hit != frame->end(); ++hit, ++n) {
9016 out << setw(2) << (int) hit->getPMT() << ' '
9017 << setw(8) << (int) hit->getT() << ' '
9018 << setw(3) << (int) hit->getToT() << (n%10 == 0 ? '\n' : ' ');
9029 ClassDef(JDAQTimeslice,4);
9040 inline bool operator==(const JDAQTimeslice& first,
9041 const JDAQTimeslice& second)
9043 return (first.getDAQTimesliceHeader() == second.getDAQTimesliceHeader() &&
9044 static_cast<const std::vector<JDAQSuperFrame>&>(first) == static_cast<const std::vector<JDAQSuperFrame>&>(second));
9055 inline bool operator!=(const JDAQTimeslice& first,
9056 const JDAQTimeslice& second)
9058 return !(first == second);
9065 struct JDAQTimesliceL0 : public JDAQTimeslice { ClassDef(JDAQTimesliceL0,1); };
9071 struct JDAQTimesliceL1 : public JDAQTimeslice { ClassDef(JDAQTimesliceL1,1); };
9077 struct JDAQTimesliceL2 : public JDAQTimeslice { ClassDef(JDAQTimesliceL2,1); };
9083 struct JDAQTimesliceSN : public JDAQTimeslice { ClassDef(JDAQTimesliceSN,1); };
9093 inline std::ostream& operator<<(std::ostream& out, const JDAQTimeslice& timeslice)
9095 return timeslice.print(out, getDAQLongprint());
9100#ifndef __JDAQTIMESLICEHEADER__
9101#define __JDAQTIMESLICEHEADER__
9103#include "km3net-dataformat/online/JDAQRoot.hh"
9104#include "km3net-dataformat/online/JDAQHeader.hh"
9110namespace KM3NETDAQ {
9115 class JDAQTimesliceHeader :
9122 JDAQTimesliceHeader() :
9132 JDAQTimesliceHeader(const JDAQChronometer& chronometer) :
9133 JDAQHeader(chronometer)
9142 const JDAQTimesliceHeader& getDAQTimesliceHeader() const
9144 return static_cast<const JDAQTimesliceHeader&>(*this);
9148 ClassDef(JDAQTimesliceHeader,2);
9159 inline bool operator==(const JDAQTimesliceHeader& first,
9160 const JDAQTimesliceHeader& second)
9162 return (first.getDAQHeader() == second.getDAQHeader());
9173 inline bool operator!=(const JDAQTimesliceHeader& first,
9174 const JDAQTimesliceHeader& second)
9176 return !(first == second);
9181#ifndef __JDAQTRIGGERCOUNTER__
9182#define __JDAQTRIGGERCOUNTER__
9184#include "km3net-dataformat/online/JDAQRoot.hh"
9191namespace KM3NETDAQ {
9197 typedef unsigned long long int JTriggerCounter_t;
9203 class JDAQTriggerCounter {
9210 JDAQTriggerCounter(const JTriggerCounter_t counter)
9212 this->trigger_counter = counter;
9218 friend size_t getSizeof<JDAQTriggerCounter>();
9219 friend JReader& operator>>(JReader&, JDAQTriggerCounter&);
9220 friend JWriter& operator<<(JWriter&, const JDAQTriggerCounter&);
9228 JDAQTriggerCounter()
9230 trigger_counter = getInstance().next();
9237 virtual ~JDAQTriggerCounter()
9246 static JDAQTriggerCounter& getInstance()
9248 static JDAQTriggerCounter counter(0);
9259 const JDAQTriggerCounter& getDAQTriggerCounter() const
9261 return static_cast<const JDAQTriggerCounter&>(*this);
9270 getInstance().trigger_counter = 0;
9279 JTriggerCounter_t getCounter() const
9281 return trigger_counter;
9290 void setCounter(const JTriggerCounter_t counter)
9292 this->trigger_counter = counter;
9301 JTriggerCounter_t next()
9303 return trigger_counter++;
9307 ClassDef(JDAQTriggerCounter,1);
9311 JTriggerCounter_t trigger_counter;
9322 inline bool operator==(const JDAQTriggerCounter& first,
9323 const JDAQTriggerCounter& second)
9325 return (first.getCounter() == second.getCounter());
9336 inline bool operator!=(const JDAQTriggerCounter& first,
9337 const JDAQTriggerCounter& second)
9339 return !(first == second);
9344#ifndef __JDAQTRIGGERMASK__
9345#define __JDAQTRIGGERMASK__
9351#include "km3net-dataformat/online/JDAQRoot.hh"
9358namespace KM3NETDAQ {
9364 typedef unsigned long long int JTriggerMask_t;
9370 static const unsigned int NUMBER_OF_TRIGGER_BITS = sizeof(JTriggerMask_t) * 8;
9379 inline JTriggerMask_t getTriggerMask(const unsigned int bit)
9381 if (bit < NUMBER_OF_TRIGGER_BITS)
9382 return JTriggerMask_t(1) << bit;
9391 class JDAQTriggerMask {
9394 friend size_t getSizeof<JDAQTriggerMask>();
9395 friend JReader& operator>>(JReader&, JDAQTriggerMask&);
9396 friend JWriter& operator<<(JWriter&, const JDAQTriggerMask&);
9411 JDAQTriggerMask(const JTriggerMask_t mask) :
9421 JDAQTriggerMask(const std::string& buffer) :
9422 trigger_mask(valueOf(buffer).getTriggerMask())
9429 virtual ~JDAQTriggerMask()
9438 const JDAQTriggerMask& getDAQTriggerMask() const
9440 return static_cast<const JDAQTriggerMask&>(*this);
9449 JTriggerMask_t getTriggerMask() const
9451 return trigger_mask;
9460 void setDAQTriggerMask(const JDAQTriggerMask& mask)
9462 trigger_mask = mask.trigger_mask;
9471 void setTriggerMask(const JTriggerMask_t mask)
9473 trigger_mask = mask;
9483 JDAQTriggerMask& addTriggerMask(const JDAQTriggerMask& mask)
9485 trigger_mask |= mask.trigger_mask;
9497 inline bool hasTriggerMask(const JDAQTriggerMask& mask) const
9499 return trigger_mask & mask.trigger_mask;
9509 inline JDAQTriggerMask& addTriggerBit(const unsigned int bit)
9511 trigger_mask |= KM3NETDAQ::getTriggerMask(bit);
9523 inline bool hasTriggerBit(const unsigned int bit) const
9525 return trigger_mask & KM3NETDAQ::getTriggerMask(bit);
9535 static JDAQTriggerMask valueOf(const std::string& buffer)
9537 JDAQTriggerMask trigger_mask;
9539 unsigned int bit = 0;
9541 for (std::string::const_reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9543 trigger_mask.addTriggerBit(bit);
9547 return trigger_mask;
9556 std::string toString() const
9558 std::string buffer(NUMBER_OF_TRIGGER_BITS, '0');
9560 unsigned int bit = 0;
9562 for (std::string::reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9563 if (hasTriggerBit(bit)) {
9579 friend inline std::istream& operator>>(std::istream& in, JDAQTriggerMask& mask)
9584 mask= JDAQTriggerMask::valueOf(buffer);
9598 friend inline std::ostream& operator<<(std::ostream& out, const JDAQTriggerMask& mask)
9600 out << mask.toString();
9606 ClassDef(JDAQTriggerMask,1);
9610 JTriggerMask_t trigger_mask;
9614 static const JDAQTriggerMask TRIGGER_MASK_ON = JDAQTriggerMask(~JTriggerMask_t(0)); //!< Trigger mask on;
9615 static const JDAQTriggerMask TRIGGER_MASK_OFF = JDAQTriggerMask( JTriggerMask_t(0)); //!< Trigger mask off;
9625 inline bool operator==(const JDAQTriggerMask& first,
9626 const JDAQTriggerMask& second)
9628 return (first.getTriggerMask() == second.getTriggerMask());
9639 inline bool operator!=(const JDAQTriggerMask& first,
9640 const JDAQTriggerMask& second)
9642 return !(first == second);
9647#ifndef __JDAQTRIGGEREDHIT__
9648#define __JDAQTRIGGEREDHIT__
9650#include "km3net-dataformat/online/JDAQRoot.hh"
9651#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
9652#include "km3net-dataformat/online/JDAQHit.hh"
9653#include "km3net-dataformat/online/JDAQKeyHit.hh"
9654#include "km3net-dataformat/online/JDAQTriggerMask.hh"
9661namespace KM3NETDAQ {
9666 class JDAQTriggeredHit :
9668 public JDAQTriggerMask
9672 friend size_t getSizeof<JDAQTriggeredHit>();
9673 friend JReader& operator>>(JReader&, JDAQTriggeredHit&);
9674 friend JWriter& operator<<(JWriter&, const JDAQTriggeredHit&);
9679 JDAQTriggeredHit() :
9692 JDAQTriggeredHit(const JDAQModuleIdentifier& ID,
9694 const JDAQTriggerMask& mask) :
9696 JDAQTriggerMask(mask)
9703 virtual ~JDAQTriggeredHit()
9707 ClassDef(JDAQTriggeredHit,2);
9718 inline bool operator==(const JDAQTriggeredHit& first,
9719 const JDAQTriggeredHit& second)
9721 return (static_cast<const JDAQKeyHit&> (first) == static_cast<const JDAQKeyHit&> (second) &&
9722 static_cast<const JDAQTriggerMask&>(first) == static_cast<const JDAQTriggerMask&>(second));
9733 inline bool operator!=(const JDAQTriggeredHit& first,
9734 const JDAQTriggeredHit& second)
9736 return !(first == second);
9741#ifndef __JDAQUTCEXTENDED__
9742#define __JDAQUTCEXTENDED__
9754#include "km3net-dataformat/online/JDAQRoot.hh"
9757namespace KM3NETDAQ {
9762 class JDAQUTCExtended
9766 friend size_t getSizeof<JDAQUTCExtended>();
9767 friend JReader& operator>>(JReader&, JDAQUTCExtended&);
9768 friend JWriter& operator<<(JWriter&, const JDAQUTCExtended&);
9776 UTC_16nanosecondcycles(0)
9786 JDAQUTCExtended(const uint32_t seconds,
9787 const uint32_t cycles):
9788 UTC_seconds(seconds),
9789 UTC_16nanosecondcycles(cycles)
9798 JDAQUTCExtended(const double nanoseconds)
9800 setTimeNanoSecond(nanoseconds);
9807 virtual ~JDAQUTCExtended()
9816 bool getWRStatus() const
9818 return (UTC_seconds & ~getMask()) != 0;
9827 uint32_t getUTCseconds() const
9829 return (UTC_seconds & getMask());
9838 uint32_t getUTC16nanosecondcycles() const
9840 return UTC_16nanosecondcycles;
9849 double getTimeNanoSecond() const
9851 return getUTCseconds() * 1.0e9 + getUTC16nanosecondcycles() * getTick();
9860 void setTimeNanoSecond(const double utc_ns)
9862 UTC_seconds = (uint32_t) ( utc_ns * 1.0e-9);
9863 UTC_16nanosecondcycles = (uint32_t) ((utc_ns - UTC_seconds*1.0e9) / getTick());
9872 void addTimeNanoSecond(const double t_ns)
9874 const double x_ns = (double) getUTC16nanosecondcycles() * (double) getTick() + t_ns;
9875 const uint32_t t_s = (uint32_t) (x_ns * 1.0e-9);
9878 UTC_16nanosecondcycles = (uint32_t) ((x_ns - t_s*1.0e9) / getTick());
9887 static JDAQUTCExtended min()
9889 return JDAQUTCExtended(0,0);
9898 static JDAQUTCExtended max()
9900 return JDAQUTCExtended(std::numeric_limits<uint32_t>::max(),
9901 std::numeric_limits<uint32_t>::max());
9910 static uint32_t getMask()
9921 static double getTick()
9932 static const JDAQUTCExtended& getInstance()
9934 static JDAQUTCExtended utc(1600000000, 0);
9947 friend inline std::istream& operator>>(std::istream& in, JDAQUTCExtended& utc)
9949 in >> utc.UTC_seconds;
9951 in >> utc.UTC_16nanosecondcycles;
9964 friend inline std::ostream& operator<<(std::ostream& out, const JDAQUTCExtended& utc)
9966 using namespace std;
9968 const char c = out.fill();
9970 out << setw(10) << utc.getUTCseconds();
9972 out << setw(10) << setfill('0') << utc.getUTC16nanosecondcycles() << setfill(c);
9978 ClassDef(JDAQUTCExtended,1);
9982 uint32_t UTC_seconds;
9983 uint32_t UTC_16nanosecondcycles;
9994 inline bool operator<(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9996 if (first.getUTCseconds() == second.getUTCseconds())
9997 return first.getUTC16nanosecondcycles() < second.getUTC16nanosecondcycles();
9999 return first.getUTCseconds() < second.getUTCseconds();
10010 inline bool operator>(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10012 return (second < first);
10023 inline bool operator<=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10025 return !(second < first);
10036 inline bool operator>=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10038 return !(first < second);
10049 inline bool operator==(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10051 return (first.getUTCseconds() == second.getUTCseconds() &&
10052 first.getUTC16nanosecondcycles() == second.getUTC16nanosecondcycles());
10063 inline bool operator!=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10065 return !(first == second);
10076 inline double getTimeDifference(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10078 const double utc_s = ((double) second.getUTCseconds() - (double) first.getUTCseconds());
10079 const double utc_ns = ((double) second.getUTC16nanosecondcycles() - (double) first.getUTC16nanosecondcycles()) * JDAQUTCExtended::getTick();
10081 return utc_s + utc_ns*1.0e-9;
10086#ifndef AAOBJECTINCLUDED
10087#define AAOBJECTINCLUDED
10089#include "TObject.h"
10094#include <algorithm>
10096#include "km3net-dataformat/offline/Exception.hh"
10103struct AAObject : public TObject
10105 std::vector<double> usr; ///< user data
10106 std::vector<std::string> usr_names; ///< user keys
10114 int idx( const std::string& key ) const
10116 auto i = std::find (usr_names.begin(), usr_names.end(), key );
10117 if (i == usr_names.end()) return -1;
10118 return i - usr_names.begin();
10127 bool haveusr( const std::string& key ) const
10129 return idx( key ) >= 0;
10139 int idxusr_checked( const std::string& key ) const
10141 int r = idx( key );
10144 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10157 double getusr(const std::string& key) const
10159 const int i = idx( key );
10163 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10166 if ( unsigned(i) >= usr.size() )
10168 THROW(Exception, "Warning: inconsistent user data " << i << " >= " << usr.size());
10180 void setusr(const std::string & key, double value )
10182 int i = idx( key );
10185 if ( usr.size() < usr_names.size() )
10187 // this should not happen, but let's just add empty data
10188 usr.resize( usr_names.size() );
10192 // this is possible, add empty ("") names
10193 usr_names.resize( usr.size() );
10196 usr_names.push_back( key );
10197 usr.push_back( value );
10211 bool delusr( const std::string& key )
10213 int i = idx( key );
10214 if ( i < 0 ) return false;
10216 usr.erase ( usr.begin() + i );
10217 usr_names.erase( usr_names.begin() + i );
10227 usr_names.resize(0);
10235 void printusr(std::ostream& out = std::cout )
10237 unsigned n = std::max( usr.size(), usr_names.size() );
10239 for (unsigned i = 0; i < n ; i++)
10241 std::string name = "(unnamed)";
10242 if ( i < usr_names.size() && usr_names[i] != "" ) name = usr_names[i];
10243 out << i << " \t " << name << " : \t ";
10244 if ( i < usr.size() ) out << usr[i] << std::endl;
10245 else out << "(none)" << std::endl;
10252 AAObject() : any(NULL) {}
10256 TObject* any; ///< Pointer to "any" user data.
10258 ClassDef(AAObject, 6)
10262#ifndef EVT_HH_INCLUDED
10263#define EVT_HH_INCLUDED
10265#include "km3net-dataformat/offline/AAObject.hh"
10266#include "km3net-dataformat/offline/Hit.hh"
10267#include "km3net-dataformat/offline/Trk.hh"
10268#include "km3net-dataformat/offline/Hit.hh"
10269#include "km3net-dataformat/offline/Exception.hh"
10271#include "TTimeStamp.h"
10273#include <uuid/uuid.h>
10281struct Evt: public AAObject
10283 int id; ///< offline event identifier
10284 int det_id; ///< detector identifier from DAQ
10285 int mc_id; ///< identifier of the MC event (as found in ascii or antcc file).
10287 int run_id; ///< DAQ run identifier
10288 int mc_run_id; ///< MC run identifier
10290 int frame_index; ///< from the raw data
10291 ULong64_t trigger_mask; ///< trigger mask from raw data (i.e. the trigger bits)
10292 ULong64_t trigger_counter; ///< trigger counter
10293 unsigned int overlays; ///< number of overlaying triggered events
10294 TTimeStamp t; ///< UTC time of the timeslice, or the event_time for MC. (default: 01 Jan 1970 00:00:00)
10296 uuid_t header_uuid; ///< UUID of header containing the event-weight information
10299 std::vector<Hit> hits; ///< list of hits
10300 std::vector<Trk> trks; ///< list of reconstructed tracks (can be several because of prefits,showers, etc).
10303 std::vector<double> w; ///< MC: Weights w[0]=w1, w[1]=w2, w[2]=w3 (see e.g. <a href="https://simulation.pages.km3net.de/taglist/taglist.pdf">Tag list</a> or km3net-dataformat/definitions)
10304 std::vector<double> w2list; ///< MC: factors that make up w[1]=w2 (see e.g. <a href="https://simulation.pages.km3net.de/taglist/taglist.pdf">Tag list</a> or km3net-dataformat/definitions)
10305 std::vector<double> w3list; ///< MC: atmospheric flux information
10307 TTimeStamp mc_event_time; ///< MC: true generation time (UTC) of the event, (default: 01 Jan 1970 00:00:00)
10308 double mc_t; ///< MC: time where the mc-event was put in the timeslice, since start of run (offset+frameidx*timeslice_duration)
10309 std::vector<Hit> mc_hits; ///< MC: list of MC truth hits
10310 std::vector<Trk> mc_trks; ///< MC: list of MC truth tracks
10312 // --- place to store user info ---
10313 TString comment; ///< user can use this as he/she likes
10314 int index; ///< user can use this as he/she likes
10315 int flags; ///< user can use this as he/she likes
10322 id(0), det_id(0), mc_id(0), run_id(0), mc_run_id(0), frame_index(0),
10323 trigger_mask(0), trigger_counter(0),
10324 overlays(0), t(0), mc_event_time(0), mc_t(0), index(0), flags(0)
10326 uuid_clear(this->header_uuid);
10335 void print(std::ostream& out = std::cout) const
10337 out << "Evt: id=" << id <<
10338 " run_id=" << run_id <<
10339 " #hits=" << hits.size() <<
10340 " #mc_hits=" << mc_hits.size() <<
10341 " #trks=" << trks.size() <<
10342 " #mc_trks=" << mc_trks.size() << std::endl;
10362 for (auto& t : trks ) t.hit_ids.clear();
10363 for (auto& t : mc_trks ) t.hit_ids.clear();
10375 std::vector<const Trk*> primary_trks() const
10377 std::vector<const Trk*> r;
10378 for (auto& t : mc_trks )
10380 if ( t.is_primary() ) r.push_back(&t);
10392 std::vector<Trk*> primary_trks()
10394 std::vector<Trk*> r;
10395 for (auto& t : mc_trks )
10397 if ( t.is_primary() ) r.push_back(&t);
10408 const Trk* neutrino() const
10410 for (auto& t : mc_trks )
10412 if ( t.is_neutrino() ) return &t;
10425 // see Effective C++, Scott Meyers, ISBN-13: 9780321334879.
10426 return const_cast<Trk *>(static_cast<const Evt &>(*this).neutrino() );
10437 const Trk* primary_neutrino() const
10439 for ( auto& t : mc_trks )
10441 if ( t.is_neutrino() and t.is_primary() ) return &t;
10453 Trk* primary_neutrino()
10455 return const_cast<Trk *>(static_cast<const Evt &>(*this).primary_neutrino() );
10467 const Trk* leading_lepton() const
10469 const Trk* nu = primary_neutrino();
10470 if (!nu) return nullptr;
10472 for (auto& t : mc_trks )
10474 if ( t.is_lepton() &&
10475 t.mother_id == nu->id &&
10476 !t.is_orphan() ) return &t;
10489 Trk* leading_lepton()
10491 return const_cast<Trk *>(static_cast<const Evt &>(*this).leading_lepton() );
10501 const Trk * get_parent_of( const Trk & child ) const
10503 for (auto& t : mc_trks )
10505 if (child.mother_id == t.id ) return &t;
10519 Trk* get_parent_of( const Trk & child )
10521 return const_cast<Trk *>(static_cast<const Evt &>(*this).get_parent_of(child) );
10530 static void actionAtFileOpen(int version)
10532 ROOT_IO_VERSION = version;
10535 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
10541#ifndef EXCEPTION_HH_INCLUDED
10542#define EXCEPTION_HH_INCLUDED
10544#include <exception>
10548#include <functional>
10554class Exception : public std::exception {
10561 Exception(const std::string& error) :
10570 ~Exception() throw()
10579 virtual const char* what() const throw()
10581 return buffer.c_str();
10591 friend inline std::ostream& operator<<(std::ostream& out, const Exception& exception)
10593 return out << exception.what();
10597 const std::string buffer;
10607#ifndef MAKE_EXCEPTION
10608#define MAKE_EXCEPTION(JException_t, A) std::invoke( [&]() { std::ostringstream out; out << __FILE__ << ':' << __LINE__ << std::endl << A; return JException_t(out.str()); } )
10618#define THROW(JException_t, A) do { throw MAKE_EXCEPTION(JException_t, A); } while(0)
10622#ifndef HEAD_HH_INCLUDED
10623#define HEAD_HH_INCLUDED
10625#include "km3net-dataformat/offline/Vec.hh"
10626#include "km3net-dataformat/offline/Exception.hh"
10628#include "TObject.h"
10634#include <algorithm>
10643static inline void trimstring(std::string &s)
10646 s.erase( s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
10647 return !std::isspace(ch);
10651 s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
10652 return !std::isspace(ch);
10653 }).base(), s.end());
10664inline std::vector<std::string> splitstring(const std::string& str, char delim = ' ')
10666 using namespace std;
10670 stringstream ss(str);
10672 while (getline(ss, token, delim))
10675 if (token != "") r.push_back(token);
10685struct Head : public TObject, std::map<std::string, std::string>
10688 static constexpr const char* const UUID = "UUID";
10698 bool have_line (std::string key ) const
10700 return count( key ) != 0;
10710 const std::string& get_line( std::string key ) const
10712 return this->at(key);
10722 std::string& get_line( std::string key )
10724 return this->at(key);
10736 std::vector< std::string> matching_keys( const std::string& tag ) const
10738 std::vector< std::string> r;
10740 auto match = [&] (const std::string & key) {
10742 if (key == tag) return true;
10744 if ( key.find( tag ) != 0 ) return false;
10746 // what is left should be of the form _d(ddd)
10747 std::string left = key.substr( tag.length(), key.length() );
10748 if (left.length() < 2 || left[0] != '_' ) return false ;
10749 for ( unsigned i = 1; i < left.length(); i++ )
10751 if (!std::isdigit( left[i] )) return false ;
10756 for ( auto& p : *this )
10758 if ( match( p.first ) ) r.push_back( p.first );
10775 std::vector< std::string > get_lines( const std::string& tag ) const
10777 std::vector< std::string > r;
10779 for ( auto& key : matching_keys( tag ) ) {
10780 r.push_back( get_line( key ) );
10797 std::string set_line( std::string tag, std::string line , bool ensure_unique = true )
10799 std::string k = tag;
10802 for (int i = 1; find(k) != end() ; i++)
10804 k = tag + "_" + std::to_string(i);
10807 std::map<std::string, std::string>::operator[]( k ) = line;
10819 std::string get_field( std::string key, int idx ) const
10821 using namespace std;
10823 vector<string> v = splitstring( get_line(key) );
10825 if ( idx < 0 || idx >= int ( v.size() ) )
10827 THROW(Exception, "Cannot find word number " << idx << " in line " << get_line(key) << " for key: " << key);
10841 int get_index_of_field(std::string key, std::string field) const
10843 auto& d = _hdr_dict();
10844 if ( d.count(key) == 0 ) return -1;
10845 auto v = d.at(key);
10846 auto i = std::find (v.begin(), v.end(), field );
10847 if (i == v.end()) return -1;
10848 return i - v.begin();
10861 std::string get_field( std::string key, std::string field ) const
10863 int idx = get_index_of_field(key, field);
10867 THROW(Exception, "Failed to find" << key << " " << field);
10870 return get_field( key, idx );
10884 void set_field( std::string key, std::string field, std::string value )
10886 using namespace std;
10888 if ( field == "" ) get_line( key ) = value;
10890 int idx = get_index_of_field( key, field );
10894 THROW(Exception, "GFailed to find field in header line: " << key << " " << field);
10897 vector<string> vals = splitstring( get_line( key ) );
10899 // if the fields before do not exist, add padding
10900 while ( int( vals.size() ) <= idx ) vals.push_back("0");
10905 for (unsigned i = 0; i < vals.size() ; i++ )
10908 if ( i != vals.size() - 1) ss << " ";
10910 set_line( key, ss.str() );
10919 void print ( std::ostream& out = std::cout ) const
10921 if (count("start_run")) out << "start_run: " << at("start_run") << std::endl;
10923 for ( auto& p : *this )
10925 if ( p.first == "start_run" || p.first == "end_event" ) continue;
10926 out << p.first << ": " << p.second << std::endl ;
10928 out << "end_event:" << std::endl;
10936 static const std::map<std::string, std::vector<std::string> >& _hdr_dict()
10938 using namespace std;
10940 // map with, for each tag (key), a vector of field-names
10942 static map<string, vector<string> > r;
10943 if ( r.size() > 0 ) return r;
10947 "cut_primary cut_seamuon cut_in cut_nu:Emin Emax cosTmin cosTmax\n"
10948 "generator physics simul:program version date time\n"
10949 "seed:program level iseed\n"
10950 "PM1_type_area:type area TTS\n"
10952 "model:interaction muon scattering numberOfEnergyBins\n"
10953 "can:zmin zmax r\n"
10954 "genvol:zmin zmax r volume numberOfEvents\n"
10955 "merge:time gain\n"
10956 "coord_origin:x y z\n"
10957 "translate:x y z\n"
10958 "genhencut:gDir Emin\n"
10959 "k40:rate time\n" // note lower-case k
10960 "K40:livetime\n" // note capital K
10961 "norma:primaryFlux numberOfPrimaries\n"
10962 "livetime:numberOfSeconds errorOfSeconds\n"
10963 "flux:type key file_1 file_2\n"
10965 "fixedcan:xcenter ycenter zmin zmax radius\n"
10966 "start_run:run_id";
10968 for ( auto line : splitstring(desc, '\n') )
10970 auto v = splitstring( line, ':');
10972 vector< string > fields = splitstring( v[1] );
10973 for ( auto key : splitstring( v[0] ) )
10987 double ngen() const
10989 return stod ( get_field("genvol", "numberOfEvents") );
10997 double daq_livetime() const
10999 return stod ( get_field("DAQ", "livetime") );
11008 double mc_livetime() const
11010 return stod ( get_field("livetime", "numberOfSeconds") );
11018 Vec coord_origin() const
11020 return Vec( stod( get_field("coord_origin", "x") ),
11021 stod( get_field("coord_origin", "y") ),
11022 stod( get_field("coord_origin", "z") ));
11030 Vec translate() const
11032 return Vec( stod( get_field("translate", "x") ),
11033 stod( get_field("translate", "y") ),
11034 stod( get_field("translate", "z") ));
11044 static void actionAtFileOpen(int version)
11046 ROOT_IO_VERSION = version;
11049 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
11051 ClassDef(Head, 2 );
11062inline std::ostream& operator<<(std::ostream& out, const Head& h)
11070#ifndef HIT_HH_INCLUDED
11071#define HIT_HH_INCLUDED
11073#include "TObject.h"
11074#include "TString.h"
11075#include "km3net-dataformat/offline/Vec.hh"
11082 // straight from the data
11083 int dom_id; ///< module identifier from the data (unique in the detector).
11084 unsigned int channel_id; ///< PMT channel id {0,1, .., 30} local to moduke
11085 unsigned int tdc; ///< hit tdc (=time in ns)
11086 unsigned int tot; ///< tot value as stored in raw data (int for pyroot)
11087 ULong64_t trig; ///< non-zero if the hit is a trigger hit.
11089 int pmt_id; ///< global PMT identifier as found in evt files
11091 // values after calibration
11092 double t; ///< hit time (from tdc+calibration or MC truth)
11093 double a; ///< hit amplitude (in p.e.)
11094 Vec pos; ///< hit position
11095 Vec dir; ///< hit direction; i.e. direction of the PMT
11097 int type; ///< particle type or parametrisation used for hit (mc only)
11098 int origin; ///< track id of the track that created this hit (mc only)
11100 unsigned pattern_flags; ///< some number that you can use to flag the hit
11105 Hit(): id(0), dom_id(0), channel_id(0), tdc(0), tot(0), trig(0), pmt_id(0),
11106 t(0), a(0), type(0), origin(0), pattern_flags(0) {}
11107 //virtual ~Hit() {}
11115 void read(const Hit& h) { *this = h;}
11122 void write(Hit& h) const { h = *this;}
11129 void print( std::ostream& out = std::cout ) const
11131 out << "Hit: id=" << id << " dom=" << dom_id << " channel=" << channel_id;
11132 out << " pmt=" << pmt_id << " t=" << t << " tot=" << tot;
11133 out << " pos="; pos.print(out);
11134 out << " dir="; dir.print(out);
11137 ClassDefNV(Hit, 106) // reserve <100 for antcc class of the same name
11141#ifndef MULTIHEAD_HH_INCLUDED
11142#define MULTIHEAD_HH_INCLUDED
11145#include <uuid/uuid.h>
11147#include "km3net-dataformat/offline/Evt.hh"
11148#include "km3net-dataformat/offline/Head.hh"
11150#include "TObject.h"
11158 public std::vector<Head>,
11165 std::vector<Head>(),
11173 virtual ~MultiHead()
11187 const_iterator find(const uuid_t& uuid,
11188 const bool useCache = false) const
11190 using namespace std;
11192 static struct Cache
11194 Cache() { uuid_clear(this->uuid); }
11202 for (cache.it = this->cbegin(); cache.it != this->cend(); ++cache.it) {
11204 const Head& head = *cache.it;
11205 string uuid_str = head.at(Head::tags::UUID);
11207 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11209 uuid_parse(uuid_str.c_str(), cache.uuid);
11211 if (uuid_compare(uuid, cache.uuid) == 0) {
11216 return this->end();
11220 if (uuid_compare(uuid, cache.uuid) == 0) {
11223 return find(uuid, false);
11238 const_iterator find(const Evt& event,
11239 const bool useCache = false) const
11241 return find(event.header_uuid, useCache);
11251 bool insert(const Head& header)
11253 using namespace std;
11255 string uuid_str = header.at(Head::tags::UUID);
11256 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11259 uuid_parse(uuid_str.c_str(), uuid);
11261 if (uuid_is_null(uuid) == 0 && find(uuid) == this->cend()) {
11263 this->push_back(header);
11278 size_t join(const MultiHead& multiHead)
11280 using namespace std;
11284 for (const_iterator i = multiHead.cbegin(); i != multiHead.cend(); ++i) {
11285 n += (size_t) this->insert(*i);
11297 static void actionAtFileOpen(int version)
11299 ROOT_IO_VERSION = version;
11303 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
11305 ClassDef(MultiHead, 1);
11309#ifndef TRK_HH_INCLUDED
11310#define TRK_HH_INCLUDED
11313#include "TDatabasePDG.h"
11314#include "TPDGCode.h"
11315#include "km3net-dataformat/offline/AAObject.hh"
11316#include "km3net-dataformat/offline/Vec.hh"
11317#include "km3net-dataformat/definitions/trkmembers.hh"
11322struct Trk: public AAObject
11324 int id; ///< track identifier
11325 Vec pos; ///< postion [m] of the track at time t
11326 Vec dir; ///< track direction
11327 double t; ///< track time [ns] (when the particle is at pos )
11328 double E; ///< Energy [GeV] (either MC truth or reconstructed)
11330 double len; ///< length, if applicable [m]
11331 double lik; ///< likelihood or lambda value (for aafit, lambda)
11332 int type; ///< MC: particle type in PDG encoding
11333 int rec_type; ///< identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction.csv
11334 std::vector<int> rec_stages; ///< list of identifiers of successful fitting stages resulting in this track
11336 int status; ///< MC or reconstruction status code, see km3net-dataformat/definitions/trkmembers.csv for values
11337 int mother_id; ///< id of the parent MC particle or of the reconstructed track at the previous stage
11338 int counter; ///< used by CORSIKA7 MC generation to store interaction counters, see <a href="https://web.iap.kit.edu/corsika/usersguide/usersguide.pdf">CORSIKA user guide</a>
11340 std::vector<double> fitinf; ///< place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv
11341 std::vector<int> hit_ids; ///< list of associated hit-ids (corresponds to Hit::id).
11342 std::vector<double> error_matrix; ///< (NxN) error covariance matrix for fit parameters (stored as linear vector)
11343 std::string comment; ///< use as you like
11348 Trk(): id(0),t(0),E(0),len(0),lik(0), type(0), rec_type(0), status(TRK_ST_UNDEFINED), mother_id(TRK_MOTHER_UNDEFINED), counter(0) {}
11358 void read(const Trk& t) { *this = t;}
11365 void write(Trk& t) const { t = *this; }
11373 std::string name() const
11375 TParticlePDG* p = TDatabasePDG::Instance()->GetParticle( type );
11376 if (!p) return "unnamed state ("+ std::to_string(type)+")";
11377 return p->GetName();
11385 bool is_primary() const
11387 return status==TRK_ST_PRIMARYNEUTRINO || status==TRK_ST_PRIMARYCOSMIC;
11395 bool is_finalstate() const
11397 return status==TRK_ST_FINALSTATE;
11407 bool is_neutrino() const
11409 return type == kNuE || type == kNuEBar || type == kNuMu || type == kNuMuBar || type == kNuTau || type == kNuTauBar;
11419 return type == kElectron || type == kPositron;
11429 bool is_muon() const
11431 return type == kMuonMinus || type == kMuonPlus;
11441 bool is_tau() const
11443 return type == kTauMinus || type == kTauPlus;
11453 bool is_lepton() const
11455 return is_e() || is_muon() || is_tau();
11463 bool is_orphan() const
11465 return mother_id == TRK_MOTHER_NONE;
11474 std::vector< Trk* > get_daughters ( std::vector<Trk>& mctrks )
11476 std::vector<Trk*> r;
11478 for( auto& t : mctrks )
11480 if ( t.mother_id == id ) r.push_back( &t );
11490 void print(std::ostream& out=std::cout) const
11492 out << "Trk: id=" << id << " pos="; pos.print(out);
11493 out << " dir="; dir.print(out);
11494 out << " t=" << t << " E=" << E << " pdg-type=" << type;
11501#ifndef VEC_HH_INCLUDED
11502#define VEC_HH_INCLUDED
11523 Vec(double x_, double y_, double z_) : x(x_), y(y_), z(z_) {}
11528 Vec():x(0),y(0),z(0) {}
11536 double dot(const Vec& v) const { return v.x*x + v.y*y+ v.z*z;}
11544 Vec cross(const Vec r) const { return Vec ( y*r.z-z*r.y, z*r.x-x*r.z, x*r.y-y*r.x);}
11552 Vec& operator+=(const Vec& v) { x+=v.x; y+=v.y; z+=v.z; return *this;}
11560 Vec& operator-=(const Vec& v) { x-=v.x; y-=v.y; z-=v.z; return *this;}
11568 Vec& operator*=(double d) { x*=d; y*=d; z*=d; return *this;}
11576 Vec& operator/=(double d) { return operator*=( 1.0 / d ); }
11583 Vec operator-() const { return Vec(-x,-y,-z); }
11591 bool operator==( const Vec& v ) const { return x==v.x && y==v.y && z==v.z ; }
11599 bool operator!=( const Vec& v ) const { return x!=v.x || y!=v.y || z!=v.z ; }
11609 Vec& set(double xx, double yy, double zz) { x=xx; y=yy; z=zz; return *this;}
11618 Vec& set_angles(double theta, double phi)
11620 x = sin ( theta ) * cos( phi );
11621 y = sin ( theta ) * sin( phi );
11631 double phi() const { return atan2( y,x ); }
11638 double theta() const { return acos(z); }
11645 double len() const { double l = dot(*this); return (l > 0)? sqrt(l) : 0; }
11652 double lenxy() const { const double r2 = x*x + y*y; return (r2>0) ? sqrt(r2) :0; }
11659 Vec& normalize() { return operator/=( len() ); }
11666 void print( std::ostream& out = std::cout ) const
11668 out << "Vec:" << x << " " << y << " " << z;
11676 const char* __repr__() const
11678 static std::string buffer;
11680 std::ostringstream s;
11686 return buffer.c_str();
11695 Vec __add__(const Vec& v) const { Vec r=*this; return r+=v; }
11703 Vec __sub__(const Vec& v) const { Vec r=*this; return r-=v; }
11711 Vec __mul__(double d ) const { Vec r=*this; return r*=d; }
11719 Vec __rmul__(double d ) const { return __mul__(d); }
11727 Vec __div__(double d ) const { Vec r=*this; return r/=d; }
11735 Vec& rotate_z(double ang)
11737 const Vec o = *this;
11738 x = o.x *cos(ang) - o.y * sin(ang);
11739 y = o.x *sin(ang) + o.y * cos(ang);
11750 Vec& rotate_x(double ang)
11752 const Vec o = *this;
11754 y = o.y *cos(ang) + o.z * -sin(ang);
11755 z = o.y *sin(ang) + o.z * cos(ang);
11765 Vec& rotate_y(double ang)
11767 const Vec o = *this;
11768 x = o.x *cos(ang) + o.z * sin(ang);
11770 z = -o.x *sin(ang) + o.z * cos(ang);
11784inline std::ostream& operator<<( std::ostream& out , const Vec& v )
11786 out << v.x << " " << v.y << " " << v.z << " ";
11797inline std::istream& operator>>(std::istream& in, Vec& v)
11799 in >> v.x >> v.y >> v.z ; return in;
11809inline double cos_angle_between( const Vec& a, const Vec& b)
11811 const double n = a.len() * b.len();
11812 return a.dot(b) / n;
11822inline double angle_between( const Vec& a, const Vec& b )
11824 double c = cos_angle_between( a, b );
11825 if ( c < -1 ) return M_PI;
11826 if ( c > 1 ) return 0;
11837inline Vec operator+(const Vec& a, const Vec& b) { Vec r(a); return r+=b;}
11846inline Vec operator-(const Vec& a, const Vec& b) { Vec r(a); return r-=b;}
11855inline Vec operator*(double a, const Vec& v) { return Vec(a*v.x,a*v.y,a*v.z);}
11864inline Vec operator*(const Vec& v, double a) { return Vec(a*v.x,a*v.y,a*v.z);}
11873inline Vec operator/(const Vec& v, double a) { return Vec(v.x/a,v.y/a,v.z/a);}
11876#ifndef IO_ASCII_INCLUDED
11877#define IO_ASCII_INCLUDED
11884#include "km3net-dataformat/offline/Evt.hh"
11885#include "km3net-dataformat/offline/Hit.hh"
11886#include "km3net-dataformat/offline/Trk.hh"
11887#include "km3net-dataformat/offline/Head.hh"
11888#include "km3net-dataformat/offline/Exception.hh"
11889#include "km3net-dataformat/definitions/w2list_gseagen.hh"
11890#include "km3net-dataformat/definitions/trkmembers.hh"
11892#include "TDatabasePDG.h"
11896 const char* const auto_t = "auto";
11897 const char* const start_run_t = "start_run:";
11898 const char* const start_event_t = "start_event:";
11899 const char* const hit_t = "hit:";
11900 const char* const hit_raw_t = "hit_raw:";
11901 const char* const track_in_t = "track_in:";
11902 const char* const track_t = "track:";
11903 const char* const track_fit_t = "track_fit:";
11904 const char* const neutrino_t = "neutrino:";
11905 const char* const track_primary_t = "track_primary:";
11906 const char* const track_bundle_t = "track_bundle:";
11907 //const char* const primarylepton_t = "primarylepton:";
11908 const char* const weights_t = "weights:";
11909 const char* const w2list_t = "w2list:";
11910 const char* const w3list_t = "w3list:";
11911 const char* const hourangle_t = "hourangle:";
11912 const char* const eventtime_t = "eventtime:";
11913 const char* const center_on_can_t = "center_on_can:";
11914 const char* const muon_decay_t = "muon_decay:";
11915 const char* const end_event_t = "end_event:";
11918namespace mc_usr_keys
11920 // track-level quantities
11921 const char* const energy_lost_in_can = "energy_lost_in_can";
11924 // event-level corsika variables
11925 const char* const muon_decay_x = "muon_decay_x";
11926 const char* const muon_decay_y = "muon_decay_y";
11927 const char* const muon_decay_z = "muon_decay_z";
11929 const char* const center_on_can_x = "center_on_can_x";
11930 const char* const center_on_can_y = "center_on_can_y";
11931 const char* const center_on_can_z = "center_on_can_z";
11932 const char* const hourangle = "hourangle";
11936namespace io_stringutil
11945 inline bool startswith( const std::string& a, const std::string& b )
11947 if ( a.find( b ) == 0 ) return true;
11957 inline std::string trim(const std::string& s)
11959 using namespace std;
11961 if ( s == "" ) return s;
11963 string::size_type i1;
11964 string::size_type i2;
11966 for (i1 = 0; i1 < s.length(); i1++)
11968 if ( !isspace (s[i1]) ) break;
11970 for (i2 = s.length() - 1 ; i2 > i1 ; i2--)
11972 if ( !isspace (s[i2]) ) break;
11974 return s.substr( i1, i2 - i1 + 1 );
11986inline int pdg_code( int geant3_code )
11988 if ( geant3_code == -1 ) return -1; // used for k40 hits
11989 if ( geant3_code < 0 ) return pdg_code( -geant3_code ); // used for scattered
11991 return TDatabasePDG::Instance()->ConvertGeant3ToPdg( geant3_code );
12000inline int geant3_code( int pdg_code )
12002 if (pdg_code == -1 ) return -1;
12003 if (pdg_code == +311 ) return geant3_code( 130 ); // K0 -> K0long
12004 if (pdg_code == -311 ) return geant3_code( 130 ); // K0bar -> K0long
12006 return TDatabasePDG::Instance()->ConvertPdgToGeant3( pdg_code );
12017inline bool read ( Vec& v, std::istream& is)
12019 is >> v.x >> v.y >> v.z;
12030inline bool write( const Vec& v, std::ostream& os)
12032 os << v.x << ' ' << v.y << ' ' << v.z;
12044inline bool read ( Hit& h, std::istream& is, bool read_mc = false )
12046 h.dom_id = 0; // need a proper det file to
12047 h.channel_id = 0; // set these.
12049 is >> h.id >> h.pmt_id >> h.a >> h.t;
12056 is >> h.type >> h.origin;
12059 // at this point, an additional pure_a and pure_t may be present,
12060 // but we do not read them.
12074inline bool write( const Hit& h, std::ostream& os, const std::string& tag = mc_keys::hit_t)
12076 int om_id = h.pmt_id; // todo: deal with this better.
12078 os << tag << ' ' << h.id << ' ' << om_id << ' ' << h.a << ' ' << h.t;
12079 if ( tag != mc_keys::hit_raw_t ) {
12080 os << ' ' << h.type << ' ' << h.origin; // not writing pure_a and pure_t
12093inline std::vector<double> read_line_to_vector( std::istream& is )
12095 using namespace std;
12101 istringstream il(ss);
12102 for ( double x; il >> x ; ) r.push_back( x );
12114template<typename T>
12115inline void push_front( std::vector<T>& vec, const T& value )
12117 vec.insert( vec.begin(), value );
12129inline bool read ( Evt& evt, std::istream& is, bool skip_hits = false )
12131 using namespace std;
12135 // find next start_event
12137 while ( w != mc_keys::start_event_t && is.good() ) is >> w;
12139 int mc_event_type; // dummy - this is always 1 in all files.
12140 is >> evt.mc_id >> mc_event_type;
12142 Trk trk_nu, trk_primary;
12143 bool have_trk_nu(false), have_trk_primary(false);
12146 evt.mc_trks.clear();
12148 evt.mc_hits.clear();
12159 if (skip_hits && ( w == mc_keys::hit_t || w == mc_keys::hit_raw_t)) {
12160 is.ignore( 1000, '\n' );
12164 if ( w == mc_keys::hit_t ) {
12166 read( h, is, true );
12167 evt.mc_hits.push_back( h );
12169 } else if ( w == mc_keys::hit_raw_t ) {
12171 read( h, is, false);
12172 evt.hits.push_back( h );
12174 } else if ( w == mc_keys::track_in_t ||
12175 w == mc_keys::track_t ||
12176 w == mc_keys::neutrino_t ||
12177 w == mc_keys::track_bundle_t ||
12178 w == mc_keys::track_primary_t ) {
12186 getline( is, line );
12187 istringstream ii(line);
12189 if ( w != mc_keys::track_bundle_t ) {
12195 ii >> t.pos >> t.dir >> t.E;
12199 if ( w == mc_keys::track_in_t) {
12201 t.status = TRK_ST_FINALSTATE;
12203 ii >> t.t >> t.type;
12207 t.type = pdg_code( t.type );
12211 if ( ii.fail() ) { // missing length is not an error
12212 evt.mc_trks.push_back( t );
12219 if ( ii.fail() ) { // missing eloss is not an error
12220 evt.mc_trks.push_back( t );
12224 t.setusr( mc_usr_keys::energy_lost_in_can, eloss);
12226 evt.mc_trks.push_back( t );
12229 } else if ( w == mc_keys::track_t ) {
12233 evt.trks.push_back( t );
12235 } else if ( w == mc_keys::neutrino_t ) {
12237 t.status = TRK_ST_PRIMARYNEUTRINO;
12239 // the last item we will read is W2LIST_GSEAGEN_CC, make enough space;
12240 if (evt.w2list.size() < W2LIST_GSEAGEN_CC+1 ) evt.w2list.resize(W2LIST_GSEAGEN_CC+1);
12243 evt.w2list[W2LIST_GSEAGEN_BX] >>
12244 evt.w2list[W2LIST_GSEAGEN_BY] >>
12245 evt.w2list[W2LIST_GSEAGEN_ICHAN] >>
12247 evt.w2list[W2LIST_GSEAGEN_CC];
12250 have_trk_nu = true;
12252 } else if ( w == mc_keys::track_primary_t ) {
12254 t.status = TRK_ST_PRIMARYCOSMIC;
12256 ii >> t.t >> trk_primary.type; // nucleus id (in pdg format or not?)
12259 have_trk_primary = true;
12261 } else if ( w == mc_keys::track_bundle_t ) {
12263 t.type = PDG_MUONBUNDLE;
12264 t.status = TRK_ST_MUONBUNDLE;
12266 evt.mc_trks.push_back( t );
12271 out << "Unknown tag " << w << " for trk ";
12273 throw Exception(static_cast<ostringstream&>(out).str());
12279 out << "Error reading trk ";
12281 throw Exception(static_cast<ostringstream&>(out).str());
12284 } else if ( w == mc_keys::weights_t) {
12286 evt.w = read_line_to_vector( is );
12288 } else if ( w == mc_keys::w2list_t) {
12290 auto v = read_line_to_vector( is );
12291 evt.w2list.resize( std::max( evt.w2list.size(), v.size()));
12292 std::copy( v.begin(), v.end() , evt.w2list.begin() );
12294 } else if ( w == mc_keys::w3list_t) {
12296 evt.w3list = read_line_to_vector( is );
12298 } else if ( w == mc_keys::hourangle_t ) {
12302 evt.setusr(mc_usr_keys::hourangle, ha );
12304 } else if ( w == mc_keys::center_on_can_t) {
12306 // in corsika files, there is the (undocumented?) center_on_can tag,
12307 // which denoets the projection of the primary on the can. The direction
12308 // of the center_on_can 'track' is by defintion the direction of the
12309 // primary. We record the position in the usr data.
12311 vector<double> v = read_line_to_vector( is );
12313 if ( v.size() > 3 ) {
12314 evt.setusr(mc_usr_keys::center_on_can_x, v[1] );
12315 evt.setusr(mc_usr_keys::center_on_can_y, v[2] );
12316 evt.setusr(mc_usr_keys::center_on_can_z, v[3] );
12319 } else if ( w == mc_keys::eventtime_t ) {
12321 unsigned nsec, n16ns_ticks;
12322 is >> nsec >> n16ns_ticks;
12323 evt.mc_event_time.SetSec( nsec );
12324 evt.mc_event_time.SetNanoSec( n16ns_ticks * 16 );
12326 } else if ( w == mc_keys::muon_decay_t) {
12328 // in km3sim files, there are additional tags, including this one
12329 vector<double> v = read_line_to_vector( is );
12330 if ( v.size() > 4 )
12332 evt.setusr(mc_usr_keys::muon_decay_x, v[2] );
12333 evt.setusr(mc_usr_keys::muon_decay_y, v[3] );
12334 evt.setusr(mc_usr_keys::muon_decay_z, v[4] );
12337 } else if ( w == mc_keys::end_event_t) {
12339 // finalize the mc_tracks -- as best we can.
12341 // If there is both a primary, and a neutrino, then the primary
12342 // will go second (mc_trks[1]) with id=-1 and the neutrino will
12343 // be mc_trks[0] with id=0. Unless they are same particle (identical
12344 // pos,dir,E); in that case the primary is skipped.
12345 // The primarylepton tag is not stored as a seperate Trk.
12347 if ( have_trk_primary && have_trk_nu ) {
12349 bool same = trk_nu.pos == trk_primary.pos &&
12350 trk_nu.dir == trk_primary.dir &&
12351 trk_nu.E == trk_primary.E;
12354 trk_primary.id = -1;
12355 push_front( evt.mc_trks, trk_primary);
12359 push_front( evt.mc_trks, trk_nu);
12361 } else if ( have_trk_primary ) {
12363 trk_primary.id = 0;
12364 push_front( evt.mc_trks, trk_primary);
12366 } else if ( have_trk_nu ) {
12369 push_front( evt.mc_trks, trk_nu);
12375 is.ignore( 1000, '\n' );
12382 THROW(Exception, "Error while reading ascii event" << w << ' ' << evt.id);
12396inline bool write( const Evt& evt, std::ostream& os )
12398 using namespace std;
12400 // set precision to 12 digits.
12401 const int precision = 12;
12402 auto old_flags = os.flags();
12403 auto old_precision = os.precision( precision );
12404 os.unsetf( std::ios_base::scientific | std::ios_base::fixed ); // default behaviour
12406 os << mc_keys::start_event_t << ' ' << evt.mc_id << ' ' << 1 << endl;
12408 for ( auto& trk : evt.mc_trks ) {
12410 const std::string& tag = trk.comment;
12413 << (tag != mc_keys::track_bundle_t ? trk.id : trk.len) << ' '
12418 if ( tag == mc_keys::track_in_t ) {
12420 os << ' ' << trk.t << ' ' << geant3_code(trk.type) << ' ' << trk.len;
12422 if ( trk.haveusr( mc_usr_keys::energy_lost_in_can ) ) {
12423 os << ' ' << trk.getusr( mc_usr_keys::energy_lost_in_can );
12428 } else if ( tag == mc_keys::track_primary_t ) {
12430 os << ' ' << trk.t << ' ' << trk.type << endl;
12432 } else if ( tag == mc_keys::neutrino_t ) {
12434 double bx(0), by(0);
12435 int ichan(0), cc(0);
12437 if ( evt.w2list.size() > W2LIST_GSEAGEN_CC ) {
12438 bx = evt.w2list[W2LIST_GSEAGEN_BX];
12439 by = evt.w2list[W2LIST_GSEAGEN_BY];
12440 ichan = evt.w2list[W2LIST_GSEAGEN_ICHAN];
12441 cc = evt.w2list[W2LIST_GSEAGEN_CC];
12458 for ( auto& trk : evt.trks ) {
12459 os << mc_keys::track_fit_t << ' ' << trk.id << ' ' << trk.pos << ' ' << trk.dir << ' ' << trk.E << ' ' << trk.t << endl;
12462 for ( auto& hit : evt.mc_hits ) write ( hit, os, mc_keys::hit_t);
12463 for ( auto& hit : evt.hits ) write ( hit, os, mc_keys::hit_raw_t);
12465 os << mc_keys::weights_t; for (auto& w : evt.w ) os << ' ' << w; os << endl;
12466 os << mc_keys::w2list_t; for (auto& w : evt.w2list ) os << ' ' << w; os << endl;
12467 os << mc_keys::w3list_t; for (auto& w : evt.w3list ) os << ' ' << w; os << endl;
12469 os << mc_keys::eventtime_t << evt.mc_event_time.GetSec() << " "
12470 << evt.mc_event_time.GetNanoSec() / 16 << endl;
12472 os << mc_keys::end_event_t << endl;
12474 // restore os to how we found it.
12475 os.flags( old_flags );
12476 os.precision( old_precision );
12494inline bool read( Head& hdr, std::istream& is )
12496 using namespace std;
12500 bool start = false;
12502 while (getline( is, line ))
12504 if ( io_stringutil::startswith(line, mc_keys::end_event_t))
12509 if ( io_stringutil::startswith(line, mc_keys::start_run_t))
12514 if ( io_stringutil::startswith(line, mc_keys::start_event_t))
12516 THROW(Exception, "Unexpected tag " << mc_keys::start_event_t << " found while reading header at " << line << " (could mean the evt file has no header)");
12519 if (!start) continue;
12521 const string::size_type pos = line.find(':');
12523 if (pos == string::npos)
12525 std::cout << "Warning: line with empty tag found when reading header" << endl;
12526 std::cout << " "<< line << endl;
12527 std::cout << " will be skipped" << endl;
12531 // the following with unsure key in the map is unique by adding _1 _2 etc.
12532 hdr.set_line( io_stringutil::trim(line.substr(0,pos)), io_stringutil::trim(line.substr(pos+1)) );
12538 THROW(Exception, "Reading of MC header terminated before finding a start_run: tag. Please check your file");
12552inline bool write( const Head& hdr, std::ostream& os )
12559#ifndef IOONLINEINCLUDED
12560#define IOONLINEINCLUDED
12562#include "km3net-dataformat/offline/Evt.hh"
12563#include "km3net-dataformat/offline/Hit.hh"
12564#include "km3net-dataformat/offline/Trk.hh"
12565#include "km3net-dataformat/offline/Exception.hh"
12567#include "km3net-dataformat/online/JDAQEvent.hh"
12568#include "km3net-dataformat/online/JDAQKeyHit.hh"
12569#include "km3net-dataformat/online/JDAQTimeslice.hh"
12570#include "km3net-dataformat/online/JDAQSummaryslice.hh"
12572#include "TStreamerInfo.h"
12575#include "km3net-dataformat/definitions/root.hh"
12581using namespace KM3NETDAQ;
12589inline void read(Hit& hit, const JDAQHit& daqhit )
12591 hit.channel_id = daqhit.getPMT();
12592 hit.tot = daqhit.getToT();
12593 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12602inline void read(Hit& hit, const JDAQKeyHit& daqhit )
12604 hit.id = hit.pmt_id = 0;
12606 hit.dom_id = daqhit.getModuleID();
12607 hit.channel_id = daqhit.getPMT();
12608 hit.tot = daqhit.getToT();
12609 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12618inline void read(Evt& evt, const JDAQEvent& de)
12620 evt.run_id = de.getRunNumber();
12621 evt.det_id = de.getDetectorID();
12622 evt.frame_index = de.getFrameIndex();
12623 evt.trigger_counter = de.getCounter();
12624 evt.overlays = de.getOverlays();
12625 evt.trigger_mask = de.getTriggerMask();
12626 evt.t.SetSec( de.getTimesliceStart().getUTCseconds() );
12627 evt.t.SetNanoSec( de.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12629 // The only way to know the hits that are also in the triggeredhits collection
12630 // is by dom and channel id and time.
12633 std::map<int, std::map< int, std::map < unsigned int, Hit*> > > M;
12635 const std::vector<JDAQSnapshotHit>& snapshotHits = de.getHits<JDAQSnapshotHit>();
12636 const std::vector<JDAQTriggeredHit>& triggeredHits = de.getHits<JDAQTriggeredHit>();
12638 // http://stackoverflow.com/questions/10735135/reallocation-in-stdvector-after-stdvector-reserve
12640 evt.hits.reserve(snapshotHits.size());
12642 for (auto& daqhit : snapshotHits ) // JDAQSnapshotHit
12646 evt.hits.push_back( h );
12647 M[ h.dom_id ][ h.channel_id ][ h.tdc ] = &(*evt.hits.rbegin());
12650 for (auto& daqtrighit : triggeredHits)
12652 Hit* g = M[daqtrighit.getModuleID()][daqtrighit.getPMT()][daqtrighit.getT()];
12655 g->trig = daqtrighit.getTriggerMask ();
12657 THROW(Exception, "Failed to flag snaphot hit " << (int) daqtrighit.getModuleID() << "." << (int) daqtrighit.getPMT() << " " << daqtrighit.getT());
12668inline void read( Evt& evt, const JDAQTimeslice& ts )
12670 evt.run_id = ts.getRunNumber();
12671 evt.det_id = ts.getDetectorID();
12672 evt.frame_index = ts.getFrameIndex();
12673 evt.t.SetSec( ts.getTimesliceStart().getUTCseconds() );
12674 evt.t.SetNanoSec( ts.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12677 // a timeslice is a vector of JDAQSuperFrame's, which is a JDAQFrame, which
12678 // is an stl::vector-like object (supporting stl-like iteration.)
12680 Hit h; h.id = 0; h.pmt_id = 0;
12682 for (auto& sf : ts )
12684 for (auto& daqhit : sf )
12687 h.dom_id = sf.getModuleID();
12688 evt.hits.push_back(h);
12703inline JDAQSummaryslice* get_summary_slice( TFile* f , int frame_index )
12705 static TFile* _f = 0;
12706 static TTree* S = 0;
12707 static TBranch* BS = 0;
12708 JDAQSummaryslice *r = 0 ;
12710 if (!f) THROW(Exception, "get_summary_slice called with TFile pointer that is null");
12713 // in principle, event if the pointer-value is the same, we could have been given a new file
12715 if ( !_f || _f->GetUUID().Compare( f->GetUUID() ) != 0 ) // setup for tree reading and build tree index
12719 // first we have to deal with the following....
12720 // The streamer of JDAQSummaryFrame needs to know what to do since
12721 // this information is not written to root file.
12723 const char* name = JDAQSummaryslice::Class()->GetName();
12725 JDAQSummaryFrame::ROOT_IO_VERSION = ((TStreamerInfo*)_f -> GetStreamerInfoList()->FindObject(name))->GetClassVersion();
12727 S = (TTree*) _f->Get( TTREE_ONLINE_SUMMARYSLICE );
12731 THROW(Exception, "Failed to get summary slice TTree : " << TTREE_ONLINE_SUMMARYSLICE );
12734 BS = S->GetBranch( TBRANCH_ONLINE_SUMMARYSLICE );
12738 THROW(Exception, "Failed to get brach :" << TBRANCH_ONLINE_SUMMARYSLICE );
12741 std::cout << "building index to lookup summary slices..." << std::endl;
12742 int n = S->BuildIndex("frame_index");
12744 BS->SetAddress( &r );
12747 int nbytes = S->GetEntryWithIndex( frame_index ); // returns -1 if not found
12750 THROW(Exception, "Failed to find summary slice entry with frame_index " << frame_index);
12757#ifndef __TOOLS_MULTIPLICITY__
12758#define __TOOLS_MULTIPLICITY__
12762#include "km3net-dataformat/offline/Evt.hh"
12763#include "km3net-dataformat/offline/Trk.hh"
12771inline int get_multiplicity(const Evt& event)
12773 using namespace std;
12775 // Bundle multiplicity is stored in the `len` member variable for `track_bundle`s.
12777 for ( auto& t : event.mc_trks ) {
12778 if ( t.status == TRK_ST_MUONBUNDLE ) { return (int) t.len; }
12782 out << "get_multiplicity(): The following event does not correspond to a muon bundle:" << endl;
12784 throw Exception(static_cast<ostringstream&>(out).str());
12788#ifndef __TOOLS_RECONSTRUCTION__
12789#define __TOOLS_RECONSTRUCTION__
12792#include <algorithm>
12794#include "km3net-dataformat/offline/Hit.hh"
12795#include "km3net-dataformat/offline/Vec.hh"
12796#include "km3net-dataformat/offline/Trk.hh"
12797#include "km3net-dataformat/offline/Evt.hh"
12798#include "km3net-dataformat/offline/Exception.hh"
12799#include "km3net-dataformat/definitions/reconstruction.hh"
12813struct rec_stages_range {
12817 rec_stages_range() :
12819 upper(std::numeric_limits<int>::max())
12829 rec_stages_range(const int lower, const int upper) :
12840 rec_stages_range(const int stage) :
12852 inline bool operator()(const int stage) const
12854 return (stage >= lower && stage <= upper);
12871template<int reconstruction_type>
12872struct quality_sorter {
12882 inline bool operator()(const Trk& first, const Trk& second) const
12884 if (first.rec_stages.size() == second.rec_stages.size())
12885 return first.lik > second.lik;
12887 return first.rec_stages.size() > second.rec_stages.size();
12896struct has_history {
12903 has_history(const int type, const rec_stages_range range) :
12912 inline bool operator()(const Trk& track) const
12914 if (track.rec_type == type)
12915 return std::find_if(track.rec_stages.begin(), track.rec_stages.end(), range) != track.rec_stages.end();
12920 const int type; //!< reconstruction type
12921 const rec_stages_range range; //!< range of application types
12931inline bool has_jppmuon_prefit(const Trk& track)
12933 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONPREFIT)(track);
12943inline bool has_jppmuon_simplex(const Trk& track)
12945 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSIMPLEX)(track);
12955inline bool has_jppmuon_gandalf(const Trk& track)
12957 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONGANDALF)(track);
12967inline bool has_jppmuon_energy(const Trk& track)
12969 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONENERGY)(track);
12979inline bool has_jppmuon_start(const Trk& track)
12981 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSTART)(track);
12991inline bool has_jppmuon_fit(const Trk& track)
12993 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JMUONBEGIN, JMUONEND))(track);
13003inline bool has_shower_prefit(const Trk& track)
13005 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPREFIT)(track);
13015inline bool has_shower_positionfit(const Trk& track)
13017 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPOSITIONFIT)(track);
13027inline bool has_shower_completefit(const Trk& track)
13029 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERCOMPLETEFIT)(track);
13039inline bool has_shower_fit(const Trk& track)
13041 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JSHOWERBEGIN, JSHOWEREND))(track);
13051inline bool has_aashower_fit(const Trk& track)
13053 return ::has_history(AANET_RECONSTRUCTION_TYPE, rec_stages_range(AASHOWERBEGIN, AASHOWEREND))(track);
13065template<class JTrackSelector_t>
13066inline bool has_reconstructed_track(const Evt& evt, JTrackSelector_t selector)
13068 return std::find_if(evt.trks.begin(), evt.trks.end(), selector) != evt.trks.end();
13079template<int reconstruction_type>
13080inline bool has_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13082 return ::has_reconstructed_track(evt, ::has_history(reconstruction_type, range));
13092inline bool has_reconstructed_jppmuon(const Evt& evt)
13094 return ::has_reconstructed_track(evt, has_jppmuon_fit);
13104inline bool has_reconstructed_jppshower(const Evt& evt)
13106 return ::has_reconstructed_track(evt, ::has_shower_fit);
13116inline bool has_reconstructed_aashower(const Evt& evt)
13118 return ::has_reconstructed_track(evt, has_aashower_fit);
13134template<class JTrackSelector_t, class JQualitySorter_t>
13135inline const Trk& get_best_reconstructed_track(const Evt& evt,
13136 JTrackSelector_t selector,
13137 JQualitySorter_t comparator)
13139 std::vector<Trk>::const_iterator p = std::find_if(evt.trks.begin(), evt.trks.end(), selector);
13141 for (std::vector<Trk>::const_iterator i = p; i != evt.trks.end(); ++i) {
13142 if (selector(*i) && comparator(*i, *p)) {
13147 if (p != evt.trks.end())
13150 THROW(Exception, "This event has no reconstructed track with given selector.");
13161template<int reconstruction_type>
13162inline const Trk& get_best_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13164 return get_best_reconstructed_track(evt, ::has_history(reconstruction_type, range), quality_sorter<reconstruction_type>());
13174inline const Trk& get_best_reconstructed_jppmuon(const Evt& evt)
13176 return get_best_reconstructed_track(evt, has_jppmuon_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13186inline const Trk& get_best_reconstructed_jppshower(const Evt& evt)
13188 return get_best_reconstructed_track(evt, ::has_shower_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13198inline const Trk& get_best_reconstructed_aashower(const Evt& evt)
13200 return get_best_reconstructed_track(evt, ::has_aashower_fit, quality_sorter<AANET_RECONSTRUCTION_TYPE>());
13204#ifndef __TOOLS__TIME_CONVERTER__
13205#define __TOOLS__TIME_CONVERTER__
13207#include "km3net-dataformat/offline/Evt.hh"
13208#include "km3net-dataformat/online/JDAQClock.hh"
13209#include "km3net-dataformat/online/JDAQChronometer.hh"
13222class time_converter
13240 time_converter(const Evt& event) :
13242 __t1(getTimeOfRTS(event.frame_index))
13252 time_converter(const Evt& event,
13253 const JDAQChronometer& chronometer) :
13255 __t1(getTimeOfRTS(chronometer))
13264 double getTime() const
13266 return __t1 - __t0;
13275 double putTime() const
13277 return __t0 - __t1;
13287 double getTime(const double t0) const
13289 return t0 + __t1 - __t0;
13299 double putTime(const double t0) const
13301 return t0 - __t1 + __t0;
13305 double __t0; // Monte Carlo event time [ns]
13306 double __t1; // DAQ RTS [ns]
13311#undef _BACKWARD_BACKWARD_WARNING_H
13313 static const char* classesHeaders[] = {
13314"AAObject", payloadCode,
"@",
13315"Evt", payloadCode,
"@",
13316"Head", payloadCode,
"@",
13317"Hit", payloadCode,
"@",
13318"KM3NETDAQ::JDAQAbstractPreamble", payloadCode,
"@",
13319"KM3NETDAQ::JDAQChronometer", payloadCode,
"@",
13320"KM3NETDAQ::JDAQEvent", payloadCode,
"@",
13321"KM3NETDAQ::JDAQEventHeader", payloadCode,
"@",
13322"KM3NETDAQ::JDAQFrame", payloadCode,
"@",
13323"KM3NETDAQ::JDAQFrameStatus", payloadCode,
"@",
13324"KM3NETDAQ::JDAQHeader", payloadCode,
"@",
13325"KM3NETDAQ::JDAQHit", payloadCode,
"@",
13326"KM3NETDAQ::JDAQKeyHit", payloadCode,
"@",
13327"KM3NETDAQ::JDAQModuleIdentifier", payloadCode,
"@",
13328"KM3NETDAQ::JDAQPMTIdentifier", payloadCode,
"@",
13329"KM3NETDAQ::JDAQPreamble", payloadCode,
"@",
13330"KM3NETDAQ::JDAQRate", payloadCode,
"@",
13331"KM3NETDAQ::JDAQSummaryFrame", payloadCode,
"@",
13332"KM3NETDAQ::JDAQSummaryslice", payloadCode,
"@",
13333"KM3NETDAQ::JDAQSummarysliceHeader", payloadCode,
"@",
13334"KM3NETDAQ::JDAQSuperFrame", payloadCode,
"@",
13335"KM3NETDAQ::JDAQSuperFrameHeader", payloadCode,
"@",
13336"KM3NETDAQ::JDAQTimeslice", payloadCode,
"@",
13337"KM3NETDAQ::JDAQTimesliceHeader", payloadCode,
"@",
13338"KM3NETDAQ::JDAQTimesliceL0", payloadCode,
"@",
13339"KM3NETDAQ::JDAQTimesliceL1", payloadCode,
"@",
13340"KM3NETDAQ::JDAQTimesliceL2", payloadCode,
"@",
13341"KM3NETDAQ::JDAQTimesliceSN", payloadCode,
"@",
13342"KM3NETDAQ::JDAQTriggerCounter", payloadCode,
"@",
13343"KM3NETDAQ::JDAQTriggerMask", payloadCode,
"@",
13344"KM3NETDAQ::JDAQTriggeredHit", payloadCode,
"@",
13345"KM3NETDAQ::JDAQUTCExtended", payloadCode,
"@",
13346"MultiHead", payloadCode,
"@",
13347"Trk", payloadCode,
"@",
13348"Vec", payloadCode,
"@",
13351 static bool isInitialized =
false;
13352 if (!isInitialized) {
13353 TROOT::RegisterModule(
"G__KM3NeTROOT",
13354 headers, includePaths, payloadCode, fwdDeclCode,
13355 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl, {}, classesHeaders,
false);
13356 isInitialized =
true;
13359 static struct DictInit {
13361 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl();
13363 } __TheDictionaryInitializer;
13365void TriggerDictionaryInitialization_G__KM3NeTROOT() {
13366 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl();
Simple data structure for the DAQ preamble required for a correct calculation of the object size for ...
Data storage class for rate measurement of one PMT.
Data storage class for rate measurements of all PMTs in one module.
Data frame of one optical module.
Auxiliary class to count triggers.
Auxiliary class for trigger mask.
Data structure for UTC time.
KM3NeT DAQ data structures and auxiliaries.
static TGenericClassInfo * GenerateInitInstanceLocal(const ::KM3NETDAQ::JDAQAbstractPreamble *)
static void destruct_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void deleteArray_Vec(void *p)
static void destruct_KM3NETDAQcLcLJDAQFrame(void *p)
static void streamer_KM3NETDAQcLcLJDAQSummaryFrame(TBuffer &buf, void *obj)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void destruct_Hit(void *p)
static void destruct_Vec(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummaryslice(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQSummaryFrame(void *p=nullptr)
static void deleteArray_AAObject(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQChronometer(void *p)
static void delete_KM3NETDAQcLcLJDAQHit(void *p)
static void * new_vectorlEHitgR(void *p=nullptr)
static void * new_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQEvent(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQFrame(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQTriggerCounter(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQUTCExtended(void *p=nullptr)
static void * new_maplEstringcOstringgR(void *p=nullptr)
static void * new_vectorlETrkgR(void *p=nullptr)
static void delete_AAObject(void *p)
static void * new_Vec(void *p=nullptr)
static void deleteArray_vectorlETrkgR(void *p)
static void * newArray_Trk(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQPreamble(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQPreamble(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQKeyHit(void *p=nullptr)
static void destruct_vectorlEstringgR(void *p)
static void vectorlEstringgR_TClassManip(TClass *)
static void destruct_Trk(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTriggeredHit(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void vectorlEKM3NETDAQcLcLJDAQSummaryFramegR_TClassManip(TClass *)
static void streamer_KM3NETDAQcLcLJDAQPreamble(TBuffer &buf, void *obj)
static void * newArray_vectorlETrkgR(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQPMTIdentifier(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL0(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static TClass * KM3NETDAQcLcLJDAQRate_Dictionary()
static void * newArray_KM3NETDAQcLcLJDAQSuperFrame(Long_t size, void *p)
static void KM3NETDAQcLcLJDAQRate_TClassManip(TClass *)
static TClass * maplEstringcOstringgR_Dictionary()
static void vectorlEHitgR_TClassManip(TClass *)
static void delete_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void delete_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void * newArray_vectorlEHitgR(Long_t size, void *p)
static void maplEstringcOstringgR_TClassManip(TClass *)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void delete_vectorlEVecgR(void *p)
static void * newArray_Vec(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQHit(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void * newArray_KM3NETDAQcLcLJDAQAbstractPreamble(Long_t size, void *p)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQPreamble(void *p)
R__UseDummy(_R__UNIQUE_DICT_(Init))
static void * newArray_KM3NETDAQcLcLJDAQRate(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQHit(void *p)
static void deleteArray_vectorlEstringgR(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void destruct_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummarysliceHeader(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void * newArray_KM3NETDAQcLcLJDAQHit(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void delete_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void destruct_KM3NETDAQcLcLJDAQRate(void *p)
static TClass * vectorlEHitgR_Dictionary()
static void * new_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQChronometer(void *p)
static void * newArray_MultiHead(Long_t size, void *p)
static void delete_vectorlEdoublegR(void *p)
static void vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR_TClassManip(TClass *)
static void delete_MultiHead(void *p)
static void delete_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void streamer_KM3NETDAQcLcLJDAQModuleIdentifier(TBuffer &buf, void *obj)
static void * new_KM3NETDAQcLcLJDAQEvent(void *p=nullptr)
static void delete_maplEstringcOstringgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void streamer_KM3NETDAQcLcLJDAQAbstractPreamble(TBuffer &buf, void *obj)
static void delete_Evt(void *p)
static void destruct_vectorlEHeadgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL1(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void * new_Trk(void *p=nullptr)
static void * newArray_AAObject(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQFrameStatus(void *p)
static void * new_KM3NETDAQcLcLJDAQSuperFrame(void *p=nullptr)
static void deleteArray_Evt(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void * new_KM3NETDAQcLcLJDAQModuleIdentifier(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQRate(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQEventHeader(void *p=nullptr)
static void * newArray_maplEstringcOstringgR(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQFrameStatus(void *p)
TGenericClassInfo * GenerateInitInstance(const ::KM3NETDAQ::JDAQAbstractPreamble *)
static void delete_Head(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR_Dictionary()
static void destruct_KM3NETDAQcLcLJDAQEvent(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void delete_KM3NETDAQcLcLJDAQEvent(void *p)
static void vectorlEdoublegR_TClassManip(TClass *)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(Long_t size, void *p)
static void * new_vectorlEstringgR(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQTimeslice(Long_t size, void *p)
static void streamer_KM3NETDAQcLcLJDAQHit(TBuffer &buf, void *obj)
static void delete_Vec(void *p)
static void delete_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static TClass * vectorlEVecgR_Dictionary()
static void destruct_KM3NETDAQcLcLJDAQChronometer(void *p)
static void vectorlEKM3NETDAQcLcLJDAQSuperFramegR_TClassManip(TClass *)
static void delete_vectorlEintgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceHeader(Long_t size, void *p)
static void delete_Trk(void *p)
static TClass * vectorlEstringgR_Dictionary()
static void delete_vectorlEHeadgR(void *p)
static void * new_KM3NETDAQcLcLJDAQAbstractPreamble(void *p=nullptr)
static void * newArray_Hit(Long_t size, void *p)
static void deleteArray_Hit(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL2(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void delete_vectorlEHitgR(void *p)
static void deleteArray_vectorlEintgR(void *p)
static void destruct_maplEstringcOstringgR(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceSN(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * newArray_vectorlEintgR(Long_t size, void *p)
static void delete_Hit(void *p)
static void delete_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void * new_vectorlEdoublegR(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void deleteArray_MultiHead(void *p)
static void destruct_Head(void *p)
static void * new_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p=nullptr)
static void * new_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQTriggerCounter(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQRate(void *p)
static void delete_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void destruct_MultiHead(void *p)
static void streamer_KM3NETDAQcLcLJDAQKeyHit(TBuffer &buf, void *obj)
static void * newArray_Evt(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL2(Long_t size, void *p)
static void deleteArray_vectorlEdoublegR(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void * new_vectorlEHeadgR(void *p=nullptr)
static void streamer_KM3NETDAQcLcLJDAQTriggeredHit(TBuffer &buf, void *obj)
static void destruct_vectorlETrkgR(void *p)
static void * new_Hit(void *p=nullptr)
static void deleteArray_maplEstringcOstringgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTriggerMask(Long_t size, void *p)
static TClass * vectorlETrkgR_Dictionary()
static void * new_Evt(void *p=nullptr)
::ROOT::TGenericClassInfo * _R__UNIQUE_DICT_(Init)
static void * new_KM3NETDAQcLcLJDAQTriggeredHit(void *p=nullptr)
static void vectorlETrkgR_TClassManip(TClass *)
static void vectorlEVecgR_TClassManip(TClass *)
static void * new_KM3NETDAQcLcLJDAQTriggerMask(void *p=nullptr)
static void destruct_vectorlEdoublegR(void *p)
static void vectorlEintgR_TClassManip(TClass *)
static void deleteArray_KM3NETDAQcLcLJDAQRate(void *p)
static void destruct_vectorlEHitgR(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void deleteArray_vectorlEHeadgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSuperFrameHeader(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQHit(void *p=nullptr)
static void vectorlEKM3NETDAQcLcLJDAQKeyHitgR_TClassManip(TClass *)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceSN(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL0(void *p=nullptr)
static void streamer_KM3NETDAQcLcLJDAQPMTIdentifier(TBuffer &buf, void *obj)
static void * newArray_vectorlEVecgR(Long_t size, void *p)
static void * newArray_vectorlEstringgR(Long_t size, void *p)
static void * new_Head(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQEventHeader(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void destruct_vectorlEVecgR(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void delete_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void * newArray_KM3NETDAQcLcLJDAQKeyHit(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQPreamble(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void delete_vectorlEstringgR(void *p)
static void deleteArray_Trk(void *p)
static void * new_KM3NETDAQcLcLJDAQChronometer(void *p=nullptr)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceHeader(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void * new_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p=nullptr)
static void deleteArray_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * new_KM3NETDAQcLcLJDAQSummaryslice(void *p=nullptr)
static void delete_vectorlETrkgR(void *p)
static void delete_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void destruct_Evt(void *p)
static void destruct_vectorlEintgR(void *p)
static void delete_KM3NETDAQcLcLJDAQFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void destruct_KM3NETDAQcLcLJDAQPreamble(void *p)
static TClass * vectorlEintgR_Dictionary()
static void * new_KM3NETDAQcLcLJDAQTimeslice(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQFrame(Long_t size, void *p)
static TClass * vectorlEHeadgR_Dictionary()
static void delete_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void * new_KM3NETDAQcLcLJDAQHeader(void *p=nullptr)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(Long_t size, void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQSuperFramegR_Dictionary()
static void * new_MultiHead(void *p=nullptr)
static void deleteArray_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL1(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQHeader(void *p)
static void * newArray_Head(Long_t size, void *p)
static TClass * vectorlEdoublegR_Dictionary()
static void deleteArray_KM3NETDAQcLcLJDAQFrameStatus(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQFrameStatus(Long_t size, void *p)
static void vectorlEHeadgR_TClassManip(TClass *)
static void deleteArray_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void delete_KM3NETDAQcLcLJDAQHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void * new_vectorlEVecgR(void *p=nullptr)
static void * newArray_vectorlEdoublegR(Long_t size, void *p)
static void delete_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void destruct_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void delete_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void * new_AAObject(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void * new_KM3NETDAQcLcLJDAQFrameStatus(void *p=nullptr)
static void deleteArray_Head(void *p)
static void * newArray_KM3NETDAQcLcLJDAQModuleIdentifier(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void deleteArray_vectorlEHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void delete_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQHeader(Long_t size, void *p)
static void deleteArray_vectorlEVecgR(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQSummaryFramegR_Dictionary()
static void delete_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQFrame(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummaryFrame(Long_t size, void *p)
static void destruct_AAObject(void *p)
static void * newArray_KM3NETDAQcLcLJDAQUTCExtended(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void * newArray_KM3NETDAQcLcLJDAQChronometer(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * new_vectorlEintgR(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQPMTIdentifier(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQKeyHitgR_Dictionary()
static void * newArray_vectorlEHeadgR(Long_t size, void *p)
static void delete_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQEvent(void *p)
AAObject is a base class for I/O-classes that adds the possibility to add 'user' information which wi...
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Timeslice data structure for L0 data.
Timeslice data structure for L1 data.
Timeslice data structure for L2 data.
Timeslice data structure for SN data.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
The Vec class is a straightforward 3-d vector, which also works in pyroot.