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<Vec>));
3805 static ::ROOT::TGenericClassInfo
3806 instance(
"vector<Vec>", -2,
"vector", 389,
3807 typeid(
vector<Vec>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3815 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Vec> >()));
3817 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Vec>",
"std::vector<Vec, std::allocator<Vec> >"));
3841 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Vec>[nElements] :
new vector<Vec>[nElements];
3852 (
static_cast<current_t*
>(p))->~current_t();
3869 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Trk>));
3870 static ::ROOT::TGenericClassInfo
3871 instance(
"vector<Trk>", -2,
"vector", 389,
3872 typeid(
vector<Trk>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
3880 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Trk> >()));
3882 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Trk>",
"std::vector<Trk, std::allocator<Trk> >"));
3906 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Trk>[nElements] :
new vector<Trk>[nElements];
3917 (
static_cast<current_t*
>(p))->~current_t();
3935 static ::ROOT::TGenericClassInfo
3936 instance(
"vector<KM3NETDAQ::JDAQTriggeredHit>", -2,
"vector", 389,
3947 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQTriggeredHit>",
"std::vector<KM3NETDAQ::JDAQTriggeredHit, std::allocator<KM3NETDAQ::JDAQTriggeredHit> >"));
3982 (
static_cast<current_t*
>(p))->~current_t();
4000 static ::ROOT::TGenericClassInfo
4001 instance(
"vector<KM3NETDAQ::JDAQSuperFrame>", -2,
"vector", 389,
4012 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSuperFrame>",
"std::vector<KM3NETDAQ::JDAQSuperFrame, std::allocator<KM3NETDAQ::JDAQSuperFrame> >"));
4047 (
static_cast<current_t*
>(p))->~current_t();
4065 static ::ROOT::TGenericClassInfo
4066 instance(
"vector<KM3NETDAQ::JDAQSummaryFrame>", -2,
"vector", 389,
4077 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQSummaryFrame>",
"std::vector<KM3NETDAQ::JDAQSummaryFrame, std::allocator<KM3NETDAQ::JDAQSummaryFrame> >"));
4112 (
static_cast<current_t*
>(p))->~current_t();
4130 static ::ROOT::TGenericClassInfo
4131 instance(
"vector<KM3NETDAQ::JDAQKeyHit>", -2,
"vector", 389,
4142 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<KM3NETDAQ::JDAQKeyHit>",
"std::vector<KM3NETDAQ::JDAQKeyHit, std::allocator<KM3NETDAQ::JDAQKeyHit> >"));
4177 (
static_cast<current_t*
>(p))->~current_t();
4194 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Hit>));
4195 static ::ROOT::TGenericClassInfo
4196 instance(
"vector<Hit>", -2,
"vector", 389,
4197 typeid(
vector<Hit>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4205 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Hit> >()));
4207 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Hit>",
"std::vector<Hit, std::allocator<Hit> >"));
4231 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Hit>[nElements] :
new vector<Hit>[nElements];
4242 (
static_cast<current_t*
>(p))->~current_t();
4259 static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(
typeid(
vector<Head>));
4260 static ::ROOT::TGenericClassInfo
4261 instance(
"vector<Head>", -2,
"vector", 389,
4262 typeid(
vector<Head>), ::ROOT::Internal::DefineBehavior(ptr, ptr),
4270 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::Pushback<
vector<Head> >()));
4272 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"vector<Head>",
"std::vector<Head, std::allocator<Head> >"));
4296 return p ? ::new(
static_cast<::ROOT::Internal::TOperatorNewHelper*
>(p))
vector<Head>[nElements] :
new vector<Head>[nElements];
4307 (
static_cast<current_t*
>(p))->~current_t();
4325 static ::ROOT::TGenericClassInfo
4326 instance(
"map<string,string>", -2,
"map", 100,
4335 instance.AdoptCollectionProxyInfo(TCollectionProxyInfo::Generate(TCollectionProxyInfo::MapInsert<
map<string,string> >()));
4337 instance.AdoptAlternate(::ROOT::AddClassAlternate(
"map<string,string>",
"std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >"));
4372 (
static_cast<current_t*
>(p))->~current_t();
4377 void TriggerDictionaryInitialization_G__KM3NeTROOT_Impl() {
4378 static const char* headers[] = {
4382 static const char* includePaths[] = {
4383"/builds/common/jpp/externals/km3net-dataformat/build",
4385"/usr/local/include/",
4386"/builds/common/jpp/externals/km3net-dataformat/build/src/",
4389 static const char* fwdDeclCode = R
"DICTFWDDCLS(
4390#line 1 "G__KM3NeTROOT dictionary forward declarations' payload"
4391#pragma clang diagnostic ignored "-Wkeyword-compat"
4392#pragma clang diagnostic ignored "-Wignored-attributes"
4393#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
4394extern int __Cling_AutoLoading_Map;
4395struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Vec.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Vec;
4396namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h"))) __attribute__((annotate("$clingAutoload$string"))) allocator;
4398namespace KM3NETDAQ{class JDAQAbstractPreamble;}
4399namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQUTCExtended.hh"))) JDAQUTCExtended;}
4400namespace KM3NETDAQ{class JDAQChronometer;}
4401namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPreamble.hh"))) JDAQPreamble;}
4402namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQHeader;}
4403namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerCounter.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerCounter;}
4404namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggerMask.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQTriggerMask;}
4405namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQEventHeader.hh"))) JDAQEventHeader;}
4406namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQHit.hh"))) JDAQHit;}
4407namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQModuleIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQModuleIdentifier;}
4408namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQPMTIdentifier.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQPMTIdentifier;}
4409namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQKeyHit.hh"))) JDAQKeyHit;}
4410namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTriggeredHit.hh"))) JDAQTriggeredHit;}
4411namespace KM3NETDAQ{class JDAQEvent;}
4412namespace KM3NETDAQ{class JDAQFrame;}
4413namespace KM3NETDAQ{class JDAQFrameStatus;}
4414namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrameHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrameHeader;}
4415namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSuperFrame.hh"))) JDAQSuperFrame;}
4416namespace KM3NETDAQ{class JDAQRate;}
4417namespace KM3NETDAQ{class JDAQSummaryFrame;}
4418namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQSummarysliceHeader.hh"))) JDAQSummarysliceHeader;}
4419namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimesliceHeader.hh"))) __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceHeader;}
4420namespace KM3NETDAQ{class __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimeslice;}
4421namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL0;}
4422namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL1;}
4423namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceL2;}
4424namespace KM3NETDAQ{struct __attribute__((annotate("$clingAutoload$km3net-dataformat/online/JDAQTimeslice.hh"))) JDAQTimesliceSN;}
4425namespace KM3NETDAQ{class JDAQSummaryslice;}
4427struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Hit.hh"))) Hit;
4428struct __attribute__((annotate("$clingAutoload$km3net-dataformat/offline/Trk.hh"))) Trk;
4433 static const char* payloadCode = R
"DICTPAYLOAD(
4434#line 1 "G__KM3NeTROOT dictionary payload"
4437#define _BACKWARD_BACKWARD_WARNING_H
4442#include "km3net-dataformat/online/JDAQException.hh"
4456namespace KM3NETDAQ {
4461#if NAMESPACE == ANTARES
4462 static const int NUMBER_OF_PMTS = 3; //!< Total number of PMTs in module
4464 static const int NUMBER_OF_PMTS = 31; //!< Total number of PMTs in module
4491 if (bit < 0 || bit > 31) {
4492 throw JDAQException("JBit: illegal bit range.");
4515 void set(int& mask) const
4526 void unset(int& mask) const
4538 void set(int& mask, const bool value) const
4553 int write(const int value) const
4555 return (value << bit) & get();
4565 int read(const int mask) const
4567 return (mask & get()) >> bit;
4577 bool has(const int mask) const
4579 return (mask & get()) != 0;
4606 JBits(int __lsb, int __msb) :
4610 if (lsb < 0 || lsb > 31 ||
4611 msb < lsb || msb > 31) {
4612 throw JDAQException("JBits: illegal bit range.");
4626 static const unsigned int mask[] = { 0x00000001,
4666 return (int) (mask[msb-lsb] << lsb);
4676 int write(const int value) const
4678 return (value << lsb) & get();
4688 int read(const int mask) const
4690 return (mask & get()) >> lsb;
4700 bool has(const int mask) const
4702 return (get() & mask) != 0;
4706 int lsb; //!< least significant bit
4707 int msb; //!< most significant bit
4711 static const JBit DAQ_WHITE_RABBIT (31); //!< White Rabbit status
4712 static const JBits DAQ_TDC ( 0, 30); //!< TDC high-rate veto status
4713 static const JBits DAQ_FIFO ( 0, 30); //!< FIFO almost full bits
4715 static const JBit DAQ_UDP_TRAILER (31); //!< UDP trailer
4716 static const JBits DAQ_UDP_RECEIVED_PACKETS( 0, 15); //!< Mask of UDP received packets
4717 static const JBits DAQ_UDP_SEQUENCE_NUMBER (16, 31); //!< Mask of UDP sequence number
4721#ifndef __JDAQABSTRACTPREAMBLE__
4722#define __JDAQABSTRACTPREAMBLE__
4724#include "km3net-dataformat/online/JDAQDataTypes.hh"
4725#include "km3net-dataformat/online/JDAQRoot.hh"
4732namespace KM3NETDAQ {
4741 class JDAQAbstractPreamble {
4749 JDAQAbstractPreamble(JDAQType<T> type) :
4751 type (KM3NETDAQ::getDataType(type))
4758 JDAQAbstractPreamble() :
4769 int getLength() const
4780 int getDataType() const
4786 ClassDefNV(JDAQAbstractPreamble,1);
4795#ifndef __JDAQCHRONOMETER__
4796#define __JDAQCHRONOMETER__
4801#include "km3net-dataformat/online/JDAQRoot.hh"
4802#include "km3net-dataformat/online/JDAQUTCExtended.hh"
4803#include "km3net-dataformat/online/JDAQClock.hh"
4810namespace KM3NETDAQ {
4815 class JDAQChronometer
4819 friend size_t getSizeof<JDAQChronometer>();
4820 friend JReader& operator>>(JReader&, JDAQChronometer&);
4821 friend JWriter& operator<<(JWriter&, const JDAQChronometer&);
4841 JDAQChronometer(const int __detector_id,
4843 const int __frame_index) :
4844 detector_id(__detector_id),
4846 frame_index(__frame_index),
4847 timeslice_start(getTimeOfFrame(__frame_index))
4859 JDAQChronometer(const int __detector_id,
4861 const int __frame_index,
4862 const JDAQUTCExtended& __timeslice_start) :
4863 detector_id(__detector_id),
4865 frame_index(__frame_index),
4866 timeslice_start(__timeslice_start)
4873 virtual ~JDAQChronometer()
4882 const JDAQChronometer& getDAQChronometer() const
4884 return static_cast<const JDAQChronometer&>(*this);
4893 void setDAQChronometer(const JDAQChronometer& chronometer)
4895 static_cast<JDAQChronometer&>(*this) = chronometer;
4904 int getDetectorID() const
4915 int getRunNumber() const
4926 int getFrameIndex() const
4938 JDAQUTCExtended getTimesliceStart() const
4940 return timeslice_start;
4949 void setRunNumber(const int run)
4960 void setFrameIndex(const int frame_index)
4962 this->frame_index = frame_index;
4971 void setTimesliceStart(const JDAQUTCExtended& timeslice_start)
4973 this->timeslice_start = timeslice_start;
4977 ClassDef(JDAQChronometer,3);
4984 JDAQUTCExtended timeslice_start;
4995 inline std::ostream& operator<<(std::ostream& out, const JDAQChronometer& chronometer)
4997 using namespace std;
4999 out << setw(8) << chronometer.getDetectorID();
5001 out << setw(8) << chronometer.getRunNumber();
5003 out << setw(8) << chronometer.getFrameIndex();
5005 out << chronometer.getTimesliceStart();
5017 inline double getTimeOfRTS(const JDAQChronometer& chronometer)
5019 return getTimeOfRTS(chronometer.getFrameIndex());
5030 inline bool operator==(const JDAQChronometer& first,
5031 const JDAQChronometer& second)
5033 return (first.getDetectorID() == second.getDetectorID() &&
5034 first.getRunNumber() == second.getRunNumber() &&
5035 first.getFrameIndex() == second.getFrameIndex() &&
5036 first.getTimesliceStart() == second.getTimesliceStart());
5047 inline bool operator!=(const JDAQChronometer& first,
5048 const JDAQChronometer& second)
5050 return !(first == second);
5061 inline double getTimeDifference(const JDAQChronometer& first, const JDAQChronometer& second)
5063 return getTimeDifference(first.getTimesliceStart(), second.getTimesliceStart());
5068#ifndef __JDAQCLOCK__
5069#define __JDAQCLOCK__
5076#include "km3net-dataformat/online/JDAQException.hh"
5083namespace KM3NETDAQ {
5086 static double FRAME_TIME_NS = 100000000.0; //!< Frame time [ns]
5087 static double RESET_TIME_NS = FRAME_TIME_NS; //!< TDC dynamic range [ns]
5099 enum JDAQClock_t { KM3NET = 1, PPM_DU = 3, ANTARES = 101 };
5107 JDAQClock(const JDAQClock_t clock = KM3NET)
5109 this->clock = clock;
5120 JDAQClock_t get() const
5131 void set(const JDAQClock_t clock)
5133 this->clock = clock;
5144 switch (this->clock) {
5147 FRAME_TIME_NS = 100000000.0;
5148 RESET_TIME_NS = FRAME_TIME_NS;
5152 FRAME_TIME_NS = (1<<27);
5153 RESET_TIME_NS = FRAME_TIME_NS;
5157 FRAME_TIME_NS = 13107200.0 * 8;
5158 RESET_TIME_NS = 419430400.0;
5162 throw JDAQException("Undefined clock.");
5174 friend inline std::istream& operator>>(std::istream& in, JDAQClock& clock)
5176 using namespace std;
5183 clock.set((JDAQClock_t) clk);
5185 catch(const std::exception& error) {
5186 in.setstate(ios_base::badbit);
5200 friend inline std::ostream& operator<<(std::ostream& out, const JDAQClock& clock)
5202 return out << clock.clock;
5218 inline bool operator==(const JDAQClock& first, const JDAQClock& second)
5220 return first.get() == second.get();
5229 inline double getFrameTime()
5231 return FRAME_TIME_NS;
5240 inline double getRTS()
5242 return RESET_TIME_NS;
5252 inline double getTimeOfFrame(const int frame_index)
5254 if (frame_index != 0)
5255 return (double) (frame_index - 1) * FRAME_TIME_NS;
5267 inline double getTimeOfFrame(const unsigned int frame_index)
5269 if (frame_index != 0)
5270 return (double) (frame_index - 1) * FRAME_TIME_NS;
5282 inline double getTimeOfRTS(const double t_ns)
5284 return std::floor(t_ns/RESET_TIME_NS) * RESET_TIME_NS;
5294 inline double getTimeOfRTS(const int frame_index)
5296 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5306 inline double getTimeOfRTS(const unsigned int frame_index)
5308 return std::floor(getTimeOfFrame(frame_index)/RESET_TIME_NS) * RESET_TIME_NS;
5318 inline int getFrameIndex(const double t_ns)
5320 return (int) (t_ns / FRAME_TIME_NS) + 1;
5330 inline double getTimeSinceRTS(const int frame_index)
5332 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5342 inline double getTimeSinceRTS(const unsigned int frame_index)
5344 return std::fmod(getTimeOfFrame(frame_index), RESET_TIME_NS);
5354 inline double getTimeSinceRTS(const double& t_ns)
5356 return std::fmod(t_ns, RESET_TIME_NS);
5364 inline void setClock()
5366 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::ANTARES);
5369 using KM3NETDAQ::getFrameTime;
5370 using KM3NETDAQ::getRTS;
5371 using KM3NETDAQ::getTimeOfFrame;
5372 using KM3NETDAQ::getTimeOfRTS;
5373 using KM3NETDAQ::getFrameIndex;
5374 using KM3NETDAQ::getTimeSinceRTS;
5381 inline void setClock()
5383 KM3NETDAQ::JDAQClock clock(KM3NETDAQ::JDAQClock::KM3NET);
5386 using KM3NETDAQ::getFrameTime;
5387 using KM3NETDAQ::getRTS;
5388 using KM3NETDAQ::getTimeOfFrame;
5389 using KM3NETDAQ::getTimeOfRTS;
5390 using KM3NETDAQ::getFrameIndex;
5391 using KM3NETDAQ::getTimeSinceRTS;
5395#ifndef __JDAQDATATYPES__
5396#define __JDAQDATATYPES__
5398#include "km3net-dataformat/definitions/daqdatatypes.hh"
5404namespace KM3NETDAQ {
5412 typedef T data_type;
5421 inline int getDataType()
5423 return getDataType(JDAQType<T>());
5435 inline int getDataType(const JDAQType<T>& type);
5438 class JDAQSuperFrame;
5439 class JDAQSummaryFrame;
5440 class JDAQTimeslice;
5441 struct JDAQTimesliceL0;
5442 struct JDAQTimesliceL1;
5443 struct JDAQTimesliceL2;
5444 struct JDAQTimesliceSN;
5445 class JDAQSummaryslice;
5449 inline int getDataType(const JDAQType<JDAQSuperFrame>&) { return DAQSUPERFRAME; }
5450 inline int getDataType(const JDAQType<JDAQSummaryFrame>&) { return DAQSUMMARYFRAME; }
5451 inline int getDataType(const JDAQType<JDAQTimeslice>&) { return DAQTIMESLICE; }
5452 inline int getDataType(const JDAQType<JDAQTimesliceL0>&) { return DAQTIMESLICEL0; }
5453 inline int getDataType(const JDAQType<JDAQTimesliceL1>&) { return DAQTIMESLICEL1; }
5454 inline int getDataType(const JDAQType<JDAQTimesliceL2>&) { return DAQTIMESLICEL2; }
5455 inline int getDataType(const JDAQType<JDAQTimesliceSN>&) { return DAQTIMESLICESN; }
5456 inline int getDataType(const JDAQType<JDAQSummaryslice>&) { return DAQSUMMARYSLICE; }
5457 inline int getDataType(const JDAQType<JDAQEvent>&) { return DAQEVENT; }
5461#ifndef __JDAQEVENT__
5462#define __JDAQEVENT__
5468#include "km3net-dataformat/online/JDAQRoot.hh"
5469#include "km3net-dataformat/online/JDAQPreamble.hh"
5470#include "km3net-dataformat/online/JDAQEventHeader.hh"
5471#include "km3net-dataformat/online/JDAQHit.hh"
5472#include "km3net-dataformat/online/JDAQKeyHit.hh"
5473#include "km3net-dataformat/online/JDAQTriggeredHit.hh"
5474#include "km3net-dataformat/online/JDAQPrint.hh"
5481namespace KM3NETDAQ {
5484 typedef JDAQKeyHit JDAQSnapshotHit;
5491 public JDAQPreamble,
5492 public JDAQEventHeader
5496 using JDAQTriggerMask::getTriggerMask;
5498 friend size_t getSizeof(const JDAQEvent&);
5499 friend JReader& operator>>(JReader&, JDAQEvent&);
5500 friend JWriter& operator<<(JWriter&, const JDAQEvent&);
5506 JDAQPreamble(JDAQType<JDAQEvent>()),
5516 JDAQEvent(const JDAQEventHeader& header) :
5517 JDAQPreamble(JDAQType<JDAQEvent>()),
5518 JDAQEventHeader(header)
5526 class const_iterator :
5527 public std::vector<T>::const_iterator
5534 std::vector<T>::const_iterator()
5543 const_iterator(const typename std::vector<T>::const_iterator& i) :
5544 std::vector<T>::const_iterator(i)
5553 class const_reverse_iterator :
5554 public std::vector<T>::const_reverse_iterator
5560 const_reverse_iterator() :
5561 std::vector<T>::const_reverse_iterator()
5570 const_reverse_iterator(const typename std::vector<T>::const_reverse_iterator& i) :
5571 std::vector<T>::const_reverse_iterator(i)
5582 const std::vector<T>& getHits() const;
5591 std::vector<T>& getHits();
5600 const_iterator<T> begin() const;
5609 const_iterator<T> end() const;
5618 const_reverse_iterator<T> rbegin() const;
5627 const_reverse_iterator<T> rend() const;
5636 unsigned int size() const;
5653 snapshotHits .clear();
5654 triggeredHits.clear();
5663 void push_back(const JDAQKeyHit& hit)
5665 snapshotHits.push_back(hit);
5674 void push_back(const JDAQTriggeredHit& hit)
5676 triggeredHits.push_back(hit);
5686 static JTriggerMask_t getTriggerMask(const JDAQTriggeredHit& hit)
5688 return hit.getTriggerMask();
5698 JTriggerMask_t getTriggerMask(const JDAQSnapshotHit& hit) const
5700 for (std::vector<JDAQTriggeredHit>::const_iterator i = triggeredHits.begin(); i != triggeredHits.end(); ++i) {
5702 return i->getTriggerMask();
5706 return JTriggerMask_t(0);
5717 std::ostream& print(std::ostream& out, const bool lpr = false) const;
5720 ClassDef(JDAQEvent,4);
5724 std::vector<JDAQTriggeredHit> triggeredHits;
5725 std::vector<JDAQSnapshotHit> snapshotHits;
5736 bool operator==(const JDAQEvent& first,
5737 const JDAQEvent& second);
5747 inline bool operator!=(const JDAQEvent& first,
5748 const JDAQEvent& second)
5750 return !(first == second);
5761 inline std::ostream& operator<<(std::ostream& out, const JDAQEvent& event)
5763 return event.print(out, getDAQLongprint());
5774 inline double getTimeDifference(const JDAQEvent& first, const JDAQEvent& second);
5778#ifndef __JDAQEVENTHEADER__
5779#define __JDAQEVENTHEADER__
5781#include "km3net-dataformat/online/JDAQRoot.hh"
5782#include "km3net-dataformat/online/JDAQHeader.hh"
5783#include "km3net-dataformat/online/JDAQTriggerCounter.hh"
5784#include "km3net-dataformat/online/JDAQTriggerMask.hh"
5791namespace KM3NETDAQ {
5796 class JDAQEventHeader :
5798 public JDAQTriggerCounter,
5799 public JDAQTriggerMask
5803 friend size_t getSizeof<JDAQEventHeader>();
5804 friend JReader& operator>>(JReader&, JDAQEventHeader&);
5805 friend JWriter& operator<<(JWriter&, const JDAQEventHeader&);
5812 JDAQTriggerCounter(),
5823 const JDAQEventHeader& getDAQEventHeader() const
5825 return static_cast<const JDAQEventHeader&>(*this);
5835 inline bool is_same(const JDAQEventHeader& header) const
5837 return (this->getDetectorID() == header.getDetectorID() &&
5838 this->getRunNumber() == header.getRunNumber() &&
5839 this->getFrameIndex() == header.getFrameIndex() &&
5840 this->getCounter() == header.getCounter());
5849 unsigned int getOverlays() const
5855 ClassDef(JDAQEventHeader,3);
5859 unsigned int overlays;
5870 inline bool operator==(const JDAQEventHeader& first,
5871 const JDAQEventHeader& second)
5873 return (first.getDAQHeader() == second.getDAQHeader() &&
5874 first.getDAQTriggerCounter() == second.getDAQTriggerCounter() &&
5875 first.getDAQTriggerMask() == second.getDAQTriggerMask());
5886 inline bool operator!=(const JDAQEventHeader& first,
5887 const JDAQEventHeader& second)
5889 return !(first == second);
5894#ifndef __JDAQEXCEPTION__
5895#define __JDAQEXCEPTION__
5905namespace KM3NETDAQ {
5911 class JDAQException : public std::exception {
5918 JDAQException(const std::string& error) :
5927 ~JDAQException() throw()
5936 virtual const char* what() const throw()
5938 return buffer.c_str();
5948 friend inline std::ostream& operator<<(std::ostream& out, const JDAQException& exception)
5950 return out << exception.what();
5954 const std::string buffer;
5959#ifndef __JDAQFRAME__
5960#define __JDAQFRAME__
5968#include "km3net-dataformat/online/JDAQHit.hh"
5969#include "km3net-dataformat/online/JDAQRoot.hh"
5970#include "km3net-dataformat/online/JDAQException.hh"
5976namespace KM3NETDAQ {
5981 class JDAQFrameSubset
5985 typedef const JDAQHit* const_iterator;
5986 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
5995 JDAQFrameSubset(const int number_of_hits, const JDAQHit* data) :
5996 numberOfHits(number_of_hits),
6001 const_iterator begin() const { return buffer; }
6002 const_iterator end() const { return buffer + numberOfHits; }
6004 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
6005 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
6007 bool empty() const { return numberOfHits == 0; }
6009 int size() const { return numberOfHits; }
6011 const JDAQHit* data() const { return buffer; }
6015 const int numberOfHits;
6016 const JDAQHit* buffer;
6027 typedef const JDAQHit* const_iterator;
6028 typedef JDAQHit* iterator;
6029 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
6030 typedef std::reverse_iterator<iterator> reverse_iterator;
6032 friend size_t getSizeof(const JDAQFrame&);
6033 friend JReader& operator>>(JReader&, JDAQFrame&);
6034 friend JWriter& operator<<(JWriter&, const JDAQFrame&);
6050 JDAQFrame(const JDAQFrame& frame) :
6063 JDAQFrame(JDAQFrame&& frame) :
6064 numberOfHits(frame.numberOfHits),
6065 buffer (frame.buffer)
6067 frame.numberOfHits = 0;
6068 frame.buffer = NULL;
6078 JDAQFrame(const int number_of_hits, const JDAQHit* data) :
6082 add(number_of_hits, data);
6089 virtual ~JDAQFrame()
6101 JDAQFrame& operator=(const JDAQFrame& frame)
6114 if (buffer != NULL) {
6123 const_iterator begin() const { return buffer; }
6124 const_iterator end() const { return buffer + numberOfHits; }
6127 iterator begin() { return buffer; }
6128 iterator end() { return buffer + numberOfHits; }
6131 const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
6132 const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
6135 reverse_iterator rbegin() { return reverse_iterator(end()); }
6136 reverse_iterator rend() { return reverse_iterator(begin()); }
6139 bool empty() const { return numberOfHits == 0; }
6141 int size() const { return numberOfHits; }
6143 const JDAQHit* data() const { return buffer; }
6144 JDAQHit* data() { return buffer; }
6153 const JDAQHit& operator[](int index) const
6155 return buffer[index];
6165 JDAQFrameSubset subset(const int i1, const int i2) const
6167 return JDAQFrameSubset(i2 - i1, buffer + i1);
6177 JDAQFrame& add(const JDAQFrame& frame)
6179 return add(frame.numberOfHits, frame.buffer);
6190 JDAQFrame& add(const int number_of_hits, const JDAQHit* data)
6192 if (number_of_hits > 0) {
6194 resize(numberOfHits + number_of_hits);
6196 memcpy(buffer + numberOfHits - number_of_hits, data, number_of_hits * sizeof(JDAQHit));
6208 void swap(JDAQFrame& frame)
6210 std::swap(numberOfHits, frame.numberOfHits);
6211 std::swap(buffer, frame.buffer);
6215 int numberOfHits; // following comment line is used by rootcint
6216 JDAQHit* buffer; // [numberOfHits]
6219 ClassDef(JDAQFrame,1);
6231 void resize(const int number_of_hits)
6233 if (number_of_hits > numberOfHits) {
6235 const int number_of_bytes = number_of_hits * sizeof(JDAQHit);
6238 buffer = (JDAQHit*) malloc(number_of_bytes);
6240 buffer = (JDAQHit*) realloc(buffer, number_of_bytes);
6242 if (buffer == NULL) {
6243 throw JDAQException("JDAQFrame::resize(): Memory exception - number of hits = " + std::to_string(number_of_hits));
6246 numberOfHits = number_of_hits;
6259 inline bool operator==(const JDAQFrame& first,
6260 const JDAQFrame& second)
6262 if (first.size() == second.size()) {
6264 for (JDAQFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
6286 inline bool operator!=(const JDAQFrame& first,
6287 const JDAQFrame& second)
6289 return !(first == second);
6294#ifndef __JDAQFRAMESTATUS__
6295#define __JDAQFRAMESTATUS__
6297#include "km3net-dataformat/online/JDAQ.hh"
6298#include "km3net-dataformat/online/JDAQException.hh"
6299#include "km3net-dataformat/online/JDAQRoot.hh"
6305namespace KM3NETDAQ {
6310 class JDAQFrameStatus {
6313 friend size_t getSizeof<JDAQFrameStatus>();
6314 friend JReader& operator>>(JReader&, JDAQFrameStatus&);
6315 friend JWriter& operator<<(JWriter&, const JDAQFrameStatus&);
6338 JDAQFrameStatus(const int __daq,
6341 const int __status_3 = 0,
6342 const int __status_4 = 0) :
6346 status_3(__status_3),
6347 status_4(__status_4)
6358 static const JDAQFrameStatus& getInstance()
6360 static const JDAQFrameStatus status(DAQ_UDP_RECEIVED_PACKETS.write(2) | DAQ_UDP_SEQUENCE_NUMBER.write(1),
6361 DAQ_WHITE_RABBIT.write(1),
6362 DAQ_FIFO.write(0) | DAQ_UDP_TRAILER.write(1));
6373 const JDAQFrameStatus& getDAQFrameStatus() const
6375 return static_cast<const JDAQFrameStatus&>(*this);
6384 void setDAQFrameStatus(const JDAQFrameStatus& status)
6386 static_cast<JDAQFrameStatus&>(*this) = status;
6395 int getDAQStatus() const
6406 int getStatus() const
6408 return this->status;
6417 int getFIFOStatus() const
6428 bool testDAQStatus() const
6430 return (getUDPNumberOfReceivedPackets() == (getUDPMaximalSequenceNumber() + 1)) && hasUDPTrailer();
6439 bool testStatus() const
6441 return testWhiteRabbitStatus() && testTDCStatus();
6450 int getUDPNumberOfReceivedPackets() const
6452 return DAQ_UDP_RECEIVED_PACKETS.read(this->daq);
6461 int getUDPMaximalSequenceNumber() const
6463 return DAQ_UDP_SEQUENCE_NUMBER.read(this->daq);
6472 bool testWhiteRabbitStatus() const
6474 return DAQ_WHITE_RABBIT.has(this->status);
6483 bool testTDCStatus() const
6485 return !testHighRateVeto();
6494 bool testHighRateVeto() const
6496 return DAQ_TDC.has(this->status);
6506 bool testHighRateVeto(const int tdc) const
6508 return JBit(tdc).has(this->status);
6517 int countHighRateVeto() const
6521 if (testHighRateVeto()) {
6522 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6523 if (JBit(pmt).has(this->status)) {
6538 bool testFIFOStatus() const
6540 return DAQ_FIFO.has(this->fifo);
6550 bool testFIFOStatus(const int tdc) const
6552 return JBit(tdc).has(this->fifo);
6561 int countFIFOStatus() const
6565 if (testFIFOStatus()) {
6566 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6567 if (JBit(pmt).has(this->fifo)) {
6580 int countActiveChannels() const
6582 int n = NUMBER_OF_PMTS;
6584 if (testHighRateVeto() || testFIFOStatus()) {
6585 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
6586 if ( JBit(pmt).has(this->status) || JBit(pmt).has(this->fifo) ) {
6602 bool hasUDPTrailer() const
6604 return DAQ_UDP_TRAILER.has(this->fifo);
6614 void setHighRateVeto(const int tdc, const bool value)
6616 JBit(tdc).set(this->status, value);
6620 ClassDefNV(JDAQFrameStatus,1);
6623 int daq; // DAQ status
6624 int status; // TDC status
6625 int fifo; // FIFO status
6626 int status_3; // spare
6627 int status_4; // spare
6638 inline bool operator==(const JDAQFrameStatus& first,
6639 const JDAQFrameStatus& second)
6641 return (first.getDAQStatus() == second.getDAQStatus() &&
6642 first.getStatus() == second.getStatus() &&
6643 first.getFIFOStatus() == second.getFIFOStatus());
6654 inline bool operator!=(const JDAQFrameStatus& first,
6655 const JDAQFrameStatus& second)
6657 return !(first == second);
6662#ifndef __JDAQHEADER__
6663#define __JDAQHEADER__
6665#include "km3net-dataformat/online/JDAQRoot.hh"
6666#include "km3net-dataformat/online/JDAQChronometer.hh"
6673namespace KM3NETDAQ {
6679 public JDAQChronometer
6683 friend size_t getSizeof<JDAQHeader>();
6684 friend JReader& operator>>(JReader&, JDAQHeader&);
6685 friend JWriter& operator<<(JWriter&, const JDAQHeader&);
6700 JDAQHeader(const JDAQChronometer& chronometer) :
6701 JDAQChronometer(chronometer)
6710 const JDAQHeader& getDAQHeader() const
6712 return static_cast<const JDAQHeader&>(*this);
6721 void setDAQHeader(const JDAQHeader& header)
6723 static_cast<JDAQHeader&>(*this) = header;
6727 ClassDef(JDAQHeader,2);
6738 inline bool operator==(const JDAQHeader& first,
6739 const JDAQHeader& second)
6741 return (first.getDAQChronometer() == second.getDAQChronometer());
6752 inline bool operator!=(const JDAQHeader& first,
6753 const JDAQHeader& second)
6755 return !(first == second);
6768#include <netinet/in.h>
6771#include "km3net-dataformat/online/JDAQ.hh"
6772#include "km3net-dataformat/online/JDAQRoot.hh"
6773#include "km3net-dataformat/online/JDAQException.hh"
6780namespace KM3NETDAQ {
6797 typedef unsigned char JPMT_t; //!< PMT channel in FPGA
6798 typedef unsigned int JTDC_t; //!< leading edge [ns]
6799 typedef unsigned char JTOT_t; //!< time over threshold [ns]
6801 friend size_t getSizeof<JDAQHit>();
6802 friend JReader& operator>>(JReader&, JDAQHit&);
6803 friend JWriter& operator<<(JWriter&, const JDAQHit&);
6819 JDAQHit(const JPMT_t pmt_id,
6820 const JTDC_t tdc_ns,
6821 const JTOT_t tot_ns) :
6834 inline JPMT_t getPMT() const
6845 inline JTDC_t getT() const
6856 inline JTOT_t getToT() const
6867 static JTOT_t getMaximalToT()
6880 friend inline std::istream& operator>>(std::istream& in, JDAQHit& hit)
6886 if (in >> pmt >> tdc >> tot) {
6887 hit = JDAQHit(pmt, tdc, tot);
6901 friend inline std::ostream& operator<<(std::ostream& out, const JDAQHit& hit)
6903 using namespace std;
6905 out << setw(2) << (int) hit.getPMT() << ' '
6906 << setw(8) << (int) hit.getT() << ' '
6907 << setw(3) << (int) hit.getToT();
6913 ClassDefNV(JDAQHit,2);
6917 JPMT_t pmt; //!< PMT readout channel in FPGA
6918 JTDC_t tdc; //!< leading edge [ns]
6919 JTOT_t tot; //!< time over threshold [ns]
6933 inline bool operator<(const JDAQHit& first,
6934 const JDAQHit& second)
6936 if (first.getT() != second.getT())
6937 return first.getT() < second.getT();
6939 return first.getPMT() < second.getPMT();
6950 inline bool operator==(const JDAQHit& first,
6951 const JDAQHit& second)
6953 return (first.getPMT() == second.getPMT() &&
6954 first.getT() == second.getT() &&
6955 first.getToT() == second.getToT());
6966 inline bool operator!=(const JDAQHit& first,
6967 const JDAQHit& second)
6969 return !(first == second);
6974#ifndef __JDAQKEYHIT__
6975#define __JDAQKEYHIT__
6977#include "km3net-dataformat/online/JDAQRoot.hh"
6978#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
6979#include "km3net-dataformat/online/JDAQHit.hh"
6980#include "km3net-dataformat/online/JDAQPMTIdentifier.hh"
6987namespace KM3NETDAQ {
6993 public JDAQModuleIdentifier,
6998 friend size_t getSizeof<JDAQKeyHit>();
6999 friend JReader& operator>>(JReader&, JDAQKeyHit&);
7000 friend JWriter& operator<<(JWriter&, const JDAQKeyHit&);
7006 JDAQModuleIdentifier(),
7017 JDAQKeyHit(const JDAQModuleIdentifier& id,
7018 const JDAQHit& hit) :
7019 JDAQModuleIdentifier(id),
7027 virtual ~JDAQKeyHit()
7036 operator JDAQPMTIdentifier () const
7038 return JDAQPMTIdentifier(this->getModuleID(), this->getPMT());
7042 ClassDef(JDAQKeyHit,1);
7056 inline bool operator<(const JDAQKeyHit& first,
7057 const JDAQKeyHit& second)
7059 if (first.getModuleID() == second.getModuleID()) {
7060 if (first.getPMT() == second.getPMT())
7061 return first.getT() < second.getT();
7063 return first.getPMT() < second.getPMT();
7065 return first.getModuleID() < second.getModuleID();
7079 inline bool operator==(const JDAQKeyHit& first,
7080 const JDAQKeyHit& second)
7082 return (first.getModuleID() == second.getModuleID() &&
7083 first.getPMT() == second.getPMT() &&
7084 first.getT() == second.getT());
7095 inline bool operator!=(const JDAQKeyHit& first,
7096 const JDAQKeyHit& second)
7098 return !(first == second);
7103#ifndef __JDAQMODULEIDENTIFIER__
7104#define __JDAQMODULEIDENTIFIER__
7109#include "km3net-dataformat/online/JDAQRoot.hh"
7116namespace KM3NETDAQ {
7121 class JDAQModuleIdentifier
7125 friend size_t getSizeof<JDAQModuleIdentifier>();
7126 friend JReader& operator>>(JReader&, JDAQModuleIdentifier&);
7127 friend JWriter& operator<<(JWriter&, const JDAQModuleIdentifier&);
7132 JDAQModuleIdentifier() :
7142 JDAQModuleIdentifier(const int __id) :
7152 const JDAQModuleIdentifier& getModuleIdentifier() const
7163 void setModuleIdentifier(const JDAQModuleIdentifier& module)
7174 int getModuleID() const
7187 friend inline std::istream& operator>>(std::istream& in, JDAQModuleIdentifier& module)
7202 friend inline std::ostream& operator<<(std::ostream& out, const JDAQModuleIdentifier& module)
7210 ClassDefNV(JDAQModuleIdentifier,1);
7225 inline bool operator==(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7227 return first.getModuleID() == second.getModuleID();
7238 inline bool operator!=(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7240 return first.getModuleID() != second.getModuleID();
7251 inline bool operator==(const JDAQModuleIdentifier& module, const int id)
7253 return module.getModuleID() == id;
7264 inline bool operator!=(const JDAQModuleIdentifier& module, const int id)
7266 return module.getModuleID() != id;
7277 inline bool operator<(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second)
7279 return first.getModuleID() < second.getModuleID();
7290 inline bool operator<(const JDAQModuleIdentifier& module, const int id)
7292 return module.getModuleID() < id;
7299 struct JDAQModuleComparator {
7301 * Default constructor.
7303 JDAQModuleComparator()
7314 bool operator()(const JDAQModuleIdentifier& first, const JDAQModuleIdentifier& second) const
7316 return first.getModuleID() < second.getModuleID();
7322#ifndef __JDAQPMTIDENTIFIER__
7323#define __JDAQPMTIDENTIFIER__
7328#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7329#include "km3net-dataformat/online/JDAQRoot.hh"
7336namespace KM3NETDAQ {
7341 class JDAQPMTIdentifier :
7342 public JDAQModuleIdentifier
7346 friend size_t getSizeof<JDAQPMTIdentifier>();
7347 friend JReader& operator>>(JReader&, JDAQPMTIdentifier&);
7348 friend JWriter& operator<<(JWriter&, const JDAQPMTIdentifier&);
7353 JDAQPMTIdentifier() :
7354 JDAQModuleIdentifier(),
7365 JDAQPMTIdentifier(const JDAQModuleIdentifier& id,
7366 const int pmt_address) :
7367 JDAQModuleIdentifier(id),
7368 address (pmt_address)
7377 const JDAQPMTIdentifier& getPMTIdentifier() const
7388 void setPMTIdentifier(const JDAQPMTIdentifier& pmt)
7399 int getPMTAddress() const
7412 friend inline std::istream& operator>>(std::istream& in, JDAQPMTIdentifier& pmt)
7414 in >> static_cast<JDAQModuleIdentifier&>(pmt);
7428 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPMTIdentifier& pmt)
7430 out << static_cast<const JDAQModuleIdentifier&>(pmt) << ' ';
7447 static inline bool compare(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7449 return ((first .getModuleIdentifier() == second.getModuleIdentifier() ||
7450 first .getModuleIdentifier() == -1 ||
7451 second.getModuleIdentifier() == -1) &&
7452 (first .getPMTAddress() == second.getPMTAddress() ||
7453 first .getPMTAddress() == -1 ||
7454 second.getPMTAddress() == -1));
7458 ClassDefNV(JDAQPMTIdentifier,1);
7475 inline bool operator<(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7477 if (first.getModuleIdentifier() == second.getModuleIdentifier())
7478 return first.getPMTAddress() < second.getPMTAddress();
7480 return first.getModuleIdentifier() < second.getModuleIdentifier();
7493 inline bool operator==(const JDAQPMTIdentifier& first, const JDAQPMTIdentifier& second)
7495 return (first.getModuleIdentifier() == second.getModuleIdentifier() &&
7496 first.getPMTAddress() == second.getPMTAddress());
7507 inline bool operator!=(const JDAQPMTIdentifier& first,
7508 const JDAQPMTIdentifier& second)
7510 return !(first == second);
7515#ifndef __JDAQPREAMBLE__
7516#define __JDAQPREAMBLE__
7521#include "km3net-dataformat/online/JDAQRoot.hh"
7522#include "km3net-dataformat/online/JDAQDataTypes.hh"
7523#include "km3net-dataformat/online/JDAQAbstractPreamble.hh"
7530namespace KM3NETDAQ {
7540 class JDAQPreamble :
7541 public JDAQAbstractPreamble,
7552 JDAQPreamble(const JDAQType<T>& type) :
7553 JDAQAbstractPreamble(type)
7558 friend size_t getSizeof<JDAQPreamble>();
7559 friend JReader& operator>>(JReader&, JDAQPreamble&);
7560 friend JWriter& operator<<(JWriter&, const JDAQPreamble&);
7566 JDAQAbstractPreamble()
7573 virtual ~JDAQPreamble()
7590 static JDAQPreamble getDAQPreamble(const T& object)
7592 static JDAQPreamble preamble;
7594 preamble.length = getSizeof(object);
7595 preamble.type = KM3NETDAQ::getDataType<T>();
7608 friend inline std::ostream& operator<<(std::ostream& out, const JDAQPreamble& preamble)
7610 using namespace std;
7612 out << setw(8) << preamble.length;
7614 out << setw(6) << preamble.type;
7620 ClassDef(JDAQPreamble,1);
7625#ifndef __JDAQPRINT__
7626#define __JDAQPRINT__
7632namespace KM3NETDAQ {
7639 inline bool& getDAQLongprint()
7652 inline void setDAQLongprint(const bool option)
7654 getDAQLongprint() = option;
7665#include "km3net-dataformat/online/JDAQException.hh"
7673 class JReader; // forward declaration for friend
7674 class JWriter; // forward declaration for friend
7677namespace KM3NETDAQ {
7687 inline size_t getSizeof();
7697using namespace KM3NETDAQ;
7700#ifndef __JDAQSUMMARYFRAME__
7701#define __JDAQSUMMARYFRAME__
7707#include "km3net-dataformat/online/JDAQException.hh"
7708#include "km3net-dataformat/online/JDAQ.hh"
7709#include "km3net-dataformat/online/JDAQClock.hh"
7710#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
7711#include "km3net-dataformat/online/JDAQFrameStatus.hh"
7712#include "km3net-dataformat/online/JDAQSuperFrame.hh"
7719namespace KM3NETDAQ {
7725 class JDAQSummaryFrame;
7738 friend class JDAQSummaryFrame;
7741 typedef unsigned char JRate_t; // type of value to store rate
7749 static double getMinimalRate()
7760 static double getMaximalRate()
7773 static JRate_t getValue(const int numberOfHits, const double frameTime_ns)
7775 return getValue(numberOfHits * 1.0e9 / frameTime_ns);
7785 static JRate_t getValue(const double rate_Hz)
7787 if (rate_Hz <= getMinimalRate())
7789 else if (rate_Hz >= getMaximalRate())
7790 return std::numeric_limits<JRate_t>::max();
7792 return (JRate_t) (log(rate_Hz/getMinimalRate()) / getFactor() + 0.5);
7802 static double getRate(const JRate_t value)
7807 return get_rate(value);
7817 static double getWeight(const JRate_t value)
7822 W = get_rate(0.5) - getMinimalRate();
7823 else if (value == std::numeric_limits<JRate_t>::max())
7824 W = getMaximalRate() - get_rate(std::numeric_limits<JRate_t>::max() - 0.5);
7826 W = get_rate((double) value + 0.5) - get_rate((double) value - 0.5);
7839 return (int) std::numeric_limits<JRate_t>::max() + 1;
7849 static const double* getData(const double factor = 1.0)
7851 static std::vector<double> buffer;
7855 buffer.push_back(getMinimalRate() * factor);
7857 for (int i = 1; i != JDAQRate::getN(); ++i) {
7858 buffer.push_back(get_rate(i - 0.5) * factor);
7861 buffer.push_back(getMaximalRate() * factor);
7863 return buffer.data();
7880 JRate_t getValue() const
7892 void setValue(const int numberOfHits, const double frameTime_ns)
7894 value = getValue(numberOfHits, frameTime_ns);
7903 void setValue(const double rate_Hz)
7905 value = getValue(rate_Hz);
7914 double getRate() const
7916 return getRate(value);
7925 double getWeight() const
7927 return getWeight(value);
7937 JDAQRate& mul(const double factor)
7939 setValue(getRate() * factor);
7951 JDAQRate& div(const double factor)
7953 setValue(getRate() / factor);
7965 bool is_valid() const
7967 return (value != 0 && value != std::numeric_limits<JRate_t>::max());
7981 static const double getFactor()
7983 return std::log(getMaximalRate() / getMinimalRate()) / std::numeric_limits<JRate_t>::max();
7993 static double get_rate(const double value)
7995 return getMinimalRate() * std::exp(value * getFactor());
8007 inline bool operator==(const JDAQRate& first,
8008 const JDAQRate& second)
8010 return (first.getValue() == second.getValue());
8021 inline bool operator!=(const JDAQRate& first,
8022 const JDAQRate& second)
8024 return (first.getValue() != second.getValue());
8031 class JDAQSummaryFrame :
8032 public JDAQModuleIdentifier,
8033 public JDAQFrameStatus
8037 typedef JDAQRate::JRate_t JRate_t;
8039 friend size_t getSizeof<JDAQSummaryFrame>();
8040 friend JReader& operator>>(JReader&, JDAQSummaryFrame&);
8041 friend JWriter& operator<<(JWriter&, const JDAQSummaryFrame&);
8046 JDAQSummaryFrame() :
8047 JDAQModuleIdentifier(),
8057 JDAQSummaryFrame(const JDAQModuleIdentifier& id) :
8058 JDAQModuleIdentifier(id),
8059 JDAQFrameStatus(JDAQFrameStatus::getInstance())
8072 JDAQSummaryFrame(const JDAQSuperFrame& input) :
8073 JDAQModuleIdentifier(input.getModuleID()),
8074 JDAQFrameStatus (input.getDAQFrameStatus())
8076 using namespace std;
8078 typedef JDAQHit::JPMT_t JPMT_t;
8079 typedef JDAQHit::JTDC_t JTDC_t;
8081 vector<int> counter(numeric_limits<JPMT_t>::max(), 0);
8083 int n = input.size();
8085 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8086 ++counter[i->getPMT()];
8089 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8090 data[i].setValue(counter[i], getFrameTime());
8093 if (input.testHighRateVeto() || input.testFIFOStatus()) {
8095 // determine last hit for each PMT
8097 vector<JTDC_t> limit(numeric_limits<JPMT_t>::max(), 0);
8099 int n = input.size();
8101 for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
8102 if (i->getT() > limit[i->getPMT()]) {
8103 limit[i->getPMT()] = i->getT();
8107 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8108 if (input.testHighRateVeto(i) || input.testFIFOStatus(i)) {
8109 if (limit[i] != 0) {
8110 data[i].setValue((double) counter[i] * 1.0e9 / (double) limit[i]);
8124 const JDAQRate& operator[](const int tdc) const
8126 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8129 throw JDAQException("TDC out of range.");
8139 JDAQRate& operator[](const int tdc)
8141 if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
8144 throw JDAQException("TDC out of range.");
8154 JRate_t getValue(const int tdc) const
8156 return data[tdc].getValue();
8167 double getRate(const int tdc, const double factor = 1.0) const
8169 return data[tdc].getRate() * factor;
8180 double getWeight(const int tdc, const double factor = 1.0) const
8182 return data[tdc].getWeight() / factor;
8192 void setRate(const int tdc, const double rate_Hz)
8194 return data[tdc].setValue(rate_Hz);
8198 static int ROOT_IO_VERSION; //!< Streamer version of JDAQSummaryslice as obtained from ROOT file.
8201 ClassDefNV(JDAQSummaryFrame,2);
8206 JDAQRate data[NUMBER_OF_PMTS];
8217 inline bool operator==(const JDAQSummaryFrame& first,
8218 const JDAQSummaryFrame& second)
8220 if (first.getModuleIdentifier() == second.getModuleIdentifier() &&
8221 first.getDAQFrameStatus() == second.getDAQFrameStatus()) {
8223 for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
8224 if (first[i] != second[i]) {
8245 inline bool operator!=(const JDAQSummaryFrame& first,
8246 const JDAQSummaryFrame& second)
8248 return !(first == second);
8253#ifndef __JDAQSUMMARYSLICE__
8254#define __JDAQSUMMARYSLICE__
8260#include "km3net-dataformat/online/JDAQRoot.hh"
8261#include "km3net-dataformat/online/JDAQPreamble.hh"
8262#include "km3net-dataformat/online/JDAQSummaryFrame.hh"
8263#include "km3net-dataformat/online/JDAQSummarysliceHeader.hh"
8264#include "km3net-dataformat/online/JDAQTimeslice.hh"
8265#include "km3net-dataformat/online/JDAQClock.hh"
8272namespace KM3NETDAQ {
8277 class JDAQSummaryslice :
8278 public JDAQPreamble,
8279 public JDAQSummarysliceHeader,
8280 public std::vector<JDAQSummaryFrame>
8284 friend size_t getSizeof(const JDAQSummaryslice&);
8285 friend JReader& operator>>(JReader&, JDAQSummaryslice&);
8286 friend JWriter& operator<<(JWriter&, const JDAQSummaryslice&);
8291 JDAQSummaryslice() :
8292 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8293 JDAQSummarysliceHeader(),
8294 std::vector<JDAQSummaryFrame>()
8303 JDAQSummaryslice(const JDAQChronometer& chronometer) :
8304 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8305 JDAQSummarysliceHeader(chronometer),
8306 std::vector<JDAQSummaryFrame>()
8315 JDAQSummaryslice(const JDAQTimeslice& timeslice) :
8316 JDAQPreamble(JDAQType<JDAQSummaryslice>()),
8317 JDAQSummarysliceHeader(timeslice),
8318 std::vector<JDAQSummaryFrame>()
8320 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8321 this->push_back(JDAQSummaryFrame(*i));
8329 virtual ~JDAQSummaryslice()
8340 std::ostream& print(std::ostream& out, const bool lpr = false) const
8342 using namespace std;
8344 out << this->ClassName() << endl;
8345 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8346 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8348 for (JDAQSummaryslice::const_iterator module = this->begin(); module != this->end(); ++module) {
8350 out << ' ' << setw(10) << module->getModuleID();
8351 out << ' ' << setw(8) << setfill('0') << hex << module->getStatus() << dec << setfill(' ');
8352 out << '|' << setw(8) << setfill('0') << hex << module->getFIFOStatus() << dec << setfill(' ');
8353 out << ' ' << setw(2) << module->getUDPNumberOfReceivedPackets();
8354 out << ' ' << setw(2) << module->getUDPMaximalSequenceNumber();
8357 for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
8358 out << ' ' << fixed << showpoint << setw(4) << setprecision(1) << module->getRate(pmt) * 1.0e-3;
8374 static void actionAtFileOpen(int version)
8376 JDAQSummaryFrame::ROOT_IO_VERSION = version;
8380 ClassDef(JDAQSummaryslice,6);
8391 inline std::ostream& operator<<(std::ostream& out, const KM3NETDAQ::JDAQSummaryslice& summary)
8393 return summary.print(out, getDAQLongprint());
8404 inline bool operator==(const JDAQSummaryslice& first,
8405 const JDAQSummaryslice& second)
8407 return (first.getDAQSummarysliceHeader() == second.getDAQSummarysliceHeader() &&
8408 static_cast<const std::vector<JDAQSummaryFrame>&>(first) == static_cast<const std::vector<JDAQSummaryFrame>&>(second));
8419 inline bool operator!=(const JDAQSummaryslice& first,
8420 const JDAQSummaryslice& second)
8422 return !(first == second);
8427#ifndef __JDAQSUMMARYSLICEHEADER__
8428#define __JDAQSUMMARYSLICEHEADER__
8430#include "km3net-dataformat/online/JDAQRoot.hh"
8431#include "km3net-dataformat/online/JDAQHeader.hh"
8438namespace KM3NETDAQ {
8443 class JDAQSummarysliceHeader :
8450 JDAQSummarysliceHeader() :
8460 JDAQSummarysliceHeader(const JDAQChronometer& chronometer) :
8461 JDAQHeader(chronometer)
8470 const JDAQSummarysliceHeader& getDAQSummarysliceHeader() const
8472 return static_cast<const JDAQSummarysliceHeader&>(*this);
8476 ClassDef(JDAQSummarysliceHeader,2);
8487 inline bool operator==(const JDAQSummarysliceHeader& first,
8488 const JDAQSummarysliceHeader& second)
8490 return (first.getDAQHeader() == second.getDAQHeader());
8501 inline bool operator!=(const JDAQSummarysliceHeader& first,
8502 const JDAQSummarysliceHeader& second)
8504 return !(first == second);
8509#ifndef __JDAQSUPERFRAME__
8510#define __JDAQSUPERFRAME__
8512#include "km3net-dataformat/online/JDAQ.hh"
8513#include "km3net-dataformat/online/JDAQPreamble.hh"
8514#include "km3net-dataformat/online/JDAQSuperFrameHeader.hh"
8515#include "km3net-dataformat/online/JDAQFrame.hh"
8516#include "km3net-dataformat/online/JDAQHit.hh"
8517#include "km3net-dataformat/online/JDAQRoot.hh"
8518#include "km3net-dataformat/online/JDAQException.hh"
8525namespace KM3NETDAQ {
8530 class JDAQSuperFrame :
8531 public JDAQPreamble,
8532 public JDAQSuperFrameHeader,
8537 typedef JDAQFrame::const_iterator const_iterator;
8538 typedef JDAQFrame::iterator iterator;
8539 typedef JDAQFrame::const_reverse_iterator const_reverse_iterator;
8540 typedef JDAQFrame::reverse_iterator reverse_iterator;
8542 friend size_t getSizeof(const JDAQSuperFrame&);
8543 friend JReader& operator>>(JReader&, JDAQSuperFrame&);
8544 friend JWriter& operator<<(JWriter&, const JDAQSuperFrame&);
8550 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8551 JDAQSuperFrameHeader(),
8561 JDAQSuperFrame(const JDAQSuperFrameHeader& header) :
8562 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8563 JDAQSuperFrameHeader(header),
8573 JDAQSuperFrame(const JDAQSuperFrame& super_frame) :
8574 JDAQPreamble(JDAQType<JDAQSuperFrame>()),
8575 JDAQSuperFrameHeader(super_frame.getDAQSuperFrameHeader()),
8576 JDAQFrame(super_frame)
8586 JDAQSuperFrame& add(const JDAQSuperFrame& super_frame)
8588 if (this->getModuleID() != super_frame.getModuleID())
8589 throw JDAQException("JDAQSuperFrame::add(): Different module identifiers.");
8591 return add(static_cast<const JDAQFrame&>(super_frame));
8601 JDAQSuperFrame& add(const JDAQHit& hit)
8603 return add(1, &hit);
8613 JDAQSuperFrame& add(const JDAQFrame& frame)
8615 return add(frame.numberOfHits, frame.buffer);
8626 JDAQSuperFrame& add(const int number_of_hits, const JDAQHit* data)
8628 JDAQFrame::add(number_of_hits, data);
8634 ClassDef(JDAQSuperFrame,3);
8645 inline bool operator==(const JDAQSuperFrame& first,
8646 const JDAQSuperFrame& second)
8648 if (first.getDAQSuperFrameHeader() == second.getDAQSuperFrameHeader() &&
8649 first.size() == second.size()) {
8651 for (JDAQSuperFrame::const_iterator p = first.begin(), q = second.begin(); p != first.end(); ++p, ++q) {
8673 inline bool operator!=(const JDAQSuperFrame& first,
8674 const JDAQSuperFrame& second)
8676 return !(first == second);
8681#ifndef __JDAQSUPERFRAMEHEADER__
8682#define __JDAQSUPERFRAMEHEADER__
8684#include "km3net-dataformat/online/JDAQ.hh"
8685#include "km3net-dataformat/online/JDAQHeader.hh"
8686#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
8687#include "km3net-dataformat/online/JDAQFrameStatus.hh"
8688#include "km3net-dataformat/online/JDAQRoot.hh"
8694namespace KM3NETDAQ {
8699 class JDAQSuperFrameHeader :
8701 public JDAQModuleIdentifier,
8702 public JDAQFrameStatus
8706 friend size_t getSizeof<JDAQSuperFrameHeader>();
8707 friend JReader& operator>>(JReader&, JDAQSuperFrameHeader&);
8708 friend JWriter& operator<<(JWriter&, const JDAQSuperFrameHeader&);
8713 JDAQSuperFrameHeader() :
8715 JDAQModuleIdentifier(),
8726 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8728 JDAQHeader (chronometer),
8729 JDAQModuleIdentifier(id),
8730 JDAQFrameStatus (JDAQFrameStatus::getInstance())
8741 JDAQSuperFrameHeader(const JDAQChronometer& chronometer,
8743 const JDAQFrameStatus& status) :
8744 JDAQHeader (chronometer),
8745 JDAQModuleIdentifier(id),
8746 JDAQFrameStatus (status)
8755 const JDAQSuperFrameHeader& getDAQSuperFrameHeader() const
8757 return static_cast<const JDAQSuperFrameHeader&>(*this);
8766 void setDAQSuperFrameHeader(const JDAQSuperFrameHeader& header)
8768 static_cast<JDAQSuperFrameHeader&>(*this) = header;
8772 ClassDef(JDAQSuperFrameHeader,2);
8783 inline bool operator==(const JDAQSuperFrameHeader& first,
8784 const JDAQSuperFrameHeader& second)
8786 return (first.getDAQHeader() == second.getDAQHeader() &&
8787 first.getModuleIdentifier() == second.getModuleIdentifier() &&
8788 first.getDAQFrameStatus() == second.getDAQFrameStatus());
8799 inline bool operator!=(const JDAQSuperFrameHeader& first,
8800 const JDAQSuperFrameHeader& second)
8802 return !(first == second);
8807#ifndef __JDAQTIMESLICE__
8808#define __JDAQTIMESLICE__
8815#include "km3net-dataformat/online/JDAQRoot.hh"
8816#include "km3net-dataformat/online/JDAQPreamble.hh"
8817#include "km3net-dataformat/online/JDAQTimesliceHeader.hh"
8818#include "km3net-dataformat/online/JDAQSuperFrame.hh"
8819#include "km3net-dataformat/online/JDAQException.hh"
8820#include "km3net-dataformat/online/JDAQPrint.hh"
8827namespace KM3NETDAQ {
8830 class JDAQSummaryslice;
8836 class JDAQTimeslice :
8837 public JDAQPreamble,
8838 public JDAQTimesliceHeader,
8839 public std::vector<JDAQSuperFrame>
8843 friend size_t getSizeof(const JDAQTimeslice&);
8844 friend JReader& operator>>(JReader&, JDAQTimeslice&);
8845 friend JWriter& operator<<(JWriter&, const JDAQTimeslice&);
8851 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8852 JDAQTimesliceHeader(),
8853 std::vector<JDAQSuperFrame>()
8862 JDAQTimeslice(const JDAQChronometer& chronometer) :
8863 JDAQPreamble(JDAQType<JDAQTimeslice>()),
8864 JDAQTimesliceHeader(chronometer),
8865 std::vector<JDAQSuperFrame>()
8875 JDAQTimeslice(const JDAQEvent& event,
8876 const bool snapshot = true);
8886 JDAQTimeslice(const JDAQEvent& event,
8887 const JDAQSummaryslice& summary,
8888 const bool snapshot = true);
8894 virtual ~JDAQTimeslice()
8905 for (iterator i = this->begin(); i != this->end(); ++i) {
8909 std::vector<JDAQSuperFrame>::clear();
8919 JDAQTimeslice& operator=(const JDAQTimeslice& timeslice)
8923 setDAQChronometer(timeslice.getDAQChronometer());
8925 for (const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8939 JDAQTimeslice& add(const JDAQTimeslice& timeslice)
8941 using namespace std;
8943 map<JDAQModuleIdentifier, int> buffer;
8945 for (const_iterator i = this->begin(); i != this->end(); ++i) {
8946 buffer[i->getModuleIdentifier()] = distance(static_cast<const JDAQTimeslice&>(*this).begin(),i);
8949 for (JDAQTimeslice::const_iterator i = timeslice.begin(); i != timeslice.end(); ++i) {
8951 map<JDAQModuleIdentifier, int>::const_iterator p = buffer.find(i->getModuleIdentifier());
8953 if (p != buffer.end()) {
8955 JDAQSuperFrame& frame = this->at(p->second);
8959 sort(frame.begin(), frame.end());
8963 this->push_back(*i);
8978 std::ostream& print(std::ostream& out, const bool lpr = false) const
8980 using namespace std;
8982 out << this->ClassName() << endl;
8983 out << dynamic_cast<const JDAQPreamble&> (*this) << endl;
8984 out << dynamic_cast<const JDAQChronometer&>(*this) << endl;
8986 for (JDAQTimeslice::const_iterator frame = this->begin(); frame != this->end(); ++frame) {
8988 out << ' ' << setw(10) << frame->getModuleID();
8989 out << ' ' << setw(6) << frame->getLength();
8990 out << ' ' << setw(6) << frame->getDataType();
8991 out << ' ' << setw(6) << frame->getTimesliceStart();
8992 out << ' ' << setw(8) << setfill('0') << hex << frame->getStatus() << dec << setfill(' ');
8993 out << '|' << setw(8) << setfill('0') << hex << frame->getFIFOStatus() << dec << setfill(' ');
8994 out << ' ' << setw(2) << frame->getUDPNumberOfReceivedPackets();
8995 out << '/' << setw(2) << frame->getUDPMaximalSequenceNumber();
8996 out << ' ' << setw(6) << frame->size();
9000 if (!frame->empty()) {
9002 out << ' ' << setw(10) << frame-> begin()->getT();
9004 out << ' ' << setw(10) << frame->rbegin()->getT();
9015 for (JDAQFrame::const_iterator hit = frame->begin(); hit != frame->end(); ++hit, ++n) {
9016 out << setw(2) << (int) hit->getPMT() << ' '
9017 << setw(8) << (int) hit->getT() << ' '
9018 << setw(3) << (int) hit->getToT() << (n%10 == 0 ? '\n' : ' ');
9029 ClassDef(JDAQTimeslice,4);
9040 inline bool operator==(const JDAQTimeslice& first,
9041 const JDAQTimeslice& second)
9043 return (first.getDAQTimesliceHeader() == second.getDAQTimesliceHeader() &&
9044 static_cast<const std::vector<JDAQSuperFrame>&>(first) == static_cast<const std::vector<JDAQSuperFrame>&>(second));
9055 inline bool operator!=(const JDAQTimeslice& first,
9056 const JDAQTimeslice& second)
9058 return !(first == second);
9065 struct JDAQTimesliceL0 : public JDAQTimeslice { ClassDef(JDAQTimesliceL0,1); };
9071 struct JDAQTimesliceL1 : public JDAQTimeslice { ClassDef(JDAQTimesliceL1,1); };
9077 struct JDAQTimesliceL2 : public JDAQTimeslice { ClassDef(JDAQTimesliceL2,1); };
9083 struct JDAQTimesliceSN : public JDAQTimeslice { ClassDef(JDAQTimesliceSN,1); };
9093 inline std::ostream& operator<<(std::ostream& out, const JDAQTimeslice& timeslice)
9095 return timeslice.print(out, getDAQLongprint());
9100#ifndef __JDAQTIMESLICEHEADER__
9101#define __JDAQTIMESLICEHEADER__
9103#include "km3net-dataformat/online/JDAQRoot.hh"
9104#include "km3net-dataformat/online/JDAQHeader.hh"
9110namespace KM3NETDAQ {
9115 class JDAQTimesliceHeader :
9122 JDAQTimesliceHeader() :
9132 JDAQTimesliceHeader(const JDAQChronometer& chronometer) :
9133 JDAQHeader(chronometer)
9142 const JDAQTimesliceHeader& getDAQTimesliceHeader() const
9144 return static_cast<const JDAQTimesliceHeader&>(*this);
9148 ClassDef(JDAQTimesliceHeader,2);
9159 inline bool operator==(const JDAQTimesliceHeader& first,
9160 const JDAQTimesliceHeader& second)
9162 return (first.getDAQHeader() == second.getDAQHeader());
9173 inline bool operator!=(const JDAQTimesliceHeader& first,
9174 const JDAQTimesliceHeader& second)
9176 return !(first == second);
9181#ifndef __JDAQTRIGGERCOUNTER__
9182#define __JDAQTRIGGERCOUNTER__
9184#include "km3net-dataformat/online/JDAQRoot.hh"
9191namespace KM3NETDAQ {
9197 typedef unsigned long long int JTriggerCounter_t;
9203 class JDAQTriggerCounter {
9210 JDAQTriggerCounter(const JTriggerCounter_t counter)
9212 this->trigger_counter = counter;
9218 friend size_t getSizeof<JDAQTriggerCounter>();
9219 friend JReader& operator>>(JReader&, JDAQTriggerCounter&);
9220 friend JWriter& operator<<(JWriter&, const JDAQTriggerCounter&);
9228 JDAQTriggerCounter()
9230 trigger_counter = getInstance().next();
9237 virtual ~JDAQTriggerCounter()
9246 static JDAQTriggerCounter& getInstance()
9248 static JDAQTriggerCounter counter(0);
9259 const JDAQTriggerCounter& getDAQTriggerCounter() const
9261 return static_cast<const JDAQTriggerCounter&>(*this);
9270 getInstance().trigger_counter = 0;
9279 JTriggerCounter_t getCounter() const
9281 return trigger_counter;
9290 void setCounter(const JTriggerCounter_t counter)
9292 this->trigger_counter = counter;
9301 JTriggerCounter_t next()
9303 return trigger_counter++;
9307 ClassDef(JDAQTriggerCounter,1);
9311 JTriggerCounter_t trigger_counter;
9322 inline bool operator==(const JDAQTriggerCounter& first,
9323 const JDAQTriggerCounter& second)
9325 return (first.getCounter() == second.getCounter());
9336 inline bool operator!=(const JDAQTriggerCounter& first,
9337 const JDAQTriggerCounter& second)
9339 return !(first == second);
9344#ifndef __JDAQTRIGGERMASK__
9345#define __JDAQTRIGGERMASK__
9351#include "km3net-dataformat/online/JDAQRoot.hh"
9358namespace KM3NETDAQ {
9364 typedef unsigned long long int JTriggerMask_t;
9370 static const unsigned int NUMBER_OF_TRIGGER_BITS = sizeof(JTriggerMask_t) * 8;
9379 inline JTriggerMask_t getTriggerMask(const unsigned int bit)
9381 if (bit < NUMBER_OF_TRIGGER_BITS)
9382 return JTriggerMask_t(1) << bit;
9391 class JDAQTriggerMask {
9394 friend size_t getSizeof<JDAQTriggerMask>();
9395 friend JReader& operator>>(JReader&, JDAQTriggerMask&);
9396 friend JWriter& operator<<(JWriter&, const JDAQTriggerMask&);
9411 JDAQTriggerMask(const JTriggerMask_t mask) :
9421 JDAQTriggerMask(const std::string& buffer) :
9422 trigger_mask(valueOf(buffer).getTriggerMask())
9429 virtual ~JDAQTriggerMask()
9438 const JDAQTriggerMask& getDAQTriggerMask() const
9440 return static_cast<const JDAQTriggerMask&>(*this);
9449 JTriggerMask_t getTriggerMask() const
9451 return trigger_mask;
9460 void setDAQTriggerMask(const JDAQTriggerMask& mask)
9462 trigger_mask = mask.trigger_mask;
9471 void setTriggerMask(const JTriggerMask_t mask)
9473 trigger_mask = mask;
9483 JDAQTriggerMask& addTriggerMask(const JDAQTriggerMask& mask)
9485 trigger_mask |= mask.trigger_mask;
9497 inline bool hasTriggerMask(const JDAQTriggerMask& mask) const
9499 return trigger_mask & mask.trigger_mask;
9509 inline JDAQTriggerMask& addTriggerBit(const unsigned int bit)
9511 trigger_mask |= KM3NETDAQ::getTriggerMask(bit);
9523 inline bool hasTriggerBit(const unsigned int bit) const
9525 return trigger_mask & KM3NETDAQ::getTriggerMask(bit);
9535 static JDAQTriggerMask valueOf(const std::string& buffer)
9537 JDAQTriggerMask trigger_mask;
9539 unsigned int bit = 0;
9541 for (std::string::const_reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9543 trigger_mask.addTriggerBit(bit);
9547 return trigger_mask;
9556 std::string toString() const
9558 std::string buffer(NUMBER_OF_TRIGGER_BITS, '0');
9560 unsigned int bit = 0;
9562 for (std::string::reverse_iterator i = buffer.rbegin(); i != buffer.rend() && bit != NUMBER_OF_TRIGGER_BITS; ++i, ++bit) {
9563 if (hasTriggerBit(bit)) {
9579 friend inline std::istream& operator>>(std::istream& in, JDAQTriggerMask& mask)
9584 mask= JDAQTriggerMask::valueOf(buffer);
9598 friend inline std::ostream& operator<<(std::ostream& out, const JDAQTriggerMask& mask)
9600 out << mask.toString();
9606 ClassDef(JDAQTriggerMask,1);
9610 JTriggerMask_t trigger_mask;
9614 static const JDAQTriggerMask TRIGGER_MASK_ON = JDAQTriggerMask(~JTriggerMask_t(0)); //!< Trigger mask on;
9615 static const JDAQTriggerMask TRIGGER_MASK_OFF = JDAQTriggerMask( JTriggerMask_t(0)); //!< Trigger mask off;
9625 inline bool operator==(const JDAQTriggerMask& first,
9626 const JDAQTriggerMask& second)
9628 return (first.getTriggerMask() == second.getTriggerMask());
9639 inline bool operator!=(const JDAQTriggerMask& first,
9640 const JDAQTriggerMask& second)
9642 return !(first == second);
9647#ifndef __JDAQTRIGGEREDHIT__
9648#define __JDAQTRIGGEREDHIT__
9650#include "km3net-dataformat/online/JDAQRoot.hh"
9651#include "km3net-dataformat/online/JDAQModuleIdentifier.hh"
9652#include "km3net-dataformat/online/JDAQHit.hh"
9653#include "km3net-dataformat/online/JDAQKeyHit.hh"
9654#include "km3net-dataformat/online/JDAQTriggerMask.hh"
9661namespace KM3NETDAQ {
9666 class JDAQTriggeredHit :
9668 public JDAQTriggerMask
9672 friend size_t getSizeof<JDAQTriggeredHit>();
9673 friend JReader& operator>>(JReader&, JDAQTriggeredHit&);
9674 friend JWriter& operator<<(JWriter&, const JDAQTriggeredHit&);
9679 JDAQTriggeredHit() :
9692 JDAQTriggeredHit(const JDAQModuleIdentifier& ID,
9694 const JDAQTriggerMask& mask) :
9696 JDAQTriggerMask(mask)
9703 virtual ~JDAQTriggeredHit()
9707 ClassDef(JDAQTriggeredHit,2);
9718 inline bool operator==(const JDAQTriggeredHit& first,
9719 const JDAQTriggeredHit& second)
9721 return (static_cast<const JDAQKeyHit&> (first) == static_cast<const JDAQKeyHit&> (second) &&
9722 static_cast<const JDAQTriggerMask&>(first) == static_cast<const JDAQTriggerMask&>(second));
9733 inline bool operator!=(const JDAQTriggeredHit& first,
9734 const JDAQTriggeredHit& second)
9736 return !(first == second);
9741#ifndef __JDAQUTCEXTENDED__
9742#define __JDAQUTCEXTENDED__
9754#include "km3net-dataformat/online/JDAQRoot.hh"
9757namespace KM3NETDAQ {
9762 class JDAQUTCExtended
9766 friend size_t getSizeof<JDAQUTCExtended>();
9767 friend JReader& operator>>(JReader&, JDAQUTCExtended&);
9768 friend JWriter& operator<<(JWriter&, const JDAQUTCExtended&);
9776 UTC_16nanosecondcycles(0)
9786 JDAQUTCExtended(const uint32_t seconds,
9787 const uint32_t cycles):
9788 UTC_seconds(seconds),
9789 UTC_16nanosecondcycles(cycles)
9798 JDAQUTCExtended(const double nanoseconds)
9800 setTimeNanoSecond(nanoseconds);
9807 virtual ~JDAQUTCExtended()
9816 bool getWRStatus() const
9818 return (UTC_seconds & ~getMask()) != 0;
9827 uint32_t getUTCseconds() const
9829 return (UTC_seconds & getMask());
9838 uint32_t getUTC16nanosecondcycles() const
9840 return UTC_16nanosecondcycles;
9849 double getTimeNanoSecond() const
9851 return getUTCseconds() * 1.0e9 + getUTC16nanosecondcycles() * getTick();
9860 void setTimeNanoSecond(const double utc_ns)
9862 UTC_seconds = (uint32_t) ( utc_ns * 1.0e-9);
9863 UTC_16nanosecondcycles = (uint32_t) ((utc_ns - UTC_seconds*1.0e9) / getTick());
9872 void addTimeNanoSecond(const double t_ns)
9874 const double x_ns = (double) getUTC16nanosecondcycles() * (double) getTick() + t_ns;
9875 const uint32_t t_s = (uint32_t) (x_ns * 1.0e-9);
9878 UTC_16nanosecondcycles = (uint32_t) ((x_ns - t_s*1.0e9) / getTick());
9887 static JDAQUTCExtended min()
9889 return JDAQUTCExtended(0,0);
9898 static JDAQUTCExtended max()
9900 return JDAQUTCExtended(std::numeric_limits<uint32_t>::max(),
9901 std::numeric_limits<uint32_t>::max());
9910 static uint32_t getMask()
9921 static double getTick()
9932 static const JDAQUTCExtended& getInstance()
9934 static JDAQUTCExtended utc(1600000000, 0);
9947 friend inline std::istream& operator>>(std::istream& in, JDAQUTCExtended& utc)
9949 in >> utc.UTC_seconds;
9951 in >> utc.UTC_16nanosecondcycles;
9964 friend inline std::ostream& operator<<(std::ostream& out, const JDAQUTCExtended& utc)
9966 using namespace std;
9968 const char c = out.fill();
9970 out << setw(10) << utc.getUTCseconds();
9972 out << setw(10) << setfill('0') << utc.getUTC16nanosecondcycles() << setfill(c);
9978 ClassDef(JDAQUTCExtended,1);
9982 uint32_t UTC_seconds;
9983 uint32_t UTC_16nanosecondcycles;
9994 inline bool operator<(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
9996 if (first.getUTCseconds() == second.getUTCseconds())
9997 return first.getUTC16nanosecondcycles() < second.getUTC16nanosecondcycles();
9999 return first.getUTCseconds() < second.getUTCseconds();
10010 inline bool operator>(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10012 return (second < first);
10023 inline bool operator<=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10025 return !(second < first);
10036 inline bool operator>=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10038 return !(first < second);
10049 inline bool operator==(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10051 return (first.getUTCseconds() == second.getUTCseconds() &&
10052 first.getUTC16nanosecondcycles() == second.getUTC16nanosecondcycles());
10063 inline bool operator!=(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10065 return !(first == second);
10076 inline double getTimeDifference(const JDAQUTCExtended& first, const JDAQUTCExtended& second)
10078 const double utc_s = ((double) second.getUTCseconds() - (double) first.getUTCseconds());
10079 const double utc_ns = ((double) second.getUTC16nanosecondcycles() - (double) first.getUTC16nanosecondcycles()) * JDAQUTCExtended::getTick();
10081 return utc_s + utc_ns*1.0e-9;
10086#ifndef AAOBJECTINCLUDED
10087#define AAOBJECTINCLUDED
10089#include "TObject.h"
10094#include <algorithm>
10096#include "km3net-dataformat/offline/Exception.hh"
10103struct AAObject : public TObject
10105 std::vector<double> usr; ///< user data
10106 std::vector<std::string> usr_names; ///< user keys
10114 int idx( const std::string& key ) const
10116 auto i = std::find (usr_names.begin(), usr_names.end(), key );
10117 if (i == usr_names.end()) return -1;
10118 return i - usr_names.begin();
10127 bool haveusr( const std::string& key ) const
10129 return idx( key ) >= 0;
10139 int idxusr_checked( const std::string& key ) const
10141 int r = idx( key );
10144 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10157 double getusr(const std::string& key) const
10159 const int i = idx( key );
10163 THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
10166 if ( unsigned(i) >= usr.size() )
10168 THROW(Exception, "Warning: inconsistent user data " << i << " >= " << usr.size());
10180 void setusr(const std::string & key, double value )
10182 int i = idx( key );
10185 if ( usr.size() < usr_names.size() )
10187 // this should not happen, but let's just add empty data
10188 usr.resize( usr_names.size() );
10192 // this is possible, add empty ("") names
10193 usr_names.resize( usr.size() );
10196 usr_names.push_back( key );
10197 usr.push_back( value );
10211 bool delusr( const std::string& key )
10213 int i = idx( key );
10214 if ( i < 0 ) return false;
10216 usr.erase ( usr.begin() + i );
10217 usr_names.erase( usr_names.begin() + i );
10227 usr_names.resize(0);
10235 void printusr(std::ostream& out = std::cout )
10237 unsigned n = std::max( usr.size(), usr_names.size() );
10239 for (unsigned i = 0; i < n ; i++)
10241 std::string name = "(unnamed)";
10242 if ( i < usr_names.size() && usr_names[i] != "" ) name = usr_names[i];
10243 out << i << " \t " << name << " : \t ";
10244 if ( i < usr.size() ) out << usr[i] << std::endl;
10245 else out << "(none)" << std::endl;
10252 AAObject() : any(NULL) {}
10256 TObject* any; ///< Pointer to "any" user data.
10258 ClassDef(AAObject, 6)
10262#ifndef EVT_HH_INCLUDED
10263#define EVT_HH_INCLUDED
10265#include "km3net-dataformat/offline/AAObject.hh"
10266#include "km3net-dataformat/offline/Hit.hh"
10267#include "km3net-dataformat/offline/Trk.hh"
10268#include "km3net-dataformat/offline/Hit.hh"
10269#include "km3net-dataformat/offline/Exception.hh"
10271#include "TTimeStamp.h"
10273#include <uuid/uuid.h>
10281struct Evt: public AAObject
10283 int id; ///< offline event identifier
10284 int det_id; ///< detector identifier from DAQ
10285 int mc_id; ///< identifier of the MC event (as found in ascii or antcc file).
10287 int run_id; ///< DAQ run identifier
10288 int mc_run_id; ///< MC run identifier
10290 int frame_index; ///< from the raw data
10291 ULong64_t trigger_mask; ///< trigger mask from raw data (i.e. the trigger bits)
10292 ULong64_t trigger_counter; ///< trigger counter
10293 unsigned int overlays; ///< number of overlaying triggered events
10294 TTimeStamp t; ///< UTC time of the timeslice, or the event_time for MC. (default: 01 Jan 1970 00:00:00)
10296 uuid_t header_uuid; ///< UUID of header containing the event-weight information
10299 std::vector<Hit> hits; ///< list of hits
10300 std::vector<Trk> trks; ///< list of reconstructed tracks (can be several because of prefits,showers, etc).
10303 std::vector<double> w; ///< MC: Weights w[0]=w1, w[1]=w2, w[2]=w3 (see e.g. <a href="https://simulation.pages.km3net.de/taglist/taglist.pdf">Tag list</a> or km3net-dataformat/definitions)
10304 std::vector<double> w2list; ///< MC: factors that make up w[1]=w2 (see e.g. <a href="https://simulation.pages.km3net.de/taglist/taglist.pdf">Tag list</a> or km3net-dataformat/definitions)
10305 std::vector<double> w3list; ///< MC: atmospheric flux information
10307 TTimeStamp mc_event_time; ///< MC: true generation time (UTC) of the event, (default: 01 Jan 1970 00:00:00)
10308 double mc_t; ///< MC: time where the mc-event was put in the timeslice, since start of run (offset+frameidx*timeslice_duration)
10309 std::vector<Hit> mc_hits; ///< MC: list of MC truth hits
10310 std::vector<Trk> mc_trks; ///< MC: list of MC truth tracks
10312 // --- place to store user info ---
10313 TString comment; ///< user can use this as he/she likes
10314 int index; ///< user can use this as he/she likes
10315 int flags; ///< user can use this as he/she likes
10322 id(0), det_id(0), mc_id(0), run_id(0), mc_run_id(0), frame_index(0),
10323 trigger_mask(0), trigger_counter(0),
10324 overlays(0), t(0), mc_event_time(0), mc_t(0), index(0), flags(0)
10326 uuid_clear(this->header_uuid);
10335 void print(std::ostream& out = std::cout) const
10337 out << "Evt: id=" << id <<
10338 " run_id=" << run_id <<
10339 " #hits=" << hits.size() <<
10340 " #mc_hits=" << mc_hits.size() <<
10341 " #trks=" << trks.size() <<
10342 " #mc_trks=" << mc_trks.size() << std::endl;
10362 for (auto& t : trks ) t.hit_ids.clear();
10363 for (auto& t : mc_trks ) t.hit_ids.clear();
10375 std::vector<const Trk*> primary_trks() const
10377 std::vector<const Trk*> r;
10378 for (auto& t : mc_trks )
10380 if ( t.is_primary() ) r.push_back(&t);
10392 std::vector<Trk*> primary_trks()
10394 std::vector<Trk*> r;
10395 for (auto& t : mc_trks )
10397 if ( t.is_primary() ) r.push_back(&t);
10408 const Trk* neutrino() const
10410 for (auto& t : mc_trks )
10412 if ( t.is_neutrino() ) return &t;
10425 // see Effective C++, Scott Meyers, ISBN-13: 9780321334879.
10426 return const_cast<Trk *>(static_cast<const Evt &>(*this).neutrino() );
10437 const Trk* primary_neutrino() const
10439 for ( auto& t : mc_trks )
10441 if ( t.is_neutrino() and t.is_primary() ) return &t;
10453 Trk* primary_neutrino()
10455 return const_cast<Trk *>(static_cast<const Evt &>(*this).primary_neutrino() );
10467 const Trk* leading_lepton() const
10469 const Trk* nu = primary_neutrino();
10470 if (!nu) return nullptr;
10472 for (auto& t : mc_trks )
10474 if ( t.is_lepton() &&
10475 t.mother_id == nu->id &&
10476 !t.is_orphan() ) return &t;
10489 Trk* leading_lepton()
10491 return const_cast<Trk *>(static_cast<const Evt &>(*this).leading_lepton() );
10501 const Trk * get_parent_of( const Trk & child ) const
10503 for (auto& t : mc_trks )
10505 if (child.mother_id == t.id ) return &t;
10519 Trk* get_parent_of( const Trk & child )
10521 return const_cast<Trk *>(static_cast<const Evt &>(*this).get_parent_of(child) );
10530 static void actionAtFileOpen(int version)
10532 ROOT_IO_VERSION = version;
10535 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
10541#ifndef EXCEPTION_HH_INCLUDED
10542#define EXCEPTION_HH_INCLUDED
10544#include <exception>
10553class Exception : public std::exception {
10560 Exception(const std::string& error) :
10569 ~Exception() throw()
10578 virtual const char* what() const throw()
10580 return buffer.c_str();
10590 friend inline std::ostream& operator<<(std::ostream& out, const Exception& exception)
10592 return out << exception.what();
10603 static inline std::ostream& getOstream()
10605 static std::ostringstream buffer;
10613 const std::string buffer;
10624#define THROW(Exception_t, A) do { throw Exception_t(static_cast<std::ostringstream&>(Exception::getOstream() << __FILE__ << ':' << __LINE__ << std::endl << A).str()); } while(0)
10628#ifndef HEAD_HH_INCLUDED
10629#define HEAD_HH_INCLUDED
10631#include "km3net-dataformat/offline/Vec.hh"
10632#include "km3net-dataformat/offline/Exception.hh"
10634#include "TObject.h"
10640#include <algorithm>
10649static inline void trimstring(std::string &s)
10652 s.erase( s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
10653 return !std::isspace(ch);
10657 s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
10658 return !std::isspace(ch);
10659 }).base(), s.end());
10670inline std::vector<std::string> splitstring(const std::string& str, char delim = ' ')
10672 using namespace std;
10676 stringstream ss(str);
10678 while (getline(ss, token, delim))
10681 if (token != "") r.push_back(token);
10691struct Head : public TObject, std::map<std::string, std::string>
10694 static constexpr const char* const UUID = "UUID";
10704 bool have_line (std::string key ) const
10706 return count( key ) != 0;
10716 const std::string& get_line( std::string key ) const
10718 return this->at(key);
10728 std::string& get_line( std::string key )
10730 return this->at(key);
10742 std::vector< std::string> matching_keys( const std::string& tag ) const
10744 std::vector< std::string> r;
10746 auto match = [&] (const std::string & key) {
10748 if (key == tag) return true;
10750 if ( key.find( tag ) != 0 ) return false;
10752 // what is left should be of the form _d(ddd)
10753 std::string left = key.substr( tag.length(), key.length() );
10754 if (left.length() < 2 || left[0] != '_' ) return false ;
10755 for ( unsigned i = 1; i < left.length(); i++ )
10757 if (!std::isdigit( left[i] )) return false ;
10762 for ( auto& p : *this )
10764 if ( match( p.first ) ) r.push_back( p.first );
10781 std::vector< std::string > get_lines( const std::string& tag ) const
10783 std::vector< std::string > r;
10785 for ( auto& key : matching_keys( tag ) ) {
10786 r.push_back( get_line( key ) );
10803 std::string set_line( std::string tag, std::string line , bool ensure_unique = true )
10805 std::string k = tag;
10808 for (int i = 1; find(k) != end() ; i++)
10810 k = tag + "_" + std::to_string(i);
10813 std::map<std::string, std::string>::operator[]( k ) = line;
10825 std::string get_field( std::string key, int idx ) const
10827 using namespace std;
10829 vector<string> v = splitstring( get_line(key) );
10831 if ( idx < 0 || idx >= int ( v.size() ) )
10833 THROW(Exception, "Cannot find word number " << idx << " in line " << get_line(key) << " for key: " << key);
10847 int get_index_of_field(std::string key, std::string field) const
10849 auto& d = _hdr_dict();
10850 if ( d.count(key) == 0 ) return -1;
10851 auto v = d.at(key);
10852 auto i = std::find (v.begin(), v.end(), field );
10853 if (i == v.end()) return -1;
10854 return i - v.begin();
10867 std::string get_field( std::string key, std::string field ) const
10869 int idx = get_index_of_field(key, field);
10873 THROW(Exception, "Failed to find" << key << " " << field);
10876 return get_field( key, idx );
10890 void set_field( std::string key, std::string field, std::string value )
10892 using namespace std;
10894 if ( field == "" ) get_line( key ) = value;
10896 int idx = get_index_of_field( key, field );
10900 THROW(Exception, "GFailed to find field in header line: " << key << " " << field);
10903 vector<string> vals = splitstring( get_line( key ) );
10905 // if the fields before do not exist, add padding
10906 while ( int( vals.size() ) <= idx ) vals.push_back("0");
10911 for (unsigned i = 0; i < vals.size() ; i++ )
10914 if ( i != vals.size() - 1) ss << " ";
10916 set_line( key, ss.str() );
10925 void print ( std::ostream& out = std::cout ) const
10927 if (count("start_run")) out << "start_run: " << at("start_run") << std::endl;
10929 for ( auto& p : *this )
10931 if ( p.first == "start_run" || p.first == "end_event" ) continue;
10932 out << p.first << ": " << p.second << std::endl ;
10934 out << "end_event:" << std::endl;
10942 static const std::map<std::string, std::vector<std::string> >& _hdr_dict()
10944 using namespace std;
10946 // map with, for each tag (key), a vector of field-names
10948 static map<string, vector<string> > r;
10949 if ( r.size() > 0 ) return r;
10953 "cut_primary cut_seamuon cut_in cut_nu:Emin Emax cosTmin cosTmax\n"
10954 "generator physics simul:program version date time\n"
10955 "seed:program level iseed\n"
10956 "PM1_type_area:type area TTS\n"
10958 "model:interaction muon scattering numberOfEnergyBins\n"
10959 "can:zmin zmax r\n"
10960 "genvol:zmin zmax r volume numberOfEvents\n"
10961 "merge:time gain\n"
10962 "coord_origin:x y z\n"
10963 "translate:x y z\n"
10964 "genhencut:gDir Emin\n"
10965 "k40:rate time\n" // note lower-case k
10966 "K40:livetime\n" // note capital K
10967 "norma:primaryFlux numberOfPrimaries\n"
10968 "livetime:numberOfSeconds errorOfSeconds\n"
10969 "flux:type key file_1 file_2\n"
10971 "fixedcan:xcenter ycenter zmin zmax radius\n"
10972 "start_run:run_id";
10974 for ( auto line : splitstring(desc, '\n') )
10976 auto v = splitstring( line, ':');
10978 vector< string > fields = splitstring( v[1] );
10979 for ( auto key : splitstring( v[0] ) )
10993 double ngen() const
10995 return stod ( get_field("genvol", "numberOfEvents") );
11003 double daq_livetime() const
11005 return stod ( get_field("DAQ", "livetime") );
11014 double mc_livetime() const
11016 return stod ( get_field("livetime", "numberOfSeconds") );
11024 Vec coord_origin() const
11026 return Vec( stod( get_field("coord_origin", "x") ),
11027 stod( get_field("coord_origin", "y") ),
11028 stod( get_field("coord_origin", "z") ));
11036 Vec translate() const
11038 return Vec( stod( get_field("translate", "x") ),
11039 stod( get_field("translate", "y") ),
11040 stod( get_field("translate", "z") ));
11050 static void actionAtFileOpen(int version)
11052 ROOT_IO_VERSION = version;
11055 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
11057 ClassDef(Head, 2 );
11068inline std::ostream& operator<<(std::ostream& out, const Head& h)
11076#ifndef HIT_HH_INCLUDED
11077#define HIT_HH_INCLUDED
11079#include "TObject.h"
11080#include "TString.h"
11081#include "km3net-dataformat/offline/Vec.hh"
11088 // straight from the data
11089 int dom_id; ///< module identifier from the data (unique in the detector).
11090 unsigned int channel_id; ///< PMT channel id {0,1, .., 30} local to moduke
11091 unsigned int tdc; ///< hit tdc (=time in ns)
11092 unsigned int tot; ///< tot value as stored in raw data (int for pyroot)
11093 ULong64_t trig; ///< non-zero if the hit is a trigger hit.
11095 int pmt_id; ///< global PMT identifier as found in evt files
11097 // values after calibration
11098 double t; ///< hit time (from tdc+calibration or MC truth)
11099 double a; ///< hit amplitude (in p.e.)
11100 Vec pos; ///< hit position
11101 Vec dir; ///< hit direction; i.e. direction of the PMT
11103 int type; ///< particle type or parametrisation used for hit (mc only)
11104 int origin; ///< track id of the track that created this hit (mc only)
11106 unsigned pattern_flags; ///< some number that you can use to flag the hit
11111 Hit(): id(0), dom_id(0), channel_id(0), tdc(0), tot(0), trig(0), pmt_id(0),
11112 t(0), a(0), type(0), origin(0), pattern_flags(0) {}
11113 //virtual ~Hit() {}
11121 void read(const Hit& h) { *this = h;}
11128 void write(Hit& h) const { h = *this;}
11135 void print( std::ostream& out = std::cout ) const
11137 out << "Hit: id=" << id << " dom=" << dom_id << " channel=" << channel_id;
11138 out << " pmt=" << pmt_id << " t=" << t << " tot=" << tot;
11139 out << " pos="; pos.print(out);
11140 out << " dir="; dir.print(out);
11143 ClassDefNV(Hit, 106) // reserve <100 for antcc class of the same name
11147#ifndef MULTIHEAD_HH_INCLUDED
11148#define MULTIHEAD_HH_INCLUDED
11151#include <uuid/uuid.h>
11153#include "km3net-dataformat/offline/Evt.hh"
11154#include "km3net-dataformat/offline/Head.hh"
11156#include "TObject.h"
11164 public std::vector<Head>,
11171 std::vector<Head>(),
11179 virtual ~MultiHead()
11193 const_iterator find(const uuid_t& uuid,
11194 const bool useCache = false) const
11196 using namespace std;
11198 static struct Cache
11200 Cache() { uuid_clear(this->uuid); }
11208 for (cache.it = this->cbegin(); cache.it != this->cend(); ++cache.it) {
11210 const Head& head = *cache.it;
11211 string uuid_str = head.at(Head::tags::UUID);
11213 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11215 uuid_parse(uuid_str.c_str(), cache.uuid);
11217 if (uuid_compare(uuid, cache.uuid) == 0) {
11222 return this->end();
11226 if (uuid_compare(uuid, cache.uuid) == 0) {
11229 return find(uuid, false);
11244 const_iterator find(const Evt& event,
11245 const bool useCache = false) const
11247 return find(event.header_uuid, useCache);
11257 bool insert(const Head& header)
11259 using namespace std;
11261 string uuid_str = header.at(Head::tags::UUID);
11262 uuid_str.erase(remove_if(uuid_str.begin(), uuid_str.end(), ::isspace), uuid_str.end());
11265 uuid_parse(uuid_str.c_str(), uuid);
11267 if (uuid_is_null(uuid) == 0 && find(uuid) == this->cend()) {
11269 this->push_back(header);
11284 size_t join(const MultiHead& multiHead)
11286 using namespace std;
11290 for (const_iterator i = multiHead.cbegin(); i != multiHead.cend(); ++i) {
11291 n += (size_t) this->insert(*i);
11303 static void actionAtFileOpen(int version)
11305 ROOT_IO_VERSION = version;
11309 static int ROOT_IO_VERSION; //!< Streamer version as obtained from ROOT file.
11311 ClassDef(MultiHead, 1);
11315#ifndef TRK_HH_INCLUDED
11316#define TRK_HH_INCLUDED
11319#include "TDatabasePDG.h"
11320#include "TPDGCode.h"
11321#include "km3net-dataformat/offline/AAObject.hh"
11322#include "km3net-dataformat/offline/Vec.hh"
11323#include "km3net-dataformat/definitions/trkmembers.hh"
11328struct Trk: public AAObject
11330 int id; ///< track identifier
11331 Vec pos; ///< postion [m] of the track at time t
11332 Vec dir; ///< track direction
11333 double t; ///< track time [ns] (when the particle is at pos )
11334 double E; ///< Energy [GeV] (either MC truth or reconstructed)
11336 double len; ///< length, if applicable [m]
11337 double lik; ///< likelihood or lambda value (for aafit, lambda)
11338 int type; ///< MC: particle type in PDG encoding
11339 int rec_type; ///< identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction.csv
11340 std::vector<int> rec_stages; ///< list of identifiers of successful fitting stages resulting in this track
11342 int status; ///< MC or reconstruction status code, see km3net-dataformat/definitions/trkmembers.csv for values
11343 int mother_id; ///< id of the parent MC particle or of the reconstructed track at the previous stage
11344 int counter; ///< used by CORSIKA7 MC generation to store interaction counters, see <a href="https://web.iap.kit.edu/corsika/usersguide/usersguide.pdf">CORSIKA user guide</a>
11346 std::vector<double> fitinf; ///< place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv
11347 std::vector<int> hit_ids; ///< list of associated hit-ids (corresponds to Hit::id).
11348 std::vector<double> error_matrix; ///< (NxN) error covariance matrix for fit parameters (stored as linear vector)
11349 std::string comment; ///< use as you like
11354 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) {}
11364 void read(const Trk& t) { *this = t;}
11371 void write(Trk& t) const { t = *this; }
11379 std::string name() const
11381 TParticlePDG* p = TDatabasePDG::Instance()->GetParticle( type );
11382 if (!p) return "unnamed state ("+ std::to_string(type)+")";
11383 return p->GetName();
11391 bool is_primary() const
11393 return status==TRK_ST_PRIMARYNEUTRINO || status==TRK_ST_PRIMARYCOSMIC;
11401 bool is_finalstate() const
11403 return status==TRK_ST_FINALSTATE;
11413 bool is_neutrino() const
11415 return type == kNuE || type == kNuEBar || type == kNuMu || type == kNuMuBar || type == kNuTau || type == kNuTauBar;
11425 return type == kElectron || type == kPositron;
11435 bool is_muon() const
11437 return type == kMuonMinus || type == kMuonPlus;
11447 bool is_tau() const
11449 return type == kTauMinus || type == kTauPlus;
11459 bool is_lepton() const
11461 return is_e() || is_muon() || is_tau();
11469 bool is_orphan() const
11471 return mother_id == TRK_MOTHER_NONE;
11480 std::vector< Trk* > get_daughters ( std::vector<Trk>& mctrks )
11482 std::vector<Trk*> r;
11484 for( auto& t : mctrks )
11486 if ( t.mother_id == id ) r.push_back( &t );
11496 void print(std::ostream& out=std::cout) const
11498 out << "Trk: id=" << id << " pos="; pos.print(out);
11499 out << " dir="; dir.print(out);
11500 out << " t=" << t << " E=" << E << " pdg-type=" << type;
11507#ifndef VEC_HH_INCLUDED
11508#define VEC_HH_INCLUDED
11529 Vec(double x_, double y_, double z_) : x(x_), y(y_), z(z_) {}
11534 Vec():x(0),y(0),z(0) {}
11542 double dot(const Vec& v) const { return v.x*x + v.y*y+ v.z*z;}
11550 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);}
11558 Vec& operator+=(const Vec& v) { x+=v.x; y+=v.y; z+=v.z; return *this;}
11566 Vec& operator-=(const Vec& v) { x-=v.x; y-=v.y; z-=v.z; return *this;}
11574 Vec& operator*=(double d) { x*=d; y*=d; z*=d; return *this;}
11582 Vec& operator/=(double d) { return operator*=( 1.0 / d ); }
11589 Vec operator-() const { return Vec(-x,-y,-z); }
11597 bool operator==( const Vec& v ) const { return x==v.x && y==v.y && z==v.z ; }
11605 bool operator!=( const Vec& v ) const { return x!=v.x || y!=v.y || z!=v.z ; }
11615 Vec& set(double xx, double yy, double zz) { x=xx; y=yy; z=zz; return *this;}
11624 Vec& set_angles(double theta, double phi)
11626 x = sin ( theta ) * cos( phi );
11627 y = sin ( theta ) * sin( phi );
11637 double phi() const { return atan2( y,x ); }
11644 double theta() const { return acos(z); }
11651 double len() const { double l = dot(*this); return (l > 0)? sqrt(l) : 0; }
11658 double lenxy() const { const double r2 = x*x + y*y; return (r2>0) ? sqrt(r2) :0; }
11665 Vec& normalize() { return operator/=( len() ); }
11672 void print( std::ostream& out = std::cout ) const
11674 out << "Vec:" << x << " " << y << " " << z;
11682 const char* __repr__() const
11684 static std::string buffer;
11686 std::ostringstream s;
11692 return buffer.c_str();
11701 Vec __add__(const Vec& v) const { Vec r=*this; return r+=v; }
11709 Vec __sub__(const Vec& v) const { Vec r=*this; return r-=v; }
11717 Vec __mul__(double d ) const { Vec r=*this; return r*=d; }
11725 Vec __rmul__(double d ) const { return __mul__(d); }
11733 Vec __div__(double d ) const { Vec r=*this; return r/=d; }
11741 Vec& rotate_z(double ang)
11743 const Vec o = *this;
11744 x = o.x *cos(ang) - o.y * sin(ang);
11745 y = o.x *sin(ang) + o.y * cos(ang);
11756 Vec& rotate_x(double ang)
11758 const Vec o = *this;
11760 y = o.y *cos(ang) + o.z * -sin(ang);
11761 z = o.y *sin(ang) + o.z * cos(ang);
11771 Vec& rotate_y(double ang)
11773 const Vec o = *this;
11774 x = o.x *cos(ang) + o.z * sin(ang);
11776 z = -o.x *sin(ang) + o.z * cos(ang);
11790inline std::ostream& operator<<( std::ostream& out , const Vec& v )
11792 out << v.x << " " << v.y << " " << v.z << " ";
11803inline std::istream& operator>>(std::istream& in, Vec& v)
11805 in >> v.x >> v.y >> v.z ; return in;
11815inline double cos_angle_between( const Vec& a, const Vec& b)
11817 const double n = a.len() * b.len();
11818 return a.dot(b) / n;
11828inline double angle_between( const Vec& a, const Vec& b )
11830 double c = cos_angle_between( a, b );
11831 if ( c < -1 ) return M_PI;
11832 if ( c > 1 ) return 0;
11843inline Vec operator+(const Vec& a, const Vec& b) { Vec r(a); return r+=b;}
11852inline Vec operator-(const Vec& a, const Vec& b) { Vec r(a); return r-=b;}
11861inline Vec operator*(double a, const Vec& v) { return Vec(a*v.x,a*v.y,a*v.z);}
11870inline Vec operator*(const Vec& v, double a) { return Vec(a*v.x,a*v.y,a*v.z);}
11879inline Vec operator/(const Vec& v, double a) { return Vec(v.x/a,v.y/a,v.z/a);}
11882#ifndef IO_ASCII_INCLUDED
11883#define IO_ASCII_INCLUDED
11890#include "km3net-dataformat/offline/Evt.hh"
11891#include "km3net-dataformat/offline/Hit.hh"
11892#include "km3net-dataformat/offline/Trk.hh"
11893#include "km3net-dataformat/offline/Head.hh"
11894#include "km3net-dataformat/offline/Exception.hh"
11895#include "km3net-dataformat/definitions/w2list_gseagen.hh"
11896#include "km3net-dataformat/definitions/trkmembers.hh"
11898#include "TDatabasePDG.h"
11902const char* const auto_t = "auto";
11903const char* const start_run_t = "start_run:";
11904const char* const start_event_t = "start_event:";
11905const char* const hit_t = "hit:";
11906const char* const hit_raw_t = "hit_raw:";
11907const char* const track_in_t = "track_in:";
11908const char* const track_t = "track:";
11909const char* const track_fit_t = "track_fit:";
11910const char* const neutrino_t = "neutrino:";
11911const char* const track_primary_t = "track_primary:";
11912const char* const track_bundle_t = "track_bundle:";
11913//const char* const primarylepton_t = "primarylepton:";
11914const char* const weights_t = "weights:";
11915const char* const w2list_t = "w2list:";
11916const char* const w3list_t = "w3list:";
11917const char* const hourangle_t = "hourangle:";
11918const char* const eventtime_t = "eventtime:";
11919const char* const center_on_can_t = "center_on_can:";
11920const char* const muon_decay_t = "muon_decay:";
11921const char* const end_event_t = "end_event:";
11924namespace mc_usr_keys
11926// track-level quantities
11927const char* const energy_lost_in_can = "energy_lost_in_can";
11930// event-level corsika variables
11931const char* const muon_decay_x = "muon_decay_x";
11932const char* const muon_decay_y = "muon_decay_y";
11933const char* const muon_decay_z = "muon_decay_z";
11935const char* const center_on_can_x = "center_on_can_x";
11936const char* const center_on_can_y = "center_on_can_y";
11937const char* const center_on_can_z = "center_on_can_z";
11938const char* const hourangle = "hourangle";
11942namespace io_stringutil
11951inline bool startswith( const std::string& a, const std::string& b )
11953 if ( a.find( b ) == 0 ) return true;
11963inline std::string trim(const std::string& s)
11965 using namespace std;
11967 if ( s == "" ) return s;
11969 string::size_type i1;
11970 string::size_type i2;
11972 for (i1 = 0; i1 < s.length(); i1++)
11974 if ( !isspace (s[i1]) ) break;
11976 for (i2 = s.length() - 1 ; i2 > i1 ; i2--)
11978 if ( !isspace (s[i2]) ) break;
11980 return s.substr( i1, i2 - i1 + 1 );
11992inline int pdg_code( int geant3_code )
11994 if ( geant3_code == -1 ) return -1; // used for k40 hits
11995 if ( geant3_code < 0 ) return pdg_code( -geant3_code ); // used for scattered
11997 return TDatabasePDG::Instance()->ConvertGeant3ToPdg( geant3_code );
12006inline int geant3_code( int pdg_code )
12008 if (pdg_code == -1 ) return -1;
12009 if (pdg_code == +311 ) return geant3_code( 130 ); // K0 -> K0long
12010 if (pdg_code == -311 ) return geant3_code( 130 ); // K0bar -> K0long
12012 return TDatabasePDG::Instance()->ConvertPdgToGeant3( pdg_code );
12023inline bool read ( Vec& v, std::istream& is)
12025 is >> v.x >> v.y >> v.z;
12036inline bool write( const Vec& v, std::ostream& os)
12038 os << v.x << ' ' << v.y << ' ' << v.z;
12050inline bool read ( Hit& h, std::istream& is, bool read_mc = false )
12052 h.dom_id = 0; // need a proper det file to
12053 h.channel_id = 0; // set these.
12055 is >> h.id >> h.pmt_id >> h.a >> h.t;
12062 is >> h.type >> h.origin;
12065 // at this point, an additional pure_a and pure_t may be present,
12066 // but we do not read them.
12080inline bool write( const Hit& h, std::ostream& os, const std::string& tag = mc_keys::hit_t)
12082 int om_id = h.pmt_id; // todo: deal with this better.
12084 os << tag << ' ' << h.id << ' ' << om_id << ' ' << h.a << ' ' << h.t;
12085 if ( tag != mc_keys::hit_raw_t ) {
12086 os << ' ' << h.type << ' ' << h.origin; // not writing pure_a and pure_t
12099inline std::vector<double> read_line_to_vector( std::istream& is )
12101 using namespace std;
12107 istringstream il(ss);
12108 for ( double x; il >> x ; ) r.push_back( x );
12120template<typename T>
12121inline void push_front( std::vector<T>& vec, const T& value )
12123 vec.insert( vec.begin(), value );
12135inline bool read ( Evt& evt, std::istream& is, bool skip_hits = false )
12137 using namespace std;
12141 // find next start_event
12143 while ( w != mc_keys::start_event_t && is.good() ) is >> w;
12145 int mc_event_type; // dummy - this is always 1 in all files.
12146 is >> evt.mc_id >> mc_event_type;
12148 Trk trk_nu, trk_primary;
12149 bool have_trk_nu(false), have_trk_primary(false);
12152 evt.mc_trks.clear();
12154 evt.mc_hits.clear();
12165 if (skip_hits && ( w == mc_keys::hit_t || w == mc_keys::hit_raw_t)) {
12166 is.ignore( 1000, '\n' );
12170 if ( w == mc_keys::hit_t ) {
12172 read( h, is, true );
12173 evt.mc_hits.push_back( h );
12175 } else if ( w == mc_keys::hit_raw_t ) {
12177 read( h, is, false);
12178 evt.hits.push_back( h );
12180 } else if ( w == mc_keys::track_in_t ||
12181 w == mc_keys::track_t ||
12182 w == mc_keys::neutrino_t ||
12183 w == mc_keys::track_bundle_t ||
12184 w == mc_keys::track_primary_t ) {
12192 getline( is, line );
12193 istringstream ii(line);
12195 if ( w != mc_keys::track_bundle_t ) {
12201 ii >> t.pos >> t.dir >> t.E;
12205 if ( w == mc_keys::track_in_t) {
12207 t.status = TRK_ST_FINALSTATE;
12209 ii >> t.t >> t.type;
12213 t.type = pdg_code( t.type );
12217 if ( ii.fail() ) { // missing length is not an error
12218 evt.mc_trks.push_back( t );
12225 if ( ii.fail() ) { // missing eloss is not an error
12226 evt.mc_trks.push_back( t );
12230 t.setusr( mc_usr_keys::energy_lost_in_can, eloss);
12232 evt.mc_trks.push_back( t );
12235 } else if ( w == mc_keys::track_t ) {
12239 evt.trks.push_back( t );
12241 } else if ( w == mc_keys::neutrino_t ) {
12243 t.status = TRK_ST_PRIMARYNEUTRINO;
12245 // the last item we will read is W2LIST_GSEAGEN_CC, make enough space;
12246 if (evt.w2list.size() < W2LIST_GSEAGEN_CC+1 ) evt.w2list.resize(W2LIST_GSEAGEN_CC+1);
12249 evt.w2list[W2LIST_GSEAGEN_BX] >>
12250 evt.w2list[W2LIST_GSEAGEN_BY] >>
12251 evt.w2list[W2LIST_GSEAGEN_ICHAN] >>
12253 evt.w2list[W2LIST_GSEAGEN_CC];
12256 have_trk_nu = true;
12258 } else if ( w == mc_keys::track_primary_t ) {
12260 t.status = TRK_ST_PRIMARYCOSMIC;
12262 ii >> t.t >> trk_primary.type; // nucleus id (in pdg format or not?)
12265 have_trk_primary = true;
12267 } else if ( w == mc_keys::track_bundle_t ) {
12269 t.type = PDG_MUONBUNDLE;
12270 t.status = TRK_ST_MUONBUNDLE;
12272 evt.mc_trks.push_back( t );
12276 ostream& out = Exception::getOstream();
12277 out << "Unknown tag " << w << " for trk ";
12279 throw Exception(static_cast<ostringstream&>(out).str());
12284 ostream& out = Exception::getOstream();
12285 out << "Error reading trk ";
12287 throw Exception(static_cast<ostringstream&>(out).str());
12290 } else if ( w == mc_keys::weights_t) {
12292 evt.w = read_line_to_vector( is );
12294 } else if ( w == mc_keys::w2list_t) {
12296 auto v = read_line_to_vector( is );
12297 evt.w2list.resize( std::max( evt.w2list.size(), v.size()));
12298 std::copy( v.begin(), v.end() , evt.w2list.begin() );
12300 } else if ( w == mc_keys::w3list_t) {
12302 evt.w3list = read_line_to_vector( is );
12304 } else if ( w == mc_keys::hourangle_t ) {
12308 evt.setusr(mc_usr_keys::hourangle, ha );
12310 } else if ( w == mc_keys::center_on_can_t) {
12312 // in corsika files, there is the (undocumented?) center_on_can tag,
12313 // which denoets the projection of the primary on the can. The direction
12314 // of the center_on_can 'track' is by defintion the direction of the
12315 // primary. We record the position in the usr data.
12317 vector<double> v = read_line_to_vector( is );
12319 if ( v.size() > 3 ) {
12320 evt.setusr(mc_usr_keys::center_on_can_x, v[1] );
12321 evt.setusr(mc_usr_keys::center_on_can_y, v[2] );
12322 evt.setusr(mc_usr_keys::center_on_can_z, v[3] );
12325 } else if ( w == mc_keys::eventtime_t ) {
12327 unsigned nsec, n16ns_ticks;
12328 is >> nsec >> n16ns_ticks;
12329 evt.mc_event_time.SetSec( nsec );
12330 evt.mc_event_time.SetNanoSec( n16ns_ticks * 16 );
12332 } else if ( w == mc_keys::muon_decay_t) {
12334 // in km3sim files, there are additional tags, including this one
12335 vector<double> v = read_line_to_vector( is );
12336 if ( v.size() > 4 )
12338 evt.setusr(mc_usr_keys::muon_decay_x, v[2] );
12339 evt.setusr(mc_usr_keys::muon_decay_y, v[3] );
12340 evt.setusr(mc_usr_keys::muon_decay_z, v[4] );
12343 } else if ( w == mc_keys::end_event_t) {
12345 // finalize the mc_tracks -- as best we can.
12347 // If there is both a primary, and a neutrino, then the primary
12348 // will go second (mc_trks[1]) with id=-1 and the neutrino will
12349 // be mc_trks[0] with id=0. Unless they are same particle (identical
12350 // pos,dir,E); in that case the primary is skipped.
12351 // The primarylepton tag is not stored as a seperate Trk.
12353 if ( have_trk_primary && have_trk_nu ) {
12355 bool same = trk_nu.pos == trk_primary.pos &&
12356 trk_nu.dir == trk_primary.dir &&
12357 trk_nu.E == trk_primary.E;
12360 trk_primary.id = -1;
12361 push_front( evt.mc_trks, trk_primary);
12365 push_front( evt.mc_trks, trk_nu);
12367 } else if ( have_trk_primary ) {
12369 trk_primary.id = 0;
12370 push_front( evt.mc_trks, trk_primary);
12372 } else if ( have_trk_nu ) {
12375 push_front( evt.mc_trks, trk_nu);
12381 is.ignore( 1000, '\n' );
12388 THROW(Exception, "Error while reading ascii event" << w << ' ' << evt.id);
12402inline bool write( const Evt& evt, std::ostream& os )
12404 using namespace std;
12406 // set precision to 12 digits.
12407 const int precision = 12;
12408 auto old_flags = os.flags();
12409 auto old_precision = os.precision( precision );
12410 os.unsetf( std::ios_base::scientific | std::ios_base::fixed ); // default behaviour
12412 os << mc_keys::start_event_t << ' ' << evt.mc_id << ' ' << 1 << endl;
12414 for ( auto& trk : evt.mc_trks ) {
12416 const std::string& tag = trk.comment;
12419 << (tag != mc_keys::track_bundle_t ? trk.id : trk.len) << ' '
12424 if ( tag == mc_keys::track_in_t ) {
12426 os << ' ' << trk.t << ' ' << geant3_code(trk.type) << ' ' << trk.len;
12428 if ( trk.haveusr( mc_usr_keys::energy_lost_in_can ) ) {
12429 os << ' ' << trk.getusr( mc_usr_keys::energy_lost_in_can );
12434 } else if ( tag == mc_keys::track_primary_t ) {
12436 os << ' ' << trk.t << ' ' << trk.type << endl;
12438 } else if ( tag == mc_keys::neutrino_t ) {
12440 double bx(0), by(0);
12441 int ichan(0), cc(0);
12443 if ( evt.w2list.size() > W2LIST_GSEAGEN_CC ) {
12444 bx = evt.w2list[W2LIST_GSEAGEN_BX];
12445 by = evt.w2list[W2LIST_GSEAGEN_BY];
12446 ichan = evt.w2list[W2LIST_GSEAGEN_ICHAN];
12447 cc = evt.w2list[W2LIST_GSEAGEN_CC];
12464 for ( auto& trk : evt.trks ) {
12465 os << mc_keys::track_fit_t << ' ' << trk.id << ' ' << trk.pos << ' ' << trk.dir << ' ' << trk.E << ' ' << trk.t << endl;
12468 for ( auto& hit : evt.mc_hits ) write ( hit, os, mc_keys::hit_t);
12469 for ( auto& hit : evt.hits ) write ( hit, os, mc_keys::hit_raw_t);
12471 os << mc_keys::weights_t; for (auto& w : evt.w ) os << ' ' << w; os << endl;
12472 os << mc_keys::w2list_t; for (auto& w : evt.w2list ) os << ' ' << w; os << endl;
12473 os << mc_keys::w3list_t; for (auto& w : evt.w3list ) os << ' ' << w; os << endl;
12475 os << mc_keys::eventtime_t << evt.mc_event_time.GetSec() << " "
12476 << evt.mc_event_time.GetNanoSec() / 16 << endl;
12478 os << mc_keys::end_event_t << endl;
12480 // restore os to how we found it.
12481 os.flags( old_flags );
12482 os.precision( old_precision );
12500inline bool read( Head& hdr, std::istream& is )
12502 using namespace std;
12506 bool start = false;
12508 while (getline( is, line ))
12510 if ( io_stringutil::startswith(line, mc_keys::end_event_t))
12515 if ( io_stringutil::startswith(line, mc_keys::start_run_t))
12520 if ( io_stringutil::startswith(line, mc_keys::start_event_t))
12522 THROW(Exception, "Unexpected tag " << mc_keys::start_event_t << " found while reading header at " << line << " (could mean the evt file has no header)");
12525 if (!start) continue;
12527 vector<string> v = splitstring( line, ':' );
12530 std::cout << "Warning: line with empty tag found when reading header" << endl;
12531 std::cout << " "<< line << endl;
12532 std::cout << " will be skipped" << endl;
12536 // the following with unsure key in the map is unique by adding _1 _2 etc.
12537 hdr.set_line( io_stringutil::trim(v[0]), io_stringutil::trim(v[1]) );
12543 THROW(Exception, "Reading of MC header terminated before finding a start_run: tag. Please check your file");
12557inline bool write( const Head& hdr, std::ostream& os )
12564#ifndef IOONLINEINCLUDED
12565#define IOONLINEINCLUDED
12567#include "km3net-dataformat/offline/Evt.hh"
12568#include "km3net-dataformat/offline/Hit.hh"
12569#include "km3net-dataformat/offline/Trk.hh"
12570#include "km3net-dataformat/offline/Exception.hh"
12572#include "km3net-dataformat/online/JDAQEvent.hh"
12573#include "km3net-dataformat/online/JDAQKeyHit.hh"
12574#include "km3net-dataformat/online/JDAQTimeslice.hh"
12575#include "km3net-dataformat/online/JDAQSummaryslice.hh"
12577#include "TStreamerInfo.h"
12580#include "km3net-dataformat/definitions/root.hh"
12586using namespace KM3NETDAQ;
12594inline void read(Hit& hit, const JDAQHit& daqhit )
12596 hit.channel_id = daqhit.getPMT();
12597 hit.tot = daqhit.getToT();
12598 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12607inline void read(Hit& hit, const JDAQKeyHit& daqhit )
12609 hit.id = hit.pmt_id = 0;
12611 hit.dom_id = daqhit.getModuleID();
12612 hit.channel_id = daqhit.getPMT();
12613 hit.tot = daqhit.getToT();
12614 hit.tdc = daqhit.getT(); // GetT() just return the bare TDC
12623inline void read(Evt& evt, const JDAQEvent& de)
12625 evt.run_id = de.getRunNumber();
12626 evt.det_id = de.getDetectorID();
12627 evt.frame_index = de.getFrameIndex();
12628 evt.trigger_counter = de.getCounter();
12629 evt.overlays = de.getOverlays();
12630 evt.trigger_mask = de.getTriggerMask();
12631 evt.t.SetSec( de.getTimesliceStart().getUTCseconds() );
12632 evt.t.SetNanoSec( de.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12634 // The only way to know the hits that are also in the triggeredhits collection
12635 // is by dom and channel id and time.
12638 std::map<int, std::map< int, std::map < unsigned int, Hit*> > > M;
12640 const std::vector<JDAQSnapshotHit>& snapshotHits = de.getHits<JDAQSnapshotHit>();
12641 const std::vector<JDAQTriggeredHit>& triggeredHits = de.getHits<JDAQTriggeredHit>();
12643 // http://stackoverflow.com/questions/10735135/reallocation-in-stdvector-after-stdvector-reserve
12645 evt.hits.reserve(snapshotHits.size());
12647 for (auto& daqhit : snapshotHits ) // JDAQSnapshotHit
12651 evt.hits.push_back( h );
12652 M[ h.dom_id ][ h.channel_id ][ h.tdc ] = &(*evt.hits.rbegin());
12655 for (auto& daqtrighit : triggeredHits)
12657 Hit* g = M[daqtrighit.getModuleID()][daqtrighit.getPMT()][daqtrighit.getT()];
12660 g->trig = daqtrighit.getTriggerMask ();
12662 THROW(Exception, "Failed to flag snaphot hit " << (int) daqtrighit.getModuleID() << "." << (int) daqtrighit.getPMT() << " " << daqtrighit.getT());
12673inline void read( Evt& evt, const JDAQTimeslice& ts )
12675 evt.run_id = ts.getRunNumber();
12676 evt.det_id = ts.getDetectorID();
12677 evt.frame_index = ts.getFrameIndex();
12678 evt.t.SetSec( ts.getTimesliceStart().getUTCseconds() );
12679 evt.t.SetNanoSec( ts.getTimesliceStart().getUTC16nanosecondcycles() * 16 );
12682 // a timeslice is a vector of JDAQSuperFrame's, which is a JDAQFrame, which
12683 // is an stl::vector-like object (supporting stl-like iteration.)
12685 Hit h; h.id = 0; h.pmt_id = 0;
12687 for (auto& sf : ts )
12689 for (auto& daqhit : sf )
12692 h.dom_id = sf.getModuleID();
12693 evt.hits.push_back(h);
12708inline JDAQSummaryslice* get_summary_slice( TFile* f , int frame_index )
12710 static TFile* _f = 0;
12711 static TTree* S = 0;
12712 static TBranch* BS = 0;
12713 JDAQSummaryslice *r = 0 ;
12715 if (!f) THROW(Exception, "get_summary_slice called with TFile pointer that is null");
12718 // in principle, event if the pointer-value is the same, we could have been given a new file
12720 if ( !_f || _f->GetUUID().Compare( f->GetUUID() ) != 0 ) // setup for tree reading and build tree index
12724 // first we have to deal with the following....
12725 // The streamer of JDAQSummaryFrame needs to know what to do since
12726 // this information is not written to root file.
12728 const char* name = JDAQSummaryslice::Class()->GetName();
12730 JDAQSummaryFrame::ROOT_IO_VERSION = ((TStreamerInfo*)_f -> GetStreamerInfoList()->FindObject(name))->GetClassVersion();
12732 S = (TTree*) _f->Get( TTREE_ONLINE_SUMMARYSLICE );
12736 THROW(Exception, "Failed to get summary slice TTree : " << TTREE_ONLINE_SUMMARYSLICE );
12739 BS = S->GetBranch( TBRANCH_ONLINE_SUMMARYSLICE );
12743 THROW(Exception, "Failed to get brach :" << TBRANCH_ONLINE_SUMMARYSLICE );
12746 std::cout << "building index to lookup summary slices..." << std::endl;
12747 int n = S->BuildIndex("frame_index");
12749 BS->SetAddress( &r );
12752 int nbytes = S->GetEntryWithIndex( frame_index ); // returns -1 if not found
12755 THROW(Exception, "Failed to find summary slice entry with frame_index " << frame_index);
12762#ifndef __TOOLS_MULTIPLICITY__
12763#define __TOOLS_MULTIPLICITY__
12765#include "km3net-dataformat/offline/Evt.hh"
12766#include "km3net-dataformat/offline/Trk.hh"
12774inline int get_multiplicity(const Evt& event)
12776 using namespace std;
12778 // Bundle multiplicity is stored in the `len` member variable for `track_bundle`s.
12780 for ( auto& t : event.mc_trks ) {
12781 if ( t.status == TRK_ST_MUONBUNDLE ) { return (int) t.len; }
12784 ostream& out = Exception::getOstream();
12785 out << "get_multiplicity(): The following event does not correspond to a muon bundle:" << endl;
12787 throw Exception(static_cast<ostringstream&>(out).str());
12791#ifndef __TOOLS_RECONSTRUCTION__
12792#define __TOOLS_RECONSTRUCTION__
12795#include <algorithm>
12797#include "km3net-dataformat/offline/Hit.hh"
12798#include "km3net-dataformat/offline/Vec.hh"
12799#include "km3net-dataformat/offline/Trk.hh"
12800#include "km3net-dataformat/offline/Evt.hh"
12801#include "km3net-dataformat/offline/Exception.hh"
12802#include "km3net-dataformat/definitions/reconstruction.hh"
12816struct rec_stages_range {
12820 rec_stages_range() :
12822 upper(std::numeric_limits<int>::max())
12832 rec_stages_range(const int lower, const int upper) :
12843 rec_stages_range(const int stage) :
12855 inline bool operator()(const int stage) const
12857 return (stage >= lower && stage <= upper);
12874template<int reconstruction_type>
12875struct quality_sorter {
12885 inline bool operator()(const Trk& first, const Trk& second) const
12887 if (first.rec_stages.size() == second.rec_stages.size())
12888 return first.lik > second.lik;
12890 return first.rec_stages.size() > second.rec_stages.size();
12899struct has_history {
12906 has_history(const int type, const rec_stages_range range) :
12915 inline bool operator()(const Trk& track) const
12917 if (track.rec_type == type)
12918 return std::find_if(track.rec_stages.begin(), track.rec_stages.end(), range) != track.rec_stages.end();
12923 const int type; //!< reconstruction type
12924 const rec_stages_range range; //!< range of application types
12934inline bool has_jppmuon_prefit(const Trk& track)
12936 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONPREFIT)(track);
12946inline bool has_jppmuon_simplex(const Trk& track)
12948 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSIMPLEX)(track);
12958inline bool has_jppmuon_gandalf(const Trk& track)
12960 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONGANDALF)(track);
12970inline bool has_jppmuon_energy(const Trk& track)
12972 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONENERGY)(track);
12982inline bool has_jppmuon_start(const Trk& track)
12984 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSTART)(track);
12994inline bool has_jppmuon_fit(const Trk& track)
12996 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JMUONBEGIN, JMUONEND))(track);
13006inline bool has_shower_prefit(const Trk& track)
13008 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPREFIT)(track);
13018inline bool has_shower_positionfit(const Trk& track)
13020 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPOSITIONFIT)(track);
13030inline bool has_shower_completefit(const Trk& track)
13032 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERCOMPLETEFIT)(track);
13042inline bool has_shower_fit(const Trk& track)
13044 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JSHOWERBEGIN, JSHOWEREND))(track);
13054inline bool has_aashower_fit(const Trk& track)
13056 return ::has_history(AANET_RECONSTRUCTION_TYPE, rec_stages_range(AASHOWERBEGIN, AASHOWEREND))(track);
13068template<class JTrackSelector_t>
13069inline bool has_reconstructed_track(const Evt& evt, JTrackSelector_t selector)
13071 return std::find_if(evt.trks.begin(), evt.trks.end(), selector) != evt.trks.end();
13082template<int reconstruction_type>
13083inline bool has_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13085 return ::has_reconstructed_track(evt, ::has_history(reconstruction_type, range));
13095inline bool has_reconstructed_jppmuon(const Evt& evt)
13097 return ::has_reconstructed_track(evt, has_jppmuon_fit);
13107inline bool has_reconstructed_jppshower(const Evt& evt)
13109 return ::has_reconstructed_track(evt, ::has_shower_fit);
13119inline bool has_reconstructed_aashower(const Evt& evt)
13121 return ::has_reconstructed_track(evt, has_aashower_fit);
13137template<class JTrackSelector_t, class JQualitySorter_t>
13138inline const Trk& get_best_reconstructed_track(const Evt& evt,
13139 JTrackSelector_t selector,
13140 JQualitySorter_t comparator)
13142 std::vector<Trk>::const_iterator p = std::find_if(evt.trks.begin(), evt.trks.end(), selector);
13144 for (std::vector<Trk>::const_iterator i = p; i != evt.trks.end(); ++i) {
13145 if (selector(*i) && comparator(*i, *p)) {
13150 if (p != evt.trks.end())
13153 THROW(Exception, "This event has no reconstructed track with given selector.");
13164template<int reconstruction_type>
13165inline const Trk& get_best_reconstructed_track(const Evt& evt, const rec_stages_range range = rec_stages_range())
13167 return get_best_reconstructed_track(evt, ::has_history(reconstruction_type, range), quality_sorter<reconstruction_type>());
13177inline const Trk& get_best_reconstructed_jppmuon(const Evt& evt)
13179 return get_best_reconstructed_track(evt, has_jppmuon_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13189inline const Trk& get_best_reconstructed_jppshower(const Evt& evt)
13191 return get_best_reconstructed_track(evt, ::has_shower_fit, quality_sorter<JPP_RECONSTRUCTION_TYPE>());
13201inline const Trk& get_best_reconstructed_aashower(const Evt& evt)
13203 return get_best_reconstructed_track(evt, ::has_aashower_fit, quality_sorter<AANET_RECONSTRUCTION_TYPE>());
13207#ifndef __TOOLS__TIME_CONVERTER__
13208#define __TOOLS__TIME_CONVERTER__
13210#include "km3net-dataformat/offline/Evt.hh"
13211#include "km3net-dataformat/online/JDAQClock.hh"
13212#include "km3net-dataformat/online/JDAQChronometer.hh"
13225class time_converter
13243 time_converter(const Evt& event) :
13245 __t1(getTimeOfRTS(event.frame_index))
13255 time_converter(const Evt& event,
13256 const JDAQChronometer& chronometer) :
13258 __t1(getTimeOfRTS(chronometer))
13267 double getTime() const
13269 return __t1 - __t0;
13278 double putTime() const
13280 return __t0 - __t1;
13290 double getTime(const double t0) const
13292 return t0 + __t1 - __t0;
13302 double putTime(const double t0) const
13304 return t0 - __t1 + __t0;
13308 double __t0; // Monte Carlo event time [ns]
13309 double __t1; // DAQ RTS [ns]
13314#undef _BACKWARD_BACKWARD_WARNING_H
13316 static const char* classesHeaders[] = {
13317"AAObject", payloadCode,
"@",
13318"Evt", payloadCode,
"@",
13319"Head", payloadCode,
"@",
13320"Hit", payloadCode,
"@",
13321"KM3NETDAQ::JDAQAbstractPreamble", payloadCode,
"@",
13322"KM3NETDAQ::JDAQChronometer", payloadCode,
"@",
13323"KM3NETDAQ::JDAQEvent", payloadCode,
"@",
13324"KM3NETDAQ::JDAQEventHeader", payloadCode,
"@",
13325"KM3NETDAQ::JDAQFrame", payloadCode,
"@",
13326"KM3NETDAQ::JDAQFrameStatus", payloadCode,
"@",
13327"KM3NETDAQ::JDAQHeader", payloadCode,
"@",
13328"KM3NETDAQ::JDAQHit", payloadCode,
"@",
13329"KM3NETDAQ::JDAQKeyHit", payloadCode,
"@",
13330"KM3NETDAQ::JDAQModuleIdentifier", payloadCode,
"@",
13331"KM3NETDAQ::JDAQPMTIdentifier", payloadCode,
"@",
13332"KM3NETDAQ::JDAQPreamble", payloadCode,
"@",
13333"KM3NETDAQ::JDAQRate", payloadCode,
"@",
13334"KM3NETDAQ::JDAQSummaryFrame", payloadCode,
"@",
13335"KM3NETDAQ::JDAQSummaryslice", payloadCode,
"@",
13336"KM3NETDAQ::JDAQSummarysliceHeader", payloadCode,
"@",
13337"KM3NETDAQ::JDAQSuperFrame", payloadCode,
"@",
13338"KM3NETDAQ::JDAQSuperFrameHeader", payloadCode,
"@",
13339"KM3NETDAQ::JDAQTimeslice", payloadCode,
"@",
13340"KM3NETDAQ::JDAQTimesliceHeader", payloadCode,
"@",
13341"KM3NETDAQ::JDAQTimesliceL0", payloadCode,
"@",
13342"KM3NETDAQ::JDAQTimesliceL1", payloadCode,
"@",
13343"KM3NETDAQ::JDAQTimesliceL2", payloadCode,
"@",
13344"KM3NETDAQ::JDAQTimesliceSN", payloadCode,
"@",
13345"KM3NETDAQ::JDAQTriggerCounter", payloadCode,
"@",
13346"KM3NETDAQ::JDAQTriggerMask", payloadCode,
"@",
13347"KM3NETDAQ::JDAQTriggeredHit", payloadCode,
"@",
13348"KM3NETDAQ::JDAQUTCExtended", payloadCode,
"@",
13349"MultiHead", payloadCode,
"@",
13350"Trk", payloadCode,
"@",
13351"Vec", payloadCode,
"@",
13354 static bool isInitialized =
false;
13355 if (!isInitialized) {
13356 TROOT::RegisterModule(
"G__KM3NeTROOT",
13357 headers, includePaths, payloadCode, fwdDeclCode,
13358 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl, {}, classesHeaders,
false);
13359 isInitialized =
true;
13362 static struct DictInit {
13364 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl();
13366 } __TheDictionaryInitializer;
13368void TriggerDictionaryInitialization_G__KM3NeTROOT() {
13369 TriggerDictionaryInitialization_G__KM3NeTROOT_Impl();
Simple data structure for the DAQ preamble required for a correct calculation of the object size for ...
Data storage class for rate measurement of one PMT.
Data storage class for rate measurements of all PMTs in one module.
Data frame of one optical module.
Auxiliary class to count triggers.
Auxiliary class for trigger mask.
Data structure for UTC time.
KM3NeT DAQ data structures and auxiliaries.
static TGenericClassInfo * GenerateInitInstanceLocal(const ::KM3NETDAQ::JDAQAbstractPreamble *)
static void destruct_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void deleteArray_Vec(void *p)
static void destruct_KM3NETDAQcLcLJDAQFrame(void *p)
static void streamer_KM3NETDAQcLcLJDAQSummaryFrame(TBuffer &buf, void *obj)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void destruct_Hit(void *p)
static void destruct_Vec(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummaryslice(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQSummaryFrame(void *p=nullptr)
static void deleteArray_AAObject(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQChronometer(void *p)
static void delete_KM3NETDAQcLcLJDAQHit(void *p)
static void * new_vectorlEHitgR(void *p=nullptr)
static void * new_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQEvent(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQFrame(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQTriggerCounter(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQUTCExtended(void *p=nullptr)
static void * new_maplEstringcOstringgR(void *p=nullptr)
static void * new_vectorlETrkgR(void *p=nullptr)
static void delete_AAObject(void *p)
static void * new_Vec(void *p=nullptr)
static void deleteArray_vectorlETrkgR(void *p)
static void * newArray_Trk(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQPreamble(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQPreamble(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQKeyHit(void *p=nullptr)
static void destruct_vectorlEstringgR(void *p)
static void vectorlEstringgR_TClassManip(TClass *)
static void destruct_Trk(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTriggeredHit(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void vectorlEKM3NETDAQcLcLJDAQSummaryFramegR_TClassManip(TClass *)
static void streamer_KM3NETDAQcLcLJDAQPreamble(TBuffer &buf, void *obj)
static void * newArray_vectorlETrkgR(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQPMTIdentifier(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL0(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static TClass * KM3NETDAQcLcLJDAQRate_Dictionary()
static void * newArray_KM3NETDAQcLcLJDAQSuperFrame(Long_t size, void *p)
static void KM3NETDAQcLcLJDAQRate_TClassManip(TClass *)
static TClass * maplEstringcOstringgR_Dictionary()
static void vectorlEHitgR_TClassManip(TClass *)
static void delete_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void delete_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void * newArray_vectorlEHitgR(Long_t size, void *p)
static void maplEstringcOstringgR_TClassManip(TClass *)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void delete_vectorlEVecgR(void *p)
static void * newArray_Vec(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQHit(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void * newArray_KM3NETDAQcLcLJDAQAbstractPreamble(Long_t size, void *p)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQPreamble(void *p)
R__UseDummy(_R__UNIQUE_DICT_(Init))
static void * newArray_KM3NETDAQcLcLJDAQRate(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQHit(void *p)
static void deleteArray_vectorlEstringgR(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void destruct_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummarysliceHeader(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void * newArray_KM3NETDAQcLcLJDAQHit(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimeslice(void *p)
static void delete_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void destruct_KM3NETDAQcLcLJDAQRate(void *p)
static TClass * vectorlEHitgR_Dictionary()
static void * new_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQChronometer(void *p)
static void * newArray_MultiHead(Long_t size, void *p)
static void delete_vectorlEdoublegR(void *p)
static void vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR_TClassManip(TClass *)
static void delete_MultiHead(void *p)
static void delete_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void streamer_KM3NETDAQcLcLJDAQModuleIdentifier(TBuffer &buf, void *obj)
static void * new_KM3NETDAQcLcLJDAQEvent(void *p=nullptr)
static void delete_maplEstringcOstringgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void streamer_KM3NETDAQcLcLJDAQAbstractPreamble(TBuffer &buf, void *obj)
static void delete_Evt(void *p)
static void destruct_vectorlEHeadgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQKeyHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL1(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void * new_Trk(void *p=nullptr)
static void * newArray_AAObject(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQFrameStatus(void *p)
static void * new_KM3NETDAQcLcLJDAQSuperFrame(void *p=nullptr)
static void deleteArray_Evt(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL1(void *p)
static void * new_KM3NETDAQcLcLJDAQModuleIdentifier(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQRate(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQEventHeader(void *p=nullptr)
static void * newArray_maplEstringcOstringgR(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQFrameStatus(void *p)
TGenericClassInfo * GenerateInitInstance(const ::KM3NETDAQ::JDAQAbstractPreamble *)
static void delete_Head(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR_Dictionary()
static void destruct_KM3NETDAQcLcLJDAQEvent(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void delete_KM3NETDAQcLcLJDAQEvent(void *p)
static void vectorlEdoublegR_TClassManip(TClass *)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(Long_t size, void *p)
static void * new_vectorlEstringgR(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQTimeslice(Long_t size, void *p)
static void streamer_KM3NETDAQcLcLJDAQHit(TBuffer &buf, void *obj)
static void delete_Vec(void *p)
static void delete_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static TClass * vectorlEVecgR_Dictionary()
static void destruct_KM3NETDAQcLcLJDAQChronometer(void *p)
static void vectorlEKM3NETDAQcLcLJDAQSuperFramegR_TClassManip(TClass *)
static void delete_vectorlEintgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceHeader(Long_t size, void *p)
static void delete_Trk(void *p)
static TClass * vectorlEstringgR_Dictionary()
static void delete_vectorlEHeadgR(void *p)
static void * new_KM3NETDAQcLcLJDAQAbstractPreamble(void *p=nullptr)
static void * newArray_Hit(Long_t size, void *p)
static void deleteArray_Hit(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL2(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void delete_vectorlEHitgR(void *p)
static void deleteArray_vectorlEintgR(void *p)
static void destruct_maplEstringcOstringgR(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceSN(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * newArray_vectorlEintgR(Long_t size, void *p)
static void delete_Hit(void *p)
static void delete_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void * new_vectorlEdoublegR(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQSuperFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void deleteArray_MultiHead(void *p)
static void destruct_Head(void *p)
static void * new_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p=nullptr)
static void * new_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQTriggerCounter(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQRate(void *p)
static void delete_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void destruct_MultiHead(void *p)
static void streamer_KM3NETDAQcLcLJDAQKeyHit(TBuffer &buf, void *obj)
static void * newArray_Evt(Long_t size, void *p)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceL2(Long_t size, void *p)
static void deleteArray_vectorlEdoublegR(void *p)
static void destruct_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void * new_vectorlEHeadgR(void *p=nullptr)
static void streamer_KM3NETDAQcLcLJDAQTriggeredHit(TBuffer &buf, void *obj)
static void destruct_vectorlETrkgR(void *p)
static void * new_Hit(void *p=nullptr)
static void deleteArray_maplEstringcOstringgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQTriggerMask(Long_t size, void *p)
static TClass * vectorlETrkgR_Dictionary()
static void * new_Evt(void *p=nullptr)
::ROOT::TGenericClassInfo * _R__UNIQUE_DICT_(Init)
static void * new_KM3NETDAQcLcLJDAQTriggeredHit(void *p=nullptr)
static void vectorlETrkgR_TClassManip(TClass *)
static void vectorlEVecgR_TClassManip(TClass *)
static void * new_KM3NETDAQcLcLJDAQTriggerMask(void *p=nullptr)
static void destruct_vectorlEdoublegR(void *p)
static void vectorlEintgR_TClassManip(TClass *)
static void deleteArray_KM3NETDAQcLcLJDAQRate(void *p)
static void destruct_vectorlEHitgR(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void deleteArray_vectorlEHeadgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSuperFrameHeader(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQHit(void *p=nullptr)
static void vectorlEKM3NETDAQcLcLJDAQKeyHitgR_TClassManip(TClass *)
static void * newArray_KM3NETDAQcLcLJDAQTimesliceSN(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL0(void *p=nullptr)
static void streamer_KM3NETDAQcLcLJDAQPMTIdentifier(TBuffer &buf, void *obj)
static void * newArray_vectorlEVecgR(Long_t size, void *p)
static void * newArray_vectorlEstringgR(Long_t size, void *p)
static void * new_Head(void *p=nullptr)
static void * newArray_KM3NETDAQcLcLJDAQEventHeader(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL0(void *p)
static void destruct_vectorlEVecgR(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void delete_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void * newArray_KM3NETDAQcLcLJDAQKeyHit(Long_t size, void *p)
static void delete_KM3NETDAQcLcLJDAQPreamble(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTriggerMask(void *p)
static void delete_vectorlEstringgR(void *p)
static void deleteArray_Trk(void *p)
static void * new_KM3NETDAQcLcLJDAQChronometer(void *p=nullptr)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(Long_t size, void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceHeader(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQUTCExtended(void *p)
static void * new_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p=nullptr)
static void deleteArray_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * new_KM3NETDAQcLcLJDAQSummaryslice(void *p=nullptr)
static void delete_vectorlETrkgR(void *p)
static void delete_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void destruct_Evt(void *p)
static void destruct_vectorlEintgR(void *p)
static void delete_KM3NETDAQcLcLJDAQFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceL2(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(void *p)
static void destruct_KM3NETDAQcLcLJDAQPreamble(void *p)
static TClass * vectorlEintgR_Dictionary()
static void * new_KM3NETDAQcLcLJDAQTimeslice(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQFrame(Long_t size, void *p)
static TClass * vectorlEHeadgR_Dictionary()
static void delete_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void * new_KM3NETDAQcLcLJDAQHeader(void *p=nullptr)
static void * newArray_vectorlEKM3NETDAQcLcLJDAQSuperFramegR(Long_t size, void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQSuperFramegR_Dictionary()
static void * new_MultiHead(void *p=nullptr)
static void deleteArray_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void delete_KM3NETDAQcLcLJDAQTimesliceHeader(void *p)
static void * new_KM3NETDAQcLcLJDAQTimesliceL1(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQEventHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQHeader(void *p)
static void * newArray_Head(Long_t size, void *p)
static TClass * vectorlEdoublegR_Dictionary()
static void deleteArray_KM3NETDAQcLcLJDAQFrameStatus(void *p)
static void destruct_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void * newArray_KM3NETDAQcLcLJDAQFrameStatus(Long_t size, void *p)
static void vectorlEHeadgR_TClassManip(TClass *)
static void deleteArray_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p)
static void delete_KM3NETDAQcLcLJDAQHeader(void *p)
static void destruct_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void * new_vectorlEVecgR(void *p=nullptr)
static void * newArray_vectorlEdoublegR(Long_t size, void *p)
static void delete_vectorlEKM3NETDAQcLcLJDAQTriggeredHitgR(void *p)
static void destruct_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void delete_KM3NETDAQcLcLJDAQAbstractPreamble(void *p)
static void * new_AAObject(void *p=nullptr)
static void delete_KM3NETDAQcLcLJDAQTriggerCounter(void *p)
static void * new_KM3NETDAQcLcLJDAQFrameStatus(void *p=nullptr)
static void deleteArray_Head(void *p)
static void * newArray_KM3NETDAQcLcLJDAQModuleIdentifier(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQPMTIdentifier(void *p)
static void deleteArray_vectorlEHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQModuleIdentifier(void *p)
static void delete_KM3NETDAQcLcLJDAQTriggeredHit(void *p)
static void * newArray_KM3NETDAQcLcLJDAQHeader(Long_t size, void *p)
static void deleteArray_vectorlEVecgR(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQSummaryFramegR_Dictionary()
static void delete_vectorlEKM3NETDAQcLcLJDAQSummaryFramegR(void *p)
static void deleteArray_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQFrame(void *p)
static void * newArray_KM3NETDAQcLcLJDAQSummaryFrame(Long_t size, void *p)
static void destruct_AAObject(void *p)
static void * newArray_KM3NETDAQcLcLJDAQUTCExtended(Long_t size, void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void * newArray_KM3NETDAQcLcLJDAQChronometer(Long_t size, void *p)
static void destruct_KM3NETDAQcLcLJDAQSummaryFrame(void *p)
static void delete_KM3NETDAQcLcLJDAQSummarysliceHeader(void *p)
static void * new_vectorlEintgR(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQPMTIdentifier(void *p=nullptr)
static void * new_KM3NETDAQcLcLJDAQSuperFrameHeader(void *p=nullptr)
static void destruct_KM3NETDAQcLcLJDAQTimesliceSN(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQSummaryslice(void *p)
static TClass * vectorlEKM3NETDAQcLcLJDAQKeyHitgR_Dictionary()
static void * newArray_vectorlEHeadgR(Long_t size, void *p)
static void delete_vectorlEKM3NETDAQcLcLJDAQKeyHitgR(void *p)
static void deleteArray_KM3NETDAQcLcLJDAQEvent(void *p)
AAObject is a base class for I/O-classes that adds the possibility to add 'user' information which wi...
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Timeslice data structure for L0 data.
Timeslice data structure for L1 data.
Timeslice data structure for L2 data.
Timeslice data structure for SN data.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
The Vec class is a straightforward 3-d vector, which also works in pyroot.