Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventSource_EVIOpp Class Reference

How this Event Source Works

More...

#include <JEventSource_EVIOpp.h>

+ Inheritance diagram for JEventSource_EVIOpp:

Public Types

enum  EVIOSourceType { kNoSource, kFileSource, kETSource }
 
enum  EmulationModeType { kEmulationNone, kEmulationAlways, kEmulationAuto }
 

Public Member Functions

 JEventSource_EVIOpp (const char *source_name)
 
virtual ~JEventSource_EVIOpp ()
 
virtual const char * className (void)
 
void Dispatcher (void)
 
jerror_t GetEvent (jana::JEvent &event)
 
void FreeEvent (jana::JEvent &event)
 
jerror_t GetObjects (jana::JEvent &event, jana::JFactory_base *factory)
 
void LinkBORassociations (DParsedEvent *pe)
 
uint64_t SearchFileForRunNumber (void)
 
void EmulateDf250Firmware (DParsedEvent *pe)
 
void EmulateDf125Firmware (DParsedEvent *pe)
 
void AddToCallStack (DParsedEvent *pe, JEventLoop *loop)
 
void AddSourceObjectsToCallStack (JEventLoop *loop, string className)
 
void AddEmulatedObjectsToCallStack (JEventLoop *loop, string caller, string callee)
 
void AddROCIDtoParseList (uint32_t rocid)
 
set< uint32_t > GetROCIDParseList (uint32_t rocid)
 

Static Public Member Functions

static const char * static_className (void)
 

Public Attributes

bool DONE
 
bool DISPATCHER_END
 
std::chrono::high_resolution_clock::time_point tstart
 
std::chrono::high_resolution_clock::time_point tend
 
uint32_t MAX_PARSED_EVENTS
 
mutex PARSED_EVENTS_MUTEX
 
condition_variable PARSED_EVENTS_CV
 
list< DParsedEvent * > parsed_events
 
std::atomic< uint_fast64_t > NEVENTS_PROCESSED
 
std::atomic< uint_fast64_t > NDISPATCHER_STALLED
 
std::atomic< uint_fast64_t > NPARSER_STALLED
 
std::atomic< uint_fast64_t > NEVENTBUFF_STALLED
 
uint64_t MAX_EVENT_RECYCLES
 
uint64_t MAX_OBJECT_RECYCLES
 
EVIOSourceType source_type
 
HDEVIOhdevio
 
HDEThdet
 
bool et_quit_next_timeout
 
vector< DEVIOWorkerThread * > worker_threads
 
thread * dispatcher_thread
 
JStreamLog evioout
 
uint32_t F250_EMULATION_MODE
 
uint32_t F125_EMULATION_MODE
 
uint32_t F250_EMULATION_VERSION
 
Df250EmulatorAlgorithmf250Emulator
 
Df125EmulatorAlgorithmf125Emulator
 
bool RECORD_CALL_STACK
 
set< uint32_t > ROCIDS_TO_PARSE
 
list< DBORptrs * > borptrs_list
 
bool PARSE
 
bool PARSE_F250
 
bool PARSE_F125
 
bool PARSE_F1TDC
 
bool PARSE_CAEN1290TDC
 
bool PARSE_CONFIG
 
bool PARSE_BOR
 
bool PARSE_EPICS
 
bool PARSE_EVENTTAG
 
bool PARSE_TRIGGER
 
bool PARSE_SSP
 
bool APPLY_TRANSLATION_TABLE
 
int ET_STATION_NEVENTS
 
bool ET_STATION_CREATE_BLOCKING
 
bool LOOP_FOREVER
 
uint32_t USER_RUN_NUMBER
 
int VERBOSE
 
int VERBOSE_ET
 
float TIMEOUT
 
uint32_t NTHREADS
 
bool PRINT_STATS
 
bool SWAP
 
bool LINK
 
bool LINK_TRIGGERTIME
 
bool LINK_BORCONFIG
 
bool LINK_CONFIG
 
bool IGNORE_EMPTY_BOR
 
bool TREAT_TRUNCATED_AS_ERROR
 
string SYSTEMS_TO_PARSE
 
uint32_t jobtype
 
bool IS_CDAQ_FILE = false
 

Detailed Description

How this Event Source Works

Overview

This event source represents a complete rewrite of the original JEventSource_EVIO class. It is highly optimized and while it gets rid of some of the complexities that developed in the original over time, in some ways it replaced them with complexities of its own.

In a nut shell, this source launches a minimum of 2 dedicated threads for reading in and parsing the events. These are in addition to any threads the JANA framework creates. There is a single "dispatcher" thread that reads in the events and assigns them to one of a group of "worker" threads.

JANA itself has a similar structure in that there is a single "EventBufferThread" that grabs fully parsed events from this class via its GetEvent method, and then hands them to one of a group of "processing" threads where the actual analysis begins.

One benefit of this design is that it allows certain objects, methods, or member data to be modified by only a single thread throughout its life. This avoids the use of locks which introduce inefficiency in a multi-threaded application.

BORconfig objects

Typically, BOR events only occur at the begining of a file and a given job will see only one. However, we must support the possibility of multiple BOR events in case we are reading from an ET system or file of merged events.

BOR objects are applicable to all events in the stream until another BOR event is encountered. We therefore need every event to get a copy of the BOR config object pointers. Thus, they must be kept in a place that all worker threads see. This is the borptrs_list object in the JEventSource_EVIOpp class.

Here's the sequence for how the BOR event is handled:

  1. When a BOR event is parsed it creates a DBORptrs object which holds a complete set of BOR objects. The pointer to this DBORptrs object is left in the DParsedEvent object which would otherwise be NULL.
  2. When JEventSource_EVIOpp::GetEvent() is called, it will see the non-NULL borptrs pointer in DParsedEvent. At this point it will copy it to the front of borptrs_list, effectively giving ownership to JEventSource_EVIOpp. Note that aside from the destructor, borptrs_list is only accessed here which is only called from the event reader thread. This means we don't have to use a lock.
  3. If the borptrs pointer is NULL, then JEventSource_EVIOpp::GetEvent will copy the front pointer from borptrs_list into the DParsedEvent. We rely on the events being in istream order here to only apply the BORconfig objects to events after the BOR event itself.
  4. When GetObjects is called, it calls DParsedEvent::CopyToFactories where the BOR objects are copied into the appropriate factories. It then calls JEventSource_EVIOpp::LinkBORassociations to add the BORConfig objects as associated objects to various hit objects.
  5. Only when the JEventSource_EVIOpp object is destroyed are any BORConfig objects deleted. We don't implement a mechansim to keep track of which DBORptrs objects are still in use so we can't delete them sooner. This shouldn't be a problem though since BOR events are rare.

Definition at line 104 of file JEventSource_EVIOpp.h.

Member Enumeration Documentation

Enumerator
kEmulationNone 
kEmulationAlways 
kEmulationAuto 

Definition at line 113 of file JEventSource_EVIOpp.h.

Enumerator
kNoSource 
kFileSource 
kETSource 

Definition at line 107 of file JEventSource_EVIOpp.h.

Constructor & Destructor Documentation

JEventSource_EVIOpp::JEventSource_EVIOpp ( const char *  source_name)

Definition at line 50 of file JEventSource_EVIOpp.cc.

References APPLY_TRANSLATION_TABLE, Dispatcher(), DISPATCHER_END, dispatcher_thread, DONE, HDET::err_mess, HDEVIO::err_mess, et_quit_next_timeout, ET_STATION_CREATE_BLOCKING, ET_STATION_NEVENTS, evioout, F125_EMULATION_MODE, f125Emulator, F250_EMULATION_MODE, F250_EMULATION_VERSION, f250Emulator, hdet, hdevio, HDEVIO::IGNORE_EMPTY_BOR, IGNORE_EMPTY_BOR, HDET::is_connected, HDEVIO::is_open, japp, DEVIOWorkerThread::JOB_ASSOCIATE, DEVIOWorkerThread::JOB_FULL_PARSE, DEVIOWorkerThread::JOB_NONE, jobtype, kEmulationAuto, kETSource, kFileSource, kNoSource, LINK, LINK_BORCONFIG, DEVIOWorkerThread::LINK_CONFIG, LINK_CONFIG, DEVIOWorkerThread::LINK_TRIGGERTIME, LINK_TRIGGERTIME, LOOP_FOREVER, DEVIOWorkerThread::MAX_EVENT_RECYCLES, MAX_EVENT_RECYCLES, DEVIOWorkerThread::MAX_OBJECT_RECYCLES, MAX_OBJECT_RECYCLES, MAX_PARSED_EVENTS, NDISPATCHER_STALLED, NEVENTBUFF_STALLED, NEVENTS_PROCESSED, NPARSER_STALLED, NTHREADS, PARSE, DEVIOWorkerThread::PARSE_BOR, PARSE_BOR, DEVIOWorkerThread::PARSE_CAEN1290TDC, PARSE_CAEN1290TDC, DEVIOWorkerThread::PARSE_CONFIG, PARSE_CONFIG, DEVIOWorkerThread::PARSE_EPICS, PARSE_EPICS, DEVIOWorkerThread::PARSE_EVENTTAG, PARSE_EVENTTAG, DEVIOWorkerThread::PARSE_F125, PARSE_F125, DEVIOWorkerThread::PARSE_F1TDC, PARSE_F1TDC, DEVIOWorkerThread::PARSE_F250, PARSE_F250, DEVIOWorkerThread::PARSE_SSP, PARSE_SSP, DEVIOWorkerThread::PARSE_TRIGGER, PARSE_TRIGGER, parsed_events, PARSED_EVENTS_CV, PARSED_EVENTS_MUTEX, PRINT_STATS, RECORD_CALL_STACK, ROCIDS_TO_PARSE, DEVIOWorkerThread::run_number_seed, SearchFileForRunNumber(), DStatusBits::SetStatusBitDescriptions(), DTranslationTable::SetSystemsToParse(), source_type, SWAP, SYSTEMS_TO_PARSE, TREAT_TRUNCATED_AS_ERROR, tstart, USER_RUN_NUMBER, DEVIOWorkerThread::VERBOSE, HDET::VERBOSE, VERBOSE, VERBOSE_ET, and worker_threads.

Member Function Documentation

void JEventSource_EVIOpp::AddEmulatedObjectsToCallStack ( JEventLoop *  loop,
string  caller,
string  callee 
)

This is used to give information to JANA regarding the relationship and origin of some of these data objects. This is really just needed so that the janadot program can be used to produce the correct callgraph. Because of how this plugin works, JANA can't record the correct call stack (at least not easily!) Therefore, we have to give it a little help here.

Definition at line 1137 of file JEventSource_EVIOpp.cc.

void JEventSource_EVIOpp::AddROCIDtoParseList ( uint32_t  rocid)
inline

Definition at line 138 of file JEventSource_EVIOpp.h.

References ROCIDS_TO_PARSE.

Referenced by DTranslationTable::SetSystemsToParse().

void JEventSource_EVIOpp::AddSourceObjectsToCallStack ( JEventLoop *  loop,
string  className 
)

This is used to give information to JANA regarding the origin of objects that should come from the source. We add them in explicitly because the file may not have any, but factories may ask for them. We want those links to indicate that the "0" objects in the factory came from the source so that janadot draws these objects correctly.

Definition at line 1115 of file JEventSource_EVIOpp.cc.

References className().

Referenced by AddToCallStack().

void JEventSource_EVIOpp::AddToCallStack ( DParsedEvent pe,
JEventLoop *  loop 
)

Add information to JANA's call stack so that the janadot plugin can better display the actual relationship of the the data objects. This only gets called if the RECORD_CALL_STACK config. parameter is set (which is done automatically by the janadot plugin)

Definition at line 1098 of file JEventSource_EVIOpp.cc.

References AddSourceObjectsToCallStack(), and DParsedEvent::GetParsedDataTypes().

Referenced by GetObjects().

virtual const char* JEventSource_EVIOpp::className ( void  )
inlinevirtual

Definition at line 122 of file JEventSource_EVIOpp.h.

References static_className().

Referenced by AddSourceObjectsToCallStack().

void JEventSource_EVIOpp::Dispatcher ( void  )

This is run in a dedicated thread created by the constructor. It's job is to read in events and dispatch the processing of them to worker threads. When a worker thread is done, it adds the event to the parsed_events list and clears its own "in_use" flag thereby, marking itself as available for another job. The worker threads will stall if adding the event(s) it produced would make parsed_events contain more than MAX_PARSED_EVENTS. This creates backpressure here by having no worker threads available.

Definition at line 315 of file JEventSource_EVIOpp.cc.

References DEVIOWorkerThread::buff, DEVIOWorkerThread::buff_len, c, DEVIOWorkerThread::cv, DISPATCHER_END, DONE, HDET::err_code, HDEVIO::err_code, HDET::err_mess, HDEVIO::err_mess, et_quit_next_timeout, HDEVIO::GetNWordsLeftInFile(), hdet, HDET::HDET_OK, HDET::HDET_TIMEOUT, hdevio, HDEVIO::HDEVIO_EOF, HDEVIO::HDEVIO_FILE_TRUNCATED, HDEVIO::HDEVIO_OK, HDEVIO::HDEVIO_USER_BUFFER_TOO_SMALL, DEVIOWorkerThread::in_use, IS_CDAQ_FILE, DEVIOWorkerThread::istreamorder, japp, DEVIOWorkerThread::JOB_SWAP, DEVIOWorkerThread::jobtype, jobtype, kFileSource, HDEVIO::last_event_len, HDEVIO::last_event_pos, LOOP_FOREVER, NDISPATCHER_STALLED, NEVENTS_PROCESSED, DEVIOWorkerThread::pos, HDET::read(), HDEVIO::readNoFileBuff(), HDEVIO::rewind(), source_type, SWAP, HDET::swap_needed, HDEVIO::swap_needed, tend, TREAT_TRUNCATED_AS_ERROR, and worker_threads.

Referenced by JEventSource_EVIOpp().

void JEventSource_EVIOpp::EmulateDf125Firmware ( DParsedEvent pe)

This is called from GetObjects, but only if window raw data objects exist. It will emulate the firmware, producing hit objects from the sample data.

Definition at line 1040 of file JEventSource_EVIOpp.cc.

References DDAQAddress::channel, Df125CDCPulse::emulated, Df125FDCPulse::emulated, Df125EmulatorAlgorithm::EmulateFirmware(), F125_EMULATION_MODE, f125Emulator, kEmulationAlways, kEmulationNone, DDAQAddress::rocid, and DDAQAddress::slot.

Referenced by GetObjects().

void JEventSource_EVIOpp::EmulateDf250Firmware ( DParsedEvent pe)

This is called from GetObjects, but only if window raw data objects exist. It will emulate the firmware, producing hit objects from the sample data.

There are some complications here worth noting regarding the behavior of the firmware used for Spring 2016 and earlier data. The firmware will actually look for a pulse in the window and if found, emit pulse time and pulse pedestal words for it. It will NOT emit a pulse integral word. Further, it will produce those words for at most one pulse. If running in mode 7 however, (i.e. no window raw data) it will produce multiple pulses. Thus, to mimic the behavior of mode 7, the emulator will produce multiple pulses.

The exact behavior of this is determined by the F250_EMULATION_MODE parameter which may be one of 3 values. The default is kEmulationAuto which does the following:

  1. Produce hit objects for all pulses found in window
  2. If pulse time and pedestal objects exist from firmware then copy the first found hit into the "*_emulated" fields of those existing objects and discard the emulated hit.
  3. Add the remaining emulated hits to the event.

The end result is that the first pulse time and pulse pedestal objects may contain some combination of emulated and firmware generated information. All pulse integral objects will be emulated. It may also be worth noting that this is done in such a way that the data may contain a mixture of mode 8 data from some boards and mode 7 from others. It will not affect those boards producing mode 7 (e.g. won't delete their hits even if F250_EMULATION_MODE is set to kEmulationAlways).

Definition at line 861 of file JEventSource_EVIOpp.cc.

References Df250PulseTime::emulated, Df250PulsePedestal::emulated, Df250EmulatorAlgorithm::EmulateFirmware(), F250_EMULATION_MODE, F250_EMULATION_VERSION, f250Emulator, kEmulationAlways, kEmulationNone, Df250PulsePedestal::pedestal, Df250PulsePedestal::pedestal_emulated, Df250PulsePedestal::pulse_peak, Df250PulsePedestal::pulse_peak_emulated, Df250PulseTime::quality_factor, Df250PulseTime::quality_factor_emulated, sortf250pulsenumbers(), Df250PulseTime::time, and Df250PulseTime::time_emulated.

Referenced by GetObjects().

void JEventSource_EVIOpp::FreeEvent ( jana::JEvent &  event)

Definition at line 542 of file JEventSource_EVIOpp.cc.

References DParsedEvent::in_use, and NEVENTS_PROCESSED.

set<uint32_t> JEventSource_EVIOpp::GetROCIDParseList ( uint32_t  rocid)
inline

Definition at line 139 of file JEventSource_EVIOpp.h.

References ROCIDS_TO_PARSE.

void JEventSource_EVIOpp::LinkBORassociations ( DParsedEvent pe)

Add BORConfig objects as associated objects to selected hit objects. Most other object associations are made in DEVIOWorkerThread::LinkAllAssociations. The BORConfig objects however, are not available when that is called. This is called from GetObjects() which is called from one of the processing threads.

Definition at line 641 of file JEventSource_EVIOpp.cc.

References DParsedEvent::borptrs, LinkModule(), and LinkModuleBORSamplesCopy().

Referenced by GetObjects().

uint64_t JEventSource_EVIOpp::SearchFileForRunNumber ( void  )

This is called from the constructor when reading from a file to seed the default run number. This is needed because the first event is probably a BOR event which does not contain the run number. The run number would then be reported as "0" and incorrect calibrations and field maps would be read in. This will try searching past the first (BOR) event for either a physics event, or an EPICS event that has the run number defined in it.

The value returned from this will be copied into each DEVIOWorkerThread object when it is created. It will be used to initialize the run number for each event the worker thread processes. If the worker thread processes a physics event containing a run number, then that will overwrite the run number in the DParsedEvent. Finally, if the user specified a run number, then that will be reported to JANA in lieu of the one in DParsedEvent.

Definition at line 705 of file JEventSource_EVIOpp.cc.

References DModuleType::CDAQTSG, HDEVIO::err_code, HDEVIO::err_mess, event_num, evioout, hdevio, HDEVIO::HDEVIO_OK, HDEVIO::Nevents, HDEVIO::readNoFileBuff(), and VERBOSE.

Referenced by JEventSource_EVIOpp().

static const char* JEventSource_EVIOpp::static_className ( void  )
inlinestatic

Definition at line 123 of file JEventSource_EVIOpp.h.

Referenced by className().

Member Data Documentation

bool JEventSource_EVIOpp::APPLY_TRANSLATION_TABLE

Definition at line 192 of file JEventSource_EVIOpp.h.

Referenced by GetObjects(), and JEventSource_EVIOpp().

list<DBORptrs*> JEventSource_EVIOpp::borptrs_list

Definition at line 179 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), and ~JEventSource_EVIOpp().

bool JEventSource_EVIOpp::DISPATCHER_END

Definition at line 143 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

thread* JEventSource_EVIOpp::dispatcher_thread

Definition at line 166 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

bool JEventSource_EVIOpp::DONE
bool JEventSource_EVIOpp::et_quit_next_timeout

Definition at line 163 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and JEventSource_EVIOpp().

bool JEventSource_EVIOpp::ET_STATION_CREATE_BLOCKING

Definition at line 194 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

int JEventSource_EVIOpp::ET_STATION_NEVENTS

Definition at line 193 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

JStreamLog JEventSource_EVIOpp::evioout
uint32_t JEventSource_EVIOpp::F125_EMULATION_MODE

Definition at line 171 of file JEventSource_EVIOpp.h.

Referenced by EmulateDf125Firmware(), and JEventSource_EVIOpp().

Df125EmulatorAlgorithm* JEventSource_EVIOpp::f125Emulator
uint32_t JEventSource_EVIOpp::F250_EMULATION_MODE

Definition at line 170 of file JEventSource_EVIOpp.h.

Referenced by EmulateDf250Firmware(), and JEventSource_EVIOpp().

uint32_t JEventSource_EVIOpp::F250_EMULATION_VERSION

Definition at line 172 of file JEventSource_EVIOpp.h.

Referenced by EmulateDf250Firmware(), and JEventSource_EVIOpp().

Df250EmulatorAlgorithm* JEventSource_EVIOpp::f250Emulator
HDET* JEventSource_EVIOpp::hdet

Definition at line 162 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

HDEVIO* JEventSource_EVIOpp::hdevio
bool JEventSource_EVIOpp::IGNORE_EMPTY_BOR

Definition at line 207 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::IS_CDAQ_FILE = false

Definition at line 212 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and DEVIOWorkerThread::ParseCDAQBank().

uint32_t JEventSource_EVIOpp::jobtype

Definition at line 211 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and JEventSource_EVIOpp().

bool JEventSource_EVIOpp::LINK

Definition at line 203 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::LINK_BORCONFIG

Definition at line 205 of file JEventSource_EVIOpp.h.

Referenced by GetObjects(), and JEventSource_EVIOpp().

bool JEventSource_EVIOpp::LINK_CONFIG

Definition at line 206 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::LINK_TRIGGERTIME

Definition at line 204 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::LOOP_FOREVER

Definition at line 195 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and JEventSource_EVIOpp().

uint64_t JEventSource_EVIOpp::MAX_EVENT_RECYCLES

Definition at line 157 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

uint64_t JEventSource_EVIOpp::MAX_OBJECT_RECYCLES

Definition at line 158 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

uint32_t JEventSource_EVIOpp::MAX_PARSED_EVENTS

Definition at line 147 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

std::atomic<uint_fast64_t> JEventSource_EVIOpp::NDISPATCHER_STALLED

Definition at line 153 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

std::atomic<uint_fast64_t> JEventSource_EVIOpp::NEVENTBUFF_STALLED

Definition at line 155 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

std::atomic<uint_fast64_t> JEventSource_EVIOpp::NEVENTS_PROCESSED
std::atomic<uint_fast64_t> JEventSource_EVIOpp::NPARSER_STALLED
uint32_t JEventSource_EVIOpp::NTHREADS

Definition at line 200 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE

Definition at line 181 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_BOR

Definition at line 187 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_CAEN1290TDC

Definition at line 185 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_CONFIG

Definition at line 186 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_EPICS

Definition at line 188 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_EVENTTAG

Definition at line 189 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_F125

Definition at line 183 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_F1TDC

Definition at line 184 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_F250

Definition at line 182 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_SSP

Definition at line 191 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PARSE_TRIGGER

Definition at line 190 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

list<DParsedEvent*> JEventSource_EVIOpp::parsed_events

Definition at line 150 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), and JEventSource_EVIOpp().

condition_variable JEventSource_EVIOpp::PARSED_EVENTS_CV

Definition at line 149 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

mutex JEventSource_EVIOpp::PARSED_EVENTS_MUTEX

Definition at line 148 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), and JEventSource_EVIOpp().

bool JEventSource_EVIOpp::PRINT_STATS

Definition at line 201 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

bool JEventSource_EVIOpp::RECORD_CALL_STACK

Definition at line 176 of file JEventSource_EVIOpp.h.

Referenced by GetObjects(), and JEventSource_EVIOpp().

set<uint32_t> JEventSource_EVIOpp::ROCIDS_TO_PARSE
EVIOSourceType JEventSource_EVIOpp::source_type
bool JEventSource_EVIOpp::SWAP

Definition at line 202 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and JEventSource_EVIOpp().

string JEventSource_EVIOpp::SYSTEMS_TO_PARSE

Definition at line 209 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

std::chrono::high_resolution_clock::time_point JEventSource_EVIOpp::tend

Definition at line 145 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and ~JEventSource_EVIOpp().

float JEventSource_EVIOpp::TIMEOUT

Definition at line 199 of file JEventSource_EVIOpp.h.

bool JEventSource_EVIOpp::TREAT_TRUNCATED_AS_ERROR

Definition at line 208 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), and JEventSource_EVIOpp().

std::chrono::high_resolution_clock::time_point JEventSource_EVIOpp::tstart

Definition at line 144 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().

uint32_t JEventSource_EVIOpp::USER_RUN_NUMBER

Definition at line 196 of file JEventSource_EVIOpp.h.

Referenced by GetEvent(), and JEventSource_EVIOpp().

int JEventSource_EVIOpp::VERBOSE
int JEventSource_EVIOpp::VERBOSE_ET

Definition at line 198 of file JEventSource_EVIOpp.h.

Referenced by JEventSource_EVIOpp().

vector<DEVIOWorkerThread*> JEventSource_EVIOpp::worker_threads

Definition at line 165 of file JEventSource_EVIOpp.h.

Referenced by Dispatcher(), JEventSource_EVIOpp(), and ~JEventSource_EVIOpp().


The documentation for this class was generated from the following files: