Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventSource_EVIO.h File Reference
#include <map>
#include <vector>
#include <queue>
#include <deque>
#include <list>
#include <set>
#include <JANA/jerror.h>
#include <JANA/JEventSource.h>
#include <JANA/JEvent.h>
#include <JANA/JFactory.h>
#include <JANA/JStreamLog.h>
#include "HDEVIO.h"
#include "daq_param_type.h"
#include "DModuleType.h"
#include "Df250Config.h"
#include "Df250PulseIntegral.h"
#include "Df250StreamingRawData.h"
#include "Df250WindowSum.h"
#include "Df250PulseRawData.h"
#include "Df250TriggerTime.h"
#include "Df250PulseTime.h"
#include "Df250PulsePedestal.h"
#include "Df250WindowRawData.h"
#include "Df125Config.h"
#include "Df125TriggerTime.h"
#include "Df125PulseIntegral.h"
#include "Df125PulseTime.h"
#include "Df125PulsePedestal.h"
#include "Df125PulseRawData.h"
#include "Df125WindowRawData.h"
#include "Df125CDCPulse.h"
#include "Df125FDCPulse.h"
#include "DF1TDCConfig.h"
#include "DF1TDCHit.h"
#include "DF1TDCTriggerTime.h"
#include "DCAEN1290TDCConfig.h"
#include "DCAEN1290TDCHit.h"
#include "DCODAEventInfo.h"
#include "DCODAROCInfo.h"
#include "DTSscalers.h"
#include "DEPICSvalue.h"
#include "DEventTag.h"
#include "Df250BORConfig.h"
#include "Df125BORConfig.h"
#include "DF1TDCBORConfig.h"
#include "DCAEN1290TDCBORConfig.h"
#include "DL1Info.h"
#include "Df250Scaler.h"
#include "Df250AsyncPedestal.h"
#include "Df125EmulatorAlgorithm.h"
#include "Df250EmulatorAlgorithm.h"
#include <PID/DVertex.h>

Go to the source code of this file.

Classes

class  JEventSource_EVIO
 The JEventSource_EVIO class implements a JEventSource capable of reading in EVIO data from raw data files produced in Hall-D. It can read in entangled (or blocked) events as well as single events. The low-level objects produced reflect the data generated by the front end digitization electronics. More...
 
class  JEventSource_EVIO::ObjList
 

Typedefs

typedef pair< int, int > tagNum
 

Functions

template<class T >
void AddIfAppropriate (DDAQAddress *obj, vector< T * > &v)
 
template<class T , class U >
void LinkAssociationsWithPulseNumber (vector< T * > &a, vector< U * > &b)
 
template<class T , class U >
void LinkAssociations (vector< T * > &a, vector< U * > &b)
 
template<class T , class U >
void LinkAssociationsModuleOnly (vector< T * > &a, vector< U * > &b)
 
template<class T , class U >
void LinkAssociationsModuleOnlyWithCast (vector< JObject * > &a, vector< JObject * > &b)
 
template<class T , class U >
void LinkAssociationsROCIDOnly (vector< T * > &a, vector< U * > &b)
 
template<class T , class U >
void CopyContainerElementsWithCast (vector< T * > &a, vector< U * > &b)
 

Variables

set< uint32_t > ROCIDS_TO_PARSE
 

Typedef Documentation

typedef pair<int,int> tagNum

Definition at line 38 of file JEventSource_EVIO.h.

Function Documentation

template<class T >
void AddIfAppropriate ( DDAQAddress obj,
vector< T * > &  v 
)

Definition at line 580 of file JEventSource_EVIO.h.

template<class T , class U >
void CopyContainerElementsWithCast ( vector< T * > &  a,
vector< U * > &  b 
)

This is used to copy pointers from a vector of one type of pointer to a vector of another type, doing a static cast in the process. For example, to fill a vector<JObject*> a from a vector<Df250PulseIntegral*> b, call:

CopyContainerElementsWithCast(b, a);

Note that this does not do any dynamic_cast-ing to ensure that the objects really are of compatible types. So be cautious.

Definition at line 712 of file JEventSource_EVIO.h.

template<class T , class U >
void LinkAssociations ( vector< T * > &  a,
vector< U * > &  b 
)

Template routine to loop over two vectors of pointers to objects derived from DDAQAddress. This will find any hits coming from the same DAQ channel and add each to the other's AssociatedObjects list. This will NOT check if the member "pulse_number" is the same (use LinkAssociationsWithPulseNumber for that.)

Definition at line 614 of file JEventSource_EVIO.h.

template<class T , class U >
void LinkAssociationsModuleOnly ( vector< T * > &  a,
vector< U * > &  b 
)

Template routine to loop over two vectors of pointers to objects derived from DDAQAddress. This will find any hits coming from the same DAQ module (channel number is not checked) When a match is found, the pointer from "a" will be added to "b"'s AssociatedObjects list. This will NOT do the inverse of adding "b" to "a"'s list. It is intended for adding a module level trigger time object to all hits from that module. Adding all of the hits to the trigger time object seems like it would be a little expensive with no real use case.

Definition at line 636 of file JEventSource_EVIO.h.

template<class T , class U >
void LinkAssociationsModuleOnlyWithCast ( vector< JObject * > &  a,
vector< JObject * > &  b 
)

Template routine to loop over two vectors of pointers to JObjects derived from classes T and U. Both T and U must have "rocid" and "slot" members. It is also assumed that all JObjects in "a" are really of type "T" and that all objects in "b" are really of type "U". When a match is found, the pointer from "a" will be added to "b"'s AssociatedObjects list. This will NOT do the inverse of adding "b" to "a"'s list. It is intended for associating BOR config objects with hit objects.

Definition at line 661 of file JEventSource_EVIO.h.

References u.

template<class T , class U >
void LinkAssociationsROCIDOnly ( vector< T * > &  a,
vector< U * > &  b 
)

Template routine to loop over two vectors of pointers to objects derived from DDAQAddress. This will find any hits coming from the same DAQ module (channel number is not checked) When a match is found, the pointer from "a" will be added to "b"'s AssociatedObjects list. This will NOT do the inverse of adding "b" to "a"'s list. It is intended for adding a module level trigger time object to all hits from that module. Adding all of the hits to the trigger time object seems like it would be a little expensive with no real use case.

Definition at line 688 of file JEventSource_EVIO.h.

template<class T , class U >
void LinkAssociationsWithPulseNumber ( vector< T * > &  a,
vector< U * > &  b 
)

Template routine to loop over two vectors of pointers to objects derived from DDAQAddress. This will find any hits coming from the same DAQ channel and add each to the other's AssociatedObjects list. This will also check if the member "pulse_number" is the same (use LinkAssociations to not check the pulse_number such as when either "T" or "U" does not have a member named "pulse_number".)

Definition at line 590 of file JEventSource_EVIO.h.

Variable Documentation

set<uint32_t> ROCIDS_TO_PARSE