ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
ActsTrk::StripClusteringTool Class Reference

#include <StripClusteringTool.h>

Inheritance diagram for ActsTrk::StripClusteringTool:
Collaboration diagram for ActsTrk::StripClusteringTool:

Public Types

using StripRDORawData = SCT_RDORawData
 
using StripID = SCT_ID
 

Public Member Functions

 StripClusteringTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode initialize () override
 
virtual StatusCode clusterize (const EventContext &ctx, const InDetRawDataCollection< StripRDORawData > &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element, Acts::Ccl::ClusteringData &data, std::vector< typename IStripClusteringTool::ClusterCollection > &collection) const override
 
virtual StatusCode makeClusters (const EventContext &ctx, typename IStripClusteringTool::ClusterCollection &cluster, const InDetDD::SiDetectorElement &element, typename ClusterContainer::iterator itrContainer) const override
 

Private Member Functions

std::optional< std::pair< typename IStripClusteringTool::CellCollection, bool > > unpackRDOs (const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
 
bool passTiming (const std::bitset< 3 > &timePattern) const
 
StatusCode decodeTimeBins ()
 
bool isBadStrip (const EventContext &ctx, const InDet::SiDetectorElementStatus *sctDetElStatus, const StripID &idHelper, IdentifierHash waferHash, Identifier stripId) const
 
StatusCode makeCluster (StripClusteringTool::Cluster &cluster, double LorentzShift, Eigen::Matrix< float, 1, 1 > &localCov, const StripID &stripID, const InDetDD::SiDetectorElement &element, const InDetDD::SiDetectorDesign &design, xAOD::StripCluster &container) const
 

Private Attributes

StringProperty m_timeBinStr {this, "timeBins", ""}
 
ToolHandle< ISiLorentzAngleToolm_lorentzAngleTool
 
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_stripDetElStatus
 
ToolHandle< IInDetConditionsToolm_conditionsTool
 
Gaudi::Property< bool > m_checkBadModules
 
Gaudi::Property< unsigned int > m_maxFiredStrips
 
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollectionm_stripDetEleCollKey
 
Gaudi::Property< bool > m_isITk
 
Gaudi::Property< unsigned int > m_errorStrategy {this, "errorStrategy", 0, "Use different error strategies for the strip clusters"}
 
int m_timeBinBits [3] {-1, -1, -1}
 
const StripIDm_stripID {nullptr}
 

Detailed Description

Definition at line 26 of file StripClusteringTool.h.

Member Typedef Documentation

◆ StripID

Definition at line 29 of file StripClusteringTool.h.

◆ StripRDORawData

Definition at line 28 of file StripClusteringTool.h.

Constructor & Destructor Documentation

◆ StripClusteringTool()

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

Definition at line 48 of file StripClusteringTool.cxx.

50  : base_class(type,name,parent)
51 {
52 }

Member Function Documentation

◆ clusterize()

StatusCode ActsTrk::StripClusteringTool::clusterize ( const EventContext &  ctx,
const InDetRawDataCollection< StripRDORawData > &  RDOs,
const InDet::SiDetectorElementStatus stripDetElStatus,
const InDetDD::SiDetectorElement element,
Acts::Ccl::ClusteringData &  data,
std::vector< typename IStripClusteringTool::ClusterCollection > &  collection 
) const
overridevirtual

Definition at line 98 of file StripClusteringTool.cxx.

104 {
105  IdentifierHash idHash = RDOs.identifyHash();
106  // At least an empty cluster collection needs to be always added because the
107  // assumption is that there is one element per element RawDataCollection.
108  collection.emplace_back();
109  bool goodModule = true;
110  if (m_checkBadModules.value()) {
111  goodModule = stripDetElStatus.isGood(idHash);
112  }
113 
116  stripDetElStatus.isGood(idHash), m_conditionsTool->isGood(idHash));
117 
118  if (!goodModule) {
119  ATH_MSG_DEBUG("Strip module failed status check");
120  return StatusCode::SUCCESS;
121  }
122 
123  // If more than a certain number of RDOs set module to bad
124  // in this case we skip clusterization
125  if (m_maxFiredStrips != 0u) {
126  unsigned int nFiredStrips = 0u;
127  for (const SCT_RDORawData* rdo : RDOs) {
128  nFiredStrips += rdo->getGroupSize();
129  }
130  if (nFiredStrips > m_maxFiredStrips)
131  return StatusCode::SUCCESS;
132  }
133 
134  std::optional<std::pair<typename IStripClusteringTool::CellCollection,bool>> unpckd
135  = unpackRDOs(ctx, RDOs, stripDetElStatus, element);
136 
137  if (not unpckd.has_value()) {
138  ATH_MSG_FATAL("Error encountered while unpacking strip RDOs!");
139  return StatusCode::FAILURE;
140  }
141 
142  auto& [cells, badStripOnModule] = *unpckd;
143  // Bad strips on a module invalidates the hitsInThirdTimeBin word.
144  // Therefore set it to 0 if that's the case.
145  // We are currently not using this, but keeping it here should we need it in the future
146 
147  Acts::Ccl::createClusters<CellCollection, typename IStripClusteringTool::ClusterCollection, 1>(data, cells, collection.back());
148 
149  return StatusCode::SUCCESS;
150 }

◆ decodeTimeBins()

StatusCode ActsTrk::StripClusteringTool::decodeTimeBins ( )
private

Definition at line 78 of file StripClusteringTool.cxx.

79 {
80  for (size_t i = 0; i < m_timeBinStr.size(); i++) {
81  if (i >= 3) {
82  ATH_MSG_WARNING("Time bin string has excess characters");
83  break;
84  }
85  switch (std::toupper(m_timeBinStr[i])) {
86  case 'X': m_timeBinBits[i] = -1; break;
87  case '0': m_timeBinBits[i] = 0; break;
88  case '1': m_timeBinBits[i] = 1; break;
89  default:
90  ATH_MSG_FATAL("Invalid time bin string: " << m_timeBinStr);
91  return StatusCode::FAILURE;
92  }
93  }
94  return StatusCode::SUCCESS;
95 }

◆ initialize()

StatusCode ActsTrk::StripClusteringTool::initialize ( )
overridevirtual

Definition at line 54 of file StripClusteringTool.cxx.

55 {
56  ATH_MSG_DEBUG("Initializing " << name() << "...");
57 
64 
65 
66  ATH_CHECK(m_conditionsTool.retrieve(DisableTool{!m_stripDetElStatus.empty()} ));
67  ATH_CHECK(m_lorentzAngleTool.retrieve());
69 
72 
73  ATH_CHECK( detStore()->retrieve(m_stripID, "SCT_ID") );
74 
75  return StatusCode::SUCCESS;
76 }

◆ isBadStrip()

bool ActsTrk::StripClusteringTool::isBadStrip ( const EventContext &  ctx,
const InDet::SiDetectorElementStatus sctDetElStatus,
const StripID idHelper,
IdentifierHash  waferHash,
Identifier  stripId 
) const
private

Definition at line 300 of file StripClusteringTool.cxx.

305 {
306  if (stripDetElStatus) {
307  const int strip_i{stripID.strip(stripId)};
309  stripDetElStatus,
310  stripDetElStatus->isCellGood(waferHash.value(), strip_i),
311  m_conditionsTool->isGood(stripId, InDetConditions::SCT_STRIP));
312  return not stripDetElStatus->isCellGood(waferHash.value(), strip_i) ;
313  }
314  return not m_conditionsTool->isGood(stripId, InDetConditions::SCT_STRIP, ctx);
315 }

◆ makeCluster()

StatusCode ActsTrk::StripClusteringTool::makeCluster ( StripClusteringTool::Cluster &  cluster,
double  LorentzShift,
Eigen::Matrix< float, 1, 1 > &  localCov,
const StripID stripID,
const InDetDD::SiDetectorElement element,
const InDetDD::SiDetectorDesign design,
xAOD::StripCluster container 
) const
private

Definition at line 239 of file StripClusteringTool.cxx.

246 {
247  std::size_t size = cluster.ids.size();
248 
249  auto [localPos, globalPos]
250  = computePosition(cluster, size, lorentzShift, stripID, element, design, m_isITk);
251 
252  // For Strip Clusters the identifier is taken from the front rod list object
253  // This is the same strategy used in Athena:
254  // Since clusterId is arbitary (it only needs to be unique) just use ID of first strip
255  // For strip Cluster it has been found that "identifierOfPosition" does not produces unique values
256 
257 
258  // If requiring broad errors, use the cluster size as error -
259  // TODO use SiWidth to get the right cluster size as I'm assuming equal strip pitch
260 
261  if (m_errorStrategy == 1) {// use width
262 
263  localCov *= size*size;
264 
265  } else if (m_errorStrategy == 2) { //use tuned error as function of size
266 
267  if (size == 1)
268  localCov *= oneStripSF;
269  else if (size == 2)
270  localCov *= twoStripSF*size*size;
271  else
272  localCov *= size*size;
273 
274  }
275 
276  cl.setMeasurement<1>(element.identifyHash(), localPos, localCov);
277  cl.setIdentifier( cluster.ids.front() );
278 
279  // Do I really need the global position in fast tracking?
280  cl.globalPosition() = globalPos;
281 
282  cl.setChannelsInPhi(size);
283  cl.setRDOlist(std::move(cluster.ids));
284 
285  return StatusCode::SUCCESS;
286 }

◆ makeClusters()

StatusCode ActsTrk::StripClusteringTool::makeClusters ( const EventContext &  ctx,
typename IStripClusteringTool::ClusterCollection cluster,
const InDetDD::SiDetectorElement element,
typename ClusterContainer::iterator  itrContainer 
) const
overridevirtual

Definition at line 154 of file StripClusteringTool.cxx.

158 {
159  const IdentifierHash idHash = element.identifyHash();
160  double lorentzShift = m_lorentzAngleTool->getLorentzShift(idHash, ctx);
161 
162  const InDetDD::SiDetectorDesign& design = element.design();
163  // get the pitch, this will be the local covariance for the cluster
164 
165  assert((not m_isITk) || element.isBarrel() || dynamic_cast<const InDetDD::StripStereoAnnulusDesign*>(&element.design()) !=nullptr);
166  float pitch = (element.isBarrel() or (not m_isITk))
167  ? design.phiPitch()
168  : static_cast<const InDetDD::StripStereoAnnulusDesign&>(element.design()).phiPitchPhi();
169  Eigen::Matrix<float,1,1> localCov(pitch * pitch * ONE_TWELFTH);
170 
171  for (typename IStripClusteringTool::Cluster& cl : clusters) {
172  try {
173  xAOD::StripCluster *xaodCluster = *itrContainer;
175  lorentzShift,
176  localCov,
177  *m_stripID,
178  element,
179  design,
180  *xaodCluster));
181  ++itrContainer;
182  } catch (const std::exception& e) {
183  ATH_MSG_FATAL("Exception thrown while creating xAOD::StripCluster:"
184  << e.what());
185  ATH_MSG_FATAL("Detector Element identifier: " << element.identify());
186  ATH_MSG_FATAL("Strip Identifiers in cluster:");
187  for (const auto& id : cl.ids)
188  ATH_MSG_FATAL(" " << id);
189  return StatusCode::FAILURE;
190  }
191  }
192 
193  return StatusCode::SUCCESS;
194 }

◆ passTiming()

bool ActsTrk::StripClusteringTool::passTiming ( const std::bitset< 3 > &  timePattern) const
private

Definition at line 289 of file StripClusteringTool.cxx.

289  {
290  // Convert the given timebin to a bit set and test each bit
291  // if bit is -1 (i.e. X) it always passes, other wise require exact match of 0/1
292  // N.B bitset has opposite order to the bit pattern we define
293  if (m_timeBinBits[0] != -1 and timePattern.test(2) != static_cast<bool>(m_timeBinBits[0])) return false;
294  if (m_timeBinBits[1] != -1 and timePattern.test(1) != static_cast<bool>(m_timeBinBits[1])) return false;
295  if (m_timeBinBits[2] != -1 and timePattern.test(0) != static_cast<bool>(m_timeBinBits[2])) return false;
296  return true;
297 }

◆ unpackRDOs()

std::optional< std::pair< typename IStripClusteringTool::CellCollection, bool > > ActsTrk::StripClusteringTool::unpackRDOs ( const EventContext &  ctx,
const RawDataCollection &  RDOs,
const InDet::SiDetectorElementStatus stripDetElStatus,
const InDetDD::SiDetectorElement element 
) const
private

Definition at line 319 of file StripClusteringTool.cxx.

323 {
324  const InDetDD::SiDetectorDesign& design = element.design();
325 
326  CellCollection cells;
327  // reserve memory. number evaluated on ttbar pu200
328  cells.reserve(60);
329  bool badStripOnModule{false};
330  //Check type in debug build otherwise assume it is correct
331  assert(dynamic_cast<const InDetDD::SCT_ModuleSideDesign*>(&design)!=nullptr);
332  std::size_t ncells = static_cast<size_t>(static_cast<const InDetDD::SCT_ModuleSideDesign&>(design).cells());
333 
334  // Simple single-entry cache
335  Identifier::value_type waferId_compact_cache = 0;
336  IdentifierHash waferHash_cache(0);
337  bool cache_valid = false;
338 
339  for (const StripRDORawData * raw : RDOs) {
340 
341  //Check type in debug build otherwise assume it is correct
342  assert(static_cast<const SCT3_RawData*>(raw)!=nullptr);
343  const SCT3_RawData* raw3 = static_cast<const SCT3_RawData*>(raw);
344 
345  std::bitset<3> timePattern(raw3->getTimeBin());
346  if (!passTiming(timePattern)) {
347  ATH_MSG_DEBUG("Strip failed timing check");
348  continue;
349  }
350 
351  Identifier firstStripId = raw->identify();
352  Identifier waferId = m_stripID->wafer_id(firstStripId);
353 
354  Identifier::value_type waferId_compact = waferId.get_compact();
355 
356 
357  // Check cache - will be invalid when switching wafer groups
358  if (!cache_valid || waferId_compact != waferId_compact_cache) {
359  waferId_compact_cache = waferId_compact;
360  waferHash_cache = m_stripID->wafer_hash(waferId);
361  cache_valid = true;
362  }
363 
364  std::size_t iFirstStrip = static_cast<size_t>(m_stripID->strip(firstStripId));
365 
366  std::size_t iMaxStrip = std::min(
367  iFirstStrip + raw->getGroupSize(),
368  ncells
369  );
370 
371  for (size_t i = iFirstStrip; i < iMaxStrip; i++) {
372  Identifier stripIdent = m_stripID->strip_id(waferId, i);
373  if (isBadStrip(ctx, &stripDetElStatus, *m_stripID, waferHash_cache, stripIdent)) {
374  // Bad strip, throw it out to minimize useless work.
375  ATH_MSG_DEBUG("Bad strip encountered:" << stripIdent
376  << ", wafer is: " << waferId);
377  badStripOnModule = true;
378  } else {
379  // Good strip!
380  cells.emplace_back(i, stripIdent, std::move(timePattern));
381  }
382  }
383  }
384 
385  return std::make_pair(std::move(cells), badStripOnModule);
386 }

Member Data Documentation

◆ m_checkBadModules

Gaudi::Property<bool> ActsTrk::StripClusteringTool::m_checkBadModules
private
Initial value:
{this, "checkBadModules", true,
"Check bad modules using the conditions summary tool"}

Definition at line 90 of file StripClusteringTool.h.

◆ m_conditionsTool

ToolHandle<IInDetConditionsTool> ActsTrk::StripClusteringTool::m_conditionsTool
private
Initial value:
{this, "conditionsTool", "",
"Conditions summary tool"}

Definition at line 87 of file StripClusteringTool.h.

◆ m_errorStrategy

Gaudi::Property<unsigned int> ActsTrk::StripClusteringTool::m_errorStrategy {this, "errorStrategy", 0, "Use different error strategies for the strip clusters"}
private

Definition at line 102 of file StripClusteringTool.h.

◆ m_isITk

Gaudi::Property<bool> ActsTrk::StripClusteringTool::m_isITk
private
Initial value:
{this, "isITk", true,
"True if running in ITk"}

Definition at line 99 of file StripClusteringTool.h.

◆ m_lorentzAngleTool

ToolHandle<ISiLorentzAngleTool> ActsTrk::StripClusteringTool::m_lorentzAngleTool
private
Initial value:
{this, "LorentzAngleTool", "",
"Tool to retreive Lorentz angle of Si detector module"
}

Definition at line 79 of file StripClusteringTool.h.

◆ m_maxFiredStrips

Gaudi::Property<unsigned int> ActsTrk::StripClusteringTool::m_maxFiredStrips
private
Initial value:
{this, "maxFiredStrips", 384u,
"Threshold of number of fired strips per wafer. 0 disables the per-wafer cut."}

Definition at line 93 of file StripClusteringTool.h.

◆ m_stripDetEleCollKey

SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> ActsTrk::StripClusteringTool::m_stripDetEleCollKey
private
Initial value:
{this, "StripDetEleCollKey", "ITkStripDetectorElementCollection",
"SiDetectorElementCollection key for strip"}

Definition at line 96 of file StripClusteringTool.h.

◆ m_stripDetElStatus

SG::ReadHandleKey<InDet::SiDetectorElementStatus> ActsTrk::StripClusteringTool::m_stripDetElStatus
private
Initial value:
{this, "StripDetElStatus", "",
"SiDetectorElementStatus for strip"}

Definition at line 84 of file StripClusteringTool.h.

◆ m_stripID

const StripID* ActsTrk::StripClusteringTool::m_stripID {nullptr}
private

Definition at line 107 of file StripClusteringTool.h.

◆ m_timeBinBits

int ActsTrk::StripClusteringTool::m_timeBinBits[3] {-1, -1, -1}
private

Definition at line 104 of file StripClusteringTool.h.

◆ m_timeBinStr

StringProperty ActsTrk::StripClusteringTool::m_timeBinStr {this, "timeBins", ""}
private

Definition at line 77 of file StripClusteringTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:281
ActsTrk::StripClusteringTool::unpackRDOs
std::optional< std::pair< typename IStripClusteringTool::CellCollection, bool > > unpackRDOs(const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
Definition: StripClusteringTool.cxx:319
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
ActsTrk::StripClusteringTool::isBadStrip
bool isBadStrip(const EventContext &ctx, const InDet::SiDetectorElementStatus *sctDetElStatus, const StripID &idHelper, IdentifierHash waferHash, Identifier stripId) const
Definition: StripClusteringTool.cxx:300
ActsTrk::StripClusteringTool::m_stripID
const StripID * m_stripID
Definition: StripClusteringTool.h:107
ActsTrk::StripClusteringTool::m_lorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
Definition: StripClusteringTool.h:79
InDetDD::SCT_ModuleSideDesign
Definition: SCT_ModuleSideDesign.h:40
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
Identifier::get_compact
value_type get_compact() const
Get the compact id.
ActsTrk::StripClusteringTool::m_isITk
Gaudi::Property< bool > m_isITk
Definition: StripClusteringTool.h:99
SCT_RDORawData
Definition: SCT_RDORawData.h:24
ActsTrk::twoStripSF
constexpr float twoStripSF
Definition: StripClusteringTool.cxx:22
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
ActsTrk::StripClusteringTool::m_checkBadModules
Gaudi::Property< bool > m_checkBadModules
Definition: StripClusteringTool.h:90
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:77
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
InDetDD::SolidStateDetectorElementBase::identifyHash
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
ActsTrk::StripClusteringTool::makeCluster
StatusCode makeCluster(StripClusteringTool::Cluster &cluster, double LorentzShift, Eigen::Matrix< float, 1, 1 > &localCov, const StripID &stripID, const InDetDD::SiDetectorElement &element, const InDetDD::SiDetectorDesign &design, xAOD::StripCluster &container) const
Definition: StripClusteringTool.cxx:239
InDetRawDataCollection::identifyHash
virtual IdentifierHash identifyHash() const override final
ActsTrk::StripClusteringTool::m_timeBinBits
int m_timeBinBits[3]
Definition: StripClusteringTool.h:104
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
ActsTrk::StripClusteringTool::StripRDORawData
SCT_RDORawData StripRDORawData
Definition: StripClusteringTool.h:28
VALIDATE_STATUS_ARRAY
#define VALIDATE_STATUS_ARRAY(use_info, info_val, summary_val)
Definition: SiDetectorElementStatus.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
SCT3_RawData
Definition: SCT3_RawData.h:24
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetDD::StripStereoAnnulusDesign
Definition: StripStereoAnnulusDesign.h:50
calibdata.exception
exception
Definition: calibdata.py:495
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::oneStripSF
constexpr float oneStripSF
Definition: StripClusteringTool.cxx:21
xAOD::StripCluster_v1
Definition: StripCluster_v1.h:17
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SCT3_RawData::getTimeBin
int getTimeBin() const
Definition: SCT3_RawData.h:92
ActsTrk::StripClusteringTool::m_errorStrategy
Gaudi::Property< unsigned int > m_errorStrategy
Definition: StripClusteringTool.h:102
SCT_ID::wafer_hash
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
Definition: SCT_ID.h:492
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ActsTrk::StripClusteringTool::m_maxFiredStrips
Gaudi::Property< unsigned int > m_maxFiredStrips
Definition: StripClusteringTool.h:93
ActsTrk::StripClusteringTool::decodeTimeBins
StatusCode decodeTimeBins()
Definition: StripClusteringTool.cxx:78
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
InDet::SiDetectorElementStatus::isGood
bool isGood(IdentifierHash hash) const
Definition: SiDetectorElementStatus.h:97
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ActsTrk::StripClusteringTool::m_timeBinStr
StringProperty m_timeBinStr
Definition: StripClusteringTool.h:77
ActsTrk::StripClusteringTool::m_stripDetElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_stripDetElStatus
Definition: StripClusteringTool.h:84
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDetDD::SiDetectorElement::isBarrel
bool isBarrel() const
IdentifierHash::value
value_type value() const
ActsTrk::StripClusteringTool::passTiming
bool passTiming(const std::bitset< 3 > &timePattern) const
Definition: StripClusteringTool.cxx:289
ActsTrk::StripClusteringTool::m_stripDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_stripDetEleCollKey
Definition: StripClusteringTool.h:96
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
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Identifier::value_type
unsigned long long value_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:27
ActsTrk::ONE_TWELFTH
constexpr double ONE_TWELFTH
Definition: StripClusteringTool.cxx:20
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
InDetDD::SiDetectorDesign
Definition: SiDetectorDesign.h:50
InDetConditions::SCT_STRIP
@ SCT_STRIP
Definition: InDetHierarchy.h:14
ActsTrk::StripClusteringTool::m_conditionsTool
ToolHandle< IInDetConditionsTool > m_conditionsTool
Definition: StripClusteringTool.h:87
InDetDD::SiDetectorElement::design
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:25
InDetDD::DetectorDesign::phiPitch
virtual double phiPitch() const =0
Pitch in phi direction.
InDetDD::SolidStateDetectorElementBase::identify
virtual Identifier identify() const override final
identifier of this detector element (inline)
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