ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArRecConditions
src
LArBadFebBitPacking.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
LArRecConditions/LArBadFebBitPacking.h
"
6
#include "
LArRecConditions/LArBadFeb.h
"
7
8
LArBadFebBitPacking::LArBadFebBitPacking
() :
9
m_index
( 8*sizeof(
BitWord
),-1)
10
{
11
// Here, specify each problem and its name
12
addBit
(
deadAllBit
,
"deadAll"
);
13
addBit
(
deadReadoutBit
,
"deadReadout"
);
14
addBit
(
inErrorBit
,
"inError"
);
15
addBit
(
deactivatedInOKSBit
,
"deactivatedInOKS"
);
16
addBit
(
maskParity
,
"maskParity"
);
17
addBit
(
maskBCID
,
"maskBCID"
);
18
addBit
(
maskSampleHeader
,
"maskSampleHeader"
);
19
addBit
(
maskEVTID
,
"maskEVTID"
);
20
addBit
(
maskScacStatus
,
"maskScacStatus"
);
21
addBit
(
maskScaOutOfRange
,
"maskScaOutOfRange"
);
22
addBit
(
maskGainMismatch
,
"maskGainMismatch"
);
23
addBit
(
maskTypeMismatch
,
"maskTypeMismatch"
);
24
addBit
(
maskNumOfSamples
,
"maskNumOfSamples"
);
25
addBit
(
maskEmptyDataBlock
,
"maskEmptyDataBlock"
);
26
addBit
(
maskDspBlockSize
,
"maskDspBlockSize"
);
27
addBit
(
maskCheckSum
,
"maskCheckSum"
);
28
addBit
(
maskMissingHeader
,
"maskMissingHeader"
);
29
addBit
(
maskBadGain
,
"maskBadGain"
);
30
31
for
(
unsigned
int
i=0; i<
m_enumVec
.size(); i++) {
32
m_index
[
m_enumVec
[i]] = i;
33
}
34
}
35
36
void
LArBadFebBitPacking::addBit
(
ProblemType
pb,
const
std::string& name)
37
{
38
m_enumVec
.push_back(pb);
39
m_nameVec
.push_back(name);
40
m_nameMap
[name] = pb;
41
}
42
43
44
const
std::string&
LArBadFebBitPacking::stringName
(
ProblemType
pb)
const
45
{
46
return
m_nameVec
.at(
index
(pb));
47
}
48
49
std::pair<bool, LArBadFebEnum::ProblemType>
50
LArBadFebBitPacking::enumName
(
const
std::string&
str
)
const
51
{
52
std::map<std::string, ProblemType>::const_iterator i =
m_nameMap
.find(
str
);
53
if
(i !=
m_nameMap
.end()) {
return
std::make_pair(
true
,i->second);}
54
else
return
std::make_pair(
false
, (
ProblemType
) 0);
55
}
56
57
58
void
LArBadFebBitPacking::setBit
(
ProblemType
pb,
BitWord
& word,
bool
value)
const
{
59
BitWord
mask = 1;
60
mask = mask <<
bitPosition
(pb);
// all at 0 except pb bit
61
if
(value) word |= mask;
62
else
word &= ~mask;
63
}
64
65
bool
LArBadFebBitPacking::setBit
(
const
std::string& name,
66
BitWord
& word,
bool
value)
const
67
{
68
std::pair<bool, ProblemType>
res
=
enumName
( name);
69
if
(
res
.first) {
// name corresponds to enum
70
setBit
(
res
.second, word, value);
71
return
true
;
72
}
73
else
return
false
;
// name not recognized
74
}
75
76
void
LArBadFebBitPacking::setBit
(
ProblemType
pb,
LArBadFeb
& word,
bool
value)
const
77
{
78
setBit
( pb, word.
packedDataRef
(), value);
79
}
80
81
bool
LArBadFebBitPacking::setBit
(
const
std::string& name,
LArBadFeb
& word,
bool
value)
const
82
{
83
return
setBit
( name, word.
packedDataRef
(), value);
84
}
85
86
std::string
LArBadFebBitPacking::stringStatus
(
const
LArBadFeb
& bc)
const
87
{
88
std::string
res
;
89
for
(
unsigned
int
i=0; i<
m_enumVec
.size(); ++i) {
90
if
( ! bc.
statusOK
(
m_enumVec
.at(i))) {
91
if
(!
res
.empty())
res
+=
" "
;
92
res
+=
m_nameVec
.at(i);
93
}
94
}
95
return
res
;
96
}
res
std::pair< std::vector< unsigned int >, bool > res
Definition
JetGroupProductTest.cxx:11
LArBadFebBitPacking.h
LArBadFeb.h
LArBadFebBitPacking::m_nameMap
std::map< std::string, ProblemType > m_nameMap
Definition
LArBadFebBitPacking.h:47
LArBadFebBitPacking::m_index
std::vector< int > m_index
Definition
LArBadFebBitPacking.h:43
LArBadFebBitPacking::m_nameVec
std::vector< std::string > m_nameVec
Definition
LArBadFebBitPacking.h:46
LArBadFebBitPacking::m_enumVec
std::vector< ProblemType > m_enumVec
Definition
LArBadFebBitPacking.h:45
LArBadFebBitPacking::stringName
const std::string & stringName(ProblemType pb) const
Definition
LArBadFebBitPacking.cxx:44
LArBadFebBitPacking::bitPosition
PosType bitPosition(ProblemType pb) const
Definition
LArBadFebBitPacking.h:27
LArBadFebBitPacking::LArBadFebBitPacking
LArBadFebBitPacking()
Definition
LArBadFebBitPacking.cxx:8
LArBadFebBitPacking::enumName
std::pair< bool, ProblemType > enumName(const std::string &str) const
Definition
LArBadFebBitPacking.cxx:50
LArBadFebBitPacking::setBit
void setBit(ProblemType pb, BitWord &word, bool value=true) const
Definition
LArBadFebBitPacking.cxx:58
LArBadFebBitPacking::stringStatus
std::string stringStatus(const LArBadFeb &bc) const
Definition
LArBadFebBitPacking.cxx:86
LArBadFebBitPacking::addBit
void addBit(ProblemType pb, const std::string &name)
Definition
LArBadFebBitPacking.cxx:36
LArBadFebEnum::ProblemType
ProblemType
Definition
LArBadFebEnum.h:15
LArBadFebEnum::maskParity
@ maskParity
Definition
LArBadFebEnum.h:20
LArBadFebEnum::maskMissingHeader
@ maskMissingHeader
Definition
LArBadFebEnum.h:32
LArBadFebEnum::maskEVTID
@ maskEVTID
Definition
LArBadFebEnum.h:23
LArBadFebEnum::maskGainMismatch
@ maskGainMismatch
Definition
LArBadFebEnum.h:26
LArBadFebEnum::maskEmptyDataBlock
@ maskEmptyDataBlock
Definition
LArBadFebEnum.h:29
LArBadFebEnum::maskBadGain
@ maskBadGain
Definition
LArBadFebEnum.h:33
LArBadFebEnum::maskDspBlockSize
@ maskDspBlockSize
Definition
LArBadFebEnum.h:30
LArBadFebEnum::maskBCID
@ maskBCID
Definition
LArBadFebEnum.h:21
LArBadFebEnum::deadAllBit
@ deadAllBit
Definition
LArBadFebEnum.h:16
LArBadFebEnum::maskNumOfSamples
@ maskNumOfSamples
Definition
LArBadFebEnum.h:28
LArBadFebEnum::maskScacStatus
@ maskScacStatus
Definition
LArBadFebEnum.h:24
LArBadFebEnum::inErrorBit
@ inErrorBit
Definition
LArBadFebEnum.h:18
LArBadFebEnum::maskCheckSum
@ maskCheckSum
Definition
LArBadFebEnum.h:31
LArBadFebEnum::maskSampleHeader
@ maskSampleHeader
Definition
LArBadFebEnum.h:22
LArBadFebEnum::maskScaOutOfRange
@ maskScaOutOfRange
Definition
LArBadFebEnum.h:25
LArBadFebEnum::maskTypeMismatch
@ maskTypeMismatch
Definition
LArBadFebEnum.h:27
LArBadFebEnum::deactivatedInOKSBit
@ deactivatedInOKSBit
Definition
LArBadFebEnum.h:19
LArBadFebEnum::deadReadoutBit
@ deadReadoutBit
Definition
LArBadFebEnum.h:17
LArBadFebEnum::BitWord
unsigned int BitWord
Definition
LArBadFebEnum.h:13
LArBadFeb
Definition
LArBadFeb.h:10
LArBadFeb::packedDataRef
BitWord & packedDataRef()
Definition
LArBadFeb.h:58
LArBadFeb::statusOK
bool statusOK(ProblemType pb) const
Returns true if there is no problem in corresponding status bit.
Definition
LArBadFeb.h:24
index
Definition
index.py:1
str
Definition
BTagTrackIpAccessor.cxx:11
Generated on
for ATLAS Offline Software by
1.17.0