28 digi.setPresamples(presamples);
29 digi.setReadoutIds(eid);
30 int flavor, error_flags, capid0, channelid;
33 bool isCapRotating = !(error_flags & 0x1);
34 bool fiberErr = (error_flags & 0x2);
35 bool dataValid = !(error_flags & 0x2);
36 int fiberchan = channelid & 0x3;
37 int fiber = ((channelid >> 2) & 0x7) + 1;
47 int ncurr = 0, ntaken = 0;
48 const unsigned short* qie_work = startPoint;
52 int capidn = (isCapRotating) ? ((capid0 + ncurr) % 4) : (capid0);
53 int capidn1 = (isCapRotating) ? ((capid0 + ncurr + 1) % 4) : (capid0);
55 HcalQIESample s0((*qie_work) & 0x7F, capidn, fiber, fiberchan, dataValid, fiberErr);
56 HcalQIESample s1(((*qie_work) >> 8) & 0x7F, capidn1, fiber, fiberchan, dataValid, fiberErr);
58 if (ncurr >= startSample && ncurr <= endSample) {
59 digi.setSample(ntaken, s0);
63 if (ncurr >= startSample && ncurr <= endSample) {
64 digi.setSample(ntaken, s1);
70 }
else if (flavor == 6) {
72 if (ncurr >= startSample && ncurr <= endSample) {
74 ((*qie_work) >> 8) & 0x3,
77 ((*qie_work) >> 10) & 0x1,
78 ((*qie_work) >> 11) & 0x1);
79 digi.setSample(ntaken,
sample);
bool wasMarkAndPassZS(int fiber, int fiberchan) const
Was this channel passed as part of Mark&Pass ZS?
unsigned int getFibOrbMsgBCN(int fiber) const
Get the BCN of the Fiber Orbit Messages.
static bool unpack_per_channel_header(unsigned short, int &flav, int &error_flags, int &capid0, int &channelid)
Unpack a per-channel header word (compact format)
bool isUnsuppressed() const
Is this event an unsuppresed event?
static bool is_channel_header(unsigned short value)
check top bit to see if this is a compact format channel header word
uint32_t zsBunchMask() const
ZS Bunch Mask (if available)
Log< level::Warning, false > LogWarning