9 #ifndef DAQ2RAW_BEAMLINEUNPACK_H 10 #define DAQ2RAW_BEAMLINEUNPACK_H 15 #include "artdaq-core/Data/ContainerFragment.hh" 16 #include "artdaq-core/Data/Fragment.hh" 17 #include "cetlib_except/exception.h" 23 #include "LArIATFragments/LariatFragment.h" 24 #include "LArIATFragments/TriggerFragment.h" 25 #include "LArIATFragments/V1742Fragment.h" 26 #include "LArIATFragments/TDCFragment.h" 27 #include "LArIATFragments/TDUFragment.h" 52 std::ostringstream oss;
79 void add(
const artdaq::Fragment& frag);
82 const uint8_t*
get()
const {
return &*
buffer_.begin(); }
106 unsigned int EventNumber()
const;
108 bool GoodEvent()
const;
114 void AddTDUTime(uint64_t tduTime);
115 void AddTrigger(std::vector<rawdata::RawBeamlineTrigger> trigger);
116 void AddToF(std::vector<rawdata::RawBeamlineDigit> tof);
117 void AddWC(std::vector<rawdata::RawBeamlineWC> wc);
118 void AddCherenkov(std::vector<rawdata::RawBeamlineDigit> cherenkov);
119 void AddMuonStack(std::vector<rawdata::RawBeamlineDigit> muonstack);
120 void AddPaddleDigit(std::vector<rawdata::RawBeamlineDigit> paddle);
121 void AddWCDigit(std::vector<rawdata::RawBeamlineDigit> mwpc);
122 void AddOtherDigit(std::vector<rawdata::RawBeamlineDigit>
other);
125 uint64_t GetTimestamp()
const;
126 uint64_t GetTDUTime()
const;
127 std::vector<rawdata::RawBeamlineTrigger> GetTrigger()
const;
128 std::vector<rawdata::RawBeamlineDigit> GetToF()
const;
129 std::vector<rawdata::RawBeamlineWC> GetWC()
const;
130 std::vector<rawdata::RawBeamlineDigit> GetCherenkov()
const;
131 std::vector<rawdata::RawBeamlineDigit> GetMuonStack()
const;
132 std::vector<rawdata::RawBeamlineDigit> GetPaddleDigit()
const;
133 std::vector<rawdata::RawBeamlineDigit> GetWCDigit()
const;
134 std::vector<rawdata::RawBeamlineDigit> GetOtherDigit()
const;
146 std::vector<rawdata::RawBeamlineDigit>
fToF;
147 std::vector<rawdata::RawBeamlineWC>
fWC;
166 void AddEvents(std::vector<BeamlineEvent*>
events);
167 void FilterGoodEvents();
170 unsigned int NumEvents()
const;
171 std::vector<BeamlineEvent*> GetEvents()
const;
173 bool IsNextEvent()
const;
196 void Unpack(
const LariatFragment* spillFrag,
197 const std::vector<TDUFragment*> tduFrag,
198 unsigned int run = 0,
224 std::vector<TriggerPattern::TriggerPattern_t>
225 CleanTriggers(
const TriggerFragment& triggerFrag);
226 std::vector<TDUFragment*>
227 CleanTDU(
const std::vector<TDUFragment*>& tduFrags);
228 void UnpackConfig(
unsigned int run);
229 void UnpackTrigger(
const std::vector<TriggerPattern::TriggerPattern_t>& beamlineTriggers,
230 const std::vector<TDUFragment*>& beamlineTDUs,
232 void UnpackDigits(
const std::vector<V1742Fragment>& frags);
233 void UnpackWC(
const TDCFragment& frag);
std::vector< rawdata::RawBeamlineDigit > fToF
std::map< unsigned long long, BeamlineEvent * > fEvents_TDUIndex
art::ServiceHandle< beamlinegeo::BeamlineGeometry > fGeometry
std::vector< rawdata::RawBeamlineDigit > fPaddleDigit
std::string friendlyClassName() const
const std::size_t nfragments_
std::vector< uint8_t > buffer_
std::size_t nfragments_processed_
Definition of the beamline offline geometry. Also implementation of a service to obtain this informat...
std::string fTriggerSource
std::string getBranchName(const art::InputTag &tag)
Retrieves branch name where object resides, using art convention.
std::vector< rawdata::RawBeamlineWC > fWC
artdaq::Fragments * getFragments(TBranch *br, unsigned entry)
std::vector< rawdata::RawBeamlineDigit > fOtherDigit
unsigned int fEventNumber
Utility to provide the magnetic field in the beamline for a given run number/run conditions. NB/ Currently this will use a lookup defined in a fhicl file, it should and will be replaced by an interface to a database when the field is stored in such a way.
art::ServiceHandle< beamlineutil::BeamlineChannelMap > fChannelMap
BeamlineEvents * fBeamlineEvents
rawdata::RawBeamlineConfig fConfig
std::vector< rawdata::RawBeamlineDigit > fWCDigit
std::vector< rawdata::RawBeamlineDigit > fMuonStack
std::vector< rawdata::RawBeamlineDigit > fCherenkov
A module to produce rawdata::RawDigits from NOvADDT DAQHits.
TString GetConfig(int dbcfg)
art::ServiceHandle< beamlineutil::BeamlineMagneticField > fMagneticField
std::vector< BeamlineEvent * > fEvents
std::vector< rawdata::RawBeamlineTrigger > fTrigger
Raw data definitions for beamline data used in NOvA test beam experiment.
void add(const art::Event &evt, const art::InputTag &tag)
unsigned int fChannelsPerTDC
Channel mapping service which may be used to interpret the channels which are read out by the various...
SpillWrapper(std::size_t nfragments)
unsigned int fTriggerLatency