ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetValidation
InDetDefectsEmulation
src
EmulatedDefectsToDetectorElementStatusCondAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef INDET_EMULATEDDEFECTSTODETECTORELEMENTSTATUSCONDALG_H
6
#define INDET_EMULATEDDEFECTSTODETECTORELEMENTSTATUSCONDALG_H
7
8
#include "
EmulatedDefectsToDetectorElementStatusCondAlgBase.h
"
9
10
11
namespace
InDet
{
12
13
namespace
details
{
14
template
<
class
T_Derived>
15
struct
EmulatedDefectsToDetectorElementStatusTraits
;
16
}
17
18
template
<
class
T_Derived>
19
class
EmulatedDefectsToDetectorElementStatusCondAlg
:
public
EmulatedDefectsToDetectorElementStatusCondAlgBase
20
{
21
public
:
22
using
T_ConcreteDetectorElementStatusType
=
details::EmulatedDefectsToDetectorElementStatusTraits<T_Derived>::T_ConcreteDetectorElementStatusType
;
23
using
T_EmulatedDefects
=
details::EmulatedDefectsToDetectorElementStatusTraits<T_Derived>::T_EmulatedDefects
;
24
using
T_ModuleHelper
=
details::EmulatedDefectsToDetectorElementStatusTraits<T_Derived>::T_ModuleHelper
;
25
using
T_EmulatedDefectsKey
=
typename
T_ModuleHelper::KEY_TYPE;
26
static
constexpr
unsigned
int
CHIP_MASK_IDX
=
details::EmulatedDefectsToDetectorElementStatusTraits<T_Derived>::CHIP_MASK_IDX
;
27
28
using
EmulatedDefectsToDetectorElementStatusCondAlgBase::EmulatedDefectsToDetectorElementStatusCondAlgBase
;
29
30
virtual
StatusCode
initialize
()
override
;
31
virtual
StatusCode
execute
(
const
EventContext& ctx)
const override
;
32
33
protected
:
34
static
ChipFlags_t
makeChipStatus
(
const
InDetDD::SiDetectorElement
&detector_element,
35
const
std::vector<T_EmulatedDefectsKey> &emulated_module_defects) {
36
T_ModuleHelper
module_helper( detector_element.
design
() );
37
ChipFlags_t chip_status=(1u<<module_helper.circuitsPerColumn()*module_helper.circuitsPerRow())-1;
38
if
constexpr
(
CHIP_MASK_IDX
< T_ModuleHelper::N_MASKS) {
39
if
(!emulated_module_defects.empty()) {
40
T_EmulatedDefectsKey
last_key = emulated_module_defects.front();
41
for
(
T_EmulatedDefectsKey
key : emulated_module_defects) {
42
if
(module_helper.isRangeKey(key)) {
43
// if the range covers entire circuits, treat this as a circuit defect
44
if
( module_helper.getRow(key)==0
45
&& module_helper.getColumn(key)==0
46
&& (module_helper.getChip(last_key)-module_helper.getChip(key)>0
47
|| ( module_helper.getColumn(last_key) >=module_helper.columnsPerCircuit()
48
&& module_helper.getRow(last_key) >=module_helper.rowsPerCircuit()))) {
49
unsigned
int
end_chip = module_helper.getChip(last_key);
50
if
( module_helper.getColumn(last_key) >=module_helper.columnsPerCircuit()
51
&& module_helper.getRow(last_key) >= module_helper.rowsPerCircuit()) {
52
++end_chip;
53
}
54
for
(
unsigned
int
chip_i=module_helper.getChip(key); chip_i<end_chip; ++chip_i) {
55
assert( chip_i < 31u && (1u<<chip_i ) < std::numeric_limits<ChipFlags_t>::max());
56
chip_status &= ~(1<<(chip_i));
57
}
58
}
59
}
60
}
61
}
62
}
63
return
chip_status;
64
}
65
66
SG::ReadCondHandleKey<T_EmulatedDefects>
m_emulatedDefectsKey
67
{
this
,
"EmulatedDefectsKey"
,
""
,
"Key of the emulated defects input collection"
};
68
69
};
70
}
71
72
#include "
EmulatedDefectsToDetectorElementStatusCondAlg.icc
"
73
#endif
EmulatedDefectsToDetectorElementStatusCondAlgBase.h
EmulatedDefectsToDetectorElementStatusCondAlg.icc
InDetDD::SiDetectorElement
Class to hold geometrical description of a silicon detector element.
Definition
SiDetectorElement.h:109
InDetDD::SiDetectorElement::design
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
InDet::EmulatedDefectsToDetectorElementStatusCondAlgBase::EmulatedDefectsToDetectorElementStatusCondAlgBase
EmulatedDefectsToDetectorElementStatusCondAlgBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition
EmulatedDefectsToDetectorElementStatusCondAlgBase.cxx:8
InDet::EmulatedDefectsToDetectorElementStatusCondAlg
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:20
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::T_ModuleHelper
details::EmulatedDefectsToDetectorElementStatusTraits< T_Derived >::T_ModuleHelper T_ModuleHelper
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:24
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::T_EmulatedDefects
details::EmulatedDefectsToDetectorElementStatusTraits< T_Derived >::T_EmulatedDefects T_EmulatedDefects
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:23
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::initialize
virtual StatusCode initialize() override
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::CHIP_MASK_IDX
static constexpr unsigned int CHIP_MASK_IDX
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:26
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::T_ConcreteDetectorElementStatusType
details::EmulatedDefectsToDetectorElementStatusTraits< T_Derived >::T_ConcreteDetectorElementStatusType T_ConcreteDetectorElementStatusType
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:22
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::EmulatedDefectsToDetectorElementStatusCondAlgBase
EmulatedDefectsToDetectorElementStatusCondAlgBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition
EmulatedDefectsToDetectorElementStatusCondAlgBase.cxx:8
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::m_emulatedDefectsKey
SG::ReadCondHandleKey< T_EmulatedDefects > m_emulatedDefectsKey
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:67
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::makeChipStatus
static ChipFlags_t makeChipStatus(const InDetDD::SiDetectorElement &detector_element, const std::vector< T_EmulatedDefectsKey > &emulated_module_defects)
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:34
InDet::EmulatedDefectsToDetectorElementStatusCondAlg::T_EmulatedDefectsKey
typename T_ModuleHelper::KEY_TYPE T_EmulatedDefectsKey
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:25
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
details
Definition
IParticleWriter.h:21
InDet::details::EmulatedDefectsToDetectorElementStatusTraits
Definition
EmulatedDefectsToDetectorElementStatusCondAlg.h:15
Generated on
for ATLAS Offline Software by
1.17.0