ATLAS Offline Software
Public Types | Public Member Functions | List of all members
SCT_ReadCalibDataTool Class Reference

This class contains a Tool that reads SCT calibration data and makes it available to other algorithms. More...

#include <SCT_ReadCalibDataTool.h>

Inheritance diagram for SCT_ReadCalibDataTool:
Collaboration diagram for SCT_ReadCalibDataTool:

Public Types

enum  { STRIPS_PER_WAFER =768 }
 

Public Member Functions

 SCT_ReadCalibDataTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor. More...
 
virtual ~SCT_ReadCalibDataTool ()=default
 Destructor. More...
 
virtual StatusCode initialize () override
 Gaudi initialiser. More...
 
virtual StatusCode finalize () override
 Gaudi finaliser. More...
 

Methods to be implemented from virtual baseclass methods, when introduced

Return whether this tool can report on the hierarchy level (e.g.

module, chip...)

SG::ReadCondHandleKey< SCT_CalibDefectDatam_condKeyGain {this, "CondKeyGain", "SCT_CalibDefectNPtGain", "SCT defects due to NPtGain calibration"}
 
SG::ReadCondHandleKey< SCT_CalibDefectDatam_condKeyNoise {this, "CondKeyNoise", "SCT_CalibDefectNPtNoise", "SCT defects due to NPtNoise calibration"}
 
SG::ReadCondHandleKey< SCT_AllGoodStripInfom_condKeyInfo {this, "CondKeyInfo", "SCT_AllGoodStripInfo", "SCT good strips based on calibration defects"}
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
 
ToolHandle< ISCT_CablingToolm_cabling {this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}
 
const SCT_IDm_id_sct {nullptr}
 Handle to SCT ID helper. More...
 
virtual bool canReportAbout (InDetConditions::Hierarchy h) const override
 
virtual bool isGood (const Identifier &elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
 Summarise the result from the tool as good/bad. More...
 
virtual bool isGood (const Identifier &elementId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
 
virtual bool isGood (const IdentifierHash &) const override
 same thing with id hash, introduced by shaun with dummy method for now More...
 
virtual bool isGood (const IdentifierHash &hashId, const EventContext &) const override
 
virtual void getDetectorElementStatus (const EventContext &ctx, InDet::SiDetectorElementStatus &element_status, SG::WriteCondHandle< InDet::SiDetectorElementStatus > *whandle) const override
 
virtual ISCT_ReadCalibDataTool::CalibDefectType defectType (const Identifier &stripId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
 Return summary of defect type and values for a strip. More...
 
virtual ISCT_ReadCalibDataTool::CalibDefectType defectType (const Identifier &stripId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
 Return summary of defect type and values for a strip. More...
 
virtual SCT_CalibDefectData::CalibModuleDefects defectsSummary (const Identifier &moduleId, const std::string &scan, const EventContext &ctx) const override
 Returns module summary of defect. More...
 
virtual SCT_CalibDefectData::CalibModuleDefects defectsSummary (const Identifier &moduleId, const std::string &scan) const override
 Returns module summary of defect. More...
 
virtual std::list< IdentifierdefectList (const std::string &defect, const EventContext &ctx) const override
 Returns module summary of defect. More...
 
virtual std::list< IdentifierdefectList (const std::string &defect) const override
 Returns module summary of defect. More...
 
const SCT_CalibDefectDatagetCondDataGain (const EventContext &ctx) const
 
const SCT_CalibDefectDatagetCondDataNoise (const EventContext &ctx) const
 
const SCT_AllGoodStripInfogetCondDataInfo (const EventContext &ctx) const
 
const InDetDD::SiDetectorElementgetDetectorElement (const IdentifierHash &waferHash, const EventContext &ctx) const
 

Detailed Description

This class contains a Tool that reads SCT calibration data and makes it available to other algorithms.

The current implementation reads the data from a COOL database.

Definition at line 34 of file SCT_ReadCalibDataTool.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
STRIPS_PER_WAFER 

Definition at line 37 of file SCT_ReadCalibDataTool.h.

37 {STRIPS_PER_WAFER=768};

Constructor & Destructor Documentation

◆ SCT_ReadCalibDataTool()

SCT_ReadCalibDataTool::SCT_ReadCalibDataTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Constructor.

Definition at line 22 of file SCT_ReadCalibDataTool.cxx.

22  :
23  base_class(type, name, parent)
24 {
25 }

◆ ~SCT_ReadCalibDataTool()

virtual SCT_ReadCalibDataTool::~SCT_ReadCalibDataTool ( )
virtualdefault

Destructor.

Member Function Documentation

◆ canReportAbout()

bool SCT_ReadCalibDataTool::canReportAbout ( InDetConditions::Hierarchy  h) const
overridevirtual

Definition at line 54 of file SCT_ReadCalibDataTool.cxx.

54  {
55  return (h==InDetConditions::SCT_STRIP);
56 }

◆ defectList() [1/2]

std::list< Identifier > SCT_ReadCalibDataTool::defectList ( const std::string &  defect) const
overridevirtual

Returns module summary of defect.

Definition at line 400 of file SCT_ReadCalibDataTool.cxx.

400  {
401  const EventContext& ctx{Gaudi::Hive::currentContext()};
402  return defectList(defect, ctx);
403 }

◆ defectList() [2/2]

std::list< Identifier > SCT_ReadCalibDataTool::defectList ( const std::string &  defect,
const EventContext &  ctx 
) const
overridevirtual

Returns module summary of defect.

Definition at line 313 of file SCT_ReadCalibDataTool.cxx.

313  {
314  std::list<Identifier> defectList;
315 
316  // Retrieve defect data
317  const SCT_CalibDefectData* condDataGain{getCondDataGain(ctx)};
318  if (condDataGain==nullptr) {
319  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (gain) cannot be retrieved.");
320  return defectList;
321  }
322  const SCT_CalibDefectData* condDataNoise{getCondDataNoise(ctx)};
323  if (condDataNoise==nullptr) {
324  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (noise) cannot be retrieved.");
325  return defectList;
326  }
327 
328  // Create pointer to the CalibDataDefect object
330 
331  //Check which scan the defect belongs
332  bool npDefect{false};
333  bool noDefect{false};
334  if (defect=="NO_HI" or defect=="BAD_OPE" or defect=="DOUBTR_HI") {
335  noDefect = true;
336  } else {
337  npDefect = true;
338  }
339 
340  //Loop over all wafers using hashIds from the cabling service
341  std::vector<std::uint32_t> listOfRODs;
342  m_cabling->getAllRods(listOfRODs, ctx);
343  std::vector<std::uint32_t>::iterator rodIter{listOfRODs.begin()};
344  std::vector<std::uint32_t>::iterator rodEnd{listOfRODs.end()};
345  for (; rodIter!=rodEnd; ++rodIter) {
346  std::vector<IdentifierHash> listOfHashes;
347  m_cabling->getHashesForRod(listOfHashes, *rodIter, ctx);
348  std::vector<IdentifierHash>::iterator hashIt{listOfHashes.begin()};
349  std::vector<IdentifierHash>::iterator hashEnd{listOfHashes.end()};
350  for (; hashIt != hashEnd; ++hashIt) {
351  Identifier waferId{m_id_sct->wafer_id(*hashIt)};
352  int side{m_id_sct->side(waferId)};
353  //Only use the hashid for side 0, since data saved per module basis
354  if (side!=0) continue;
355  Identifier moduleId{m_id_sct->module_id(waferId)};
356  if (npDefect) {
357  wantedDefects = condDataGain->findModule(moduleId);
358  } else if (noDefect) {
359  wantedDefects = condDataNoise->findModule(moduleId);
360  }
361  if (not wantedDefects.begDefects.empty()) {
362  for (unsigned int i{0}; i < wantedDefects.begDefects.size(); ++i) {
363  if (wantedDefects.typeOfDefect[i] == defect) {
364  // Create identifier for all strips inside begin to end
365  int strip_beg{static_cast<int>(wantedDefects.begDefects[i])};
366  int strip_end{static_cast<int>(wantedDefects.endDefects[i])};
367  // In DB: strip from 0-1535, need to convert to side and 0-767 and take into account phiSwaps
368  for (int strip{strip_beg}; strip<strip_end+1; strip++) {
369  int nside{(strip<STRIPS_PER_WAFER) ? 0 : 1};
370  int strip_cor;
371  const InDetDD::SiDetectorElement* p_element;
372  if (nside==1) { // if side 1 need waferId of side 1 to get phiswap and correct stripId
373  IdentifierHash hashSide1;
374  m_id_sct->get_other_side(*hashIt, hashSide1);
375  waferId = m_id_sct->wafer_id(hashSide1);
376  p_element = (getDetectorElement(hashSide1, ctx));
377  } else {
378  p_element = (getDetectorElement(*hashIt, ctx));
379  }
380  if (p_element->swapPhiReadoutDirection()) {
381  if (nside == 0) {
382  strip_cor = STRIPS_PER_WAFER-1 - strip;
383  } else {
384  strip_cor = 2*STRIPS_PER_WAFER-1 - strip;
385  }
386  } else {
387  strip_cor = strip - nside * STRIPS_PER_WAFER;
388  }
389  Identifier stripId{m_id_sct->strip_id(waferId,strip_cor)};
390  defectList.push_back(stripId);
391  }
392  }
393  }
394  }
395  }
396  }
397  return defectList;
398 } //SCT_ReadCalibDataTool::defects()

◆ defectsSummary() [1/2]

SCT_CalibDefectData::CalibModuleDefects SCT_ReadCalibDataTool::defectsSummary ( const Identifier moduleId,
const std::string &  scan 
) const
overridevirtual

Returns module summary of defect.

Definition at line 305 of file SCT_ReadCalibDataTool.cxx.

305  {
306  const EventContext& ctx{Gaudi::Hive::currentContext()};
307  return defectsSummary(moduleId, scan, ctx);
308 }

◆ defectsSummary() [2/2]

SCT_CalibDefectData::CalibModuleDefects SCT_ReadCalibDataTool::defectsSummary ( const Identifier moduleId,
const std::string &  scan,
const EventContext &  ctx 
) const
overridevirtual

Returns module summary of defect.

Definition at line 279 of file SCT_ReadCalibDataTool.cxx.

279  {
280  // Create pointer to the CalibDataDefect object
282 
283  // Retrieve the correct defect map
284  if (scan == "NPtGain") {
285  const SCT_CalibDefectData* condDataGain{getCondDataGain(ctx)};
286  if (condDataGain==nullptr) {
287  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (gain) cannot be retrieved.");
288  } else {
289  wantedDefects = condDataGain->findModule(moduleId);
290  }
291  } else if (scan == "NoiseOccupancy") {
292  const SCT_CalibDefectData* condDataNoise{getCondDataNoise(ctx)};
293  if (condDataNoise==nullptr) {
294  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (noise) cannot be retrieved.");
295  } else {
296  wantedDefects = condDataNoise->findModule(moduleId);
297  }
298  } else {
299  ATH_MSG_ERROR("defectsSummary(): Module defects for scan" << scan << " does not exist (only NPtGain or NoiseOccupancy).");
300  }
301 
302  return wantedDefects;
303 } //SCT_ReadCalibDataTool::defectsSummary()

◆ defectType() [1/2]

ISCT_ReadCalibDataTool::CalibDefectType SCT_ReadCalibDataTool::defectType ( const Identifier stripId,
const EventContext &  ctx,
InDetConditions::Hierarchy  h = InDetConditions::DEFAULT 
) const
overridevirtual

Return summary of defect type and values for a strip.

Definition at line 164 of file SCT_ReadCalibDataTool.cxx.

164  {
165  // Print where you are
166  ATH_MSG_DEBUG("in defectType()");
167 
168  // Create the calibDefectSummary
169  CalibDefectType theseSummaryDefects;
170 
171  // Retrieve defect data
172  const SCT_CalibDefectData* condDataGain{getCondDataGain(ctx)};
173  if (condDataGain==nullptr) {
174  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (gain) cannot be retrieved.");
175  return theseSummaryDefects;
176  }
177  const SCT_CalibDefectData* condDataNoise{getCondDataNoise(ctx)};
178  if (condDataNoise==nullptr) {
179  ATH_MSG_ERROR("In defectType, SCT_CalibDefectData (noise) cannot be retrieved.");
180  return theseSummaryDefects;
181  }
182 
183  // Extract the moduleId from the comp identifier
184  Identifier moduleId{m_id_sct->module_id(stripId)};
185  ATH_MSG_DEBUG("Summary wanted for component: " << stripId << " on module: " << moduleId);
186 
187  // Create the CalibDataDefect objects
188  SCT_CalibDefectData::CalibModuleDefects wantedNPGDefects{condDataGain->findModule(moduleId)};
189  SCT_CalibDefectData::CalibModuleDefects wantedNODefects{condDataNoise->findModule(moduleId)};
190 
191  switch (h) {
193  {
194  // Not applicable for Calibration data
195  ATH_MSG_WARNING("summary(): Module defect summary is not applicable for Calibration data");
196  break;
197  }
198 
200  {
201  // Not applicable for Calibration data
202  ATH_MSG_WARNING("summary(): Wafer defect summary is not applicable for Calibration data");
203  break;
204  }
205 
207  {
208  // Not applicable for Calibration data
209  ATH_MSG_WARNING("summary(): Chip defect summary is not applicable for Calibration data");
210  break;
211  }
213  {
214  // Get the strip/channel number to check
215  int side{m_id_sct->side(stripId)};
216  int strip{m_id_sct->strip(stripId)};
217  const Identifier waferId{m_id_sct->wafer_id(stripId)};
218  const IdentifierHash waferHash{m_id_sct->wafer_hash(waferId)};
219  unsigned int stripNum;
220  const InDetDD::SiDetectorElement* p_element{getDetectorElement(waferHash, ctx)};
221  if (p_element->swapPhiReadoutDirection()) {
222  if (side == 0) {
223  stripNum = STRIPS_PER_WAFER-1 - strip;
224  } else {
225  stripNum = 2*STRIPS_PER_WAFER-1 - strip;
226  }
227  } else {
228  stripNum = side * STRIPS_PER_WAFER + strip;
229  }
230 
231  // Find the bad strip and fill calibDefectSummary
232  if (wantedNPGDefects.begDefects.empty()) {
233  ATH_MSG_VERBOSE("No NPtGain defects in this module");
234  } else {
235  for (unsigned int i{0}; i<wantedNPGDefects.begDefects.size(); ++i) {
236  if (stripNum>=wantedNPGDefects.begDefects[i] and stripNum<=wantedNPGDefects.endDefects[i]) {
237  theseSummaryDefects.scan.emplace_back("NPtGain");
238  theseSummaryDefects.defect.push_back(wantedNPGDefects.typeOfDefect[i]);
239  theseSummaryDefects.value.push_back(wantedNPGDefects.parValue[i]);
240  ATH_MSG_VERBOSE("NPtGain defect summary for strip " << stripNum << " filled");
241  }
242  }
243  }
244 
245  if (wantedNODefects.begDefects.empty()) {
246  ATH_MSG_VERBOSE("No NoiseOccupancy defects in this module");
247  } else {
248  for (unsigned int i{0}; i != wantedNODefects.begDefects.size(); ++i) {
249  if (stripNum>=wantedNODefects.begDefects[i] and stripNum <= wantedNODefects.endDefects[i]) {
250  theseSummaryDefects.scan.emplace_back("NoiseOccupancy");
251  theseSummaryDefects.defect.push_back(wantedNODefects.typeOfDefect[i]);
252  theseSummaryDefects.value.push_back(wantedNODefects.parValue[i]);
253  ATH_MSG_VERBOSE("NoiseOccupancy defect summary for strip " << stripNum << " filled");
254  }
255  }
256  }
257  if (theseSummaryDefects.scan.empty()) {
258  ATH_MSG_VERBOSE("defectSummary(): can't retrieve the defects for this strip: " << stripNum << " since strip good");
259  }
260  break;
261  }
262  default:
263  {
264  ATH_MSG_INFO("Unknown component requested, should be one of Module/Side/Chip or Strip");
265  return theseSummaryDefects;
266  }
267 
268  }//end of switch structure
269 
270  return theseSummaryDefects;
271 } //SCT_ReadCalibDataTool::defectType()

◆ defectType() [2/2]

ISCT_ReadCalibDataTool::CalibDefectType SCT_ReadCalibDataTool::defectType ( const Identifier stripId,
InDetConditions::Hierarchy  h = InDetConditions::DEFAULT 
) const
overridevirtual

Return summary of defect type and values for a strip.

Definition at line 273 of file SCT_ReadCalibDataTool.cxx.

273  {
274  const EventContext& ctx{Gaudi::Hive::currentContext()};
275  return defectType(stripId, ctx, h);
276 }

◆ finalize()

StatusCode SCT_ReadCalibDataTool::finalize ( )
overridevirtual

Gaudi finaliser.

Definition at line 48 of file SCT_ReadCalibDataTool.cxx.

48  {
49  return StatusCode::SUCCESS;
50 } // SCT_ReadCalibDataTool::finalize()

◆ getCondDataGain()

const SCT_CalibDefectData * SCT_ReadCalibDataTool::getCondDataGain ( const EventContext &  ctx) const
private

Definition at line 407 of file SCT_ReadCalibDataTool.cxx.

407  {
409  return condData.retrieve();
410 }

◆ getCondDataInfo()

const SCT_AllGoodStripInfo * SCT_ReadCalibDataTool::getCondDataInfo ( const EventContext &  ctx) const
private

Definition at line 423 of file SCT_ReadCalibDataTool.cxx.

423  {
425  return condData.retrieve();
426 }

◆ getCondDataNoise()

const SCT_CalibDefectData * SCT_ReadCalibDataTool::getCondDataNoise ( const EventContext &  ctx) const
private

Definition at line 415 of file SCT_ReadCalibDataTool.cxx.

415  {
417  return condData.retrieve();
418 }

◆ getDetectorElement()

const InDetDD::SiDetectorElement * SCT_ReadCalibDataTool::getDetectorElement ( const IdentifierHash waferHash,
const EventContext &  ctx 
) const
private

Definition at line 431 of file SCT_ReadCalibDataTool.cxx.

431  {
433  if (not condData.isValid()) return nullptr;
434  return condData->getDetectorElement(waferHash);
435 }

◆ getDetectorElementStatus()

void SCT_ReadCalibDataTool::getDetectorElementStatus ( const EventContext &  ctx,
InDet::SiDetectorElementStatus element_status,
SG::WriteCondHandle< InDet::SiDetectorElementStatus > *  whandle 
) const
overridevirtual

Definition at line 116 of file SCT_ReadCalibDataTool.cxx.

117  {
119  if (not condDataHandle.isValid()) {
120  ATH_MSG_ERROR("Invalid cond data handle " << m_condKeyInfo.key() );
121  return;
122  }
123  if (whandle) {
124  whandle->addDependency (condDataHandle);
125  }
126  const SCT_AllGoodStripInfo* condDataInfo{condDataHandle.cptr()};
127 
128  const std::vector<bool> &status = element_status.getElementStatus();
129  const std::vector<InDet::ChipFlags_t> &chip_status = element_status.getElementChipStatus();
130 
131  std::vector<std::vector<unsigned short> > &bad_strips = element_status.getBadCells();
132  if (bad_strips.empty()) {
133  bad_strips.resize(condDataInfo->size());
134  }
135  unsigned int element_i=0;
136  for( const std::array<bool, SCT_ConditionsData::STRIPS_PER_WAFER> &good_strips : *condDataInfo) {
137  IdentifierHash moduleHash(element_i);
138  if (status.empty() || status.at(element_i)) {
139  std::vector<unsigned short> &bad_module_strips = bad_strips[element_i];
140  unsigned int last_geoemtrical_chip_id=SCT::N_CHIPS_PER_SIDE;
141  for (unsigned int strip_i=0; strip_i<good_strips.size(); ++strip_i) {
142  unsigned int geoemtrical_chip_id = SCT::getGeometricalChipID(strip_i);
143  if (geoemtrical_chip_id != last_geoemtrical_chip_id) {
144  last_geoemtrical_chip_id=geoemtrical_chip_id;
145  if (!chip_status.empty() && !(chip_status.at(element_i) & static_cast<InDet::ChipFlags_t>(1ul<<geoemtrical_chip_id))) {
146  strip_i += (SCT::N_STRIPS_PER_CHIP-1);
147  continue;
148  }
149  }
150  if (!good_strips[strip_i]) {
151  std::vector<unsigned short>::const_iterator iter = std::lower_bound(bad_module_strips.begin(),bad_module_strips.end(),strip_i);
152  if (iter == bad_module_strips.end() || *iter != strip_i) {
153  bad_module_strips.insert( iter, strip_i);
154  }
155  }
156  }
157  }
158  ++element_i;
159  }
160 }

◆ initialize()

StatusCode SCT_ReadCalibDataTool::initialize ( )
overridevirtual

Gaudi initialiser.

Definition at line 28 of file SCT_ReadCalibDataTool.cxx.

28  {
29  // Print where you are
30  ATH_MSG_DEBUG("in initialize()");
31 
32  // Get SCT helper
33  ATH_CHECK(detStore()->retrieve(m_id_sct, "SCT_ID"));
34 
35  // Retrieve SCT Cabling tool
36  ATH_CHECK(m_cabling.retrieve());
37 
38  // Read Cond Handle Key
43 
44  return StatusCode::SUCCESS;
45 } // SCT_ReadCalibDataTool::initialize()

◆ isGood() [1/4]

bool SCT_ReadCalibDataTool::isGood ( const Identifier elementId,
const EventContext &  ctx,
InDetConditions::Hierarchy  h = InDetConditions::DEFAULT 
) const
overridevirtual

Definition at line 60 of file SCT_ReadCalibDataTool.cxx.

60  {
61  // Status of the compId
62  bool status{true};
63  switch (h) {
65  {
66  // Retrieve isGood Wafer data
67  const SCT_AllGoodStripInfo* condDataInfo{getCondDataInfo(ctx)};
68  if (condDataInfo==nullptr) {
69  ATH_MSG_ERROR("In isGood, SCT_AllGoodStripInfo cannot be retrieved");
70  return false;
71  }
72  // Extract the wafer identifier from the strip identifier
73  Identifier waferId{m_id_sct->wafer_id(elementId)};
74  // Get hashId
75  IdentifierHash waferHash{m_id_sct->wafer_hash(waferId)};
76  // Get strip on wafer to check
77  int strip{m_id_sct->strip(elementId)};
78  // Set value
79  status = (*condDataInfo)[waferHash][strip];
80  break;
81  }
83  {
84  // Not applicable for Calibration data
85  ATH_MSG_WARNING("summary(): Module good/bad is not applicable for Calibration data");
86  break;
87  }
89  {
90  // Not applicable for Calibration data
91  ATH_MSG_WARNING("summary(): Wafer good/bad is not applicable for Calibration data");
92  break;
93  }
95  {
96  // Not applicable for Calibration data
97  ATH_MSG_WARNING("summary(): Chip good/bad is not applicable for Calibration data");
98  break;
99  }
100  default:
101  {
102  ATH_MSG_INFO("Unknown component has been asked for, should be Module/Wafer/Chip or Strip; returning 'good' and continuing");
103  }
104  } //end of switch structure
105 
106  // Print status
107  return status;
108 } //SCT_ReadCalibDataTool::summary()

◆ isGood() [2/4]

bool SCT_ReadCalibDataTool::isGood ( const Identifier elementId,
InDetConditions::Hierarchy  h = InDetConditions::DEFAULT 
) const
overridevirtual

Summarise the result from the tool as good/bad.

Definition at line 110 of file SCT_ReadCalibDataTool.cxx.

110  {
111  const EventContext& ctx{Gaudi::Hive::currentContext()};
112 
113  return isGood(elementId, ctx, h);
114 }

◆ isGood() [3/4]

virtual bool SCT_ReadCalibDataTool::isGood ( const IdentifierHash ) const
inlineoverridevirtual

same thing with id hash, introduced by shaun with dummy method for now

Definition at line 54 of file SCT_ReadCalibDataTool.h.

54 { return true; }

◆ isGood() [4/4]

virtual bool SCT_ReadCalibDataTool::isGood ( const IdentifierHash hashId,
const EventContext &   
) const
inlineoverridevirtual

Definition at line 55 of file SCT_ReadCalibDataTool.h.

55 { return isGood(hashId); }

Member Data Documentation

◆ m_cabling

ToolHandle<ISCT_CablingTool> SCT_ReadCalibDataTool::m_cabling {this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}
private

Definition at line 81 of file SCT_ReadCalibDataTool.h.

◆ m_condKeyGain

SG::ReadCondHandleKey<SCT_CalibDefectData> SCT_ReadCalibDataTool::m_condKeyGain {this, "CondKeyGain", "SCT_CalibDefectNPtGain", "SCT defects due to NPtGain calibration"}
private

Definition at line 70 of file SCT_ReadCalibDataTool.h.

◆ m_condKeyInfo

SG::ReadCondHandleKey<SCT_AllGoodStripInfo> SCT_ReadCalibDataTool::m_condKeyInfo {this, "CondKeyInfo", "SCT_AllGoodStripInfo", "SCT good strips based on calibration defects"}
private

Definition at line 72 of file SCT_ReadCalibDataTool.h.

◆ m_condKeyNoise

SG::ReadCondHandleKey<SCT_CalibDefectData> SCT_ReadCalibDataTool::m_condKeyNoise {this, "CondKeyNoise", "SCT_CalibDefectNPtNoise", "SCT defects due to NPtNoise calibration"}
private

Definition at line 71 of file SCT_ReadCalibDataTool.h.

◆ m_id_sct

const SCT_ID* SCT_ReadCalibDataTool::m_id_sct {nullptr}
private

Handle to SCT ID helper.

Definition at line 82 of file SCT_ReadCalibDataTool.h.

◆ m_SCTDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> SCT_ReadCalibDataTool::m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}
private

Definition at line 73 of file SCT_ReadCalibDataTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
SCT::N_STRIPS_PER_CHIP
constexpr unsigned int N_STRIPS_PER_CHIP
Definition: SCT_ChipUtils.h:17
SCT_ReadCalibDataTool::getCondDataInfo
const SCT_AllGoodStripInfo * getCondDataInfo(const EventContext &ctx) const
Definition: SCT_ReadCalibDataTool.cxx:423
SCT_ReadCalibDataTool::m_id_sct
const SCT_ID * m_id_sct
Handle to SCT ID helper.
Definition: SCT_ReadCalibDataTool.h:82
InDet::SiDetectorElementStatus::getElementStatus
const std::vector< bool > & getElementStatus() const
Definition: SiDetectorElementStatus.h:116
SiliconTech::strip
@ strip
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
InDetConditions::SCT_CHIP
@ SCT_CHIP
Definition: InDetHierarchy.h:14
SCT_ReadCalibDataTool::isGood
virtual bool isGood(const Identifier &elementId, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Summarise the result from the tool as good/bad.
Definition: SCT_ReadCalibDataTool.cxx:110
SCT_ReadCalibDataTool::STRIPS_PER_WAFER
@ STRIPS_PER_WAFER
Definition: SCT_ReadCalibDataTool.h:37
InDet::SiDetectorElementStatus::getBadCells
const std::vector< std::vector< unsigned short > > & getBadCells() const
Definition: SiDetectorElementStatus.h:120
SCT_ReadCalibDataTool::m_condKeyNoise
SG::ReadCondHandleKey< SCT_CalibDefectData > m_condKeyNoise
Definition: SCT_ReadCalibDataTool.h:71
SCT_CalibDefectData
Container with a list of defects derived from calibration data and used in SCT_ReadCalibDataCondAlg a...
Definition: SCT_CalibDefectData.h:29
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SCT_ID::module_id
Identifier module_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: SCT_ID.h:416
SCT_CalibDefectData::CalibModuleDefects::begDefects
std::vector< unsigned int > begDefects
Definition: SCT_CalibDefectData.h:33
TRT::Hit::side
@ side
Definition: HitInfo.h:83
SCT_ReadCalibDataTool::m_condKeyInfo
SG::ReadCondHandleKey< SCT_AllGoodStripInfo > m_condKeyInfo
Definition: SCT_ReadCalibDataTool.h:72
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDetConditions::SCT_MODULE
@ SCT_MODULE
Definition: InDetHierarchy.h:14
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDetDD::SiDetectorElement::swapPhiReadoutDirection
bool swapPhiReadoutDirection() const
Determine if readout direction between online and offline needs swapping.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
SCT_ReadCalibDataTool::m_cabling
ToolHandle< ISCT_CablingTool > m_cabling
Definition: SCT_ReadCalibDataTool.h:81
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SCT_ReadCalibDataTool::getDetectorElement
const InDetDD::SiDetectorElement * getDetectorElement(const IdentifierHash &waferHash, const EventContext &ctx) const
Definition: SCT_ReadCalibDataTool.cxx:431
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
detail::ul
unsigned long ul
Definition: PrimitiveHelpers.h:46
SCT_ID::get_other_side
int get_other_side(const IdentifierHash &id, IdentifierHash &other) const
Wafer hash on other side.
Definition: SCT_ID.cxx:443
SCT_CalibDefectData::CalibModuleDefects::typeOfDefect
std::vector< std::string > typeOfDefect
Definition: SCT_CalibDefectData.h:35
SCT_ReadCalibDataTool::m_condKeyGain
SG::ReadCondHandleKey< SCT_CalibDefectData > m_condKeyGain
Definition: SCT_ReadCalibDataTool.h:70
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SCT_ReadCalibDataTool::getCondDataGain
const SCT_CalibDefectData * getCondDataGain(const EventContext &ctx) const
Definition: SCT_ReadCalibDataTool.cxx:407
SCT_CalibDefectData::CalibModuleDefects
Definition: SCT_CalibDefectData.h:32
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
dq_defect_bulk_create_defects.defect
defect
Definition: dq_defect_bulk_create_defects.py:35
SCT_ReadCalibDataTool::defectsSummary
virtual SCT_CalibDefectData::CalibModuleDefects defectsSummary(const Identifier &moduleId, const std::string &scan, const EventContext &ctx) const override
Returns module summary of defect.
Definition: SCT_ReadCalibDataTool.cxx:279
h
scan
void scan(TDirectory *td=0, int depth=0)
Definition: listroot.cxx:440
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SCT_ID::strip
int strip(const Identifier &id) const
Definition: SCT_ID.h:764
SCT_ReadCalibDataTool::defectList
virtual std::list< Identifier > defectList(const std::string &defect, const EventContext &ctx) const override
Returns module summary of defect.
Definition: SCT_ReadCalibDataTool.cxx:313
InDet::SiDetectorElementStatus::getElementChipStatus
const std::vector< ChipFlags_t > & getElementChipStatus() const
Definition: SiDetectorElementStatus.h:118
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCT::getGeometricalChipID
constexpr unsigned int getGeometricalChipID(unsigned int strip)
Get the geometrical chip ID for the given strip.
Definition: SCT_ChipUtils.h:71
SCT_AllGoodStripInfo
std::array< SCT_WaferGoodStripInfo, SCT_ConditionsData::NUMBER_OF_WAFERS > SCT_AllGoodStripInfo
SCT_AllGoodStripInfo is std::array of SCT_WaferGoodStripInfo and is used in SCT_ReadCalibDataCondAlg ...
Definition: SCT_AllGoodStripInfo.h:28
InDet::ChipFlags_t
unsigned short ChipFlags_t
Definition: SiDetectorElementStatus.h:60
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
SCT_ReadCalibDataTool::defectType
virtual ISCT_ReadCalibDataTool::CalibDefectType defectType(const Identifier &stripId, const EventContext &ctx, InDetConditions::Hierarchy h=InDetConditions::DEFAULT) const override
Return summary of defect type and values for a strip.
Definition: SCT_ReadCalibDataTool.cxx:164
SCT_ReadCalibDataTool::m_SCTDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
Definition: SCT_ReadCalibDataTool.h:73
SCT_ReadCalibDataTool::getCondDataNoise
const SCT_CalibDefectData * getCondDataNoise(const EventContext &ctx) const
Definition: SCT_ReadCalibDataTool.cxx:415
merge.status
status
Definition: merge.py:17
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
InDetConditions::SCT_STRIP
@ SCT_STRIP
Definition: InDetHierarchy.h:14
InDetConditions::SCT_SIDE
@ SCT_SIDE
Definition: InDetHierarchy.h:14
SCT::N_CHIPS_PER_SIDE
constexpr unsigned int N_CHIPS_PER_SIDE
Definition: SCT_ChipUtils.h:15
SCT_CalibDefectData::CalibModuleDefects::endDefects
std::vector< unsigned int > endDefects
Definition: SCT_CalibDefectData.h:34
SG::WriteCondHandle::addDependency
void addDependency(const EventIDRange &range)
Definition: WriteCondHandle.h:275
SCT_ID::strip_id
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.
Definition: SCT_ID.h:535
Identifier
Definition: IdentifierFieldParser.cxx:14