ATLAS Offline Software
TileBadChannelsCondAlg.cxx
Go to the documentation of this file.
1 //Dear emacs, this is -*- c++ -*-
2 /*
3  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4 */
5 
6 
7 // Tile includes
13 
14 // Athena includes
17 
18 
19 TileBadChannelsCondAlg::TileBadChannelsCondAlg(const std::string& name, ISvcLocator* pSvcLocator) :
20  AthAlgorithm(name, pSvcLocator),
21  m_useOflBch(true)
22 {
23 }
24 
25 
27 
28  for (const TileBchDecoder* tileBchDecoder : m_tileBchDecoder) {
29  delete tileBchDecoder;
30  }
31 
32 }
33 
34 
36 
37  // Tile cabling service
38  ATH_CHECK( m_cablingSvc.retrieve() );
39 
41 
42  //=== initialize bit pattern decoders for all possible versions
44  for (unsigned int i = 0; i < TileBchDecoder::MaxVersion; ++i) {
45  ATH_MSG_DEBUG( "Creating TileBchDecoder(" << i << ")" );
47  }
48 
49 
50  //=== TileCondIdTransforms
51  CHECK( m_tileIdTrans.retrieve() );
52 
53  m_useOnlBch = !(m_onlBchProxy.empty());
54  //=== retrieve online proxy
55  ATH_CHECK( m_onlBchProxy.retrieve(EnableTool{m_useOnlBch}) );
56 
57  m_useOflBch = !(m_oflBchProxy.empty());
58  //=== retrieve offline proxy
59  ATH_CHECK( m_oflBchProxy.retrieve(EnableTool{m_useOflBch}) );
60 
61  if (m_useOnlBch && m_useOflBch) {
62  ATH_MSG_INFO("ProxyOnlBch and ProxyOflBch will be used for bad channel status");
63  } else if (m_useOnlBch) {
64  ATH_MSG_INFO("Only ProxyOnlBch will be used for bad channel status");
65  } else if (m_useOflBch) {
66  ATH_MSG_INFO("Only ProxyOflBch will be used for bad channel status");
67  } else {
68  ATH_MSG_INFO("ProxyOnlBch and ProxyOflBch will not be used for bad channel status => all channels are good");
69  }
70 
71  return StatusCode::SUCCESS;
72 }
73 
74 
76 
78 
79  if (badChannels.isValid()) {
80  ATH_MSG_DEBUG("Found valid TileBadChannels: " << badChannels.key());
81  return StatusCode::SUCCESS;
82  }
83 
84  EventIDRange eventRange;
85 
86  // Define validity of the output cond object
87  std::unique_ptr<TileCalibData<TileCalibDrawerBch>> onlBchData
88  = std::make_unique<TileCalibData<TileCalibDrawerBch>>();
89 
90  if (m_useOnlBch) {
91  EventIDRange onlBchRange;
92  ATH_CHECK( m_onlBchProxy->fillCalibData(*onlBchData, onlBchRange) );
93  eventRange = EventIDRange::intersect(eventRange, onlBchRange);
94  }
95 
96  std::unique_ptr<TileCalibData<TileCalibDrawerBch>> oflBchData
97  = std::make_unique<TileCalibData<TileCalibDrawerBch>>();
98 
99  if (m_useOflBch) {
100  EventIDRange oflBchRange;
101  ATH_CHECK( m_oflBchProxy->fillCalibData(*oflBchData, oflBchRange) );
102  eventRange = EventIDRange::intersect(eventRange, oflBchRange);
103  }
104 
105 
106  std::unique_ptr<TileBadChannels> badChannelsData = std::make_unique<TileBadChannels>();
107 
108  try {
109 
110  //=== loop over the whole detector, hash affected ADCs
111  uint32_t adcBits(0), channelBits(0);
112 
113  const TileHWID* tileHWID = m_tileIdTrans->getTileHWID();
114 
115  IdContext adcContext = tileHWID->adc_context();
116  unsigned int maxAdcHash = tileHWID->adc_hash_max();
117 
118  unsigned int drawerIdx(0);
119  unsigned int channel(0);
120  unsigned int adc(0);
121 
122  for (IdentifierHash adcHash = 0; adcHash < maxAdcHash; adcHash += 1) {
123  HWIdentifier adcId;
124  if (tileHWID->get_id(adcHash, adcId, &adcContext) == 0) {
125 
126  if (tileHWID->ros(adcId) == 0) continue;
127 
128  m_tileIdTrans->getIndices(adcId, drawerIdx, channel, adc);
129 
130  TileBchStatus adcStatus;
131 
132  std::vector<const TileCalibDrawerBch*> calibDrawers;
133  if (m_useOnlBch) {
134  //=== online status ...
135  calibDrawers.push_back( onlBchData->getCalibDrawer(drawerIdx) );
136  }
137 
138  if (m_useOflBch) {
139  //=== ... add offline status
140  calibDrawers.push_back( oflBchData->getCalibDrawer(drawerIdx) );
141  }
142 
143  for (const TileCalibDrawerBch* calibDrawer : calibDrawers) {
144  TileBchDecoder::BitPatVer bitPatVer = calibDrawer->getBitPatternVersion();
145  calibDrawer->getStatusWords(channel, adc, adcBits, channelBits);
146  adcStatus += m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits);
147  }
148 
149  if (!adcStatus.isGood()) {
150  //=== only add problematic adcs to map
151  HWIdentifier channelId = tileHWID->channel_id(adcId);
152  badChannelsData->addAdcStatus(channelId, adcId, adcStatus);
153  }
154  }
155  }
156 
157 
158  //============================================================
159  //=== Set definition of bad and noisy channel if specified.
160  //--- These definitions are stored in drawerIdx=1, since
161  //--- drawers 1,...,3 are not used in the default chain.
162  //---
163  //--- drawerIdx=1, channel=0: definition of bad channel
164  //--- drawerIdx=1, channel=1: definition of noisy channel
165  //--- drawerIdx=1, channel=2: definition of NoGainLevel1 channel
166  //--- drawerIdx=1, channel=3: definition of bad timing channel
167  //--- .... (this list could be extended if needed)
168  //============================================================
169  //=== Reset defintion to hard-coded defaults
171 
172  const TileCalibDrawerBch* definitionsCalibDrawer;
173  if (m_useOflBch) definitionsCalibDrawer = oflBchData->getCalibDrawer(TileCalibUtils::DEFINITIONS_DRAWERIDX);
174  else definitionsCalibDrawer = onlBchData->getCalibDrawer(TileCalibUtils::DEFINITIONS_DRAWERIDX);
175 
176  TileBchDecoder::BitPatVer bitPatVer = definitionsCalibDrawer->getBitPatternVersion();
177 
178  //=== TileBchStatus.isBad() definition
179  definitionsCalibDrawer->getStatusWords(TileCalibUtils::BAD_DEFINITION_CHAN, 0, adcBits, channelBits);
180  TileBchStatus channelStatus(m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits));
181  if (channelStatus.isAffected()) {
182  ATH_MSG_INFO( "Updating TileBchStatus::isBad() definition from DB" );
183  TileBchStatus::defineBad(channelStatus);
184  } else {
185  ATH_MSG_INFO( "No TileBchStatus::isBad() definition found in DB, using defaults" );
186  }
187 
188  //=== TileBchStatus.isNoisy() definition
189  definitionsCalibDrawer->getStatusWords(TileCalibUtils::NOISY_DEFINITION_CHAN, 0, adcBits, channelBits);
190  channelStatus = m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits);
191  if (channelStatus.isAffected()) {
192  ATH_MSG_INFO( "Updating TileBchStatus::isNoisy() definition from DB" );
193  TileBchStatus::defineNoisy(channelStatus);
194  } else {
195  ATH_MSG_INFO( "No TileBchStatus::isNoisy() definition found in DB, using defaults" );
196  }
197 
198  //=== TileBchStatus.isNoGainL1() definition
199  definitionsCalibDrawer->getStatusWords(TileCalibUtils::NOGAINL1_DEFINITION_CHAN, 0, adcBits, channelBits);
200  channelStatus = m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits);
201  if (channelStatus.isAffected()) {
202  ATH_MSG_INFO( "Updating TileBchStatus::isNoGainL1() definition from DB" );
203  TileBchStatus::defineNoGainL1(channelStatus);
204  } else {
205  ATH_MSG_INFO( "No TileBchStatus::isNoGainL1() definition found in DB, using defaults" );
206  }
207 
208 
209  //=== TileBchStatus.isBadTiming() definition
210  definitionsCalibDrawer->getStatusWords(TileCalibUtils::BADTIMING_DEFINITION_CHAN, 0, adcBits, channelBits);
211  channelStatus = m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits);
212  if (channelStatus.isAffected()) {
213  ATH_MSG_INFO( "Updating TileBchStatus::isBadTiming() definition from DB" );
214  TileBchStatus::defineBadTiming(channelStatus);
215  } else {
216  ATH_MSG_INFO( "No TileBchStatus::isBadTiming() definition found in DB, using defaults" );
217  }
218 
219  //=== TileBchStatus.isWrongBCID() definition
220  definitionsCalibDrawer->getStatusWords(TileCalibUtils::WRONGBCID_DEFINITION_CHAN, 0, adcBits, channelBits);
221  channelStatus = m_tileBchDecoder[bitPatVer]->decode(channelBits, adcBits);
222  if (channelStatus.isAffected()) {
223  ATH_MSG_INFO( "Updating TileBchStatus::isWrongBCID() definition from DB" );
224  TileBchStatus::defineWrongBCID(channelStatus);
225  } else {
226  ATH_MSG_INFO( "No TileBchStatus::isWrongBCID() definition found in DB, using defaults" );
227  }
228 
229  //=== report current definitions
230  ATH_MSG_INFO( "TileBchStatus::isBad() is defined by: "
231  << TileBchStatus::getDefinitionBad().getString() );
232  ATH_MSG_INFO( "TileBchStatus::isNoisy() is defined by: "
233  << TileBchStatus::getDefinitionNoisy().getString() );
234  ATH_MSG_INFO( "TileBchStatus::isNoGainL1() is defined by: "
235  << TileBchStatus::getDefinitionNoGainL1().getString() );
236  ATH_MSG_INFO( "TileBchStatus::isBadTiming() is defined by: "
237  << TileBchStatus::getDefinitionBadTiming().getString() );
238  ATH_MSG_INFO( "TileBchStatus::isWrongBCID() is defined by: "
239  << TileBchStatus::getDefinitionWrongBCID().getString() );
240 
241  // Find Tile drawers masked completely
242  std::vector<int> maskedDrawers;
243  const TileCablingService* cabling = m_cablingSvc->cablingService();
244  unsigned int maxChannels = cabling->getMaxChannels();
245 
246  for (unsigned int ros = 1; ros < TileCalibUtils::MAX_ROS; ++ros) {
247  for (unsigned int drawer = 0; drawer < TileCalibUtils::MAX_DRAWER; ++drawer) {
248  unsigned int channel = 0;
249  for ( ; channel < maxChannels; ++channel) {
250  int index(-1);
251  int pmt(-1);
252  HWIdentifier channelID = tileHWID->channel_id(ros, drawer, channel);
253  cabling->h2s_cell_id_index(channelID, index, pmt);
254  if (index >= 0 && !badChannelsData->getChannelStatus(channelID).isBad()) { // good normal cell
255  break;
256  }
257  }
258  if (channel == maxChannels) maskedDrawers.push_back(tileHWID->frag(ros, drawer));
259  }
260  }
261 
262 
263  if (msgLvl(MSG::DEBUG)) {
264  if (!maskedDrawers.empty()) {
265  msg(MSG::DEBUG) << "List of fully masked drawers: " << MSG::hex;
266  for(int maskedDrawer : maskedDrawers) {
267  msg(MSG::DEBUG) << " 0x" << maskedDrawer;
268  }
269  msg(MSG::DEBUG) << MSG::dec << endmsg;
270  } else {
271  msg(MSG::DEBUG) << "No bad drawers found" << endmsg;
272  }
273  }
274 
275  if (!maskedDrawers.empty()) badChannelsData->setMaskedDrawers(std::move(maskedDrawers));
276 
277  // Check if drawer trips probabilities for simulation are exist in DB.
278  // By special convention trips probabilities are stored in drawer number: 2
279  // like integers number plus one denominator per ros
280  //--- drawerIdx=2, channel=1: 64 integers + denominator for LBA
281  //--- drawerIdx=2, channel=2: 64 integers + denominator for LBC
282  //--- drawerIdx=2, channel=3: 64 integers + denominator for EBA
283  //--- drawerIdx=2, channel=4: 64 integers + denominator for EBC
284  //============================================================
285  if (m_useOflBch) {
286  const TileCalibDrawerBch* tripsCalibDrawer = oflBchData->getCalibDrawer(TileCalibUtils::TRIPS_DRAWERIDX);
287 
288  if (tripsCalibDrawer->getObjSizeUint32() == TileCalibUtils::MAX_DRAWER + 1
289  && tripsCalibDrawer->getNChans() == TileCalibUtils::MAX_ROS) {
290 
291 
292  ATH_MSG_INFO("Found drawer trips probabilities in DB");
293 
294  std::vector<std::vector<float>> tripsProbs(TileCalibUtils::MAX_ROS - 1, std::vector<float>(TileCalibUtils::MAX_DRAWER, 0));
295 
296  // Fill up arrays with trips probabilities for simulation purposes
297  // Trips probabilities are cached like floats: number / denominator.
298 
299  for (unsigned int ros = 1; ros < TileCalibUtils::MAX_ROS; ++ros) {
300  const float denominator = (float) tripsCalibDrawer->getData(ros, 0, TileCalibUtils::MAX_DRAWER);
301  const float inv_denominator = 1. / denominator;
302  for (unsigned int mod = 0; mod < TileCalibUtils::MAX_DRAWER; ++mod) {
303  tripsProbs[ros - 1][mod] = ((float) tripsCalibDrawer->getData(ros, 0, mod)) * inv_denominator;
304  }
305  }
306 
307  badChannelsData->setTripsProbabilities(std::move(tripsProbs));
308 
309  } else {
310  ATH_MSG_INFO("No drawer trips probabilities found in DB");
311  }
312  }
313  } catch (TileCalib::Exception& e) {
314  ATH_MSG_ERROR( "Caught exception: " << e.what() );
315  return StatusCode::FAILURE;
316  }
317 
318 
319 
320 
321  if(badChannels.record(eventRange, badChannelsData.release()).isFailure()) {
322  ATH_MSG_ERROR("Could not record TileBadChannels object with "
323  << badChannels.key()
324  << " with EventRange " << eventRange
325  << " into Conditions Store");
326  return StatusCode::FAILURE;
327  } else {
328 
329  ATH_MSG_VERBOSE("Recorded TileBadChannels object with "
330  << badChannels.key()
331  << " with EventRange " << eventRange
332  << " into Conditions Store");
333  }
334 
335 
336 
337  return StatusCode::SUCCESS;
338 
339 }
python.Classes.TileBchDecoder
TileBchDecoder
Definition: TileCalib/TileCalibBlobObjs/python/Classes.py:13
TileBchDecoder
Class providing the association between TileCal problems and status word bits.
Definition: TileBchDecoder.h:37
BchCleanup.adcBits
adcBits
Definition: BchCleanup.py:338
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileBchStatus::getDefinitionBadTiming
static TileBchStatus getDefinitionBadTiming()
Definition: TileBchStatus.cxx:229
TileBchStatus::initClassifierDefinitions
static void initClassifierDefinitions()
Definition: TileBchStatus.cxx:91
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TileHWID::get_id
virtual int get_id(const IdentifierHash &hash_id, HWIdentifier &id, const IdContext *context=0) const
create compact HW ID from hash id (return == 0 for OK)
Definition: TileHWID.cxx:490
TileCalibData.h
TileBadChannelsCondAlg.h
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TileBchStatus::getDefinitionWrongBCID
static TileBchStatus getDefinitionWrongBCID()
Definition: TileBchStatus.cxx:245
index
Definition: index.py:1
ReadBchFromCool.pmt
pmt
Definition: ReadBchFromCool.py:62
TileCalibDrawerBch::getStatusWords
void getStatusWords(unsigned int channel, unsigned int adc, uint32_t &adcStatus, uint32_t &chnStatus) const
Extracts the adc and channel status words.
Definition: TileCalibDrawerBch.h:86
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
TileBchStatus
Class holding bad channel problems.
Definition: TileBchStatus.h:20
TileCalibUtils::NOISY_DEFINITION_CHAN
static const unsigned int NOISY_DEFINITION_CHAN
Channel used for storing of noisy channel definitions.
Definition: TileCalibUtils.h:150
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
TileHWID::frag
int frag(const HWIdentifier &id) const
extract frag field from HW identifier
Definition: TileHWID.h:181
TileCalibUtils.h
TileCalibUtils::TRIPS_DRAWERIDX
static const unsigned int TRIPS_DRAWERIDX
DrawerIdx used for storing trips probabilities.
Definition: TileCalibUtils.h:145
TileCalibDrawerBch::getBitPatternVersion
TileBchDecoder::BitPatVer getBitPatternVersion() const
Returns the bit pattern version.
Definition: TileCalibDrawerBch.h:78
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TileBadChannelsCondAlg::m_oflBchProxy
ToolHandle< ITileCondProxy< TileCalibDrawerBch > > m_oflBchProxy
Tool to provide ofline Tile bad channel status If it is provided online and offline Tile bad channel ...
Definition: TileBadChannelsCondAlg.h:52
HWIdentifier
Definition: HWIdentifier.h:13
TileBchStatus::isGood
bool isGood() const
Definition: TileBchStatus.h:129
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
ReadCondHandle.h
TileCalibUtils::MAX_DRAWER
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
Definition: TileCalibUtils.h:139
TileHWID::ros
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Definition: TileHWID.h:167
TileBchStatus::defineBadTiming
static void defineBadTiming(const TileBchStatus &status)
Definition: TileBchStatus.cxx:181
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileCalibUtils::WRONGBCID_DEFINITION_CHAN
static const unsigned int WRONGBCID_DEFINITION_CHAN
Channel used for storing of wrong BCID channel definitions.
Definition: TileCalibUtils.h:153
TileBadChannelsCondAlg::m_cablingSvc
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
Definition: TileBadChannelsCondAlg.h:64
TileBchStatus::getDefinitionNoisy
static TileBchStatus getDefinitionNoisy()
Definition: TileBchStatus.cxx:213
TileHWID.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
maskDeadModules.mod
mod
Definition: maskDeadModules.py:36
TileCablingService.h
TileBchStatus::defineNoisy
static void defineNoisy(const TileBchStatus &status)
Definition: TileBchStatus.cxx:165
TileBadChannels::setTripsProbabilities
void setTripsProbabilities(std::vector< std::vector< float >> &&tripsProbs)
Store trips probabilities for all Tile drawers.
Definition: TileBadChannels.h:103
lumiFormat.i
int i
Definition: lumiFormat.py:92
TileBadChannelsCondAlg::m_tileBchDecoder
std::vector< const TileBchDecoder * > m_tileBchDecoder
Definition: TileBadChannelsCondAlg.h:70
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileBadChannels::setMaskedDrawers
void setMaskedDrawers(std::vector< int > &&maskedDrawers)
Store Tile drawers masked completely.
Definition: TileBadChannels.cxx:47
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ReadTripsProbsFromCool.tripsCalibDrawer
tripsCalibDrawer
Definition: ReadTripsProbsFromCool.py:83
WriteCondHandle.h
TileCalibUtils::DEFINITIONS_DRAWERIDX
static const unsigned int DEFINITIONS_DRAWERIDX
Drawer used for storing of bad and noisy channel definitions.
Definition: TileCalibUtils.h:148
TileCalibUtils::BADTIMING_DEFINITION_CHAN
static const unsigned int BADTIMING_DEFINITION_CHAN
Channel used for storing of bad timing channel definitions.
Definition: TileCalibUtils.h:152
TileBchStatus::defineNoGainL1
static void defineNoGainL1(const TileBchStatus &status)
Definition: TileBchStatus.cxx:173
TileBchStatus::isAffected
bool isAffected() const
Definition: TileBchStatus.h:137
TileHWID::adc_hash_max
size_type adc_hash_max(void) const
ADC hash table max size.
Definition: TileHWID.h:276
TileBadChannelsCondAlg::m_onlBchProxy
ToolHandle< ITileCondProxy< TileCalibDrawerBch > > m_onlBchProxy
Tool to provide online Tile bad channel status.
Definition: TileBadChannelsCondAlg.h:46
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
TileBchStatus::defineBad
static void defineBad(const TileBchStatus &status)
Definition: TileBchStatus.cxx:157
TileCalib::Exception
TileCalib Exception base class.
Definition: TileCalorimeter/TileCalib/TileCalibBlobObjs/TileCalibBlobObjs/Exception.h:22
TileCalibUtils::MAX_ROS
static const unsigned int MAX_ROS
Number of ROSs
Definition: TileCalibUtils.h:138
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileCablingService
Definition: TileCablingService.h:23
ReadTripsProbsFromCool.denominator
denominator
Definition: ReadTripsProbsFromCool.py:96
CaloCondBlobAlgs_fillNoiseFromASCII.channelId
channelId
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:122
TileBadChannelsCondAlg::m_useOnlBch
bool m_useOnlBch
Definition: TileBadChannelsCondAlg.h:73
AthAlgorithm
Definition: AthAlgorithm.h:47
TileBadChannelsCondAlg::~TileBadChannelsCondAlg
~TileBadChannelsCondAlg()
Definition: TileBadChannelsCondAlg.cxx:26
TileBadChannels::getChannelStatus
const TileBchStatus & getChannelStatus(const HWIdentifier channel_id) const
Return Tile channel status.
Definition: TileBadChannels.cxx:35
TileBadChannelsCondAlg::execute
virtual StatusCode execute() override
Definition: TileBadChannelsCondAlg.cxx:75
TileBadChannelsCondAlg::m_badChannelsKey
SG::WriteCondHandleKey< TileBadChannels > m_badChannelsKey
Name of output TileBadChannels.
Definition: TileBadChannelsCondAlg.h:58
TileBadChannelsCondAlg::m_tileIdTrans
ToolHandle< TileCondIdTransforms > m_tileIdTrans
Definition: TileBadChannelsCondAlg.h:67
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
python.PerfMonSerializer.decode
def decode(s)
Definition: PerfMonSerializer.py:388
TileBchDecoder::BitPatVer
BitPatVer
Definition: TileBchDecoder.h:40
TileHWID::channel_id
HWIdentifier channel_id(int ros, int drawer, int channel) const
channel HWIdentifer
Definition: TileHWID.cxx:198
TileBchStatus::defineWrongBCID
static void defineWrongBCID(const TileBchStatus &status)
Definition: TileBchStatus.cxx:197
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
BchCleanup.calibDrawer
calibDrawer
Definition: BchCleanup.py:217
TileHWID::adc_context
IdContext adc_context(void) const
idContext for ADCs
Definition: TileHWID.cxx:484
DeMoScan.index
string index
Definition: DeMoScan.py:362
TileBchStatus::getDefinitionNoGainL1
static TileBchStatus getDefinitionNoGainL1()
Definition: TileBchStatus.cxx:221
TileBchStatus::getDefinitionBad
static TileBchStatus getDefinitionBad()
Definition: TileBchStatus.cxx:205
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
TileBadChannels::addAdcStatus
void addAdcStatus(const HWIdentifier channel_id, const HWIdentifier adc_id, const TileBchStatus &adcStatus)
Add status for given Tile ADC and corresponding channel.
Definition: TileBadChannels.cxx:18
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
Amg::intersect
std::optional< double > intersect(const AmgVector(N)&posA, const AmgVector(N)&dirA, const AmgVector(N)&posB, const AmgVector(N)&dirB)
Calculates the closest approach of two lines.
Definition: GeoPrimitivesHelpers.h:302
TileBadChannelsCondAlg::initialize
virtual StatusCode initialize() override
Definition: TileBadChannelsCondAlg.cxx:35
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
TileCalibUtils::BAD_DEFINITION_CHAN
static const unsigned int BAD_DEFINITION_CHAN
Channel used for storing of bad channel definitions.
Definition: TileCalibUtils.h:149
TileCalibUtils::NOGAINL1_DEFINITION_CHAN
static const unsigned int NOGAINL1_DEFINITION_CHAN
Channel used for storing of NoGainLevel1 channel definitions.
Definition: TileCalibUtils.h:151
TileBadChannelsCondAlg::TileBadChannelsCondAlg
TileBadChannelsCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TileBadChannelsCondAlg.cxx:19
TileCalibDrawerBch
Class for storing a 32 bit status word for each ADC.
Definition: TileCalibDrawerBch.h:29
IdentifierHash
Definition: IdentifierHash.h:38
IdContext
class IdContext
Definition: IdContext.h:34
SG::WriteCondHandle
Definition: WriteCondHandle.h:26
TileBadChannelsCondAlg::m_useOflBch
bool m_useOflBch
Definition: TileBadChannelsCondAlg.h:74
readCCLHist.float
float
Definition: readCCLHist.py:83
TileBchDecoder::MaxVersion
@ MaxVersion
Definition: TileBchDecoder.h:43
TileBchStatus::isBad
bool isBad() const
Definition: TileBchStatus.h:145