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(),
"", 6287,
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(),
"", 6761,
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<Trk>));
3805 static ::ROOT::TGenericClassInfo
3806 instance(
"vector<Trk>", -2,
"vector", 389,
3807 typeid(
vector<Trk>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3815 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Trk> >()));
3817 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Trk>",
"std::vector<Trk, std::allocator<Trk> >"));
3841 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Trk>[nElements] :
new vector<Trk>[nElements];
3852 (
static_cast<current_t*
>(p))->~current_t();
3870 static ::ROOT::TGenericClassInfo
3871 instance(
"vector<KM3NETDAQ::JDAQTriggeredHit>", -2,
"vector", 389,
3882 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQTriggeredHit>",
"std::vector<KM3NETDAQ::JDAQTriggeredHit, std::allocator<KM3NETDAQ::JDAQTriggeredHit> >"));
3917 (
static_cast<current_t*
>(p))->~current_t();
3935 static ::ROOT::TGenericClassInfo
3936 instance(
"vector<KM3NETDAQ::JDAQSuperFrame>", -2,
"vector", 389,
3947 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSuperFrame>",
"std::vector<KM3NETDAQ::JDAQSuperFrame, std::allocator<KM3NETDAQ::JDAQSuperFrame> >"));
3982 (
static_cast<current_t*
>(p))->~current_t();
4000 static ::ROOT::TGenericClassInfo
4001 instance(
"vector<KM3NETDAQ::JDAQSummaryFrame>", -2,
"vector", 389,
4012 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSummaryFrame>",
"std::vector<KM3NETDAQ::JDAQSummaryFrame, std::allocator<KM3NETDAQ::JDAQSummaryFrame> >"));
4047 (
static_cast<current_t*
>(p))->~current_t();
4065 static ::ROOT::TGenericClassInfo
4066 instance(
"vector<KM3NETDAQ::JDAQKeyHit>", -2,
"vector", 389,
4077 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQKeyHit>",
"std::vector<KM3NETDAQ::JDAQKeyHit, std::allocator<KM3NETDAQ::JDAQKeyHit> >"));
4112 (
static_cast<current_t*
>(p))->~current_t();
4129 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Hit>));
4130 static ::ROOT::TGenericClassInfo
4131 instance(
"vector<Hit>", -2,
"vector", 389,
4132 typeid(
vector<Hit>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4140 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Hit> >()));
4142 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Hit>",
"std::vector<Hit, std::allocator<Hit> >"));
4166 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Hit>[nElements] :
new vector<Hit>[nElements];
4177 (
static_cast<current_t*
>(p))->~current_t();
4194 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Head>));
4195 static ::ROOT::TGenericClassInfo
4196 instance(
"vector<Head>", -2,
"vector", 389,
4197 typeid(
vector<Head>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4205 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Head> >()));
4207 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Head>",
"std::vector<Head, std::allocator<Head> >"));
4231 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Head>[nElements] :
new vector<Head>[nElements];
4242 (
static_cast<current_t*
>(p))->~current_t();
4260 static ::ROOT::TGenericClassInfo
4261 instance(
"map<string,string>", -2,
"map", 100,
4270 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::MapInsert<
map<string,string> >()));
4272 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> > > > >"));
4307 (
static_cast<current_t*
>(p))->~current_t();
4312 void TriggerDictionaryInitialization_G__KM3NeTROOT_Impl() {
4313 static const char* headers[] = {
4317 static const char* includePaths[] = {
4318"/builds/common/jpp/externals/km3net-dataformat/build",
4320"/usr/local/include/",
4321"/builds/common/jpp/externals/km3net-dataformat/build/src/",
4324 static const char* fwdDeclCode = R
"DICTFWDDCLS(
4325#line 1 "G__KM3NeTROOT dictionary forward declarations' payload"
4326#pragma clang diagnostic ignored "-Wkeyword-compat"
4327#pragma clang diagnostic ignored "-Wignored-attributes"
4328#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
4329extern int __Cling_AutoLoading_Map;
4330namespace KM3NETDAQ{class JDAQAbstractPreamble;}
4331namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQUTCExtended.hh"))) JDAQUTCExtended;}
4332namespace KM3NETDAQ{class JDAQChronometer;}
4333namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPreamble.hh"))) JDAQPreamble;}
4334namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQHeader;}
4335namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerCounter.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerCounter;}
4336namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerMask.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerMask;}
4337namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQEventHeader;}
4338namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHit.hh"))) JDAQHit;}
4339namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQModuleIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQModuleIdentifier;}
4340namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPMTIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQPMTIdentifier;}
4341namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQKeyHit;}
4342namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggeredHit.hh"))) JDAQTriggeredHit;}
4343namespace KM3NETDAQ{class JDAQEvent;}
4344namespace KM3NETDAQ{class JDAQFrame;}
4345namespace KM3NETDAQ{class JDAQFrameStatus;}
4346namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrameHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrameHeader;}
4347namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrame;}
4348namespace KM3NETDAQ{class JDAQRate;}
4349namespace KM3NETDAQ{class JDAQSummaryFrame;}
4350namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSummarysliceHeader.hh"))) JDAQSummarysliceHeader;}
4351namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimesliceHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceHeader;}
4352namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimeslice;}
4353namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL0;}
4354namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL1;}
4355namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL2;}
4356namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceSN;}
4357namespace KM3NETDAQ{class JDAQSummaryslice;}
4359struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Vec.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Vec;
4360struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Hit;
4361struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Trk.hh"))) Trk;
4366 static const char* payloadCode = R
"DICTPAYLOAD(
4367#line 1 "G__KM3NeTROOT dictionary payload"
4370#define _BACKWARD_BACKWARD_WARNING_H
4375#include "km3net-dataformat/online/JDAQException.hh"
4389namespace KM3NETDAQ {
4394#if NAMESPACE == ANTARES
4395 static const int NUMBER_OF_PMTS = 3; //!< Total number of PMTs in module
4397 static const int NUMBER_OF_PMTS = 31; //!< Total number of PMTs in module
4424 if (bit < 0 || bit > 31) {
4425 throw JDAQException("JBit: illegal bit range.");
4448 void set(int& mask) const
4459 void unset(int& mask) const
4471 void set(int& mask, const bool value) const
4486 int write(const int value) const
4488 return (value << bit) & get();
4498 int read(const int mask) const
4500 return (mask & get()) >> bit;
4510 bool has(const int mask) const
4512 return (mask & get()) != 0;
4539 JBits(int __lsb, int __msb) :
4543 if (lsb < 0 || lsb > 31 ||
4544 msb < lsb || msb > 31) {
4545 throw JDAQException("JBits: illegal bit range.");
4559 static const unsigned int mask[] = { 0x00000001,
4599 return (int) (mask[msb-lsb] << lsb);
4609 int write(const int value) const
4611 return (value << lsb) & get();
4621 int read(const int mask) const
4623 return (mask & get()) >> lsb;
4633 bool has(const int mask) const
4635 return (get() & mask) != 0;
4639 int lsb; //!< least significant bit
4640 int msb; //!< most significant bit
4644 static const JBit DAQ_WHITE_RABBIT (31); //!< White Rabbit status
4645 static const JBits DAQ_TDC ( 0, 30); //!< TDC high-rate veto status
4646 static const JBits DAQ_FIFO ( 0, 30); //!< FIFO almost full bits
4648 static const JBit DAQ_UDP_TRAILER (31); //!< UDP trailer
4649 static const JBits DAQ_UDP_RECEIVED_PACKETS( 0, 15); //!< Mask of UDP received packets
4650 static const JBits DAQ_UDP_SEQUENCE_NUMBER (16, 31); //!< Mask of UDP sequence number
4654#ifndef __JDAQABSTRACTPREAMBLE__
4655#define __JDAQABSTRACTPREAMBLE__
4657#include "km3net-dataformat/online/JDAQDataTypes.hh"
4658#include "km3net-dataformat/online/JDAQRoot.hh"
4665namespace KM3NETDAQ {
4674 class JDAQAbstractPreamble {
4682 JDAQAbstractPreamble(JDAQType<T> type) :
4684 type (KM3NETDAQ::getDataType(type))
4691 JDAQAbstractPreamble() :
4702 int getLength() const
4713 int getDataType() const
4719 ClassDefNV(JDAQAbstractPreamble,1);
4728#ifndef __JDAQCHRONOMETER__
4729#define __JDAQCHRONOMETER__
4734#include "km3net-dataformat/online/JDAQRoot.hh"
4735#include "km3net-dataformat/online/JDAQUTCExtended.hh"
4736#include "km3net-dataformat/online/JDAQClock.hh"
4743namespace KM3NETDAQ {
4748 class JDAQChronometer
4752 friend size_t getSizeof<JDAQChronometer>();
4753 friend JReader& operator>>(JReader&, JDAQChronometer&);
4754 friend JWriter& operator<<(JWriter&, const JDAQChronometer&);
4774 JDAQChronometer(const int __detector_id,
4776 const int __frame_index) :
4777 detector_id(__detector_id),
4779 frame_index(__frame_index),
4780 timeslice_start(getTimeOfFrame(__frame_index))
4792 JDAQChronometer(const int __detector_id,
4794 const int __frame_index,
4795 const JDAQUTCExtended& __timeslice_start) :
4796 detector_id(__detector_id),
4798 frame_index(__frame_index),
4799 timeslice_start(__timeslice_start)
4806 virtual ~JDAQChronometer()
4815 const JDAQChronometer& getDAQChronometer() const
4817 return static_cast<const JDAQChronometer&>(*this);
4826 void setDAQChronometer(const JDAQChronometer& chronometer)
4828 static_cast<JDAQChronometer&>(*this) = chronometer;
4837 int getDetectorID() const
4848 int getRunNumber() const
4859 int getFrameIndex() const
4871 JDAQUTCExtended getTimesliceStart() const
4873 return timeslice_start;
4882 void setRunNumber(const int run)
4893 void setFrameIndex(const int frame_index)
4895 this->frame_index = frame_index;
4904 void setTimesliceStart(const JDAQUTCExtended& timeslice_start)
4906 this->timeslice_start = timeslice_start;
4910 ClassDef(JDAQChronometer,3);
4917 JDAQUTCExtended timeslice_start;
4928 inline std::ostream& operator<<(std::ostream& out, const JDAQChronometer& chronometer)
4930 using namespace std;
4932 out << setw(8) << chronometer.getDetectorID();
4934 out << setw(8) << chronometer.getRunNumber();
4936 out << setw(8) << chronometer.getFrameIndex();
4938 out << chronometer.getTimesliceStart();
4950 inline double getTimeOfRTS(const JDAQChronometer& chronometer)
4952 return getTimeOfRTS(chronometer.getFrameIndex());
4963 inline bool operator==(const JDAQChronometer& first,
4964 const JDAQChronometer& second)
4966 return (first.getDetectorID() == second.getDetectorID() &&
4967 first.getRunNumber() == second.getRunNumber() &&
4968 first.getFrameIndex() == second.getFrameIndex() &&
4969 first.getTimesliceStart() == second.getTimesliceStart());
4980 inline bool operator!=(const JDAQChronometer& first,
4981 const JDAQChronometer& second)
4983 return !(first == second);
4994 inline double getTimeDifference(const JDAQChronometer& first, const JDAQChronometer& second)
4996 return getTimeDifference(first.getTimesliceStart(), second.getTimesliceStart());
5001#ifndef __JDAQCLOCK__
5002#define __JDAQCLOCK__
5009#include "km3net-dataformat/online/JDAQException.hh"
5016namespace KM3NETDAQ {
5019 static double FRAME_TIME_NS = 100000000.0; //!< Frame time [ns]
5020 static double RESET_TIME_NS = FRAME_TIME_NS; //!< TDC dynamic range [ns]
5032 enum JDAQClock_t { KM3NET = 1, PPM_DU = 3, ANTARES = 101 };
5040 JDAQClock(const JDAQClock_t clock = KM3NET)
5042 this->clock = clock;
5053 JDAQClock_t get() const
5064 void set(const JDAQClock_t clock)
5066 this->clock = clock;
5077 switch (this->clock) {
5080 FRAME_TIME_NS = 100000000.0;
5081 RESET_TIME_NS = FRAME_TIME_NS;
5085 FRAME_TIME_NS = (1<<27);
5086 RESET_TIME_NS = FRAME_TIME_NS;
5090 FRAME_TIME_NS = 13107200.0 * 8;
5091 RESET_TIME_NS = 419430400.0;
5095 throw JDAQException("Undefined clock.");
5107 friend inline std::istream& operator>>(std::istream& in, JDAQClock& clock)
5109 using namespace std;
5116 clock.set((JDAQClock_t) clk);
5118 catch(const std::exception& error) {
5119 in.setstate(ios_base::badbit);
5133 friend inline std::ostream& operator<<(std::ostream& out, const JDAQClock& clock)
5135 return out << clock.clock;
5151 inline bool operator==(const JDAQClock& first, const JDAQClock& second)
5153 return first.get() == second.get();
5162 inline double getFrameTime()
5164 return FRAME_TIME_NS;
5173 inline double getRTS()
5175 return RESET_TIME_NS;
5185 inline double getTimeOfFrame(const int frame_index)
5187 if (frame_index != 0)
5188 return (double) (frame_index - 1) * FRAME_TIME_NS;
5200 inline double getTimeOfFrame(const unsigned int frame_index)
5202 if (frame_index != 0)
5203 return (double) (frame_index - 1) * FRAME_TIME_NS;
5215 inline double getTimeOfRTS(const double t_ns)
5217 return std::floor(t_ns/RESET_TIME_NS) * RESET_TIME_NS;
5227 inline double getTimeOfRTS(const int frame_index)
5229 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5239 inline double getTimeOfRTS(const unsigned int frame_index)
5241 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5251 inline int getFrameIndex(const double t_ns)
5253 return (int) (t_ns / FRAME_TIME_NS) + 1;
5263 inline double getTimeSinceRTS(const int frame_index)
5265 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5275 inline double getTimeSinceRTS(const unsigned int frame_index)
5277 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5287 inline double getTimeSinceRTS(const double& t_ns)
5289 return std::fmod(t_ns, RESET_TIME_NS);
5297 inline void setClock()
5299 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::ANTARES);
5302 using KM3NETDAQ::getFrameTime;
5303 using KM3NETDAQ::getRTS;
5304 using KM3NETDAQ::getTimeOfFrame;
5305 using KM3NETDAQ::getTimeOfRTS;
5306 using KM3NETDAQ::getFrameIndex;
5307 using KM3NETDAQ::getTimeSinceRTS;
5314 inline void setClock()
5316 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::KM3NET);
5319 using KM3NETDAQ::getFrameTime;
5320 using KM3NETDAQ::getRTS;
5321 using KM3NETDAQ::getTimeOfFrame;
5322 using KM3NETDAQ::getTimeOfRTS;
5323 using KM3NETDAQ::getFrameIndex;
5324 using KM3NETDAQ::getTimeSinceRTS;
5328#ifndef __JDAQDATATYPES__
5329#define __JDAQDATATYPES__
5331#include "km3net-dataformat/definitions/daqdatatypes.hh"
5337namespace KM3NETDAQ {
5345 typedef T data_type;
5354 inline int getDataType()
5356 return getDataType(JDAQType<T>());
5368 inline int getDataType(const JDAQType<T>& type);
5371 class JDAQSuperFrame;
5372 class JDAQSummaryFrame;
5373 class JDAQTimeslice;
5374 struct JDAQTimesliceL0;
5375 struct JDAQTimesliceL1;
5376 struct JDAQTimesliceL2;
5377 struct JDAQTimesliceSN;
5378 class JDAQSummaryslice;
5382 inline int getDataType(const JDAQType<JDAQSuperFrame>&) { return DAQSUPERFRAME; }
5383 inline int getDataType(const JDAQType<JDAQSummaryFrame>&) { return DAQSUMMARYFRAME; }
5384 inline int getDataType(const JDAQType<JDAQTimeslice>&) { return DAQTIMESLICE; }
5385 inline int getDataType(const JDAQType<JDAQTimesliceL0>&) { return DAQTIMESLICEL0; }
5386 inline int getDataType(const JDAQType<JDAQTimesliceL1>&) { return DAQTIMESLICEL1; }
5387 inline int getDataType(const JDAQType<JDAQTimesliceL2>&) { return DAQTIMESLICEL2; }
5388 inline int getDataType(const JDAQType<JDAQTimesliceSN>&) { return DAQTIMESLICESN; }
5389 inline int getDataType(const JDAQType<JDAQSummaryslice>&) { return DAQSUMMARYSLICE; }
5390 inline int getDataType(const JDAQType<JDAQEvent>&) { return DAQEVENT; }
5394#ifndef __JDAQEVENT__
5395#define __JDAQEVENT__
5401#include "km3net-dataformat/online/JDAQRoot.hh"
5402#include "km3net-dataformat/online/JDAQPreamble.hh"
5403#include "km3net-dataformat/online/JDAQEventHeader.hh"
5404#include "km3net-dataformat/online/JDAQHit.hh"
5405#include "km3net-dataformat/online/JDAQKeyHit.hh"
5406#include "km3net-dataformat/online/JDAQTriggeredHit.hh"
5407#include "km3net-dataformat/online/JDAQPrint.hh"
5414namespace KM3NETDAQ {
5417 typedef JDAQKeyHit JDAQSnapshotHit;
5424 public JDAQPreamble,
5425 public JDAQEventHeader
5429 using JDAQTriggerMask::getTriggerMask;
5431 friend size_t getSizeof(const JDAQEvent&);
5432 friend JReader& operator>>(JReader&, JDAQEvent&);
5433 friend JWriter& operator<<(JWriter&, const JDAQEvent&);
5439 JDAQPreamble(JDAQType<JDAQEvent>()),
5449 JDAQEvent(const JDAQEventHeader& header) :
5450 JDAQPreamble(JDAQType<JDAQEvent>()),
5451 JDAQEventHeader(header)
5459 class const_iterator :
5460 public std::vector<T>::const_iterator
5467 std::vector<T>::const_iterator()
5476 const_iterator(const typename std::vector<T>::const_iterator& i) :
5477 std::vector<T>::const_iterator(i)
5486 class const_reverse_iterator :
5487 public std::vector<T>::const_reverse_iterator
5493 const_reverse_iterator() :
5494 std::vector<T>::const_reverse_iterator()
5503 const_reverse_iterator(const typename std::vector<T>::const_reverse_iterator& i) :
5504 std::vector<T>::const_reverse_iterator(i)
5515 const std::vector<T>& getHits() const;
5524 std::vector<T>& getHits();
5533 const_iterator<T> begin() const;
5542 const_iterator<T> end() const;
5551 const_reverse_iterator<T> rbegin() const;
5560 const_reverse_iterator<T> rend() const;
5569 unsigned int size() const;
5586 snapshotHits .clear();
5587 triggeredHits.clear();
5596 void push_back(const JDAQKeyHit& hit)
5598 snapshotHits.push_back(hit);
5607 void push_back(const JDAQTriggeredHit& hit)
5609 triggeredHits.push_back(hit);
5619 static JTriggerMask_t getTriggerMask(const JDAQTriggeredHit& hit)
5621 return hit.getTriggerMask();
5631 JTriggerMask_t getTriggerMask(const JDAQSnapshotHit& hit) const
5633 for (std::vector<JDAQTriggeredHit>::const_iterator i = triggeredHits.begin(); i != triggeredHits.end(); ++i) {
5635 return i->getTriggerMask();
5639 return JTriggerMask_t(0);
5650 std::ostream& print(std::ostream& out, const bool lpr = false) const;
5653 ClassDef(JDAQEvent,4);
5657 std::vector<JDAQTriggeredHit> triggeredHits;
5658 std::vector<JDAQSnapshotHit> snapshotHits;
5669 bool operator==(const JDAQEvent& first,
5670 const JDAQEvent& second);
5680 inline bool operator!=(const JDAQEvent& first,
5681 const JDAQEvent& second)
5683 return !(first == second);
5694 inline std::ostream& operator<<(std::ostream& out, const JDAQEvent& event)
5696 return event.print(out, getDAQLongprint());
5707 inline double getTimeDifference(const JDAQEvent& first, const JDAQEvent& second);
5711#ifndef __JDAQEVENTHEADER__
5712#define __JDAQEVENTHEADER__
5714#include "km3net-dataformat/online/JDAQRoot.hh"
5715#include "km3net-dataformat/online/JDAQHeader.hh"
5716#include "km3net-dataformat/online/JDAQTriggerCounter.hh"
5717#include "km3net-dataformat/online/JDAQTriggerMask.hh"
5724namespace KM3NETDAQ {
5729 class JDAQEventHeader :
5731 public JDAQTriggerCounter,
5732 public JDAQTriggerMask
5736 friend size_t getSizeof<JDAQEventHeader>();
5737 friend JReader& operator>>(JReader&, JDAQEventHeader&);
5738 friend JWriter& operator<<(JWriter&, const JDAQEventHeader&);
5745 JDAQTriggerCounter(),
5756 const JDAQEventHeader& getDAQEventHeader() const
5758 return static_cast<const JDAQEventHeader&>(*this);
5768 inline bool is_same(const JDAQEventHeader& header) const
5770 return (this->getDetectorID() == header.getDetectorID() &&
5771 this->getRunNumber() == header.getRunNumber() &&
5772 this->getFrameIndex() == header.getFrameIndex() &&
5773 this->getCounter() == header.getCounter());
5782 unsigned int getOverlays() const
5788 ClassDef(JDAQEventHeader,3);
5792 unsigned int overlays;
5803 inline bool operator==(const JDAQEventHeader& first,
5804 const JDAQEventHeader& second)
5806 return (first.getDAQHeader() == second.getDAQHeader() &&
5807 first.getDAQTriggerCounter() == second.getDAQTriggerCounter() &&
5808 first.getDAQTriggerMask() == second.getDAQTriggerMask());
5819 inline bool operator!=(const JDAQEventHeader& first,
5820 const JDAQEventHeader& second)
5822 return !(first == second);
5827#ifndef __JDAQEXCEPTION__
5828#define __JDAQEXCEPTION__
5838namespace KM3NETDAQ {
5844 class JDAQException : public std::exception {
5851 JDAQException(const std::string& error) :
5860 ~JDAQException() throw()
5869 virtual const char* what() const throw()
5871 return buffer.c_str();
5881 friend inline std::ostream& operator<<(std::ostream& out, const JDAQException& exception)
5883 return out << exception.what();
5887 const std::string buffer;
5892#ifndef __JDAQFRAME__
5893#define __JDAQFRAME__
5901#include "km3net-dataformat/online/JDAQHit.hh"
5902#include "km3net-dataformat/online/JDAQRoot.hh"
5903#include "km3net-dataformat/online/JDAQException.hh"
5909namespace KM3NETDAQ {
5914 class JDAQFrameSubset
5918 typedef const JDAQHit* const_iterator;
5919 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
5928 JDAQFrameSubset(const int number_of_hits, const JDAQHit* data) :
5929 numberOfHits(number_of_hits),
5934 const_iterator begin() const { return buffer; }
5935 const_iterator end() const { return buffer + numberOfHits; }
5937 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
5938 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
5940 bool empty() const { return numberOfHits == 0; }
5942 int size() const { return numberOfHits; }
5944 const JDAQHit* data() const { return buffer; }
5948 const int numberOfHits;
5949 const JDAQHit* buffer;
5960 typedef const JDAQHit* const_iterator;
5961 typedef JDAQHit* iterator;
5962 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
5963 typedef std::reverse_iterator<iterator> reverse_iterator;
5965 friend size_t getSizeof(const JDAQFrame&);
5966 friend JReader& operator>>(JReader&, JDAQFrame&);
5967 friend JWriter& operator<<(JWriter&, const JDAQFrame&);
5983 JDAQFrame(const JDAQFrame& frame) :
5996 JDAQFrame(JDAQFrame&& frame) :
5997 numberOfHits(frame.numberOfHits),
5998 buffer (frame.buffer)
6000 frame.numberOfHits = 0;
6001 frame.buffer = NULL;
6011 JDAQFrame(const int number_of_hits, const JDAQHit* data) :
6015 add(number_of_hits, data);
6022 virtual ~JDAQFrame()
6034 JDAQFrame& operator=(const JDAQFrame& frame)
6047 if (buffer != NULL) {
6056 const_iterator begin() const { return buffer; }
6057 const_iterator end() const { return buffer + numberOfHits; }
6060 iterator begin() { return buffer; }
6061 iterator end() { return buffer + numberOfHits; }
6064 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
6065 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
6068 reverse_iterator rbegin() { return reverse_iterator(end()); }
6069 reverse_iterator rend() { return reverse_iterator(begin()); }
6072 bool empty() const { return numberOfHits == 0; }
6074 int size() const { return numberOfHits; }
6076 const JDAQHit* data() const { return buffer; }
6077 JDAQHit* data() { return buffer; }
6086 const JDAQHit& operator[](int index) const
6088 return buffer[index];
6098 JDAQFrameSubset subset(const int i1, const int i2) const
6100 return JDAQFrameSubset(i2 - i1, buffer + i1);
6110 JDAQFrame& add(const JDAQFrame& frame)
6112 return add(frame.numberOfHits, frame.buffer);
6123 JDAQFrame& add(const int number_of_hits, const JDAQHit* data)
6125 if (number_of_hits > 0) {
6127 resize(numberOfHits + number_of_hits);
6129 memcpy(buffer + numberOfHits - number_of_hits, data, number_of_hits * sizeof(JDAQHit));
6141 void swap(JDAQFrame& frame)
6143 std::swap(numberOfHits, frame.numberOfHits);
6144 std::swap(buffer, frame.buffer);
6148 int numberOfHits; // following comment line is used by rootcint
6149 JDAQHit* buffer; // [numberOfHits]
6152 ClassDef(JDAQFrame,1);
6164 void resize(const int number_of_hits)
6166 if (number_of_hits > numberOfHits) {
6168 const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
6171 buffer = (JDAQHit*) malloc(number_of_bytes);
6173 buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
6175 if (buffer == NULL) {
6176 throw JDAQException("JDAQFrame::resize(): Memory exception - number of hits = " + std::to_string(number_of_hits));
6179 numberOfHits = number_of_hits;
6192 inline bool operator==(const JDAQFrame& first,
6193 const JDAQFrame& second)
6195 if (first.size() == second.size()) {
6197 for (JDAQFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
6219 inline bool operator!=(const JDAQFrame& first,
6220 const JDAQFrame& second)
6222 return !(first == second);
6227#ifndef __JDAQFRAMESTATUS__
6228#define __JDAQFRAMESTATUS__
6230#include "km3net-dataformat/online/JDAQ.hh"
6231#include "km3net-dataformat/online/JDAQException.hh"
6232#include "km3net-dataformat/online/JDAQRoot.hh"
6238namespace KM3NETDAQ {
6243 class JDAQFrameStatus {
6246 friend size_t getSizeof<JDAQFrameStatus>();
6247 friend JReader& operator>>(JReader&, JDAQFrameStatus&);
6248 friend JWriter& operator<<(JWriter&, const JDAQFrameStatus&);
6271 JDAQFrameStatus(const int __daq,
6274 const int __status_3 = 0,
6275 const int __status_4 = 0) :
6279 status_3(__status_3),
6280 status_4(__status_4)
6291 static const JDAQFrameStatus& getInstance()
6293 static const JDAQFrameStatus status(DAQ_UDP_RECEIVED_PACKETS.write(2) | DAQ_UDP_SEQUENCE_NUMBER.write(1),
6294 DAQ_WHITE_RABBIT.write(1),
6295 DAQ_FIFO.write(0) | DAQ_UDP_TRAILER.write(1));
6306 const JDAQFrameStatus& getDAQFrameStatus() const
6308 return static_cast<const JDAQFrameStatus&>(*this);
6317 void setDAQFrameStatus(const JDAQFrameStatus& status)
6319 static_cast<JDAQFrameStatus&>(*this) = status;
6328 int getDAQStatus() const
6339 int getStatus() const
6341 return this->status;
6350 int getFIFOStatus() const
6361 bool testDAQStatus() const
6363 return (getUDPNumberOfReceivedPackets() == (getUDPMaximalSequenceNumber() + 1)) && hasUDPTrailer();
6372 bool testStatus() const
6374 return testWhiteRabbitStatus() && testTDCStatus();
6383 int getUDPNumberOfReceivedPackets() const
6385 return DAQ_UDP_RECEIVED_PACKETS.read(this->daq);
6394 int getUDPMaximalSequenceNumber() const
6396 return DAQ_UDP_SEQUENCE_NUMBER.read(this->daq);
6405 bool testWhiteRabbitStatus() const
6407 return DAQ_WHITE_RABBIT.has(this->status);
6416 bool testTDCStatus() const
6418 return !testHighRateVeto();
6427 bool testHighRateVeto() const
6429 return DAQ_TDC.has(this->status);
6439 bool testHighRateVeto(const int tdc) const
6441 return JBit(tdc).has(this->status);
6450 int countHighRateVeto() const
6454 if (testHighRateVeto()) {
6455 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6456 if (JBit(pmt).has(this->status)) {
6471 bool testFIFOStatus() const
6473 return DAQ_FIFO.has(this->fifo);
6483 bool testFIFOStatus(const int tdc) const
6485 return JBit(tdc).has(this->fifo);
6494 int countFIFOStatus() const
6498 if (testFIFOStatus()) {
6499 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6500 if (JBit(pmt).has(this->fifo)) {
6513 int countActiveChannels() const
6515 int n = NUMBER_OF_PMTS;
6517 if (testHighRateVeto() || testFIFOStatus()) {
6518 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6519 if ( JBit(pmt).has(this->status) || JBit(pmt).has(this->fifo) ) {
6535 bool hasUDPTrailer() const
6537 return DAQ_UDP_TRAILER.has(this->fifo);
6547 void setHighRateVeto(const int tdc, const bool value)
6549 JBit(tdc).set(this->status, value);
6553 ClassDefNV(JDAQFrameStatus,1);
6556 int daq; // DAQ status
6557 int status; // TDC status
6558 int fifo; // FIFO status
6559 int status_3; // spare
6560 int status_4; // spare
6571 inline bool operator==(const JDAQFrameStatus& first,
6572 const JDAQFrameStatus& second)
6574 return (first.getDAQStatus() == second.getDAQStatus() &&
6575 first.getStatus() == second.getStatus() &&
6576 first.getFIFOStatus() == second.getFIFOStatus());
6587 inline bool operator!=(const JDAQFrameStatus& first,
6588 const JDAQFrameStatus& second)
6590 return !(first == second);
6595#ifndef __JDAQHEADER__
6596#define __JDAQHEADER__
6598#include "km3net-dataformat/online/JDAQRoot.hh"
6599#include "km3net-dataformat/online/JDAQChronometer.hh"
6606namespace KM3NETDAQ {
6612 public JDAQChronometer
6616 friend size_t getSizeof<JDAQHeader>();
6617 friend JReader& operator>>(JReader&, JDAQHeader&);
6618 friend JWriter& operator<<(JWriter&, const JDAQHeader&);
6633 JDAQHeader(const JDAQChronometer& chronometer) :
6634 JDAQChronometer(chronometer)
6643 const JDAQHeader& getDAQHeader() const
6645 return static_cast<const JDAQHeader&>(*this);
6654 void setDAQHeader(const JDAQHeader& header)
6656 static_cast<JDAQHeader&>(*this) = header;
6660 ClassDef(JDAQHeader,2);
6671 inline bool operator==(const JDAQHeader& first,
6672 const JDAQHeader& second)
6674 return (first.getDAQChronometer() == second.getDAQChronometer());
6685 inline bool operator!=(const JDAQHeader& first,
6686 const JDAQHeader& second)
6688 return !(first == second);
6701#include <netinet/in.h>
6704#include "km3net-dataformat/online/JDAQ.hh"
6705#include "km3net-dataformat/online/JDAQRoot.hh"
6706#include "km3net-dataformat/online/JDAQException.hh"
6713namespace KM3NETDAQ {
6730 typedef unsigned char JPMT_t; //!< PMT channel in FPGA
6731 typedef unsigned int JTDC_t; //!< leading edge [ns]
6732 typedef unsigned char JTOT_t; //!< time over threshold [ns]
6734 friend size_t getSizeof<JDAQHit>();
6735 friend JReader& operator>>(JReader&, JDAQHit&);
6736 friend JWriter& operator<<(JWriter&, const JDAQHit&);
6752 JDAQHit(const JPMT_t pmt_id,
6753 const JTDC_t tdc_ns,
6754 const JTOT_t tot_ns) :
6767 inline JPMT_t getPMT() const
6778 inline JTDC_t getT() const
6789 inline JTOT_t getToT() const
6800 static JTOT_t getMaximalToT()
6813 friend inline std::istream& operator>>(std::istream& in, JDAQHit& hit)
6819 if (in >> pmt >> tdc >> tot) {
6820 hit = JDAQHit(pmt, tdc, tot);
6834 friend inline std::ostream& operator<<(std::ostream& out, const JDAQHit& hit)
6836 using namespace std;
6838 out << setw(2) << (int) hit.getPMT() << ' '
6839 << setw(8) << (int) hit.getT() << ' '
6840 << setw(3) << (int) hit.getToT();
6846 ClassDefNV(JDAQHit,2);
6850 JPMT_t pmt; //!< PMT readout channel in FPGA
6851 JTDC_t tdc; //!< leading edge [ns]
6852 JTOT_t tot; //!< time over threshold [ns]
6866 inline bool operator<(const JDAQHit& first,
6867 const JDAQHit& second)
6869 if (first.getT() != second.getT())
6870 return first.getT() < second.getT();
6872 return first.getPMT() < second.getPMT();
6883 inline bool operator==(const JDAQHit& first,
6884 const JDAQHit& second)
6886 return (first.getPMT() == second.getPMT() &&
6887 first.getT() == second.getT() &&
6888 first.getToT() == second.getToT());
6899 inline bool operator!=(const JDAQHit& first,
6900 const JDAQHit& second)
6902 return !(first == second);
6907#ifndef __JDAQKEYHIT__
6908#define __JDAQKEYHIT__
6910#include "km3net-dataformat/online/JDAQRoot.hh"
6911#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
6912#include "km3net-dataformat/online/JDAQHit.hh"
6913#include "km3net-dataformat/online/JDAQPMTIdentifier.hh"
6920namespace KM3NETDAQ {
6926 public JDAQModuleIdentifier,
6931 friend size_t getSizeof<JDAQKeyHit>();
6932 friend JReader& operator>>(JReader&, JDAQKeyHit&);
6933 friend JWriter& operator<<(JWriter&, const JDAQKeyHit&);
6939 JDAQModuleIdentifier(),
6950 JDAQKeyHit(const JDAQModuleIdentifier& id,
6951 const JDAQHit& hit) :
6952 JDAQModuleIdentifier(id),
6960 virtual ~JDAQKeyHit()
6969 operator JDAQPMTIdentifier () const
6971 return JDAQPMTIdentifier(this->getModuleID(), this->getPMT());
6975 ClassDef(JDAQKeyHit,1);
6989 inline bool operator<(const JDAQKeyHit& first,
6990 const JDAQKeyHit& second)
6992 if (first.getModuleID() == second.getModuleID()) {
6993 if (first.getPMT() == second.getPMT())
6994 return first.getT() < second.getT();
6996 return first.getPMT() < second.getPMT();
6998 return first.getModuleID() < second.getModuleID();
7012 inline bool operator==(const JDAQKeyHit& first,
7013 const JDAQKeyHit& second)
7015 return (first.getModuleID() == second.getModuleID() &&
7016 first.getPMT() == second.getPMT() &&
7017 first.getT() == second.getT());
7028 inline bool operator!=(const JDAQKeyHit& first,
7029 const JDAQKeyHit& second)
7031 return !(first == second);
7036#ifndef __JDAQMODULEIDENTIFIER__
7037#define __JDAQMODULEIDENTIFIER__
7042#include "km3net-dataformat/online/JDAQRoot.hh"
7049namespace KM3NETDAQ {
7054 class JDAQModuleIdentifier
7058 friend size_t getSizeof<JDAQModuleIdentifier>();
7059 friend JReader& operator>>(JReader&, JDAQModuleIdentifier&);
7060 friend JWriter& operator<<(JWriter&, const JDAQModuleIdentifier&);
7065 JDAQModuleIdentifier() :
7075 JDAQModuleIdentifier(const int __id) :
7085 const JDAQModuleIdentifier& getModuleIdentifier() const
7096 void setModuleIdentifier(const JDAQModuleIdentifier& module)
7107 int getModuleID() const
7120 friend inline std::istream& operator>>(std::istream& in, JDAQModuleIdentifier& module)
7135 friend inline std::ostream& operator<<(std::ostream& out, const JDAQModuleIdentifier& module)
7143 ClassDefNV(JDAQModuleIdentifier,1);
7158 inline bool operator==(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7160 return first.getModuleID() == second.getModuleID();
7171 inline bool operator!=(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7173 return first.getModuleID() != second.getModuleID();
7184 inline bool operator==(const JDAQModuleIdentifier& module, const int id)
7186 return module.getModuleID() == id;
7197 inline bool operator!=(const JDAQModuleIdentifier& module, const int id)
7199 return module.getModuleID() != id;
7210 inline bool operator<(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7212 return first.getModuleID() < second.getModuleID();
7223 inline bool operator<(const JDAQModuleIdentifier& module, const int id)
7225 return module.getModuleID() < id;
7232 struct JDAQModuleComparator {
7234 * Default constructor.
7236 JDAQModuleComparator()
7247 bool operator()(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second) const
7249 return first.getModuleID() < second.getModuleID();
7255#ifndef __JDAQPMTIDENTIFIER__
7256#define __JDAQPMTIDENTIFIER__
7261#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7262#include "km3net-dataformat/online/JDAQRoot.hh"
7269namespace KM3NETDAQ {
7274 class JDAQPMTIdentifier :
7275 public JDAQModuleIdentifier
7279 friend size_t getSizeof<JDAQPMTIdentifier>();
7280 friend JReader& operator>>(JReader&, JDAQPMTIdentifier&);
7281 friend JWriter& operator<<(JWriter&, const JDAQPMTIdentifier&);
7286 JDAQPMTIdentifier() :
7287 JDAQModuleIdentifier(),
7298 JDAQPMTIdentifier(const JDAQModuleIdentifier& id,
7299 const int pmt_address) :
7300 JDAQModuleIdentifier(id),
7301 address (pmt_address)
7310 const JDAQPMTIdentifier& getPMTIdentifier() const
7321 void setPMTIdentifier(const JDAQPMTIdentifier& pmt)
7332 int getPMTAddress() const
7345 friend inline std::istream& operator>>(std::istream& in, JDAQPMTIdentifier& pmt)
7347 in >> static_cast<JDAQModuleIdentifier&>(pmt);
7361 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPMTIdentifier& pmt)
7363 out << static_cast<const JDAQModuleIdentifier&>(pmt) << ' ';
7380 static inline bool compare(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7382 return ((first .getModuleIdentifier() == second.getModuleIdentifier() ||
7383 first .getModuleIdentifier() == -1 ||
7384 second.getModuleIdentifier() == -1) &&
7385 (first .getPMTAddress() == second.getPMTAddress() ||
7386 first .getPMTAddress() == -1 ||
7387 second.getPMTAddress() == -1));
7391 ClassDefNV(JDAQPMTIdentifier,1);
7408 inline bool operator<(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7410 if (first.getModuleIdentifier() == second.getModuleIdentifier())
7411 return first.getPMTAddress() < second.getPMTAddress();
7413 return first.getModuleIdentifier() < second.getModuleIdentifier();
7426 inline bool operator==(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7428 return (first.getModuleIdentifier() == second.getModuleIdentifier() &&
7429 first.getPMTAddress() == second.getPMTAddress());
7440 inline bool operator!=(const JDAQPMTIdentifier& first,
7441 const JDAQPMTIdentifier& second)
7443 return !(first == second);
7448#ifndef __JDAQPREAMBLE__
7449#define __JDAQPREAMBLE__
7454#include "km3net-dataformat/online/JDAQRoot.hh"
7455#include "km3net-dataformat/online/JDAQDataTypes.hh"
7456#include "km3net-dataformat/online/JDAQAbstractPreamble.hh"
7463namespace KM3NETDAQ {
7473 class JDAQPreamble :
7474 public JDAQAbstractPreamble,
7485 JDAQPreamble(const JDAQType<T>& type) :
7486 JDAQAbstractPreamble(type)
7491 friend size_t getSizeof<JDAQPreamble>();
7492 friend JReader& operator>>(JReader&, JDAQPreamble&);
7493 friend JWriter& operator<<(JWriter&, const JDAQPreamble&);
7499 JDAQAbstractPreamble()
7506 virtual ~JDAQPreamble()
7523 static JDAQPreamble getDAQPreamble(const T& object)
7525 static JDAQPreamble preamble;
7527 preamble.length = getSizeof(object);
7528 preamble.type = KM3NETDAQ::getDataType<T>();
7541 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPreamble& preamble)
7543 using namespace std;
7545 out << setw(8) << preamble.length;
7547 out << setw(6) << preamble.type;
7553 ClassDef(JDAQPreamble,1);
7558#ifndef __JDAQPRINT__
7559#define __JDAQPRINT__
7565namespace KM3NETDAQ {
7572 inline bool& getDAQLongprint()
7585 inline void setDAQLongprint(const bool option)
7587 getDAQLongprint() = option;
7598#include "km3net-dataformat/online/JDAQException.hh"
7606 class JReader; // forward declaration for friend
7607 class JWriter; // forward declaration for friend
7610namespace KM3NETDAQ {
7620 inline size_t getSizeof();
7630using namespace KM3NETDAQ;
7633#ifndef __JDAQSUMMARYFRAME__
7634#define __JDAQSUMMARYFRAME__
7640#include "km3net-dataformat/online/JDAQException.hh"
7641#include "km3net-dataformat/online/JDAQ.hh"
7642#include "km3net-dataformat/online/JDAQClock.hh"
7643#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7644#include "km3net-dataformat/online/JDAQFrameStatus.hh"
7645#include "km3net-dataformat/online/JDAQSuperFrame.hh"
7652namespace KM3NETDAQ {
7658 class JDAQSummaryFrame;
7671 friend class JDAQSummaryFrame;
7674 typedef unsigned char JRate_t; // type of value to store rate
7682 static double getMinimalRate()
7693 static double getMaximalRate()
7706 static JRate_t getValue(const int numberOfHits, const double frameTime_ns)
7708 return getValue(numberOfHits * 1.0e9 / frameTime_ns);
7718 static JRate_t getValue(const double rate_Hz)
7720 if (rate_Hz <= getMinimalRate())
7722 else if (rate_Hz >= getMaximalRate())
7723 return std::numeric_limits<JRate_t>::max();
7725 return (JRate_t) (log(rate_Hz/getMinimalRate()) / getFactor() + 0.5);
7735 static double getRate(const JRate_t value)
7740 return get_rate(value);
7750 static double getWeight(const JRate_t value)
7755 W = get_rate(0.5) - getMinimalRate();
7756 else if (value == std::numeric_limits<JRate_t>::max())
7757 W = getMaximalRate() - get_rate(std::numeric_limits<JRate_t>::max() - 0.5);
7759 W = get_rate((double) value + 0.5) - get_rate((double) value - 0.5);
7772 return (int) std::numeric_limits<JRate_t>::max() + 1;
7782 static const double* getData(const double factor = 1.0)
7784 static std::vector<double> buffer;
7788 buffer.push_back(getMinimalRate() * factor);
7790 for (int i = 1; i != JDAQRate::getN(); ++i) {
7791 buffer.push_back(get_rate(i - 0.5) * factor);
7794 buffer.push_back(getMaximalRate() * factor);
7796 return buffer.data();
7813 JRate_t getValue() const
7825 void setValue(const int numberOfHits, const double frameTime_ns)
7827 value = getValue(numberOfHits, frameTime_ns);
7836 void setValue(const double rate_Hz)
7838 value = getValue(rate_Hz);
7847 double getRate() const
7849 return getRate(value);
7858 double getWeight() const
7860 return getWeight(value);
7870 JDAQRate& mul(const double factor)
7872 setValue(getRate() * factor);
7884 JDAQRate& div(const double factor)
7886 setValue(getRate() / factor);
7898 bool is_valid() const
7900 return (value != 0 && value != std::numeric_limits<JRate_t>::max());
7914 static const double getFactor()
7916 return std::log(getMaximalRate() / getMinimalRate()) / std::numeric_limits<JRate_t>::max();
7926 static double get_rate(const double value)
7928 return getMinimalRate() * std::exp(value * getFactor());
7940 inline bool operator==(const JDAQRate& first,
7941 const JDAQRate& second)
7943 return (first.getValue() == second.getValue());
7954 inline bool operator!=(const JDAQRate& first,
7955 const JDAQRate& second)
7957 return (first.getValue() != second.getValue());
7964 class JDAQSummaryFrame :
7965 public JDAQModuleIdentifier,
7966 public JDAQFrameStatus
7970 typedef JDAQRate::JRate_t JRate_t;
7972 friend size_t getSizeof<JDAQSummaryFrame>();
7973 friend JReader& operator>>(JReader&, JDAQSummaryFrame&);
7974 friend JWriter& operator<<(JWriter&, const JDAQSummaryFrame&);
7979 JDAQSummaryFrame() :
7980 JDAQModuleIdentifier(),
7990 JDAQSummaryFrame(const JDAQModuleIdentifier& id) :
7991 JDAQModuleIdentifier(id),
7992 JDAQFrameStatus(JDAQFrameStatus::getInstance())
8005 JDAQSummaryFrame(const JDAQSuperFrame& input) :
8006 JDAQModuleIdentifier(input.getModuleID()),
8007 JDAQFrameStatus (input.getDAQFrameStatus())
8009 using namespace std;
8011 typedef JDAQHit::JPMT_t JPMT_t;
8012 typedef JDAQHit::JTDC_t JTDC_t;
8014 vector<int> counter(numeric_limits<JPMT_t>::max(), 0);
8016 int n = input.size();
8018 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8019 ++counter[i->getPMT()];
8022 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8023 data[i].setValue(counter[i], getFrameTime());
8026 if (input.testHighRateVeto() || input.testFIFOStatus()) {
8028 // determine last hit for each PMT
8030 vector<JTDC_t> limit(numeric_limits<JPMT_t>::max(), 0);
8032 int n = input.size();
8034 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8035 if (i->getT() > limit[i->getPMT()]) {
8036 limit[i->getPMT()] = i->getT();
8040 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8041 if (input.testHighRateVeto(i) || input.testFIFOStatus(i)) {
8042 if (limit[i] != 0) {
8043 data[i].setValue((double) counter[i] * 1.0e9 / (double) limit[i]);
8057 const JDAQRate& operator[](const int tdc) const
8059 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8062 throw JDAQException("TDC out of range.");
8072 JDAQRate& operator[](const int tdc)
8074 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8077 throw JDAQException("TDC out of range.");
8087 JRate_t getValue(const int tdc) const
8089 return data[tdc].getValue();
8100 double getRate(const int tdc, const double factor = 1.0) const
8102 return data[tdc].getRate() * factor;
8113 double getWeight(const int tdc, const double factor = 1.0) const
8115 return data[tdc].getWeight() / factor;
8125 void setRate(const int tdc, const double rate_Hz)
8127 return data[tdc].setValue(rate_Hz);
8131 static int ROOT_IO_VERSION; //!< Streamer version of JDAQSummaryslice as obtained from ROOT file.
8134 ClassDefNV(JDAQSummaryFrame,2);
8139 JDAQRate data[NUMBER_OF_PMTS];
8150 inline bool operator==(const JDAQSummaryFrame& first,
8151 const JDAQSummaryFrame& second)
8153 if (first.getModuleIdentifier() == second.getModuleIdentifier() &&
8154 first.getDAQFrameStatus() == second.getDAQFrameStatus()) {
8156 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8157 if (first[i] != second[i]) {
8178 inline bool operator!=(const JDAQSummaryFrame& first,
8179 const JDAQSummaryFrame& second)
8181 return !(first == second);
8186#ifndef __JDAQSUMMARYSLICE__
8187#define __JDAQSUMMARYSLICE__
8193#include "km3net-dataformat/online/JDAQRoot.hh"
8194#include "km3net-dataformat/online/JDAQPreamble.hh"
8195#include "km3net-dataformat/online/JDAQSummaryFrame.hh"
8196#include "km3net-dataformat/online/JDAQSummarysliceHeader.hh"
8197#include "km3net-dataformat/online/JDAQTimeslice.hh"
8198#include "km3net-dataformat/online/JDAQClock.hh"
8205namespace KM3NETDAQ {
8210 class JDAQSummaryslice :
8211 public JDAQPreamble,
8212 public JDAQSummarysliceHeader,
8213 public std::vector<JDAQSummaryFrame>
8217 friend size_t getSizeof(const JDAQSummaryslice&);
8218 friend JReader& operator>>(JReader&, JDAQSummaryslice&);
8219 friend JWriter& operator<<(JWriter&, const JDAQSummaryslice&);
8224 JDAQSummaryslice() :
8225 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8226 JDAQSummarysliceHeader(),
8227 std::vector<JDAQSummaryFrame>()
8236 JDAQSummaryslice(const JDAQChronometer& chronometer) :
8237 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8238 JDAQSummarysliceHeader(chronometer),
8239 std::vector<JDAQSummaryFrame>()
8248 JDAQSummaryslice(const JDAQTimeslice& timeslice) :
8249 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8250 JDAQSummarysliceHeader(timeslice),
8251 std::vector<JDAQSummaryFrame>()
8253 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8254 this->push_back(JDAQSummaryFrame(*i));
8262 virtual ~JDAQSummaryslice()
8273 std::ostream& print(std::ostream& out, const bool lpr = false) const
8275 using namespace std;
8277 out << this->ClassName() << endl;
8278 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8279 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8281 for (JDAQSummaryslice::const_iterator module = this->begin(); module != this->end(); ++module) {
8283 out << ' ' << setw(10) << module->getModuleID();
8284 out << ' ' << setw(8) << setfill('0') << hex << module->getStatus() << dec << setfill(' ');
8285 out << '|' << setw(8) << setfill('0') << hex << module->getFIFOStatus() << dec << setfill(' ');
8286 out << ' ' << setw(2) << module->getUDPNumberOfReceivedPackets();
8287 out << ' ' << setw(2) << module->getUDPMaximalSequenceNumber();
8290 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
8291 out << ' ' << fixed << showpoint << setw(4) << setprecision(1) << module->getRate(pmt) * 1.0e-3;
8307 static void actionAtFileOpen(int version)
8309 JDAQSummaryFrame::ROOT_IO_VERSION = version;
8313 ClassDef(JDAQSummaryslice,6);
8324 inline std::ostream& operator<<(std::ostream& out, const KM3NETDAQ::JDAQSummaryslice& summary)
8326 return summary.print(out, getDAQLongprint());
8337 inline bool operator==(const JDAQSummaryslice& first,
8338 const JDAQSummaryslice& second)
8340 return (first.getDAQSummarysliceHeader() == second.getDAQSummarysliceHeader() &&
8341 static_cast<const std::vector<JDAQSummaryFrame>&>(first) == static_cast<const std::vector<JDAQSummaryFrame>&>(second));
8352 inline bool operator!=(const JDAQSummaryslice& first,
8353 const JDAQSummaryslice& second)
8355 return !(first == second);
8360#ifndef __JDAQSUMMARYSLICEHEADER__
8361#define __JDAQSUMMARYSLICEHEADER__
8363#include "km3net-dataformat/online/JDAQRoot.hh"
8364#include "km3net-dataformat/online/JDAQHeader.hh"
8371namespace KM3NETDAQ {
8376 class JDAQSummarysliceHeader :
8383 JDAQSummarysliceHeader() :
8393 JDAQSummarysliceHeader(const JDAQChronometer& chronometer) :
8394 JDAQHeader(chronometer)
8403 const JDAQSummarysliceHeader& getDAQSummarysliceHeader() const
8405 return static_cast<const JDAQSummarysliceHeader&>(*this);
8409 ClassDef(JDAQSummarysliceHeader,2);
8420 inline bool operator==(const JDAQSummarysliceHeader& first,
8421 const JDAQSummarysliceHeader& second)
8423 return (first.getDAQHeader() == second.getDAQHeader());
8434 inline bool operator!=(const JDAQSummarysliceHeader& first,
8435 const JDAQSummarysliceHeader& second)
8437 return !(first == second);
8442#ifndef __JDAQSUPERFRAME__
8443#define __JDAQSUPERFRAME__
8445#include "km3net-dataformat/online/JDAQ.hh"
8446#include "km3net-dataformat/online/JDAQPreamble.hh"
8447#include "km3net-dataformat/online/JDAQSuperFrameHeader.hh"
8448#include "km3net-dataformat/online/JDAQFrame.hh"
8449#include "km3net-dataformat/online/JDAQHit.hh"
8450#include "km3net-dataformat/online/JDAQRoot.hh"
8451#include "km3net-dataformat/online/JDAQException.hh"
8458namespace KM3NETDAQ {
8463 class JDAQSuperFrame :
8464 public JDAQPreamble,
8465 public JDAQSuperFrameHeader,
8470 typedef JDAQFrame::const_iterator const_iterator;
8471 typedef JDAQFrame::iterator iterator;
8472 typedef JDAQFrame::const_reverse_iterator const_reverse_iterator;
8473 typedef JDAQFrame::reverse_iterator reverse_iterator;
8475 friend size_t getSizeof(const JDAQSuperFrame&);
8476 friend JReader& operator>>(JReader&, JDAQSuperFrame&);
8477 friend JWriter& operator<<(JWriter&, const JDAQSuperFrame&);
8483 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8484 JDAQSuperFrameHeader(),
8494 JDAQSuperFrame(const JDAQSuperFrameHeader& header) :
8495 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8496 JDAQSuperFrameHeader(header),
8506 JDAQSuperFrame(const JDAQSuperFrame& super_frame) :
8507 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8508 JDAQSuperFrameHeader(super_frame.getDAQSuperFrameHeader()),
8509 JDAQFrame(super_frame)
8519 JDAQSuperFrame& add(const JDAQSuperFrame& super_frame)
8521 if (this->getModuleID() != super_frame.getModuleID())
8522 throw JDAQException("JDAQSuperFrame::add(): Different module identifiers.");
8524 return add(static_cast<const JDAQFrame&>(super_frame));
8534 JDAQSuperFrame& add(const JDAQHit& hit)
8536 return add(1, &hit);
8546 JDAQSuperFrame& add(const JDAQFrame& frame)
8548 return add(frame.numberOfHits, frame.buffer);
8559 JDAQSuperFrame& add(const int number_of_hits, const JDAQHit* data)
8561 JDAQFrame::add(number_of_hits, data);
8567 ClassDef(JDAQSuperFrame,3);
8578 inline bool operator==(const JDAQSuperFrame& first,
8579 const JDAQSuperFrame& second)
8581 if (first.getDAQSuperFrameHeader() == second.getDAQSuperFrameHeader() &&
8582 first.size() == second.size()) {
8584 for (JDAQSuperFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
8606 inline bool operator!=(const JDAQSuperFrame& first,
8607 const JDAQSuperFrame& second)
8609 return !(first == second);
8614#ifndef __JDAQSUPERFRAMEHEADER__
8615#define __JDAQSUPERFRAMEHEADER__
8617#include "km3net-dataformat/online/JDAQ.hh"
8618#include "km3net-dataformat/online/JDAQHeader.hh"
8619#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
8620#include "km3net-dataformat/online/JDAQFrameStatus.hh"
8621#include "km3net-dataformat/online/JDAQRoot.hh"
8627namespace KM3NETDAQ {
8632 class JDAQSuperFrameHeader :
8634 public JDAQModuleIdentifier,
8635 public JDAQFrameStatus
8639 friend size_t getSizeof<JDAQSuperFrameHeader>();
8640 friend JReader& operator>>(JReader&, JDAQSuperFrameHeader&);
8641 friend JWriter& operator<<(JWriter&, const JDAQSuperFrameHeader&);
8646 JDAQSuperFrameHeader() :
8648 JDAQModuleIdentifier(),
8659 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8661 JDAQHeader (chronometer),
8662 JDAQModuleIdentifier(id),
8663 JDAQFrameStatus (JDAQFrameStatus::getInstance())
8674 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8676 const JDAQFrameStatus& status) :
8677 JDAQHeader (chronometer),
8678 JDAQModuleIdentifier(id),
8679 JDAQFrameStatus (status)
8688 const JDAQSuperFrameHeader& getDAQSuperFrameHeader() const
8690 return static_cast<const JDAQSuperFrameHeader&>(*this);
8699 void setDAQSuperFrameHeader(const JDAQSuperFrameHeader& header)
8701 static_cast<JDAQSuperFrameHeader&>(*this) = header;
8705 ClassDef(JDAQSuperFrameHeader,2);
8716 inline bool operator==(const JDAQSuperFrameHeader& first,
8717 const JDAQSuperFrameHeader& second)
8719 return (first.getDAQHeader() == second.getDAQHeader() &&
8720 first.getModuleIdentifier() == second.getModuleIdentifier() &&
8721 first.getDAQFrameStatus() == second.getDAQFrameStatus());
8732 inline bool operator!=(const JDAQSuperFrameHeader& first,
8733 const JDAQSuperFrameHeader& second)
8735 return !(first == second);
8740#ifndef __JDAQTIMESLICE__
8741#define __JDAQTIMESLICE__
8748#include "km3net-dataformat/online/JDAQRoot.hh"
8749#include "km3net-dataformat/online/JDAQPreamble.hh"
8750#include "km3net-dataformat/online/JDAQTimesliceHeader.hh"
8751#include "km3net-dataformat/online/JDAQSuperFrame.hh"
8752#include "km3net-dataformat/online/JDAQException.hh"
8753#include "km3net-dataformat/online/JDAQPrint.hh"
8760namespace KM3NETDAQ {
8763 class JDAQSummaryslice;
8769 class JDAQTimeslice :
8770 public JDAQPreamble,
8771 public JDAQTimesliceHeader,
8772 public std::vector<JDAQSuperFrame>
8776 friend size_t getSizeof(const JDAQTimeslice&);
8777 friend JReader& operator>>(JReader&, JDAQTimeslice&);
8778 friend JWriter& operator<<(JWriter&, const JDAQTimeslice&);
8784 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8785 JDAQTimesliceHeader(),
8786 std::vector<JDAQSuperFrame>()
8795 JDAQTimeslice(const JDAQChronometer& chronometer) :
8796 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8797 JDAQTimesliceHeader(chronometer),
8798 std::vector<JDAQSuperFrame>()
8808 JDAQTimeslice(const JDAQEvent& event,
8809 const bool snapshot = true);
8819 JDAQTimeslice(const JDAQEvent& event,
8820 const JDAQSummaryslice& summary,
8821 const bool snapshot = true);
8827 virtual ~JDAQTimeslice()
8838 for (iterator i = this->begin(); i != this->end(); ++i) {
8842 std::vector<JDAQSuperFrame>::clear();
8852 JDAQTimeslice& operator=(const JDAQTimeslice& timeslice)
8856 setDAQChronometer(timeslice.getDAQChronometer());
8858 for (const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8872 JDAQTimeslice& add(const JDAQTimeslice& timeslice)
8874 using namespace std;
8876 map<JDAQModuleIdentifier, int> buffer;
8878 for (const_iterator i = this->begin(); i != this->end(); ++i) {
8879 buffer[i->getModuleIdentifier()] = distance(static_cast<const JDAQTimeslice&>(*this).begin(),i);
8882 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8884 map<JDAQModuleIdentifier, int>::const_iterator p = buffer.find(i->getModuleIdentifier());
8886 if (p != buffer.end()) {
8888 JDAQSuperFrame& frame = this->at(p->second);
8892 sort(frame.begin(), frame.end());
8896 this->push_back(*i);
8911 std::ostream& print(std::ostream& out, const bool lpr = false) const
8913 using namespace std;
8915 out << this->ClassName() << endl;
8916 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8917 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8919 for (JDAQTimeslice::const_iterator frame = this->begin(); frame != this->end(); ++frame) {
8921 out << ' ' << setw(10) << frame->getModuleID();
8922 out << ' ' << setw(6) << frame->getLength();
8923 out << ' ' << setw(6) << frame->getDataType();
8924 out << ' ' << setw(6) << frame->getTimesliceStart();
8925 out << ' ' << setw(8) << setfill('0') << hex << frame->getStatus() << dec << setfill(' ');
8926 out << '|' << setw(8) << setfill('0') << hex << frame->getFIFOStatus() << dec << setfill(' ');
8927 out << ' ' << setw(2) << frame->getUDPNumberOfReceivedPackets();
8928 out << '/' << setw(2) << frame->getUDPMaximalSequenceNumber();
8929 out << ' ' << setw(6) << frame->size();
8933 if (!frame->empty()) {
8935 out << ' ' << setw(10) << frame-> begin()->getT();
8937 out << ' ' << setw(10) << frame->rbegin()->getT();
8948 for (JDAQFrame::const_iterator hit = frame->begin(); hit != frame->end(); ++hit, ++n) {
8949 out << setw(2) << (int) hit->getPMT() << ' '
8950 << setw(8) << (int) hit->getT() << ' '
8951 << setw(3) << (int) hit->getToT() << (n%10 == 0 ? '\n' : ' ');
8962 ClassDef(JDAQTimeslice,4);
8973 inline bool operator==(const JDAQTimeslice& first,
8974 const JDAQTimeslice& second)
8976 return (first.getDAQTimesliceHeader() == second.getDAQTimesliceHeader() &&
8977 static_cast<const std::vector<JDAQSuperFrame>&>(first) == static_cast<const std::vector<JDAQSuperFrame>&>(second));
8988 inline bool operator!=(const JDAQTimeslice& first,
8989 const JDAQTimeslice& second)
8991 return !(first == second);
8998 struct JDAQTimesliceL0 : public JDAQTimeslice { ClassDef(JDAQTimesliceL0,1); };
9004 struct JDAQTimesliceL1 : public JDAQTimeslice { ClassDef(JDAQTimesliceL1,1); };
9010 struct JDAQTimesliceL2 : public JDAQTimeslice { ClassDef(JDAQTimesliceL2,1); };
9016 struct JDAQTimesliceSN : public JDAQTimeslice { ClassDef(JDAQTimesliceSN,1); };
9026 inline std::ostream& operator<<(std::ostream& out, const JDAQTimeslice& timeslice)
9028 return timeslice.print(out, getDAQLongprint());
9033#ifndef __JDAQTIMESLICEHEADER__
9034#define __JDAQTIMESLICEHEADER__
9036#include "km3net-dataformat/online/JDAQRoot.hh"
9037#include "km3net-dataformat/online/JDAQHeader.hh"
9043namespace KM3NETDAQ {
9048 class JDAQTimesliceHeader :
9055 JDAQTimesliceHeader() :
9065 JDAQTimesliceHeader(const JDAQChronometer& chronometer) :
9066 JDAQHeader(chronometer)
9075 const JDAQTimesliceHeader& getDAQTimesliceHeader() const
9077 return static_cast<const JDAQTimesliceHeader&>(*this);
9081 ClassDef(JDAQTimesliceHeader,2);
9092 inline bool operator==(const JDAQTimesliceHeader& first,
9093 const JDAQTimesliceHeader& second)
9095 return (first.getDAQHeader() == second.getDAQHeader());
9106 inline bool operator!=(const JDAQTimesliceHeader& first,
9107 const JDAQTimesliceHeader& second)
9109 return !(first == second);
9114#ifndef __JDAQTRIGGERCOUNTER__
9115#define __JDAQTRIGGERCOUNTER__
9117#include "km3net-dataformat/online/JDAQRoot.hh"
9124namespace KM3NETDAQ {
9130 typedef unsigned long long int JTriggerCounter_t;
9136 class JDAQTriggerCounter {
9143 JDAQTriggerCounter(const JTriggerCounter_t counter)
9145 this->trigger_counter = counter;
9151 friend size_t getSizeof<JDAQTriggerCounter>();
9152 friend JReader& operator>>(JReader&, JDAQTriggerCounter&);
9153 friend JWriter& operator<<(JWriter&, const JDAQTriggerCounter&);
9161 JDAQTriggerCounter()
9163 trigger_counter = getInstance().next();
9170 virtual ~JDAQTriggerCounter()
9179 static JDAQTriggerCounter& getInstance()
9181 static JDAQTriggerCounter counter(0);
9192 const JDAQTriggerCounter& getDAQTriggerCounter() const
9194 return static_cast<const JDAQTriggerCounter&>(*this);
9203 getInstance().trigger_counter = 0;
9212 JTriggerCounter_t getCounter() const
9214 return trigger_counter;
9223 void setCounter(const JTriggerCounter_t counter)
9225 this->trigger_counter = counter;
9234 JTriggerCounter_t next()
9236 return trigger_counter++;
9240 ClassDef(JDAQTriggerCounter,1);
9244 JTriggerCounter_t trigger_counter;
9255 inline bool operator==(const JDAQTriggerCounter& first,
9256 const JDAQTriggerCounter& second)
9258 return (first.getCounter() == second.getCounter());
9269 inline bool operator!=(const JDAQTriggerCounter& first,
9270 const JDAQTriggerCounter& second)
9272 return !(first == second);
9277#ifndef __JDAQTRIGGERMASK__
9278#define __JDAQTRIGGERMASK__
9284#include "km3net-dataformat/online/JDAQRoot.hh"
9291namespace KM3NETDAQ {
9297 typedef unsigned long long int JTriggerMask_t;
9303 static const unsigned int NUMBER_OF_TRIGGER_BITS = sizeof(JTriggerMask_t) * 8;
9312 inline JTriggerMask_t getTriggerMask(const unsigned int bit)
9314 if (bit < NUMBER_OF_TRIGGER_BITS)
9315 return JTriggerMask_t(1) << bit;
9324 class JDAQTriggerMask {
9327 friend size_t getSizeof<JDAQTriggerMask>();
9328 friend JReader& operator>>(JReader&, JDAQTriggerMask&);
9329 friend JWriter& operator<<(JWriter&, const JDAQTriggerMask&);
9344 JDAQTriggerMask(const JTriggerMask_t mask) :
9354 JDAQTriggerMask(const std::string& buffer) :
9355 trigger_mask(valueOf(buffer).getTriggerMask())
9362 virtual ~JDAQTriggerMask()
9371 const JDAQTriggerMask& getDAQTriggerMask() const
9373 return static_cast<const JDAQTriggerMask&>(*this);
9382 JTriggerMask_t getTriggerMask() const
9384 return trigger_mask;
9393 void setDAQTriggerMask(const JDAQTriggerMask& mask)
9395 trigger_mask = mask.trigger_mask;
9404 void setTriggerMask(const JTriggerMask_t mask)
9406 trigger_mask = mask;
9416 JDAQTriggerMask& addTriggerMask(const JDAQTriggerMask& mask)
9418 trigger_mask |= mask.trigger_mask;
9430 inline bool hasTriggerMask(const JDAQTriggerMask& mask) const
9432 return trigger_mask & mask.trigger_mask;
9442 inline JDAQTriggerMask& addTriggerBit(const unsigned int bit)
9444 trigger_mask |= KM3NETDAQ::getTriggerMask(bit);
9456 inline bool hasTriggerBit(const unsigned int bit) const
9458 return trigger_mask & KM3NETDAQ::getTriggerMask(bit);
9468 static JDAQTriggerMask valueOf(const std::string& buffer)
9470 JDAQTriggerMask trigger_mask;
9472 unsigned int bit = 0;
9474 for (std::string::const_reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9476 trigger_mask.addTriggerBit(bit);
9480 return trigger_mask;
9489 std::string toString() const
9491 std::string buffer(NUMBER_OF_TRIGGER_BITS, '0');
9493 unsigned int bit = 0;
9495 for (std::string::reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9496 if (hasTriggerBit(bit)) {
9512 friend inline std::istream& operator>>(std::istream& in, JDAQTriggerMask& mask)
9517 mask= JDAQTriggerMask::valueOf(buffer);
9531 friend inline std::ostream& operator<<(std::ostream& out, const JDAQTriggerMask& mask)
9533 out << mask.toString();
9539 ClassDef(JDAQTriggerMask,1);
9543 JTriggerMask_t trigger_mask;
9547 static const JDAQTriggerMask TRIGGER_MASK_ON = JDAQTriggerMask(~JTriggerMask_t(0)); //!< Trigger mask on;
9548 static const JDAQTriggerMask TRIGGER_MASK_OFF = JDAQTriggerMask( JTriggerMask_t(0)); //!< Trigger mask off;
9558 inline bool operator==(const JDAQTriggerMask& first,
9559 const JDAQTriggerMask& second)
9561 return (first.getTriggerMask() == second.getTriggerMask());
9572 inline bool operator!=(const JDAQTriggerMask& first,
9573 const JDAQTriggerMask& second)
9575 return !(first == second);
9580#ifndef __JDAQTRIGGEREDHIT__
9581#define __JDAQTRIGGEREDHIT__
9583#include "km3net-dataformat/online/JDAQRoot.hh"
9584#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
9585#include "km3net-dataformat/online/JDAQHit.hh"
9586#include "km3net-dataformat/online/JDAQKeyHit.hh"
9587#include "km3net-dataformat/online/JDAQTriggerMask.hh"
9594namespace KM3NETDAQ {
9599 class JDAQTriggeredHit :
9601 public JDAQTriggerMask
9605 friend size_t getSizeof<JDAQTriggeredHit>();
9606 friend JReader& operator>>(JReader&, JDAQTriggeredHit&);
9607 friend JWriter& operator<<(JWriter&, const JDAQTriggeredHit&);
9612 JDAQTriggeredHit() :
9625 JDAQTriggeredHit(const JDAQModuleIdentifier& ID,
9627 const JDAQTriggerMask& mask) :
9629 JDAQTriggerMask(mask)
9636 virtual ~JDAQTriggeredHit()
9640 ClassDef(JDAQTriggeredHit,2);
9651 inline bool operator==(const JDAQTriggeredHit& first,
9652 const JDAQTriggeredHit& second)
9654 return (static_cast<const JDAQKeyHit&> (first) == static_cast<const JDAQKeyHit&> (second) &&
9655 static_cast<const JDAQTriggerMask&>(first) == static_cast<const JDAQTriggerMask&>(second));
9666 inline bool operator!=(const JDAQTriggeredHit& first,
9667 const JDAQTriggeredHit& second)
9669 return !(first == second);
9674#ifndef __JDAQUTCEXTENDED__
9675#define __JDAQUTCEXTENDED__
9687#include "km3net-dataformat/online/JDAQRoot.hh"
9690namespace KM3NETDAQ {
9695 class JDAQUTCExtended
9699 friend size_t getSizeof<JDAQUTCExtended>();
9700 friend JReader& operator>>(JReader&, JDAQUTCExtended&);
9701 friend JWriter& operator<<(JWriter&, const JDAQUTCExtended&);
9709 UTC_16nanosecondcycles(0)
9719 JDAQUTCExtended(const uint32_t seconds,
9720 const uint32_t cycles):
9721 UTC_seconds(seconds),
9722 UTC_16nanosecondcycles(cycles)
9731 JDAQUTCExtended(const double nanoseconds)
9733 setTimeNanoSecond(nanoseconds);
9740 virtual ~JDAQUTCExtended()
9749 bool getWRStatus() const
9751 return (UTC_seconds & ~getMask()) != 0;
9760 uint32_t getUTCseconds() const
9762 return (UTC_seconds & getMask());
9771 uint32_t getUTC16nanosecondcycles() const
9773 return UTC_16nanosecondcycles;
9782 double getTimeNanoSecond() const
9784 return getUTCseconds() * 1.0e9 + getUTC16nanosecondcycles() * getTick();
9793 void setTimeNanoSecond(const double utc_ns)
9795 UTC_seconds = (uint32_t) ( utc_ns * 1.0e-9);
9796 UTC_16nanosecondcycles = (uint32_t) ((utc_ns - UTC_seconds*1.0e9) / getTick());
9805 void addTimeNanoSecond(const double t_ns)
9807 const double x_ns = (double) getUTC16nanosecondcycles() * (double) getTick() + t_ns;
9808 const uint32_t t_s = (uint32_t) (x_ns * 1.0e-9);
9811 UTC_16nanosecondcycles = (uint32_t) ((x_ns - t_s*1.0e9) / getTick());
9820 static JDAQUTCExtended min()
9822 return JDAQUTCExtended(0,0);
9831 static JDAQUTCExtended max()
9833 return JDAQUTCExtended(std::numeric_limits<uint32_t>::max(),
9834 std::numeric_limits<uint32_t>::max());
9843 static uint32_t getMask()
9854 static double getTick()
9865 static const JDAQUTCExtended& getInstance()
9867 static JDAQUTCExtended utc(1600000000, 0);
9880 friend inline std::istream& operator>>(std::istream& in, JDAQUTCExtended& utc)
9882 in >> utc.UTC_seconds;
9884 in >> utc.UTC_16nanosecondcycles;
9897 friend inline std::ostream& operator<<(std::ostream& out, const JDAQUTCExtended& utc)
9899 using namespace std;
9901 const char c = out.fill();
9903 out << setw(10) << utc.getUTCseconds();
9905 out << setw(10) << setfill('0') << utc.getUTC16nanosecondcycles() << setfill(c);
9911 ClassDef(JDAQUTCExtended,1);
9915 uint32_t UTC_seconds;
9916 uint32_t UTC_16nanosecondcycles;
9927 inline bool operator<(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9929 if (first.getUTCseconds() == second.getUTCseconds())
9930 return first.getUTC16nanosecondcycles() < second.getUTC16nanosecondcycles();
9932 return first.getUTCseconds() < second.getUTCseconds();
9943 inline bool operator>(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9945 return (second < first);
9956 inline bool operator<=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9958 return !(second < first);
9969 inline bool operator>=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9971 return !(first < second);
9982 inline bool operator==(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9984 return (first.getUTCseconds() == second.getUTCseconds() &&
9985 first.getUTC16nanosecondcycles() == second.getUTC16nanosecondcycles());
9996 inline bool operator!=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9998 return !(first == second);
10009 inline double getTimeDifference(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10011 const double utc_s = ((double) second.getUTCseconds() - (double) first.getUTCseconds());
10012 const double utc_ns = ((double) second.getUTC16nanosecondcycles() - (double) first.getUTC16nanosecondcycles()) * JDAQUTCExtended::getTick();
10014 return utc_s + utc_ns*1.0e-9;
10019#ifndef AAOBJECTINCLUDED
10020#define AAOBJECTINCLUDED
10022#include "TObject.h"
10027#include <algorithm>
10029#include "km3net-dataformat/offline/Exception.hh"
10036struct AAObject : public TObject
10038 std::vector<double> usr; ///< user data
10039 std::vector<std::string> usr_names; ///< user keys
10047 int idx( const std::string& key ) const
10049 auto i = std::find (usr_names.begin(), usr_names.end(), key );
10050 if (i == usr_names.end()) return -1;
10051 return i - usr_names.begin();
10060 bool haveusr( const std::string& key ) const
10062 return idx( key ) >= 0;
10072 int idxusr_checked( const std::string& key ) const
10074 int r = idx( key );
10077 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10090 double getusr(const std::string& key) const
10092 const int i = idx( key );
10096 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10099 if ( unsigned(i) >= usr.size() )
10101 THROW(Exception, "Warning: inconsistent user data " << i << " >= " << usr.size());
10113 void setusr(const std::string & key, double value )
10115 int i = idx( key );
10118 if ( usr.size() < usr_names.size() )
10120 // this should not happen, but let's just add empty data
10121 usr.resize( usr_names.size() );
10125 // this is possible, add empty ("") names
10126 usr_names.resize( usr.size() );
10129 usr_names.push_back( key );
10130 usr.push_back( value );
10144 bool delusr( const std::string& key )
10146 int i = idx( key );
10147 if ( i < 0 ) return false;
10149 usr.erase ( usr.begin() + i );
10150 usr_names.erase( usr_names.begin() + i );
10160 usr_names.resize(0);
10168 void printusr(std::ostream& out = std::cout )
10170 unsigned n = std::max( usr.size(), usr_names.size() );
10172 for (unsigned i = 0; i < n ; i++)
10174 std::string name = "(unnamed)";
10175 if ( i < usr_names.size() && usr_names[i] != "" ) name = usr_names[i];
10176 out << i << " \t " << name << " : \t ";
10177 if ( i < usr.size() ) out << usr[i] << std::endl;
10178 else out << "(none)" << std::endl;
10185 AAObject() : any(NULL) {}
10189 TObject* any; ///< Pointer to "any" user data.
10191 ClassDef(AAObject, 6)
10195#ifndef EVT_HH_INCLUDED
10196#define EVT_HH_INCLUDED
10198#include "km3net-dataformat/offline/AAObject.hh"
10199#include "km3net-dataformat/offline/Hit.hh"
10200#include "km3net-dataformat/offline/Trk.hh"
10201#include "km3net-dataformat/offline/Hit.hh"
10202#include "km3net-dataformat/offline/Exception.hh"
10204#include "TTimeStamp.h"
10206#include <uuid/uuid.h>
10214struct Evt: public AAObject
10216 int id; ///< offline event identifier
10217 int det_id; ///< detector identifier from DAQ
10218 int mc_id; ///< identifier of the MC event (as found in ascii or antcc file).
10220 int run_id; ///< DAQ run identifier
10221 int mc_run_id; ///< MC run identifier
10223 int frame_index; ///< from the raw data
10224 ULong64_t trigger_mask; ///< trigger mask from raw data (i.e. the trigger bits)
10225 ULong64_t trigger_counter; ///< trigger counter
10226 unsigned int overlays; ///< number of overlaying triggered events
10227 TTimeStamp t; ///< UTC time of the timeslice, or the event_time for MC. (default: 01 Jan 1970 00:00:00)
10229 uuid_t header_uuid; ///< UUID of header containing the event-weight information
10232 std::vector<Hit> hits; ///< list of hits
10233 std::vector<Trk> trks; ///< list of reconstructed tracks (can be several because of prefits,showers, etc).
10236 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)
10237 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)
10238 std::vector<double> w3list; ///< MC: atmospheric flux information
10240 TTimeStamp mc_event_time; ///< MC: true generation time (UTC) of the event, (default: 01 Jan 1970 00:00:00)
10241 double mc_t; ///< MC: time where the mc-event was put in the timeslice, since start of run (offset+frameidx*timeslice_duration)
10242 std::vector<Hit> mc_hits; ///< MC: list of MC truth hits
10243 std::vector<Trk> mc_trks; ///< MC: list of MC truth tracks
10245 // --- place to store user info ---
10246 TString comment; ///< user can use this as he/she likes
10247 int index; ///< user can use this as he/she likes
10248 int flags; ///< user can use this as he/she likes
10255 id(0), det_id(0), mc_id(0), run_id(0), mc_run_id(0), frame_index(0),
10256 trigger_mask(0), trigger_counter(0),
10257 overlays(0), t(0), mc_event_time(0), mc_t(0), index(0), flags(0)
10259 uuid_clear(this->header_uuid);
10268 void print(std::ostream& out = std::cout) const
10270 out << "Evt: id=" << id <<
10271 " run_id=" << run_id <<
10272 " #hits=" << hits.size() <<
10273 " #mc_hits=" << mc_hits.size() <<
10274 " #trks=" << trks.size() <<
10275 " #mc_trks=" << mc_trks.size() << std::endl;
10295 for (auto& t : trks ) t.hit_ids.clear();
10296 for (auto& t : mc_trks ) t.hit_ids.clear();
10308 std::vector<const Trk*> primary_trks() const
10310 std::vector<const Trk*> r;
10311 for (auto& t : mc_trks )
10313 if ( t.is_primary() ) r.push_back(&t);
10325 std::vector<Trk*> primary_trks()
10327 std::vector<Trk*> r;
10328 for (auto& t : mc_trks )
10330 if ( t.is_primary() ) r.push_back(&t);
10341 const Trk* neutrino() const
10343 for (auto& t : mc_trks )
10345 if ( t.is_neutrino() ) return &t;
10358 // see Effective C++, Scott Meyers, ISBN-13: 9780321334879.
10359 return const_cast<Trk *>(static_cast<const Evt &>(*this).neutrino() );
10370 const Trk* primary_neutrino() const
10372 for ( auto& t : mc_trks )
10374 if ( t.is_neutrino() and t.is_primary() ) return &t;
10386 Trk* primary_neutrino()
10388 return const_cast<Trk *>(static_cast<const Evt &>(*this).primary_neutrino() );
10400 const Trk* leading_lepton() const
10402 const Trk* nu = primary_neutrino();
10403 if (!nu) return nullptr;
10405 for (auto& t : mc_trks )
10407 if ( t.is_lepton() &&
10408 t.mother_id == nu->id &&
10409 !t.is_orphan() ) return &t;
10422 Trk* leading_lepton()
10424 return const_cast<Trk *>(static_cast<const Evt &>(*this).leading_lepton() );
10434 const Trk * get_parent_of( const Trk & child ) const
10436 for (auto& t : mc_trks )
10438 if (child.mother_id == t.id ) return &t;
10452 Trk* get_parent_of( const Trk & child )
10454 return const_cast<Trk *>(static_cast<const Evt &>(*this).get_parent_of(child) );
10463 static void actionAtFileOpen(int version)
10465 ROOT_IO_VERSION = version;
10468 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
10474#ifndef EXCEPTION_HH_INCLUDED
10475#define EXCEPTION_HH_INCLUDED
10477#include <exception>
10486class Exception : public std::exception {
10493 Exception(const std::string& error) :
10502 ~Exception() throw()
10511 virtual const char* what() const throw()
10513 return buffer.c_str();
10523 friend inline std::ostream& operator<<(std::ostream& out, const Exception& exception)
10525 return out << exception.what();
10536 static inline std::ostream& getOstream()
10538 static std::ostringstream buffer;
10546 const std::string buffer;
10557#define THROW(Exception_t, A) do { throw Exception_t(static_cast<std::ostringstream&>(Exception::getOstream() << __FILE__ << ':' << __LINE__ << std::endl << A).str()); } while(0)
10561#ifndef HEAD_HH_INCLUDED
10562#define HEAD_HH_INCLUDED
10564#include "km3net-dataformat/offline/Vec.hh"
10565#include "km3net-dataformat/offline/Exception.hh"
10567#include "TObject.h"
10573#include <algorithm>
10582static inline void trimstring(std::string &s)
10585 s.erase( s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
10586 return !std::isspace(ch);
10590 s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
10591 return !std::isspace(ch);
10592 }).base(), s.end());
10603inline std::vector<std::string> splitstring(const std::string& str, char delim = ' ')
10605 using namespace std;
10609 stringstream ss(str);
10611 while (getline(ss, token, delim))
10614 if (token != "") r.push_back(token);
10624struct Head : public TObject, std::map<std::string, std::string>
10627 static constexpr const char* const UUID = "UUID";
10637 bool have_line (std::string key ) const
10639 return count( key ) != 0;
10649 const std::string& get_line( std::string key ) const
10651 return this->at(key);
10661 std::string& get_line( std::string key )
10663 return this->at(key);
10675 std::vector< std::string> matching_keys( const std::string& tag ) const
10677 std::vector< std::string> r;
10679 auto match = [&] (const std::string & key) {
10681 if (key == tag) return true;
10683 if ( key.find( tag ) != 0 ) return false;
10685 // what is left should be of the form _d(ddd)
10686 std::string left = key.substr( tag.length(), key.length() );
10687 if (left.length() < 2 || left[0] != '_' ) return false ;
10688 for ( unsigned i = 1; i < left.length(); i++ )
10690 if (!std::isdigit( left[i] )) return false ;
10695 for ( auto& p : *this )
10697 if ( match( p.first ) ) r.push_back( p.first );
10714 std::vector< std::string > get_lines( const std::string& tag ) const
10716 std::vector< std::string > r;
10718 for ( auto& key : matching_keys( tag ) ) {
10719 r.push_back( get_line( key ) );
10736 std::string set_line( std::string tag, std::string line , bool ensure_unique = true )
10738 std::string k = tag;
10741 for (int i = 1; find(k) != end() ; i++)
10743 k = tag + "_" + std::to_string(i);
10746 std::map<std::string, std::string>::operator[]( k ) = line;
10758 std::string get_field( std::string key, int idx ) const
10760 using namespace std;
10762 vector<string> v = splitstring( get_line(key) );
10764 if ( idx < 0 || idx >= int ( v.size() ) )
10766 THROW(Exception, "Cannot find word number " << idx << " in line " << get_line(key) << " for key: " << key);
10780 int get_index_of_field(std::string key, std::string field) const
10782 auto& d = _hdr_dict();
10783 if ( d.count(key) == 0 ) return -1;
10784 auto v = d.at(key);
10785 auto i = std::find (v.begin(), v.end(), field );
10786 if (i == v.end()) return -1;
10787 return i - v.begin();
10800 std::string get_field( std::string key, std::string field ) const
10802 int idx = get_index_of_field(key, field);
10806 THROW(Exception, "Failed to find" << key << " " << field);
10809 return get_field( key, idx );
10823 void set_field( std::string key, std::string field, std::string value )
10825 using namespace std;
10827 if ( field == "" ) get_line( key ) = value;
10829 int idx = get_index_of_field( key, field );
10833 THROW(Exception, "GFailed to find field in header line: " << key << " " << field);
10836 vector<string> vals = splitstring( get_line( key ) );
10838 // if the fields before do not exist, add padding
10839 while ( int( vals.size() ) <= idx ) vals.push_back("0");
10844 for (unsigned i = 0; i < vals.size() ; i++ )
10847 if ( i != vals.size() - 1) ss << " ";
10849 set_line( key, ss.str() );
10858 void print ( std::ostream& out = std::cout ) const
10860 if (count("start_run")) out << "start_run: " << at("start_run") << std::endl;
10862 for ( auto& p : *this )
10864 if ( p.first == "start_run" || p.first == "end_event" ) continue;
10865 out << p.first << ": " << p.second << std::endl ;
10867 out << "end_event:" << std::endl;
10875 static const std::map<std::string, std::vector<std::string> >& _hdr_dict()
10877 using namespace std;
10879 // map with, for each tag (key), a vector of field-names
10881 static map<string, vector<string> > r;
10882 if ( r.size() > 0 ) return r;
10886 "cut_primary cut_seamuon cut_in cut_nu:Emin Emax cosTmin cosTmax\n"
10887 "generator physics simul:program version date time\n"
10888 "seed:program level iseed\n"
10889 "PM1_type_area:type area TTS\n"
10891 "model:interaction muon scattering numberOfEnergyBins\n"
10892 "can:zmin zmax r\n"
10893 "genvol:zmin zmax r volume numberOfEvents\n"
10894 "merge:time gain\n"
10895 "coord_origin:x y z\n"
10896 "translate:x y z\n"
10897 "genhencut:gDir Emin\n"
10898 "k40:rate time\n" // note lower-case k
10899 "K40:livetime\n" // note capital K
10900 "norma:primaryFlux numberOfPrimaries\n"
10901 "livetime:numberOfSeconds errorOfSeconds\n"
10902 "flux:type key file_1 file_2\n"
10904 "fixedcan:xcenter ycenter zmin zmax radius\n"
10905 "start_run:run_id";
10907 for ( auto line : splitstring(desc, '\n') )
10909 auto v = splitstring( line, ':');
10911 vector< string > fields = splitstring( v[1] );
10912 for ( auto key : splitstring( v[0] ) )
10926 double ngen() const
10928 return stod ( get_field("genvol", "numberOfEvents") );
10936 double daq_livetime() const
10938 return stod ( get_field("DAQ", "livetime") );
10947 double mc_livetime() const
10949 return stod ( get_field("livetime", "numberOfSeconds") );
10957 Vec coord_origin() const
10959 return Vec( stod( get_field("coord_origin", "x") ),
10960 stod( get_field("coord_origin", "y") ),
10961 stod( get_field("coord_origin", "z") ));
10969 Vec translate() const
10971 return Vec( stod( get_field("translate", "x") ),
10972 stod( get_field("translate", "y") ),
10973 stod( get_field("translate", "z") ));
10983 static void actionAtFileOpen(int version)
10985 ROOT_IO_VERSION = version;
10988 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
10990 ClassDef(Head, 2 );
11001inline std::ostream& operator<<(std::ostream& out, const Head& h)
11009#ifndef HIT_HH_INCLUDED
11010#define HIT_HH_INCLUDED
11012#include "TObject.h"
11013#include "TString.h"
11014#include "km3net-dataformat/offline/Vec.hh"
11021 // straight from the data
11022 int dom_id; ///< module identifier from the data (unique in the detector).
11023 unsigned int channel_id; ///< PMT channel id {0,1, .., 30} local to moduke
11024 unsigned int tdc; ///< hit tdc (=time in ns)
11025 unsigned int tot; ///< tot value as stored in raw data (int for pyroot)
11026 ULong64_t trig; ///< non-zero if the hit is a trigger hit.
11028 int pmt_id; ///< global PMT identifier as found in evt files
11030 // values after calibration
11031 double t; ///< hit time (from tdc+calibration or MC truth)
11032 double a; ///< hit amplitude (in p.e.)
11033 Vec pos; ///< hit position
11034 Vec dir; ///< hit direction; i.e. direction of the PMT
11036 int type; ///< particle type or parametrisation used for hit (mc only)
11037 int origin; ///< track id of the track that created this hit (mc only)
11039 unsigned pattern_flags; ///< some number that you can use to flag the hit
11044 Hit(): id(0), dom_id(0), channel_id(0), tdc(0), tot(0), trig(0), pmt_id(0),
11045 t(0), a(0), type(0), origin(0), pattern_flags(0) {}
11046 //virtual ~Hit() {}
11054 void read(const Hit& h) { *this = h;}
11061 void write(Hit& h) const { h = *this;}
11068 void print( std::ostream& out = std::cout ) const
11070 out << "Hit: id=" << id << " dom=" << dom_id << " channel=" << channel_id;
11071 out << " pmt=" << pmt_id << " t=" << t << " tot=" << tot;
11072 out << " pos="; pos.print(out);
11073 out << " dir="; dir.print(out);
11076 ClassDefNV(Hit, 106) // reserve <100 for antcc class of the same name
11080#ifndef MULTIHEAD_HH_INCLUDED
11081#define MULTIHEAD_HH_INCLUDED
11084#include <uuid/uuid.h>
11086#include "km3net-dataformat/offline/Evt.hh"
11087#include "km3net-dataformat/offline/Head.hh"
11089#include "TObject.h"
11097 public std::vector<Head>,
11104 std::vector<Head>(),
11112 virtual ~MultiHead()
11126 const_iterator find(const uuid_t& uuid,
11127 const bool useCache = false) const
11129 using namespace std;
11131 static struct Cache
11133 Cache() { uuid_clear(this->uuid); }
11141 for (cache.it = this->cbegin(); cache.it != this->cend(); ++cache.it) {
11143 const Head& head = *cache.it;
11144 string uuid_str = head.at(Head::tags::UUID);
11146 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11148 uuid_parse(uuid_str.c_str(), cache.uuid);
11150 if (uuid_compare(uuid, cache.uuid) == 0) {
11155 return this->end();
11159 if (uuid_compare(uuid, cache.uuid) == 0) {
11162 return find(uuid, false);
11177 const_iterator find(const Evt& event,
11178 const bool useCache = false) const
11180 return find(event.header_uuid, useCache);
11190 bool insert(const Head& header)
11192 using namespace std;
11194 string uuid_str = header.at(Head::tags::UUID);
11195 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11198 uuid_parse(uuid_str.c_str(), uuid);
11200 if (uuid_is_null(uuid) == 0 && find(uuid) == this->cend()) {
11202 this->push_back(header);
11217 size_t join(const MultiHead& multiHead)
11219 using namespace std;
11223 for (const_iterator i = multiHead.cbegin(); i != multiHead.cend(); ++i) {
11224 n += (size_t) this->insert(*i);
11236 static void actionAtFileOpen(int version)
11238 ROOT_IO_VERSION = version;
11242 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
11244 ClassDef(MultiHead, 1);
11248#ifndef TRK_HH_INCLUDED
11249#define TRK_HH_INCLUDED
11252#include "TDatabasePDG.h"
11253#include "TPDGCode.h"
11254#include "km3net-dataformat/offline/AAObject.hh"
11255#include "km3net-dataformat/offline/Vec.hh"
11256#include "km3net-dataformat/definitions/trkmembers.hh"
11261struct Trk: public AAObject
11263 int id; ///< track identifier
11264 Vec pos; ///< postion [m] of the track at time t
11265 Vec dir; ///< track direction
11266 double t; ///< track time [ns] (when the particle is at pos )
11267 double E; ///< Energy [GeV] (either MC truth or reconstructed)
11269 double len; ///< length, if applicable [m]
11270 double lik; ///< likelihood or lambda value (for aafit, lambda)
11271 int type; ///< MC: particle type in PDG encoding
11272 int rec_type; ///< identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction.csv
11273 std::vector<int> rec_stages; ///< list of identifyers of succesfull fitting stages resulting in this track
11275 int status; ///< MC status code, see km3net-dataformat/definitions/trkmembers.csv for values
11276 int mother_id; ///< MC id of the parent particle
11277 int counter; ///< used by CORSIKA7 MC generation to store interaction counters, see <a href="https://web.iap.kit.edu/corsika/usersguide/usersguide.pdf">CORSIKA Userguide</a>
11279 std::vector<double> fitinf; ///< place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv
11280 std::vector<int> hit_ids; ///< list of associated hit-ids (corresponds to Hit::id).
11281 std::vector<double> error_matrix; ///< (NxN) error covariance matrix for fit parameters (stored as linear vector)
11282 std::string comment; ///< use as you like
11287 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) {}
11297 void read(const Trk& t) { *this = t;}
11304 void write(Trk& t) const { t = *this; }
11312 std::string name() const
11314 TParticlePDG* p = TDatabasePDG::Instance()->GetParticle( type );
11315 if (!p) return "unnamed state ("+ std::to_string(type)+")";
11316 return p->GetName();
11324 bool is_primary() const
11326 return status==TRK_ST_PRIMARYNEUTRINO || status==TRK_ST_PRIMARYCOSMIC;
11334 bool is_finalstate() const
11336 return status==TRK_ST_FINALSTATE;
11346 bool is_neutrino() const
11348 return type == kNuE || type == kNuEBar || type == kNuMu || type == kNuMuBar || type == kNuTau || type == kNuTauBar;
11358 return type == kElectron || type == kPositron;
11368 bool is_muon() const
11370 return type == kMuonMinus || type == kMuonPlus;
11380 bool is_tau() const
11382 return type == kTauMinus || type == kTauPlus;
11392 bool is_lepton() const
11394 return is_e() || is_muon() || is_tau();
11402 bool is_orphan() const
11404 return mother_id == TRK_MOTHER_NONE;
11413 std::vector< Trk* > get_daughters ( std::vector<Trk>& mctrks )
11415 std::vector<Trk*> r;
11417 for( auto& t : mctrks )
11419 if ( t.mother_id == id ) r.push_back( &t );
11429 void print(std::ostream& out=std::cout) const
11431 out << "Trk: id=" << id << " pos="; pos.print(out);
11432 out << " dir="; dir.print(out);
11433 out << " t=" << t << " E=" << E << " pdg-type=" << type;
11440#ifndef VEC_HH_INCLUDED
11441#define VEC_HH_INCLUDED
11462 Vec(double x_, double y_, double z_) : x(x_), y(y_), z(z_) {}
11467 Vec():x(0),y(0),z(0) {}
11475 double dot(const Vec& v) const { return v.x*x + v.y*y+ v.z*z;}
11483 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);}
11491 Vec& operator+=(const Vec& v) { x+=v.x; y+=v.y; z+=v.z; return *this;}
11499 Vec& operator-=(const Vec& v) { x-=v.x; y-=v.y; z-=v.z; return *this;}
11507 Vec& operator*=(double d) { x*=d; y*=d; z*=d; return *this;}
11515 Vec& operator/=(double d) { return operator*=( 1.0 / d ); }
11522 Vec operator-() const { return Vec(-x,-y,-z); }
11530 bool operator==( const Vec& v ) const { return x==v.x && y==v.y && z==v.z ; }
11538 bool operator!=( const Vec& v ) const { return x!=v.x || y!=v.y || z!=v.z ; }
11548 Vec& set(double xx, double yy, double zz) { x=xx; y=yy; z=zz; return *this;}
11557 Vec& set_angles(double theta, double phi)
11559 x = sin ( theta ) * cos( phi );
11560 y = sin ( theta ) * sin( phi );
11570 double phi() const { return atan2( y,x ); }
11577 double theta() const { return acos(z); }
11584 double len() const { double l = dot(*this); return (l > 0)? sqrt(l) : 0; }
11591 double lenxy() const { const double r2 = x*x + y*y; return (r2>0) ? sqrt(r2) :0; }
11598 Vec& normalize() { return operator/=( len() ); }
11605 void print( std::ostream& out = std::cout ) const
11607 out << "Vec:" << x << " " << y << " " << z;
11615 const char* __repr__() const
11617 static std::string buffer;
11619 std::ostringstream s;
11625 return buffer.c_str();
11634 Vec __add__(const Vec& v) const { Vec r=*this; return r+=v; }
11642 Vec __sub__(const Vec& v) const { Vec r=*this; return r-=v; }
11650 Vec __mul__(double d ) const { Vec r=*this; return r*=d; }
11658 Vec __rmul__(double d ) const { return __mul__(d); }
11666 Vec __div__(double d ) const { Vec r=*this; return r/=d; }
11674 Vec& rotate_z(double ang)
11676 const Vec o = *this;
11677 x = o.x *cos(ang) - o.y * sin(ang);
11678 y = o.x *sin(ang) + o.y * cos(ang);
11689 Vec& rotate_x(double ang)
11691 const Vec o = *this;
11693 y = o.y *cos(ang) + o.z * -sin(ang);
11694 z = o.y *sin(ang) + o.z * cos(ang);
11704 Vec& rotate_y(double ang)
11706 const Vec o = *this;
11707 x = o.x *cos(ang) + o.z * sin(ang);
11709 z = -o.x *sin(ang) + o.z * cos(ang);
11723inline std::ostream& operator<<( std::ostream& out , const Vec& v )
11725 out << v.x << " " << v.y << " " << v.z << " ";
11736inline std::istream& operator>>(std::istream& in, Vec& v)
11738 in >> v.x >> v.y >> v.z ; return in;
11748inline double cos_angle_between( const Vec& a, const Vec& b)
11750 const double n = a.len() * b.len();
11751 return a.dot(b) / n;
11761inline double angle_between( const Vec& a, const Vec& b )
11763 double c = cos_angle_between( a, b );
11764 if ( c < -1 ) return M_PI;
11765 if ( c > 1 ) return 0;
11776inline Vec operator+(const Vec& a, const Vec& b) { Vec r(a); return r+=b;}
11785inline Vec operator-(const Vec& a, const Vec& b) { Vec r(a); return r-=b;}
11794inline Vec operator*(double a, const Vec& v) { return Vec(a*v.x,a*v.y,a*v.z);}
11803inline Vec operator*(const Vec& v, double a) { return Vec(a*v.x,a*v.y,a*v.z);}
11812inline Vec operator/(const Vec& v, double a) { return Vec(v.x/a,v.y/a,v.z/a);}
11815#ifndef IO_ASCII_INCLUDED
11816#define IO_ASCII_INCLUDED
11823#include "km3net-dataformat/offline/Evt.hh"
11824#include "km3net-dataformat/offline/Hit.hh"
11825#include "km3net-dataformat/offline/Trk.hh"
11826#include "km3net-dataformat/offline/Head.hh"
11827#include "km3net-dataformat/offline/Exception.hh"
11828#include "km3net-dataformat/definitions/w2list_gseagen.hh"
11829#include "km3net-dataformat/definitions/trkmembers.hh"
11831#include "TDatabasePDG.h"
11835const char* const auto_t = "auto";
11836const char* const start_run_t = "start_run:";
11837const char* const start_event_t = "start_event:";
11838const char* const hit_t = "hit:";
11839const char* const hit_raw_t = "hit_raw:";
11840const char* const track_in_t = "track_in:";
11841const char* const track_t = "track:";
11842const char* const track_fit_t = "track_fit:";
11843const char* const neutrino_t = "neutrino:";
11844const char* const track_primary_t = "track_primary:";
11845const char* const track_bundle_t = "track_bundle:";
11846//const char* const primarylepton_t = "primarylepton:";
11847const char* const weights_t = "weights:";
11848const char* const w2list_t = "w2list:";
11849const char* const w3list_t = "w3list:";
11850const char* const hourangle_t = "hourangle:";
11851const char* const eventtime_t = "eventtime:";
11852const char* const center_on_can_t = "center_on_can:";
11853const char* const muon_decay_t = "muon_decay:";
11854const char* const end_event_t = "end_event:";
11857namespace mc_usr_keys
11859// track-level quantities
11860const char* const energy_lost_in_can = "energy_lost_in_can";
11863// event-level corsika variables
11864const char* const muon_decay_x = "muon_decay_x";
11865const char* const muon_decay_y = "muon_decay_y";
11866const char* const muon_decay_z = "muon_decay_z";
11868const char* const center_on_can_x = "center_on_can_x";
11869const char* const center_on_can_y = "center_on_can_y";
11870const char* const center_on_can_z = "center_on_can_z";
11871const char* const hourangle = "hourangle";
11875namespace io_stringutil
11884inline bool startswith( const std::string& a, const std::string& b )
11886 if ( a.find( b ) == 0 ) return true;
11896inline std::string trim(const std::string& s)
11898 using namespace std;
11900 if ( s == "" ) return s;
11902 string::size_type i1;
11903 string::size_type i2;
11905 for (i1 = 0; i1 < s.length(); i1++)
11907 if ( !isspace (s[i1]) ) break;
11909 for (i2 = s.length() - 1 ; i2 > i1 ; i2--)
11911 if ( !isspace (s[i2]) ) break;
11913 return s.substr( i1, i2 - i1 + 1 );
11925inline int pdg_code( int geant3_code )
11927 if ( geant3_code == -1 ) return -1; // used for k40 hits
11928 if ( geant3_code < 0 ) return pdg_code( -geant3_code ); // used for scattered
11930 return TDatabasePDG::Instance()->ConvertGeant3ToPdg( geant3_code );
11939inline int geant3_code( int pdg_code )
11941 if (pdg_code == -1 ) return -1;
11942 if (pdg_code == +311 ) return geant3_code( 130 ); // K0 -> K0long
11943 if (pdg_code == -311 ) return geant3_code( 130 ); // K0bar -> K0long
11945 return TDatabasePDG::Instance()->ConvertPdgToGeant3( pdg_code );
11956inline bool read ( Vec& v, std::istream& is)
11958 is >> v.x >> v.y >> v.z;
11969inline bool write( const Vec& v, std::ostream& os)
11971 os << v.x << ' ' << v.y << ' ' << v.z;
11983inline bool read ( Hit& h, std::istream& is, bool read_mc = false )
11985 h.dom_id = 0; // need a proper det file to
11986 h.channel_id = 0; // set these.
11988 is >> h.id >> h.pmt_id >> h.a >> h.t;
11995 is >> h.type >> h.origin;
11998 // at this point, an additional pure_a and pure_t may be present,
11999 // but we do not read them.
12013inline bool write( const Hit& h, std::ostream& os, const std::string& tag = mc_keys::hit_t)
12015 int om_id = h.pmt_id; // todo: deal with this better.
12017 os << tag << ' ' << h.id << ' ' << om_id << ' ' << h.a << ' ' << h.t;
12018 if ( tag != mc_keys::hit_raw_t ) {
12019 os << ' ' << h.type << ' ' << h.origin; // not writing pure_a and pure_t
12032inline std::vector<double> read_line_to_vector( std::istream& is )
12034 using namespace std;
12040 istringstream il(ss);
12041 for ( double x; il >> x ; ) r.push_back( x );
12053template<typename T>
12054inline void push_front( std::vector<T>& vec, const T& value )
12056 vec.insert( vec.begin(), value );
12068inline bool read ( Evt& evt, std::istream& is, bool skip_hits = false )
12070 using namespace std;
12074 // find next start_event
12076 while ( w != mc_keys::start_event_t && is.good() ) is >> w;
12078 int mc_event_type; // dummy - this is always 1 in all files.
12079 is >> evt.mc_id >> mc_event_type;
12081 Trk trk_nu, trk_primary;
12082 bool have_trk_nu(false), have_trk_primary(false);
12085 evt.mc_trks.clear();
12087 evt.mc_hits.clear();
12098 if (skip_hits && ( w == mc_keys::hit_t || w == mc_keys::hit_raw_t)) {
12099 is.ignore( 1000, '\n' );
12103 if ( w == mc_keys::hit_t ) {
12105 read( h, is, true );
12106 evt.mc_hits.push_back( h );
12108 } else if ( w == mc_keys::hit_raw_t ) {
12110 read( h, is, false);
12111 evt.hits.push_back( h );
12113 } else if ( w == mc_keys::track_in_t ||
12114 w == mc_keys::track_t ||
12115 w == mc_keys::neutrino_t ||
12116 w == mc_keys::track_bundle_t ||
12117 w == mc_keys::track_primary_t ) {
12125 getline( is, line );
12126 istringstream ii(line);
12128 if ( w != mc_keys::track_bundle_t ) {
12134 ii >> t.pos >> t.dir >> t.E;
12138 if ( w == mc_keys::track_in_t) {
12140 t.status = TRK_ST_FINALSTATE;
12142 ii >> t.t >> t.type;
12146 t.type = pdg_code( t.type );
12150 if ( ii.fail() ) { // missing length is not an error
12151 evt.mc_trks.push_back( t );
12158 if ( ii.fail() ) { // missing eloss is not an error
12159 evt.mc_trks.push_back( t );
12163 t.setusr( mc_usr_keys::energy_lost_in_can, eloss);
12165 evt.mc_trks.push_back( t );
12168 } else if ( w == mc_keys::track_t ) {
12172 evt.trks.push_back( t );
12174 } else if ( w == mc_keys::neutrino_t ) {
12176 t.status = TRK_ST_PRIMARYNEUTRINO;
12178 // the last item we will read is W2LIST_GSEAGEN_CC, make enough space;
12179 if (evt.w2list.size() < W2LIST_GSEAGEN_CC+1 ) evt.w2list.resize(W2LIST_GSEAGEN_CC+1);
12182 evt.w2list[W2LIST_GSEAGEN_BX] >>
12183 evt.w2list[W2LIST_GSEAGEN_BY] >>
12184 evt.w2list[W2LIST_GSEAGEN_ICHAN] >>
12186 evt.w2list[W2LIST_GSEAGEN_CC];
12189 have_trk_nu = true;
12191 } else if ( w == mc_keys::track_primary_t ) {
12193 t.status = TRK_ST_PRIMARYCOSMIC;
12195 ii >> t.t >> trk_primary.type; // nucleus id (in pdg format or not?)
12198 have_trk_primary = true;
12200 } else if ( w == mc_keys::track_bundle_t ) {
12202 t.type = PDG_MUONBUNDLE;
12203 t.status = TRK_ST_MUONBUNDLE;
12205 evt.mc_trks.push_back( t );
12209 ostream& out = Exception::getOstream();
12210 out << "Unknown tag " << w << " for trk ";
12212 throw Exception(static_cast<ostringstream&>(out).str());
12217 ostream& out = Exception::getOstream();
12218 out << "Error reading trk ";
12220 throw Exception(static_cast<ostringstream&>(out).str());
12223 } else if ( w == mc_keys::weights_t) {
12225 evt.w = read_line_to_vector( is );
12227 } else if ( w == mc_keys::w2list_t) {
12229 auto v = read_line_to_vector( is );
12230 evt.w2list.resize( std::max( evt.w2list.size(), v.size()));
12231 std::copy( v.begin(), v.end() , evt.w2list.begin() );
12233 } else if ( w == mc_keys::w3list_t) {
12235 evt.w3list = read_line_to_vector( is );
12237 } else if ( w == mc_keys::hourangle_t ) {
12241 evt.setusr(mc_usr_keys::hourangle, ha );
12243 } else if ( w == mc_keys::center_on_can_t) {
12245 // in corsika files, there is the (undocumented?) center_on_can tag,
12246 // which denoets the projection of the primary on the can. The direction
12247 // of the center_on_can 'track' is by defintion the direction of the
12248 // primary. We record the position in the usr data.
12250 vector<double> v = read_line_to_vector( is );
12252 if ( v.size() > 3 ) {
12253 evt.setusr(mc_usr_keys::center_on_can_x, v[1] );
12254 evt.setusr(mc_usr_keys::center_on_can_y, v[2] );
12255 evt.setusr(mc_usr_keys::center_on_can_z, v[3] );
12258 } else if ( w == mc_keys::eventtime_t ) {
12260 unsigned nsec, n16ns_ticks;
12261 is >> nsec >> n16ns_ticks;
12262 evt.mc_event_time.SetSec( nsec );
12263 evt.mc_event_time.SetNanoSec( n16ns_ticks * 16 );
12265 } else if ( w == mc_keys::muon_decay_t) {
12267 // in km3sim files, there are additional tags, including this one
12268 vector<double> v = read_line_to_vector( is );
12269 if ( v.size() > 4 )
12271 evt.setusr(mc_usr_keys::muon_decay_x, v[2] );
12272 evt.setusr(mc_usr_keys::muon_decay_y, v[3] );
12273 evt.setusr(mc_usr_keys::muon_decay_z, v[4] );
12276 } else if ( w == mc_keys::end_event_t) {
12278 // finalize the mc_tracks -- as best we can.
12280 // If there is both a primary, and a neutrino, then the primary
12281 // will go second (mc_trks[1]) with id=-1 and the neutrino will
12282 // be mc_trks[0] with id=0. Unless they are same particle (identical
12283 // pos,dir,E); in that case the primary is skipped.
12284 // The primarylepton tag is not stored as a seperate Trk.
12286 if ( have_trk_primary && have_trk_nu ) {
12288 bool same = trk_nu.pos == trk_primary.pos &&
12289 trk_nu.dir == trk_primary.dir &&
12290 trk_nu.E == trk_primary.E;
12293 trk_primary.id = -1;
12294 push_front( evt.mc_trks, trk_primary);
12298 push_front( evt.mc_trks, trk_nu);
12300 } else if ( have_trk_primary ) {
12302 trk_primary.id = 0;
12303 push_front( evt.mc_trks, trk_primary);
12305 } else if ( have_trk_nu ) {
12308 push_front( evt.mc_trks, trk_nu);
12314 is.ignore( 1000, '\n' );
12321 THROW(Exception, "Error while reading ascii event" << w << ' ' << evt.id);
12335inline bool write( const Evt& evt, std::ostream& os )
12337 using namespace std;
12339 // set precision to 12 digits.
12340 const int precision = 12;
12341 auto old_flags = os.flags();
12342 auto old_precision = os.precision( precision );
12343 os.unsetf( std::ios_base::scientific | std::ios_base::fixed ); // default behaviour
12345 os << mc_keys::start_event_t << ' ' << evt.mc_id << ' ' << 1 << endl;
12347 for ( auto& trk : evt.mc_trks ) {
12349 const std::string& tag = trk.comment;
12352 << (tag != mc_keys::track_bundle_t ? trk.id : trk.len) << ' '
12357 if ( tag == mc_keys::track_in_t ) {
12359 os << ' ' << trk.t << ' ' << geant3_code(trk.type) << ' ' << trk.len;
12361 if ( trk.haveusr( mc_usr_keys::energy_lost_in_can ) ) {
12362 os << ' ' << trk.getusr( mc_usr_keys::energy_lost_in_can );
12367 } else if ( tag == mc_keys::track_primary_t ) {
12369 os << ' ' << trk.t << ' ' << trk.type << endl;
12371 } else if ( tag == mc_keys::neutrino_t ) {
12373 double bx(0), by(0);
12374 int ichan(0), cc(0);
12376 if ( evt.w2list.size() > W2LIST_GSEAGEN_CC ) {
12377 bx = evt.w2list[W2LIST_GSEAGEN_BX];
12378 by = evt.w2list[W2LIST_GSEAGEN_BY];
12379 ichan = evt.w2list[W2LIST_GSEAGEN_ICHAN];
12380 cc = evt.w2list[W2LIST_GSEAGEN_CC];
12397 for ( auto& trk : evt.trks ) {
12398 os << mc_keys::track_fit_t << ' ' << trk.id << ' ' << trk.pos << ' ' << trk.dir << ' ' << trk.E << ' ' << trk.t << endl;
12401 for ( auto& hit : evt.mc_hits ) write ( hit, os, mc_keys::hit_t);
12402 for ( auto& hit : evt.hits ) write ( hit, os, mc_keys::hit_raw_t);
12404 os << mc_keys::weights_t; for (auto& w : evt.w ) os << ' ' << w; os << endl;
12405 os << mc_keys::w2list_t; for (auto& w : evt.w2list ) os << ' ' << w; os << endl;
12406 os << mc_keys::w3list_t; for (auto& w : evt.w3list ) os << ' ' << w; os << endl;
12408 os << mc_keys::eventtime_t << evt.mc_event_time.GetSec() << " "
12409 << evt.mc_event_time.GetNanoSec() / 16 << endl;
12411 os << mc_keys::end_event_t << endl;
12413 // restore os to how we found it.
12414 os.flags( old_flags );
12415 os.precision( old_precision );
12433inline bool read( Head& hdr, std::istream& is )
12435 using namespace std;
12439 bool start = false;
12441 while (getline( is, line ))
12443 if ( io_stringutil::startswith(line, mc_keys::end_event_t))
12448 if ( io_stringutil::startswith(line, mc_keys::start_run_t))
12453 if ( io_stringutil::startswith(line, mc_keys::start_event_t))
12455 THROW(Exception, "Unexpected tag " << mc_keys::start_event_t << " found while reading header at " << line << " (could mean the evt file has no header)");
12458 if (!start) continue;
12460 vector<string> v = splitstring( line, ':' );
12463 std::cout << "Warning: line with empty tag found when reading header" << endl;
12464 std::cout << " "<< line << endl;
12465 std::cout << " will be skipped" << endl;
12469 // the following with unsure key in the map is unique by adding _1 _2 etc.
12470 hdr.set_line( io_stringutil::trim(v[0]), io_stringutil::trim(v[1]) );
12476 THROW(Exception, "Reading of MC header terminated before finding a start_run: tag. Please check your file");
12490inline bool write( const Head& hdr, std::ostream& os )
12497#ifndef IOONLINEINCLUDED
12498#define IOONLINEINCLUDED
12500#include "km3net-dataformat/offline/Evt.hh"
12501#include "km3net-dataformat/offline/Hit.hh"
12502#include "km3net-dataformat/offline/Trk.hh"
12503#include "km3net-dataformat/offline/Exception.hh"
12505#include "km3net-dataformat/online/JDAQEvent.hh"
12506#include "km3net-dataformat/online/JDAQKeyHit.hh"
12507#include "km3net-dataformat/online/JDAQTimeslice.hh"
12508#include "km3net-dataformat/online/JDAQSummaryslice.hh"
12510#include "TStreamerInfo.h"
12513#include "km3net-dataformat/definitions/root.hh"
12519using namespace KM3NETDAQ;
12527inline void read(Hit& hit, const JDAQHit& daqhit )
12529 hit.channel_id = daqhit.getPMT();
12530 hit.tot = daqhit.getToT();
12531 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12540inline void read(Hit& hit, const JDAQKeyHit& daqhit )
12542 hit.id = hit.pmt_id = 0;
12544 hit.dom_id = daqhit.getModuleID();
12545 hit.channel_id = daqhit.getPMT();
12546 hit.tot = daqhit.getToT();
12547 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12556inline void read(Evt& evt, const JDAQEvent& de)
12558 evt.run_id = de.getRunNumber();
12559 evt.det_id = de.getDetectorID();
12560 evt.frame_index = de.getFrameIndex();
12561 evt.trigger_counter = de.getCounter();
12562 evt.overlays = de.getOverlays();
12563 evt.trigger_mask = de.getTriggerMask();
12564 evt.t.SetSec( de.getTimesliceStart().getUTCseconds() );
12565 evt.t.SetNanoSec( de.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12567 // The only way to know the hits that are also in the triggeredhits collection
12568 // is by dom and channel id and time.
12571 std::map<int, std::map< int, std::map < unsigned int, Hit*> > > M;
12573 const std::vector<JDAQSnapshotHit>& snapshotHits = de.getHits<JDAQSnapshotHit>();
12574 const std::vector<JDAQTriggeredHit>& triggeredHits = de.getHits<JDAQTriggeredHit>();
12576 // http://stackoverflow.com/questions/10735135/reallocation-in-stdvector-after-stdvector-reserve
12578 evt.hits.reserve(snapshotHits.size());
12580 for (auto& daqhit : snapshotHits ) // JDAQSnapshotHit
12584 evt.hits.push_back( h );
12585 M[ h.dom_id ][ h.channel_id ][ h.tdc ] = &(*evt.hits.rbegin());
12588 for (auto& daqtrighit : triggeredHits)
12590 Hit* g = M[daqtrighit.getModuleID()][daqtrighit.getPMT()][daqtrighit.getT()];
12593 g->trig = daqtrighit.getTriggerMask ();
12595 THROW(Exception, "Failed to flag snaphot hit " << (int) daqtrighit.getModuleID() << "." << (int) daqtrighit.getPMT() << " " << daqtrighit.getT());
12606inline void read( Evt& evt, const JDAQTimeslice& ts )
12608 evt.run_id = ts.getRunNumber();
12609 evt.det_id = ts.getDetectorID();
12610 evt.frame_index = ts.getFrameIndex();
12611 evt.t.SetSec( ts.getTimesliceStart().getUTCseconds() );
12612 evt.t.SetNanoSec( ts.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12615 // a timeslice is a vector of JDAQSuperFrame's, which is a JDAQFrame, which
12616 // is an stl::vector-like object (supporting stl-like iteration.)
12618 Hit h; h.id = 0; h.pmt_id = 0;
12620 for (auto& sf : ts )
12622 for (auto& daqhit : sf )
12625 h.dom_id = sf.getModuleID();
12626 evt.hits.push_back(h);
12641inline JDAQSummaryslice* get_summary_slice( TFile* f , int frame_index )
12643 static TFile* _f = 0;
12644 static TTree* S = 0;
12645 static TBranch* BS = 0;
12646 JDAQSummaryslice *r = 0 ;
12648 if (!f) THROW(Exception, "get_summary_slice called with TFile pointer that is null");
12651 // in principle, event if the pointer-value is the same, we could have been given a new file
12653 if ( !_f || _f->GetUUID().Compare( f->GetUUID() ) != 0 ) // setup for tree reading and build tree index
12657 // first we have to deal with the following....
12658 // The streamer of JDAQSummaryFrame needs to know what to do since
12659 // this information is not written to root file.
12661 const char* name = JDAQSummaryslice::Class()->GetName();
12663 JDAQSummaryFrame::ROOT_IO_VERSION = ((TStreamerInfo*)_f -> GetStreamerInfoList()->FindObject(name))->GetClassVersion();
12665 S = (TTree*) _f->Get( TTREE_ONLINE_SUMMARYSLICE );
12669 THROW(Exception, "Failed to get summary slice TTree : " << TTREE_ONLINE_SUMMARYSLICE );
12672 BS = S->GetBranch( TBRANCH_ONLINE_SUMMARYSLICE );
12676 THROW(Exception, "Failed to get brach :" << TBRANCH_ONLINE_SUMMARYSLICE );
12679 std::cout << "building index to lookup summary slices..." << std::endl;
12680 int n = S->BuildIndex("frame_index");
12682 BS->SetAddress( &r );
12685 int nbytes = S->GetEntryWithIndex( frame_index ); // returns -1 if not found
12688 THROW(Exception, "Failed to find summary slice entry with frame_index " << frame_index);
12695#ifndef __TOOLS_MULTIPLICITY__
12696#define __TOOLS_MULTIPLICITY__
12698#include "km3net-dataformat/offline/Evt.hh"
12699#include "km3net-dataformat/offline/Trk.hh"
12707inline int get_multiplicity(const Evt& event)
12709 using namespace std;
12711 // Bundle multiplicity is stored in the `len` member variable for `track_bundle`s.
12713 for ( auto& t : event.mc_trks ) {
12714 if ( t.status == TRK_ST_MUONBUNDLE ) { return (int) t.len; }
12717 ostream& out = Exception::getOstream();
12718 out << "get_multiplicity(): The following event does not correspond to a muon bundle:" << endl;
12720 throw Exception(static_cast<ostringstream&>(out).str());
12724#ifndef __TOOLS_RECONSTRUCTION__
12725#define __TOOLS_RECONSTRUCTION__
12728#include <algorithm>
12730#include "km3net-dataformat/offline/Hit.hh"
12731#include "km3net-dataformat/offline/Vec.hh"
12732#include "km3net-dataformat/offline/Trk.hh"
12733#include "km3net-dataformat/offline/Evt.hh"
12734#include "km3net-dataformat/offline/Exception.hh"
12735#include "km3net-dataformat/definitions/reconstruction.hh"
12749struct rec_stages_range {
12753 rec_stages_range() :
12755 upper(std::numeric_limits<int>::max())
12765 rec_stages_range(const int lower, const int upper) :
12776 rec_stages_range(const int stage) :
12788 inline bool operator()(const int stage) const
12790 return (stage >= lower && stage <= upper);
12807template<int reconstruction_type>
12808struct quality_sorter {
12818 inline bool operator()(const Trk& first, const Trk& second) const
12820 if (first.rec_stages.size() == second.rec_stages.size())
12821 return first.lik > second.lik;
12823 return first.rec_stages.size() > second.rec_stages.size();
12832struct has_history {
12839 has_history(const int type, const rec_stages_range range) :
12848 inline bool operator()(const Trk& track) const
12850 if (track.rec_type == type)
12851 return std::find_if(track.rec_stages.begin(), track.rec_stages.end(), range) != track.rec_stages.end();
12856 const int type; //!< reconstruction type
12857 const rec_stages_range range; //!< range of application types
12867inline bool has_jppmuon_prefit(const Trk& track)
12869 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONPREFIT)(track);
12879inline bool has_jppmuon_simplex(const Trk& track)
12881 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSIMPLEX)(track);
12891inline bool has_jppmuon_gandalf(const Trk& track)
12893 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONGANDALF)(track);
12903inline bool has_jppmuon_energy(const Trk& track)
12905 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONENERGY)(track);
12915inline bool has_jppmuon_start(const Trk& track)
12917 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSTART)(track);
12927inline bool has_jppmuon_fit(const Trk& track)
12929 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JMUONBEGIN, JMUONEND))(track);
12939inline bool has_shower_prefit(const Trk& track)
12941 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPREFIT)(track);
12951inline bool has_shower_positionfit(const Trk& track)
12953 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPOSITIONFIT)(track);
12963inline bool has_shower_completefit(const Trk& track)
12965 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERCOMPLETEFIT)(track);
12975inline bool has_shower_fit(const Trk& track)
12977 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JSHOWERBEGIN, JSHOWEREND))(track);
12987inline bool has_aashower_fit(const Trk& track)
12989 return ::has_history(AANET_RECONSTRUCTION_TYPE, rec_stages_range(AASHOWERBEGIN, AASHOWEREND))(track);
13001template<class JTrackSelector_t>
13002inline bool has_reconstructed_track(const Evt& evt, JTrackSelector_t selector)
13004 return std::find_if(evt.trks.begin(), evt.trks.end(), selector) != evt.trks.end();
13015template<int reconstruction_type>
13016inline bool has_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13018 return ::has_reconstructed_track(evt, ::has_history(reconstruction_type, range));
13028inline bool has_reconstructed_jppmuon(const Evt& evt)
13030 return ::has_reconstructed_track(evt, has_jppmuon_fit);
13040inline bool has_reconstructed_jppshower(const Evt& evt)
13042 return ::has_reconstructed_track(evt, ::has_shower_fit);
13052inline bool has_reconstructed_aashower(const Evt& evt)
13054 return ::has_reconstructed_track(evt, has_aashower_fit);
13070template<class JTrackSelector_t, class JQualitySorter_t>
13071inline const Trk& get_best_reconstructed_track(const Evt& evt,
13072 JTrackSelector_t selector,
13073 JQualitySorter_t comparator)
13075 std::vector<Trk>::const_iterator p = std::find_if(evt.trks.begin(), evt.trks.end(), selector);
13077 for (std::vector<Trk>::const_iterator i = p; i != evt.trks.end(); ++i) {
13078 if (selector(*i) && comparator(*i, *p)) {
13083 if (p != evt.trks.end())
13086 THROW(Exception, "This event has no reconstructed track with given selector.");
13097template<int reconstruction_type>
13098inline const Trk& get_best_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13100 return get_best_reconstructed_track(evt, ::has_history(reconstruction_type, range), quality_sorter<reconstruction_type>());
13110inline const Trk& get_best_reconstructed_jppmuon(const Evt& evt)
13112 return get_best_reconstructed_track(evt, has_jppmuon_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13122inline const Trk& get_best_reconstructed_jppshower(const Evt& evt)
13124 return get_best_reconstructed_track(evt, ::has_shower_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13134inline const Trk& get_best_reconstructed_aashower(const Evt& evt)
13136 return get_best_reconstructed_track(evt, ::has_aashower_fit, quality_sorter<AANET_RECONSTRUCTION_TYPE>());
13140#ifndef __TOOLS__TIME_CONVERTER__
13141#define __TOOLS__TIME_CONVERTER__
13143#include "km3net-dataformat/offline/Evt.hh"
13144#include "km3net-dataformat/online/JDAQClock.hh"
13145#include "km3net-dataformat/online/JDAQChronometer.hh"
13158class time_converter
13176 time_converter(const Evt& event) :
13178 __t1(getTimeOfRTS(event.frame_index))
13188 time_converter(const Evt& event,
13189 const JDAQChronometer& chronometer) :
13191 __t1(getTimeOfRTS(chronometer))
13200 double getTime() const
13202 return __t1 - __t0;
13211 double putTime() const
13213 return __t0 - __t1;
13223 double getTime(const double t0) const
13225 return t0 + __t1 - __t0;
13235 double putTime(const double t0) const
13237 return t0 - __t1 + __t0;
13241 double __t0; // Monte Carlo event time [ns]
13242 double __t1; // DAQ RTS [ns]
13247#undef _BACKWARD_BACKWARD_WARNING_H
13249 static const char* classesHeaders[] = {
13250"AAObject", payloadCode,
"@",
13251"Evt", payloadCode,
"@",
13252"Head", payloadCode,
"@",
13253"Hit", payloadCode,
"@",
13254"KM3NETDAQ::JDAQAbstractPreamble", payloadCode,
"@",
13255"KM3NETDAQ::JDAQChronometer", payloadCode,
"@",
13256"KM3NETDAQ::JDAQEvent", payloadCode,
"@",
13257"KM3NETDAQ::JDAQEventHeader", payloadCode,
"@",
13258"KM3NETDAQ::JDAQFrame", payloadCode,
"@",
13259"KM3NETDAQ::JDAQFrameStatus", payloadCode,
"@",
13260"KM3NETDAQ::JDAQHeader", payloadCode,
"@",
13261"KM3NETDAQ::JDAQHit", payloadCode,
"@",
13262"KM3NETDAQ::JDAQKeyHit", payloadCode,
"@",
13263"KM3NETDAQ::JDAQModuleIdentifier", payloadCode,
"@",
13264"KM3NETDAQ::JDAQPMTIdentifier", payloadCode,
"@",
13265"KM3NETDAQ::JDAQPreamble", payloadCode,
"@",
13266"KM3NETDAQ::JDAQRate", payloadCode,
"@",
13267"KM3NETDAQ::JDAQSummaryFrame", payloadCode,
"@",
13268"KM3NETDAQ::JDAQSummaryslice", payloadCode,
"@",
13269"KM3NETDAQ::JDAQSummarysliceHeader", payloadCode,
"@",
13270"KM3NETDAQ::JDAQSuperFrame", payloadCode,
"@",
13271"KM3NETDAQ::JDAQSuperFrameHeader", payloadCode,
"@",
13272"KM3NETDAQ::JDAQTimeslice", payloadCode,
"@",
13273"KM3NETDAQ::JDAQTimesliceHeader", payloadCode,
"@",
13274"KM3NETDAQ::JDAQTimesliceL0", payloadCode,
"@",
13275"KM3NETDAQ::JDAQTimesliceL1", payloadCode,
"@",
13276"KM3NETDAQ::JDAQTimesliceL2", payloadCode,
"@",
13277"KM3NETDAQ::JDAQTimesliceSN", payloadCode,
"@",
13278"KM3NETDAQ::JDAQTriggerCounter", payloadCode,
"@",
13279"KM3NETDAQ::JDAQTriggerMask", payloadCode,
"@",
13280"KM3NETDAQ::JDAQTriggeredHit", payloadCode,
"@",
13281"KM3NETDAQ::JDAQUTCExtended", payloadCode,
"@",
13282"MultiHead", payloadCode,
"@",
13283"Trk", payloadCode,
"@",
13284"Vec", payloadCode,
"@",
13287 static bool isInitialized =
false;
13288 if (!isInitialized) {
13289 TROOT::RegisterModule(
"G__KM3NeTROOT",
13290 headers, includePaths, payloadCode, fwdDeclCode,
13291 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl, {}, classesHeaders,
false);
13292 isInitialized =
true;
13295 static struct DictInit {
13297 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl();
13299 } __TheDictionaryInitializer;
13301void TriggerDictionaryInitialization_G__KM3NeTROOT() {
13302 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 * 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 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 * 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_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 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 * 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 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.