1 #ifndef __CMYEVENTSEGMENT_H
2 #define __CMYEVENTSEGMENT_H
4 #include <Configuration.h>
5 #include <SystemBooter.h>
7 #include <CExperiment.h>
8 #include <CEventSegment.h>
10 #include <CRingBuffer.h>
21 #define MAX_NUM_PIXIE16_MODULES 24
38 vector<uint32_t> data;
42 double GetTime()
const {
return time;};
44 double GetChannelLength()
const {
return channellength;};
45 int SetChannelLength();
47 int GetChannel()
const {
return chanid;};
63 unsigned short NumModules;
67 unsigned int ModuleRevBitMSPSWord[MAX_NUM_PIXIE16_MODULES];
68 unsigned int ModClockCal[MAX_NUM_PIXIE16_MODULES];
71 unsigned int nFIFOWords;
73 unsigned long totwords;
75 deque<channel *> ModuleDeque[MAXMOD];
76 vector<uint32_t> ModuleData[MAXMOD];
78 vector<uint32_t> nFIFOWordsinModuleCurrentRead;
79 vector<uint64_t> nFIFOWordsinModuleTotal;
81 vector<double> CurrentTimeinModuleRead;
82 vector<double> FirstTimeinModuleRead;
89 double m_tstampScaleFactor;
92 bool m_systemInitialized;
93 bool m_firmwareLoadedRecently;
99 virtual void initialize();
101 virtual size_t read(
void* rBuffer,
size_t maxwords);
102 virtual void disable();
103 virtual void clear();
105 virtual void onEnd(CExperiment* pExperiment);
106 int GetNumberOfModules() {
return (
int)NumModules;}
107 int GetCrateID()
const;
109 bool IsUniqueEvent(
const channel* event);
111 void boot(DAQ::DDAS::SystemBooter::BootType type = DAQ::DDAS::SystemBooter::FullBoot);
114 void setTimestampScaleFactor(
double value);
115 double getTimestampScaleFactor()
const;
118 size_t SelectivelyOutputData(
void* rBuffer,
size_t maxwords);
120 void PushDataOntoQueue(std::deque<channel*>& deque, std::deque<channel*>& buffer);
121 uint64_t extractExternalTimestamp(
const std::vector<uint32_t>& data);
122 bool isHeterogeneousSystem(
const std::vector<int>& hdwrMap);
Definition: ddaschannelDictionary.cpp:37
Definition: CMyEventSegment.h:47
The Configuration class.
Definition: Configuration.h:50
Definition: CMyTrigger.h:4
Definition: CMyEventSegment.h:26
Definition: SystemBooter.cpp:16