8 #ifndef _DEVIOWorkerThread_
9 #define _DEVIOWorkerThread_
16 #include <condition_variable>
21 #include <JANA/jerror.h>
42 ,list<DParsedEvent*> &parsed_events
43 ,uint32_t &MAX_PARSED_EVENTS
44 ,mutex &PARSED_EVENTS_MUTEX
45 ,condition_variable &PARSED_EVENTS_CV
76 condition_variable
cv;
98 void Finish(
bool wait_to_complete=
true);
100 void MakeEvents(
void);
101 void PublishEvents(
void);
102 void ParseBank(
void);
104 void ParseEventTagBank(uint32_t* &iptr, uint32_t *iend);
105 void ParseEPICSbank(uint32_t* &iptr, uint32_t *iend);
106 void ParseBORbank(uint32_t* &iptr, uint32_t *iend);
107 void ParseTSscalerBank(uint32_t* &iptr, uint32_t *iend);
108 void Parsef250scalerBank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
109 void ParseControlEvent(uint32_t* &iptr, uint32_t *iend);
110 void ParsePhysicsBank(uint32_t* &iptr, uint32_t *iend);
111 void ParseCDAQBank(uint32_t* &iptr, uint32_t *iend);
112 void ParseBuiltTriggerBank(uint32_t* &iptr, uint32_t *iend);
113 void ParseRawTriggerBank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
114 void ParseDataBank(uint32_t* &iptr, uint32_t *iend);
115 void ParseDVertexBank(uint32_t* &iptr, uint32_t *iend);
116 void ParseDEventRFBunchBank(uint32_t* &iptr, uint32_t *iend);
118 void ParseJLabModuleData(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
119 void ParseTIBank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
120 void ParseCAEN1190(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
121 void ParseModuleConfiguration(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
122 void Parsef250Bank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
123 void MakeDf250WindowRawData(
DParsedEvent *pe, uint32_t rocid, uint32_t slot, uint32_t itrigger, uint32_t* &iptr);
124 void Parsef125Bank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
125 void MakeDf125WindowRawData(
DParsedEvent *pe, uint32_t rocid, uint32_t slot, uint32_t itrigger, uint32_t* &iptr);
126 void ParseF1TDCBank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
127 void ParseSSPBank(uint32_t rocid, uint32_t* &iptr, uint32_t *iend);
129 void LinkAllAssociations(
void);
131 inline uint32_t F1TDC_channel(uint32_t chip, uint32_t chan_on_chip,
int modtype);
134 void DumpBinary(
const uint32_t *iptr,
const uint32_t *iend, uint32_t MaxWords=0,
const uint32_t *imark=NULL);
152 uint32_t channel_map[8] = {0, 0, 1, 1, 2, 2, 3, 3};
155 return (4 * chip) + channel_map[ chan_on_chip&0x7 ];
157 return (chip <<3) | chan_on_chip;
160 throw JException(
"F1TDC_channel called for non-F1TDC module type");
166 #endif // _DEVIOWorkerThread_
uint32_t F1TDC_channel(uint32_t chip, uint32_t chan_on_chip, int modtype)
set< uint32_t > & ROCIDS_TO_PARSE
uint32_t & MAX_PARSED_EVENTS
condition_variable & PARSED_EVENTS_CV
uint64_t MAX_EVENT_RECYCLES
list< DParsedEvent * > & parsed_events
JEventSource_EVIOpp * event_source
How this Event Source Works
string GetName(void) const
vector< DParsedEvent * > parsed_event_pool
set< uint32_t > ROCIDS_TO_PARSE
mutex & PARSED_EVENTS_MUTEX
list< DParsedEvent * > current_parsed_events
uint64_t MAX_OBJECT_RECYCLES