|
ATLAS Offline Software
|
|
typedef unsigned int | Word |
| this should be the same as how we get the data, otherwise we will have bugs. More...
|
|
typedef int | NumWord |
|
typedef int | Packet |
|
typedef int | SuperCell |
|
typedef int | Sample |
|
typedef std::string | Path |
|
|
| EventProcess (const LArLATOMEDecoder *decoderInput, LArDigitContainer *adc_coll, LArDigitContainer *adc_bas_coll, LArRawSCContainer *et_coll, LArRawSCContainer *et_id_coll, LArAccumulatedDigitContainer *accdigits, LArAccumulatedCalibDigitContainer *caccdigits, LArLATOMEHeaderContainer *header_coll) |
|
void | fillCollection (const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment *pROB, const LArLATOMEMapping *map, const LArOnOffIdMapping *onoffmap=nullptr, const LArCalibLineMapping *clmap=nullptr) |
| Execute decoding for an event. More...
|
|
bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. More...
|
|
MsgStream & | msg () const |
| The standard message stream. More...
|
|
MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. More...
|
|
void | setLevel (MSG::Level lvl) |
| Change the current logging level. More...
|
|
|
bool | compareOrSet (Word ¶m, Word value, bool compare) |
|
unsigned int | decodeTrailer (const uint32_t *p, unsigned int offset) |
|
unsigned int | decodeHeader (const uint32_t *p, unsigned int offset) |
|
unsigned int | bytesPerChannel (MonDataType at0, MonDataType at1) |
|
void | increaseWordShift (unsigned int &wordshift) |
|
void | increaseByteShift (unsigned int &wordshift, unsigned int &byteshift) |
|
void | decodeByte (unsigned int &byte, unsigned int wordshift, unsigned int byteshift, const uint32_t *p) |
|
void | decodeWord (unsigned int &word, unsigned int &wordshift, unsigned int &byteshift, const uint32_t *p) |
|
void | decodeChannel (unsigned int &wordshift, unsigned int &byteshift, const uint32_t *p, MonDataType at0, MonDataType at1, unsigned int &at0Data, unsigned int &at1Data, unsigned int &satData, bool &at0val, bool &at1val) |
|
int | signEnergy (unsigned int energy) |
|
void | fillRaw (const LArLATOMEMapping *map) |
| Pass ADC values from an event. More...
|
|
void | fillCalib (const LArLATOMEMapping *map, const LArOnOffIdMapping *onoffmap, const LArCalibLineMapping *clmap) |
|
void | fillHeader () |
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
Definition at line 129 of file LArLATOMEDecoder.h.
◆ NumWord
◆ Packet
◆ Path
◆ Sample
◆ SuperCell
◆ Word
this should be the same as how we get the data, otherwise we will have bugs.
use reinterpret_cast later to properly interpret the bit in other format if needed.
Definition at line 133 of file LArLATOMEDecoder.h.
◆ MODE
◆ EventProcess()
◆ bytesPerChannel()
◆ compareOrSet()
bool LArLATOMEDecoder::EventProcess::compareOrSet |
( |
Word & |
param, |
|
|
Word |
value, |
|
|
bool |
compare |
|
) |
| |
|
private |
◆ decodeByte()
void LArLATOMEDecoder::EventProcess::decodeByte |
( |
unsigned int & |
byte, |
|
|
unsigned int |
wordshift, |
|
|
unsigned int |
byteshift, |
|
|
const uint32_t * |
p |
|
) |
| |
|
private |
Definition at line 356 of file LArLATOMEDecoder.cxx.
357 byte = ((bswap_32(
p[wordshift])) >> (8 * (4 - 1 - byteshift))) & 0xff;
◆ decodeChannel()
void LArLATOMEDecoder::EventProcess::decodeChannel |
( |
unsigned int & |
wordshift, |
|
|
unsigned int & |
byteshift, |
|
|
const uint32_t * |
p, |
|
|
MonDataType |
at0, |
|
|
MonDataType |
at1, |
|
|
unsigned int & |
at0Data, |
|
|
unsigned int & |
at1Data, |
|
|
unsigned int & |
satData, |
|
|
bool & |
at0val, |
|
|
bool & |
at1val |
|
) |
| |
|
private |
now that we have the basic words we can rearrange the bits in case it is energy, ADC do not need further arrangement this is assuming energy lsb is at bit[0-2] and energy-id at [5-7]. Make sure this is the case for all recipe in the firmware. assumptions are in https://its.cern.ch/jira/browse/LDPBFW-2976
Definition at line 370 of file LArLATOMEDecoder.cxx.
378 bool satByte = nbytesPerChannel % 2;
384 unsigned int satData = 0;
387 unsigned int word1 = 0;
388 unsigned int word2 = 0;
390 if (nbytesPerChannel > 3) {
393 at0Data =
word1 & 0x7fff;
394 at0val =
word1 & 0x8000;
395 if (nbytesPerChannel > 3) {
396 at1Data = word2 & 0x7fff;
397 at1val = word2 & 0x8000;
409 at0Data = (at0Data << 3) | (satData & 0x7);
410 at1Data = (at1Data << 3) | ((satData & 0x70) >> 4);
411 saturation = ((satData & 0x88) == 0x88);
413 at0Data = (at0Data << 3) | ((satData & 0x70) >> 4);
414 at1Data = (at1Data << 3) | (satData & 0x7);
415 saturation = ((satData & 0x88) == 0x88);
418 at0Data = (at0Data << 3) | (satData & 0x7);
419 saturation = (satData & 0x20);
422 at1Data = (at1Data << 3) | (satData & 0x7);
423 saturation = (satData & 0x20);
◆ decodeHeader()
unsigned int LArLATOMEDecoder::EventProcess::decodeHeader |
( |
const uint32_t * |
p, |
|
|
unsigned int |
offset |
|
) |
| |
|
private |
now these are taken from the ROD header but the word are still here (maybe we will use them for something else)
Definition at line 219 of file LArLATOMEDecoder.cxx.
222 int monheadererror = 0;
223 int monheadererrorbit = 0;
225 monheadererror |= (1 << monheadererrorbit++);
228 monheadererror |= (1 << monheadererrorbit++);
230 ATH_MSG_DEBUG(
"Mon header L1ID " << l1IDtmp <<
" different from rod header L1ID " <<
m_l1ID);
237 monheadererror |= (1 << monheadererrorbit++);
241 monheadererror |= (1 << monheadererrorbit++);
246 monheadererror |= (1 << monheadererrorbit++);
258 monheadererror |= (1 << monheadererrorbit++);
263 monheadererror |= (1 << monheadererrorbit++);
276 monheadererror |= (1 << monheadererrorbit++);
278 monheadererror |= (1 << monheadererrorbit++);
279 monheadererrorbit += 2;
282 monheadererror |= (1 << monheadererrorbit++);
284 monheadererror |= (1 << monheadererrorbit++);
286 monheadererror |= (1 << monheadererrorbit++);
288 monheadererror |= (1 << monheadererrorbit++);
290 monheadererror |= (1 << monheadererrorbit++);
292 monheadererror |= (1 << monheadererrorbit++);
294 monheadererror |= (1 << monheadererrorbit++);
296 monheadererror |= (1 << monheadererrorbit++);
298 monheadererror |= (1 << monheadererrorbit++);
300 monheadererror |= (1 << monheadererrorbit++);
302 monheadererror |= (1 << monheadererrorbit++);
308 if (monheadererror) {
309 ATH_MSG_WARNING(
" consistency error in mon checker at packet " <<
m_iPacket <<
" errorbits " << std::hex << monheadererror << std::dec);
◆ decodeTrailer()
unsigned int LArLATOMEDecoder::EventProcess::decodeTrailer |
( |
const uint32_t * |
p, |
|
|
unsigned int |
offset |
|
) |
| |
|
private |
for now the trailerhas only 2 fixed words, just check them
fixed shift for now but in case we get a dynamic trailer (hopefully not)
Definition at line 209 of file LArLATOMEDecoder.cxx.
211 if (bswap_32(
p[
offset]) != 0xc0ffee00 || bswap_32(
p[
offset + 1] != 0xaaaaaaaa)) {
◆ decodeWord()
void LArLATOMEDecoder::EventProcess::decodeWord |
( |
unsigned int & |
word, |
|
|
unsigned int & |
wordshift, |
|
|
unsigned int & |
byteshift, |
|
|
const uint32_t * |
p |
|
) |
| |
|
private |
Definition at line 360 of file LArLATOMEDecoder.cxx.
361 unsigned int msb = 0;
362 unsigned int lsb = 0;
367 word = lsb | (msb << 8);
◆ fillCalib()
accumulated calib digits requested so decode dac and delay from headers
scale to the min nt since we have only one nt per channel and not by sample as with raw data
for loop on SCs
Definition at line 870 of file LArLATOMEDecoder.cxx.
876 std::unique_ptr<LArCalibParams> calibParams1;
877 std::unique_ptr<LArCalibParams> calibParams2;
880 const LArOnOffIdMapping*
cabling = 0;
891 calibParams1=std::make_unique<LArCalibParams>();
892 calibParams2=std::make_unique<LArCalibParams>();
894 if (pattype > 0x48) {
897 if (sc1 != StatusCode::SUCCESS || sc2 != StatusCode::SUCCESS) {
898 ATH_MSG_WARNING(
"could not initialize LArCalibParams, acc calib will not be filled ");
901 if (pattype == 0x49 || pattype == 0x4a) {
914 if (sc1 != StatusCode::SUCCESS) {
915 ATH_MSG_WARNING(
"could not initialize LArCalibParams, acc calib will not be filled ");
922 const HWIdentifier hwidEmpty;
926 if (SCID == hwidEmpty) {
935 std::vector<uint64_t>
sum;
936 std::vector<uint64_t> sum2;
937 unsigned int ntmin = 9999999;
951 sum2[is] =
round(fsum2);
959 if (pattype == 0x49 || pattype == 0x4a) {
961 calibParams = calibParams1.get();
963 calibParams = calibParams2.get();
965 }
else if (pattype == 0x4b || pattype == 0x4c) {
967 calibParams = calibParams1.get();
969 calibParams = calibParams2.get();
972 calibParams = calibParams1.get();
974 unsigned int eventNb = 0;
975 unsigned int numCL = 0;
976 unsigned int numPulsedLeg = 0;
977 std::vector<Identifier> ccellIds(0);
981 HWIdentifier cellLegHWID = cablingLeg->createSignalChannelID(
id);
982 const std::vector<HWIdentifier>& calibLineLeg = clcabling->calibSlotLine(cellLegHWID);
983 numCL += calibLineLeg.size();
984 for (HWIdentifier calibLineHWID : calibLineLeg) {
985 if (calibParams->
isPulsed(eventNb, calibLineHWID)) {
991 isPulsed_value =
true;
992 if (numPulsedLeg != numCL) {
995 isPulsed_value =
false;
997 DAC_value = calibParams->
DAC(eventNb, SCID) * numPulsedLeg;
1007 DAC_value = DAC_value / 1.363;
1010 DAC_value = DAC_value / 1.206;
1016 delay_value = calibParams->
Delay(eventNb, SCID);
◆ fillCollection()
Execute decoding for an event.
some of this info should be used in the LatomeHeader class and for cross checks also (same as for the mon header)
this is an empty fragment, skip it
not we have the packet size from the first packet, check all packet headers before decoding we can decide later if we drop decoding if we have inconsistency
OK all headers checked and we have all info we need to decode each packet, so lets start
for now just getting the ADCs from AT0 Change later to add energy as well and use the BC shift to determine at which BC there is energy
recipe does not have at1, set at1 mux to invalid
lets start from here
start of packet, bcid still unvalid / should increase by one but take care of rotation at s_nBunches;
the data is packed with 64 bits words. Will be padded with 0s at the end of the timeslot time slot.
lets fill now, using the older code structure but this should be change to support having energy.
Loop over SC
Loop over time slots
Loop over BC
Definition at line 428 of file LArLATOMEDecoder.cxx.
435 const unsigned int sourceID = robFrag->rob_source_id();
443 m_l1ID = robFrag->rod_lvl1_id();
446 const unsigned int n = robFrag->rod_ndata();
453 const uint32_t* rod_status = robFrag->rod_status();
454 const unsigned int rod_nstatus = robFrag->rod_nstatus();
455 if (rod_nstatus != 27) {
456 ATH_MSG_WARNING(
"Inconsistent number of rod header status elements: nstatus= " << rod_nstatus);
459 if (rod_nstatus > 8) {
466 LatomeCalibPatterns pat1, pat2, pat3;
467 pat1.DAC = rod_status[9];
468 pat1.delay = rod_status[10];
469 pat1.patterns.resize(4);
470 for (
unsigned int i = 0;
i < 4; ++
i)
471 pat1.patterns[
i] = rod_status[
i + 11];
473 pat2.DAC = rod_status[15];
474 pat2.delay = rod_status[16];
475 pat2.patterns.resize(4);
476 for (
unsigned int i = 0;
i < 4; ++
i)
477 pat2.patterns[
i] = rod_status[
i + 17];
479 pat3.DAC = rod_status[21];
480 pat3.delay = rod_status[22];
481 pat3.patterns.resize(4);
482 for (
unsigned int i = 0;
i < 4; ++
i)
483 pat3.patterns[
i] = rod_status[
i + 23];
487 const HWIdentifier hwidEmpty;
502 <<
" " << sourceID << std::dec);
511 <<
" " << sourceID << std::dec);
526 ATH_MSG_DEBUG(
" end of header check computed offset=" << std::dec <<
offset <<
" nwords in payload=" <<
n);
535 std::vector<unsigned int> bc_size;
556 val.latomeChannel = 99999;
653 val.latomeChannel = 99999;
662 for (
short iBC = 0; iBC < nBC; ++iBC) {
666 if (iBC < startBC1 || iBC >= startBC1 + nBC1)
672 unsigned int oldipacket = 0;
673 for (
unsigned int itimeslot = 0; itimeslot < 6; ++itimeslot) {
675 unsigned int l_bcid = (bswap_32(
p[
s])) >> 16;
676 if (itimeslot != 0) {
677 if (l_bcid !=
bcid) {
682 unsigned int bcid_c =
bcid + 1;
688 if (bcid_c != l_bcid) {
689 ATH_MSG_WARNING(
"ERROR: BCID not increasing properly between samples, L1ID is: "
690 <<
m_l1ID <<
", BCID is from payload: " << l_bcid <<
", expected BCID is: " << bcid_c <<
", LATOME channel is: " << nsc);
697 unsigned int mux = ((bswap_32(
p[
s])) >> 8) & 0xff;
704 unsigned int timeslotsize = timeslot_nsc[itimeslot];
705 unsigned int nbytes = timeslotsize * nbytesPerChannel;
706 unsigned int n64word = nbytes / 8;
709 ATH_MSG_DEBUG(
" at BC " << iBC <<
" timeslot " << itimeslot <<
" " <<
bcid <<
" " <<
mux <<
" n64word " << n64word <<
" at0 " << (
int)at0 <<
" at1 "
710 << (
int)at1 <<
" l_bcid " <<
bcid);
712 unsigned int wordshift =
s;
713 unsigned int byteshift = 0;
718 unsigned int at0Data = 0, at1Data = 0, satData = 0;
719 bool at0val =
false, at1val =
false;
727 decodeChannel(wordshift, byteshift,
p, at0, at1, at0Data, at1Data, satData, at0val, at1val);
728 ATH_MSG_DEBUG(
" wordshift " << wordshift <<
" byteshift " << byteshift <<
" at0data " << at0Data <<
" at1Data " << at1Data <<
" satData " << satData
729 <<
" at0val " << at0val <<
" at1val " << at1val <<
" nsc " << nsc);
733 if (SCID == hwidEmpty) {
736 int RAWValue0 = -999;
738 ATH_MSG_DEBUG(
"at0 bad quality bit for SC:" << nsc <<
" BC " << iBC <<
" latome " << robFrag->rod_source_id());
743 int defaultADCValue = -1;
744 int defaultEValue = -99999;
748 if ((
unsigned)iBC < rawValuesInEvent.adc.size()) {
749 rawValuesInEvent.adc[iBC] = (at0val) ? RAWValue0 : defaultADCValue;
753 if ((
unsigned)iBC < rawValuesInEvent.adc_bas.size()) {
754 rawValuesInEvent.adc_bas[iBC] = (at0val) ? RAWValue0 : defaultADCValue;
758 if ((
unsigned)iBC < rawValuesInEvent.et.size()) {
759 rawValuesInEvent.et[iBC] = (at0val) ?
signEnergy(RAWValue0) : defaultEValue;
760 rawValuesInEvent.saturation[iBC] = satData;
764 if ((
unsigned)iBC < rawValuesInEvent.et_id.size()) {
765 rawValuesInEvent.et_id[iBC] = (at0val) ?
signEnergy(RAWValue0) : defaultEValue;
766 rawValuesInEvent.saturation[iBC] = satData;
776 int RAWValue1 = -999;
778 ATH_MSG_DEBUG(
"at1 bad quality bit for SC:" << nsc <<
" BC " << iBC <<
" latome " << robFrag->rod_source_id());
784 const size_t BCidx = iBC - startBC1;
787 if (BCidx < rawValuesInEvent.adc.size()) {
788 rawValuesInEvent.adc[BCidx] = (at1val) ? RAWValue1 : defaultADCValue;
792 if (BCidx < rawValuesInEvent.adc_bas.size()) {
793 rawValuesInEvent.adc_bas[BCidx] = (at1val) ? RAWValue1 : defaultADCValue;
797 if (BCidx < rawValuesInEvent.et.size()) {
798 rawValuesInEvent.et[BCidx] = (at1val) ?
signEnergy(RAWValue1) : defaultEValue;
799 rawValuesInEvent.saturation[BCidx] = satData;
803 if (BCidx < rawValuesInEvent.et_id.size()) {
819 ATH_MSG_ERROR(
"inconsistant wordshift in decoding everaged data");
822 unsigned int averageword = bswap_32(
p[wordshift]);
824 unsigned int sumSq = bswap_32(
p[wordshift]);
826 unsigned long long sumsqMSB = averageword >> 28;
827 sumsqMSB = sumsqMSB << 32;
845 if ((wordshift -
s) % 2)
850 <<
"!=" << n64word * 2 <<
" m_ipacket " <<
m_iPacket);
861 if (onoffmap && clmap) {
◆ fillHeader()
void LArLATOMEDecoder::EventProcess::fillHeader |
( |
| ) |
|
|
private |
◆ fillRaw()
Pass ADC values from an event.
don't copy vectors for nothing
need to shift the BCID as well do it at the same time
Definition at line 1026 of file LArLATOMEDecoder.cxx.
1028 const HWIdentifier hwidEmpty;
1031 if (SCID == hwidEmpty) {
1040 std::vector<short> adcValues_inChannel_inEvent;
1050 std::vector<unsigned short> bcid_in_event;
1060 std::vector<unsigned short> bcid_in_event;
1073 std::vector<unsigned short> bcid_in_event;
1087 std::vector<unsigned short> bcid_in_event;
◆ increaseByteShift()
void LArLATOMEDecoder::EventProcess::increaseByteShift |
( |
unsigned int & |
wordshift, |
|
|
unsigned int & |
byteshift |
|
) |
| |
|
private |
◆ increaseWordShift()
void LArLATOMEDecoder::EventProcess::increaseWordShift |
( |
unsigned int & |
wordshift | ) |
|
|
private |
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ signEnergy()
int LArLATOMEDecoder::EventProcess::signEnergy |
( |
unsigned int |
energy | ) |
|
|
private |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_accdigits
◆ m_activeSC
Word LArLATOMEDecoder::EventProcess::m_activeSC {} |
|
private |
◆ m_adc_bas_coll
◆ m_adc_coll
◆ m_at0BC
Word LArLATOMEDecoder::EventProcess::m_at0BC {} |
|
private |
◆ m_at0nBC
Word LArLATOMEDecoder::EventProcess::m_at0nBC {} |
|
private |
◆ m_at0type
Word LArLATOMEDecoder::EventProcess::m_at0type {} |
|
private |
◆ m_at0typeRec
Word LArLATOMEDecoder::EventProcess::m_at0typeRec {} |
|
private |
◆ m_at1BC
Word LArLATOMEDecoder::EventProcess::m_at1BC {} |
|
private |
◆ m_at1nBC
Word LArLATOMEDecoder::EventProcess::m_at1nBC {} |
|
private |
◆ m_at1type
Word LArLATOMEDecoder::EventProcess::m_at1type {} |
|
private |
◆ m_at1typeRec
Word LArLATOMEDecoder::EventProcess::m_at1typeRec {} |
|
private |
◆ m_averagedRawValuesInEvent
◆ m_BC_ADC
short LArLATOMEDecoder::EventProcess::m_BC_ADC {} |
|
private |
◆ m_BC_E
short LArLATOMEDecoder::EventProcess::m_BC_E {} |
|
private |
◆ m_BC_EID
short LArLATOMEDecoder::EventProcess::m_BC_EID {} |
|
private |
◆ m_BC_rawADC
short LArLATOMEDecoder::EventProcess::m_BC_rawADC {} |
|
private |
◆ m_BCIDsInEvent
std::vector<unsigned short> LArLATOMEDecoder::EventProcess::m_BCIDsInEvent |
|
private |
◆ m_caccdigits
◆ m_decoder
◆ m_et_coll
◆ m_et_id_coll
◆ m_hasAdc
bool LArLATOMEDecoder::EventProcess::m_hasAdc {} |
|
private |
◆ m_hasE
bool LArLATOMEDecoder::EventProcess::m_hasE {} |
|
private |
◆ m_hasEID
bool LArLATOMEDecoder::EventProcess::m_hasEID {} |
|
private |
◆ m_hasRawAdc
bool LArLATOMEDecoder::EventProcess::m_hasRawAdc {} |
|
private |
◆ m_header_coll
◆ m_headerDecoded
bool LArLATOMEDecoder::EventProcess::m_headerDecoded {} |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_iPacket
Word LArLATOMEDecoder::EventProcess::m_iPacket {} |
|
private |
◆ m_isAutoCorr
bool LArLATOMEDecoder::EventProcess::m_isAutoCorr {} |
|
private |
◆ m_isAveraged
bool LArLATOMEDecoder::EventProcess::m_isAveraged {} |
|
private |
◆ m_l1ID
Word LArLATOMEDecoder::EventProcess::m_l1ID {} |
|
private |
◆ m_latomeBCID
Word LArLATOMEDecoder::EventProcess::m_latomeBCID {} |
|
private |
◆ m_latomeCalibPatternsInEvent
◆ m_latomeID
Word LArLATOMEDecoder::EventProcess::m_latomeID {} |
|
private |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_monHeaderSize
Word LArLATOMEDecoder::EventProcess::m_monHeaderSize {} |
|
private |
◆ m_monTrailerSize
const Word LArLATOMEDecoder::EventProcess::m_monTrailerSize =2 |
|
staticprivate |
some cached info to ease processing reading from data header
Definition at line 181 of file LArLATOMEDecoder.h.
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nBC_ADC
short LArLATOMEDecoder::EventProcess::m_nBC_ADC {} |
|
private |
◆ m_nBC_Averaged
short LArLATOMEDecoder::EventProcess::m_nBC_Averaged {} |
|
private |
◆ m_nBC_E
short LArLATOMEDecoder::EventProcess::m_nBC_E {} |
|
private |
◆ m_nBC_EID
short LArLATOMEDecoder::EventProcess::m_nBC_EID {} |
|
private |
◆ m_nBC_rawADC
short LArLATOMEDecoder::EventProcess::m_nBC_rawADC {} |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_nPackets
Word LArLATOMEDecoder::EventProcess::m_nPackets {} |
|
private |
◆ m_nsc1
Word LArLATOMEDecoder::EventProcess::m_nsc1 {} |
|
private |
◆ m_nsc2
Word LArLATOMEDecoder::EventProcess::m_nsc2 {} |
|
private |
◆ m_nsc3
Word LArLATOMEDecoder::EventProcess::m_nsc3 {} |
|
private |
◆ m_nsc4
Word LArLATOMEDecoder::EventProcess::m_nsc4 {} |
|
private |
◆ m_nsc5
Word LArLATOMEDecoder::EventProcess::m_nsc5 {} |
|
private |
◆ m_nsc6
Word LArLATOMEDecoder::EventProcess::m_nsc6 {} |
|
private |
◆ m_nStreams
Word LArLATOMEDecoder::EventProcess::m_nStreams {} |
|
private |
◆ m_nthLATOME
unsigned int LArLATOMEDecoder::EventProcess::m_nthLATOME = 0 |
|
private |
◆ m_nWordsPerPacket
Word LArLATOMEDecoder::EventProcess::m_nWordsPerPacket {} |
|
private |
◆ m_packetEnd
std::vector<Word> LArLATOMEDecoder::EventProcess::m_packetEnd |
|
private |
◆ m_rawValuesInEvent
std::vector<LatomeRawData> LArLATOMEDecoder::EventProcess::m_rawValuesInEvent |
|
private |
◆ m_region
Word LArLATOMEDecoder::EventProcess::m_region {} |
|
private |
◆ m_ROBFragSize
Word LArLATOMEDecoder::EventProcess::m_ROBFragSize {} |
|
private |
◆ m_streamNumber
Word LArLATOMEDecoder::EventProcess::m_streamNumber {} |
|
private |
◆ s_monCheckPoint
const Word LArLATOMEDecoder::EventProcess::s_monCheckPoint =0xdeadbeef |
|
staticprivate |
◆ s_monHeaderMarker
const Word LArLATOMEDecoder::EventProcess::s_monHeaderMarker =0xff1234ff |
|
staticprivate |
The documentation for this class was generated from the following files:
HWIdentifier getChannelID(const unsigned int sourceID, const unsigned int chan) const
create a HWIdentifier from an Identifier
std::atomic< MSG::Level > m_lvl
Current logging level.
Liquid Argon SuperCell raw data.
Data class for calibration ADC samples preprocessed by the DSP.
Extra patterns decribing particle interation process.
std::pair< int, int > compare(const AmgSymMatrix(N) &m1, const AmgSymMatrix(N) &m2, double precision=1e-9, bool relative=false)
compare two matrices, returns the indices of the first element that fails the condition,...
bool compareOrSet(Word ¶m, Word value, bool compare)
BooleanProperty m_ignoreBarrelChannels
LArRawSCContainer * m_et_coll
void setDelayScale(const double scale)
set the delay Scale
unsigned int Word
this should be the same as how we get the data, otherwise we will have bugs.
const LArOnline_SuperCellID * m_onlineId
std::vector< std::string > patterns
std::vector< unsigned short > m_BCIDsInEvent
float round(const float toRound, const unsigned int decimals)
int signEnergy(unsigned int energy)
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
static const Word s_monHeaderMarker
this is fixed and not read from data
unsigned int bytesPerChannel(MonDataType at0, MonDataType at1)
std::vector< Word > m_packetEnd
void decodeChannel(unsigned int &wordshift, unsigned int &byteshift, const uint32_t *p, MonDataType at0, MonDataType at1, unsigned int &at0Data, unsigned int &at1Data, unsigned int &satData, bool &at0val, bool &at1val)
const std::string & key() const
Return the StoreGate ID for the referenced object.
void decodeWord(unsigned int &word, unsigned int &wordshift, unsigned int &byteshift, const uint32_t *p)
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
#define N_LATOME_CHANNELS
fixed number of channels on one LATOME board
const LArLATOMEDecoder * m_decoder
LArLATOMEHeaderContainer * m_header_coll
LArDigitContainer * m_adc_coll
AthMessaging()
Default constructor:
bool isHECchannel(const HWIdentifier id) const override final
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Data class for ADC samples and autocorr preprocessed by the DSP.
static const Word m_monTrailerSize
some cached info to ease processing reading from data header
void decodeByte(unsigned int &byte, unsigned int wordshift, unsigned int byteshift, const uint32_t *p)
void increaseWordShift(unsigned int &wordshift)
LArAccumulatedCalibDigitContainer * m_caccdigits
::StatusCode StatusCode
StatusCode definition for legacy code.
static const Word s_monCheckPoint
BooleanProperty m_ignoreEndcapChannels
bool isPulsed(const unsigned event, const HWIdentifier calibLineID) const
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
void increaseByteShift(unsigned int &wordshift, unsigned int &byteshift)
LArRawSCContainer * m_et_id_coll
std::vector< LatomeRawData > m_rawValuesInEvent
unsigned int decodeTrailer(const uint32_t *p, unsigned int offset)
MsgStream & msg() const
The standard message stream.
Base class for LArDigits taken by LATOME.
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const
void fillCalib(const LArLATOMEMapping *map, const LArOnOffIdMapping *onoffmap, const LArCalibLineMapping *clmap)
void fillRaw(const LArLATOMEMapping *map)
Pass ADC values from an event.
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
value_type push_back(value_type pElem)
Add an element to the end of the collection.
setEventNumber setTimeStamp bcid
std::vector< LatomeAveragedRawData > m_averagedRawValuesInEvent
LArAccumulatedDigitContainer * m_accdigits
std::vector< LatomeCalibPatterns > m_latomeCalibPatternsInEvent
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
#define ATH_MSG_WARNING(x)
std::string m_nm
Message source name.
virtual StatusCode initialize()
void initMessaging() const
Initialize our message level and MessageSvc.
unsigned int decodeHeader(const uint32_t *p, unsigned int offset)
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
static const int s_nBunches
Maximum value of BCID.
void set(const HWIdentifier CalibModuleID, const unsigned nTrigger, const std::vector< unsigned > &Pattern, const std::vector< unsigned > &DAC, const std::vector< unsigned > &Delay)
ToolHandle< ICaloSuperCellIDTool > m_sc2ccMappingTool
BooleanProperty m_keepPulsed
LArDigitContainer * m_adc_bas_coll