|
ATLAS Offline Software
|
Go to the documentation of this file.
17 #include "GaudiKernel/MsgStream.h"
22 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
23 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
27 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 2,
28 2, 2, 2, 2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2,
32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
33 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,
41 m_incompleteDigits(true),
74 int gain,
unsigned short fragBCID)
82 int drawer = (frag & 0x3F);
83 bool eb = (frag > 0x2ff);
84 bool ebsp = (frag == 0x30e || frag == 0x411);
102 if (ebsp) FE_DMUmask <<= 1;
103 FE_DMUmask = (FE_DMUmask & 0xFF) | ((FE_DMUmask & 0xF00) << 2);
109 unsigned short BCIDerr = fragBCID;
116 if (DSPBCID != 0xDEAD && DSPBCID !=
m_BCID) {
135 #ifdef TILECELL_DEBUG
136 std::cout <<
"masking whole drawer " <<
drawer <<
" in partition " <<
partition <<
" because all 4 MB have BCID errors"
157 #ifdef TILECELL_DEBUG
158 std::cout << std::hex
171 <<
" counter is " << std::dec <<
m_counter << std::endl;
182 #ifdef TILECELL_DEBUG
198 for(
int i=0;
i<9;++
i){
199 nError += errorArray[
i];
201 std::cout << std::dec <<
"Part: " <<
partition <<
" Drawer: " <<
drawer+1 <<
" DMU: " << dmu <<
" ch: " <<
ch << std::endl;
202 std::cout <<
"IsBigain " <<
m_isBiGain << std::endl;
205 std::cout <<
"GlobalCRCErr " << errorArray[0] << std::endl;
208 std::cout <<
"ROD_CRCErr " << std::dec << errorArray[1] << std::endl;
211 std::cout <<
"FE_CRCErr " << std::dec << errorArray[2] << std::endl;
212 std::cout <<
"BCIDErr " << std::dec << errorArray[3] << std::endl;
213 std::cout <<
"HeaderFormatErr " << std::dec << errorArray[4] << std::endl;
214 std::cout <<
"HeaderParityErr " << std::dec << errorArray[5] << std::endl;
215 std::cout <<
"SampleFormatErr " << std::dec << errorArray[6] << std::endl;
216 std::cout <<
"SampleParityErr " << std::dec << errorArray[7] << std::endl;
217 std::cout <<
"MemoryParityErr " << std::dec << errorArray[8] << std::endl;
218 std::cout <<
"SingleStrobeErr " << std::dec << errorArray[9] << std::endl;
219 std::cout <<
"DoubleStrobeErr " << std::dec << errorArray[10] << std::endl;
220 std::cout <<
"Total number of errors: " << std::dec << nError << std::endl;
253 int drawer = (frag & 0x3F);
256 if (digitsCnt == NULL)
263 for (; collItr != lastColl; ++collItr) {
264 if ((*collItr)->identify() != frag)
267 std::vector < uint32_t >
data;
269 data = (*collItr)->getFragChipHeaderWordsHigh();
271 data = (*collItr)->getFragChipHeaderWords();
274 short bcidCheck = 0x0;
275 uint32_t rodbcid = (*collItr)->getRODBCID();
276 for (
unsigned int dmu = 0; dmu <
dataSize; ++dmu) {
277 bcidCheck |= ((
data[dmu] & 0xFFF) != rodbcid) << dmu;
278 #ifdef TILECELL_DEBUG
279 std::cout <<
"Part: " <<
partition <<
" Drawer: " <<
drawer <<
" DMU: " << dmu << (
gain?
"HG":
"LG")
280 <<
" DMU BCID: " << (
data[dmu] & 0xFFF) <<
" ROD BCID: " << rodbcid << std::endl;
292 const std::vector<float>& trips,
299 <<
"The drawer has been tripped (simulation): "
bool m_isFilled
Boolean storing if DQ fragment has been parsed already.
void setTrigType(int trigType)
short m_GlobalCRCErrArray[5][64][2]
Array of bit masks storing CRC errors for all DMUs.
void fillArrays(const TileRawChannelCollection *coll, const TileDigitsContainer *digitsCnt, int gain, unsigned short fragBCID)
parses DQ fragments and fill error arrays for event
char data[hepevt_bytes_allocation_ATLAS]
short m_BCIDErrArrayDetail[5][64][2]
Array of bit masks storing BCID errors for all DMUs (from comparison with Digits)
int checkBCIDErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has BCID mismatch between DMU and ROD Since BCID errors in the DQ fragment are det...
uint32_t getFragSampleBit() const
bool isChanDQgood(int partition, int drawer, int ch) const
returns status of single channel (if bigain, returns AND of ADCs' status
uint32_t getFragHeaderPar() const
uint32_t calibMode() const
Calibration mode.
bool isBiGain() const
returns gain mode of run
uint32_t getFragDstrobe() const
TileDQstatus()
Default constructor.
short m_SampleParityErrArray[5][64][2]
Array of bit masks storing Sample Parity errors for all DMUs.
int m_trigType
Trigger type.
short m_FE_DMUmaskArray[5][64][2]
Array of bit masks storing CRC errors for all DMUs.
static const int s_ch2dmuEB[48]
short m_HeaderFormatErrArray[5][64][2]
Array of bit masks storing Header Format errors for all DMUs.
short m_MemoryParityErrArray[5][64][2]
Array of bit masks storing Memory Parity errors for all DMUs.
uint32_t getFragBCID() const
@ u
Enums for curvilinear frames.
uint32_t m_calibMode
Calibration mode.
int checkGlobalCRCErr(int partition, int drawer, int gain) const
returns 1 if adc channel has global CRC error
short m_HeaderParityErrArray[5][64][2]
Array of bit masks storing Header Parity errors for all DMUs.
int checkROD_CRCErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has CRC error originating in ROD
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
int trigType() const
Trigger type.
uint32_t getFragMemoryPar() const
bool m_isBiGain
Boolean storing gain mode of run.
void fillBCIDErrDetail(const TileDigitsContainer *digitsCnt, int frag, int gain)
static const int s_ch2dmuLB[48]
short m_EmptyEventArray[5][64][16][2]
Array storing whether event is empty.
bool m_incompleteDigits
True if not all digits are available.
bool m_checkDigi
Boolean flag to control TileDigitsContainer access
uint32_t m_BCID
Event bunch crossing identification.
int checkHeaderFormatErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has header word format error
const_iterator end() const
return const_iterator for end of container
const_iterator begin() const
return const_iterator for first entry
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
int m_counter
Counter of non-zero elements in all error arrays.
bool isAdcDQgood(int partition, int drawer, int ch, int gain) const
returns status of single ADC returns False if there are any errors
uint32_t m_cispar[110]
CIS parameters.
short m_BCIDErrArray[5][64][2]
Array of bit masks storing BCID errors for all DMUs (from comparison with DMU1)
uint32_t getFragSstrobe() const
int checkSampleParityErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has data word parity error
size_t dataSize(TDA::PayloadIterator start)
Size in bytes of the buffer that is needed to decode next fragment data content.
int checkHeaderParityErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has header word parity error
uint32_t getFragRODChipMask() const
int checkSampleFormatErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has data word format error
const uint32_t * cispar() const
CIS parameters.
uint32_t getFragHeaderBit() const
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
void setAllGood()
mark all channels/ADC's as DQ good
short m_DoubleStrobeErrArray[5][64][2]
Array of bit masks storing Double Strobe errors for all DMUs.
void fillTrips(unsigned int partition, const std::vector< float > &trips, double *rndmVec, MsgStream &msg)
uint32_t getFragSamplePar() const
static const int s_ch2dmuEBspecial[48]
void setIncompleteDigits(bool incomplete)
uint32_t getFragFEChipMask() const
int checkSingleStrobeErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has single strobe error
short m_ROD_DMUmaskArray[5][64][2]
Array of bit masks storing CRC errors for all DMUs.
uint32_t getFragGlobalCRC() const
Various get methods.
int checkDoubleStrobeErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has double strobe error
int checkMemoryParityErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has memory parity error
int checkFE_CRCErr(int partition, int drawer, int dmu, int gain) const
returns 1 if DMU has CRC error originating in FE electronics
uint32_t getFragDSPBCID() const
size_type size() const noexcept
Returns the number of elements in the collection.
short m_SingleStrobeErrArray[5][64][2]
Array of bit masks storing Single Strobe errors for all DMUs.
short m_SampleFormatErrArray[5][64][2]
Array of bit masks storing Sample Format errors for all DMUs.
void setCalibMode(uint32_t calibMode)