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

#include <PixelClusteringTool.h>

Inheritance diagram for ActsTrk::PixelClusteringTool:
Collaboration diagram for ActsTrk::PixelClusteringTool:

Public Member Functions

 PixelClusteringTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode clusterize (const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &pixelDetElStatus, const InDetDD::SiDetectorElement &element, Acts::Ccl::ClusteringData &data, std::vector< ClusterCollection > &collection) const override
 
virtual StatusCode makeClusters (const EventContext &ctx, typename IPixelClusteringTool::ClusterCollection &clusters, const InDetDD::SiDetectorElement &element, typename ClusterContainer::iterator itrContainer) const override
 
virtual StatusCode initialize () override
 

Private Member Functions

StatusCode makeCluster (const EventContext &ctx, PixelClusteringTool::Cluster &cluster, const InDetDD::SiDetectorElement *element, const InDetDD::PixelModuleDesign &design, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, xAOD::PixelCluster &container) const
 
IPixelClusteringTool::CellCollection unpackRDOs (const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
 

Static Private Member Functions

static std::optional< IdentifierisGanged (const Identifier &rdoID, const InDetDD::SiDetectorElement &element)
 

Private Attributes

ServiceHandle< InDetDD::IPixelReadoutManagerm_pixelReadout
 
ToolHandle< ISiLorentzAngleToolm_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"}
 
SG::ReadCondHandleKey< PixelChargeCalibCondDatam_chargeDataKey
 
Gaudi::Property< bool > m_addCorners {this, "AddCorners", true}
 
Gaudi::Property< bool > m_useWeightedPos {this, "UseWeightedPosition", false}
 
Gaudi::Property< bool > m_broadErrors {this, "UseBroadErrors", false}
 
Gaudi::Property< bool > m_checkGanged {this, "CheckGanged", false}
 
const PixelIDm_pixelID {nullptr}
 

Detailed Description

Definition at line 22 of file PixelClusteringTool.h.

Constructor & Destructor Documentation

◆ PixelClusteringTool()

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

Definition at line 56 of file PixelClusteringTool.cxx.

58  : base_class(type,name,parent)
59 {}

Member Function Documentation

◆ clusterize()

StatusCode ActsTrk::PixelClusteringTool::clusterize ( const EventContext &  ctx,
const RawDataCollection &  RDOs,
const InDet::SiDetectorElementStatus pixelDetElStatus,
const InDetDD::SiDetectorElement element,
Acts::Ccl::ClusteringData &  data,
std::vector< ClusterCollection > &  collection 
) const
overridevirtual

Definition at line 226 of file PixelClusteringTool.cxx.

232 {
233  IdentifierHash idHash = RDOs.identifyHash();
234  collection.emplace_back();
235  if ( not pixelDetElStatus.isGood(idHash) ) {
236  // the module being flagged as bad is not a failure
237  // An empty cluster collection needs to be added because the assumption
238  // is that there is one element per element RawDataCollection.
239  return StatusCode::SUCCESS;
240  }
241 
242  // Retrieve the cells from the detector element
243  CellCollection cells = unpackRDOs(RDOs, pixelDetElStatus, element);
244 
245  Acts::Ccl::createClusters<CellCollection, ClusterCollection, 2>
246  (data, cells, collection.back(), Acts::Ccl::DefaultConnect<Cell, 2>(m_addCorners));
247 
248  return StatusCode::SUCCESS;
249 }

◆ initialize()

StatusCode ActsTrk::PixelClusteringTool::initialize ( )
overridevirtual

Definition at line 42 of file PixelClusteringTool.cxx.

43 {
44  ATH_MSG_DEBUG("Initializing " << name() << " ...");
46  ATH_CHECK(m_pixelReadout.retrieve());
47 
49 
50  ATH_CHECK( detStore()->retrieve(m_pixelID, "PixelID") );
51 
52  ATH_MSG_DEBUG(name() << " successfully initialized");
53  return StatusCode::SUCCESS;
54 }

◆ isGanged()

std::optional< Identifier > ActsTrk::PixelClusteringTool::isGanged ( const Identifier rdoID,
const InDetDD::SiDetectorElement element 
)
inlinestaticprivate

Definition at line 347 of file PixelClusteringTool.cxx.

349 {
350  // If the pixel is ganged, returns a new identifier for it
351  InDetDD::SiCellId cellID = element.cellIdFromIdentifier( rdoID );
352  if ( element.numberOfConnectedCells( cellID ) > 1 ) {
353  InDetDD::SiCellId gangedCellID = element.connectedCell( cellID, 1 );
354  return element.identifierFromCellId( gangedCellID );
355  }
356  return std::nullopt;
357 }

◆ makeCluster()

StatusCode ActsTrk::PixelClusteringTool::makeCluster ( const EventContext &  ctx,
PixelClusteringTool::Cluster &  cluster,
const InDetDD::SiDetectorElement element,
const InDetDD::PixelModuleDesign design,
const PixelChargeCalibCondData calibData,
const PixelChargeCalibCondData::CalibrationStrategy  calibStrategy,
xAOD::PixelCluster container 
) const
private

Definition at line 62 of file PixelClusteringTool.cxx.

69 {
70 
71  Amg::Vector2D pos_acc(0,0);
72  int tot_acc = 0;
73 
74  std::vector<float> chargeList;
75  if (calibData) chargeList.reserve(cluster.ids.size());
76 
85 
86  // We temporary comment this since it is not used
87  // bool hasGanged = false;
88 
89  IdentifierHash moduleHash = element->identifyHash();
90 
91  for (size_t i = 0; i < cluster.ids.size(); i++) {
92 
93  //Construct the identifier class
94  Identifier id = Identifier(cluster.ids[i]);
95 
96  // We temporary comment this since it is not used
97  // TODO: Check how the ganged info is used in legacy
98  // if (multiChip) {
99  // hasGanged = hasGanged ||
100  // m_pixelRDOTool->isGanged(id, element).has_value();
101  // }
102 
103  int tot = cluster.tots.at(i);
104  float charge = tot;
105 
106  std::array<InDetDD::PixelDiodeTree::CellIndexType,2> diode_idx
108  m_pixelID->eta_index(id));
110 
111  if (calibData) {
112 
114  ATH_MSG_ERROR("Chip type is not recognized!");
115  return StatusCode::FAILURE;
116  }
117 
118  // The calibration strategy is updated for each element
119  // Retrieving the calibration only depends on FE and not per cell (can be further optimized)
120  // Single FE modules could have an optimized getCharge function where the calib constants are cached
121  std::uint32_t feValue = design.getFE(si_param);
122  auto diode_type = design.getDiodeType(si_param);
123 
124  charge = calibData->getCharge(diode_type,
125  calibStrategy,
126  moduleHash,
127  feValue,
128  tot);
129  chargeList.push_back(charge);
130  }
131 
132  const InDetDD::PixelDiodeTree::CellIndexType &row = diode_idx[0];
133  const InDetDD::PixelDiodeTree::CellIndexType &col = diode_idx[1];
134  if (row>rowmax) {
135  rowmax=row;
136  rowmax_diode = si_param;
137  }
138  if (row<rowmin) {
139  rowmin=row;
140  rowmin_diode = si_param;
141  }
142  if (col>colmax) {
143  colmax=col;
144  colmax_diode = si_param;
145  }
146  if (col<colmin) {
147  colmin=col;
148  colmin_diode = si_param;
149  }
150 
151  // We compute the digital position as a sum of all RDO positions
152  // all with the same weight of 1
153  // We do not compute a charge-weighted center of gravity here (by default) since
154  // we observe it to be worse than the digital position
155  // ToT-weighted center of gravity must not be used
156  if (m_useWeightedPos) {
157  pos_acc += charge * si_param.position();
158  tot_acc += charge;
159  } else {
160  pos_acc += si_param.position();
161  tot_acc += 1;
162  }
163 
164  }
165 
166  if (tot_acc > 0)
167  pos_acc /= tot_acc;
168 
169 
170  const int colWidth = colmax - colmin + 1;
171  const int rowWidth = rowmax - rowmin + 1;
172 
173  double etaWidth = colmax_diode.xEtaMax() - colmin_diode.xEtaMin(); // design.widthFromColumnRange(colmin, colmax);
174  double phiWidth = rowmax_diode.xPhiMax() - rowmin_diode.xPhiMin(); // design.widthFromColumnRange(colmin, colmax);
175 
176  // ask for Lorentz correction, get global position
177  double shift = m_pixelLorentzAngleTool->getLorentzShift(moduleHash, ctx);
178  const Amg::Vector2D localPos = pos_acc;
179  Amg::Vector2D locpos(localPos[Trk::locX]+shift, localPos[Trk::locY]);
180  // find global position of element
181  const Amg::Transform3D& T = element->surface().transform();
182  double Ax[3] = {T(0,0),T(1,0),T(2,0)};
183  double Ay[3] = {T(0,1),T(1,1),T(2,1)};
184  double R [3] = {T(0,3),T(1,3),T(2,3)};
185 
186  const Amg::Vector2D& M = locpos;
187  Amg::Vector3D globalPos(M[0]*Ax[0]+M[1]*Ay[0]+R[0],M[0]*Ax[1]+M[1]*Ay[1]+R[1],M[0]*Ax[2]+M[1]*Ay[2]+R[2]);
188 
189  // Compute error matrix
190  float width0, width1;
191  if (m_broadErrors) {
192  // Use cluster width
193  width0 = phiWidth;
194  width1 = etaWidth;
195  } else {
196  // Use average pixel width
197  width0 = phiWidth / rowWidth;
198  width1 = etaWidth / colWidth;
199  }
200 
201  // Actually create the cluster (i.e. fill the values)
202 
203  Eigen::Matrix<float,2,1> localPosition(locpos.x(), locpos.y());
204  Eigen::Matrix<float,2,2> localCovariance = Eigen::Matrix<float,2,2>::Zero();
205  localCovariance(0, 0) = width0 * width0 / 12.0f;
206  localCovariance(1, 1) = width1 * width1 / 12.0f;
207 
208  xaodcluster.setMeasurement<2>(moduleHash, localPosition, localCovariance);
209  xaodcluster.setIdentifier( cluster.ids.front() );
210  xaodcluster.setRDOlist(std::move(cluster.ids));
211  xaodcluster.globalPosition() = globalPos.cast<float>();
212  xaodcluster.setTotalToT( xAOD::xAODInDetMeasurement::Utilities::computeTotalToT(cluster.tots) );
213  xaodcluster.setToTlist(std::move(cluster.tots));
214  xaodcluster.setTotalCharge( xAOD::xAODInDetMeasurement::Utilities::computeTotalCharge(chargeList) );
215  xaodcluster.setChargelist(std::move(chargeList));
216  xaodcluster.setLVL1A(cluster.lvl1min);
217  xaodcluster.setChannelsInPhiEta(rowWidth,colWidth);
218  xaodcluster.setWidthInEta(static_cast<float>(etaWidth));
219  xaodcluster.setIsSplit(false);
220  xaodcluster.setSplitProbabilities(0.0, 0.0);
221 
222  return StatusCode::SUCCESS;
223 }

◆ makeClusters()

StatusCode ActsTrk::PixelClusteringTool::makeClusters ( const EventContext &  ctx,
typename IPixelClusteringTool::ClusterCollection clusters,
const InDetDD::SiDetectorElement element,
typename ClusterContainer::iterator  itrContainer 
) const
overridevirtual

Definition at line 253 of file PixelClusteringTool.cxx.

257 {
258  // We'd need a smarter move here!!!
259 
260  // Retrieve the calibration data
261  const PixelChargeCalibCondData *calibData = nullptr;
262  if (not m_chargeDataKey.empty()) {
264  calibData = calibDataHandle.cptr();
265 
266  if (!calibData) {
267  ATH_MSG_ERROR("PixelChargeCalibCondData requested but couldn't be retrieved from " << m_chargeDataKey.key());
268  return StatusCode::FAILURE;
269  }
270  }
271 
272  // Get the element design
273  const InDetDD::PixelModuleDesign& design =
274  static_cast<const InDetDD::PixelModuleDesign&>(element.design());
275 
276  // Get the calibration strategy for this module.
277  // Default to RD53 if the calibData is not available. That is fine because it won't be used anyway
278  auto calibrationStrategy = calibData ? calibData->getCalibrationStrategy(element.identifyHash()) : PixelChargeCalibCondData::CalibrationStrategy::RD53;
279 
280  for (typename IPixelClusteringTool::Cluster& cl : clusters) {
281  xAOD::PixelCluster* xaodCluster = *itrContainer;
283  cl,
284  &element,
285  design,
286  calibData,
287  calibrationStrategy,
288  *xaodCluster));
289  ++itrContainer;
290  }
291 
292  return StatusCode::SUCCESS;
293 }

◆ unpackRDOs()

IPixelClusteringTool::CellCollection ActsTrk::PixelClusteringTool::unpackRDOs ( const RawDataCollection &  RDOs,
const InDet::SiDetectorElementStatus stripDetElStatus,
const InDetDD::SiDetectorElement element 
) const
private

Definition at line 296 of file PixelClusteringTool.cxx.

299 {
300  // Get the element design
301  const InDetDD::PixelModuleDesign& design =
302  static_cast<const InDetDD::PixelModuleDesign&>(element.design());
303  CellCollection cells;
304  cells.reserve(300);
305 
306  const IdentifierHash& idHash = RDOs.identifyHash();
307  for (const auto *const rdo : RDOs) {
308  const Identifier& rdoID = rdo->identify();
309  std::array<InDetDD::PixelDiodeTree::CellIndexType,2> diode_idx
311  m_pixelID->eta_index(rdoID));
312  InDetDD::PixelDiodeTree::DiodeProxy si_param ( design.diodeProxyFromIdx(diode_idx));
313  std::uint32_t fe = design.getFE(si_param);
314 
315  // check if good RDO
316  // the pixel RDO tool here says always good if m_useModuleMap is false
317  if (not pixelDetElStatus.isChipGood(idHash, fe)) {
318  continue;
319  }
320 
321  const int lvl1 = rdo->getLVL1A();
322  const int tot = rdo->getToT();
323 
324  cells.emplace_back(m_pixelID->phi_index(rdoID),
325  m_pixelID->eta_index(rdoID),
326  tot,
327  lvl1,
328  rdoID.get_compact());
329 
330  if ( m_checkGanged ) {
331  std::optional<Identifier> gangedID = isGanged(rdoID, element);
332  if (gangedID.has_value()) {
333  cells.emplace_back(m_pixelID->phi_index(*gangedID),
334  m_pixelID->eta_index(*gangedID),
335  tot,
336  lvl1,
337  gangedID->get_compact());
338  }
339  }
340 
341  }
342 
343  return cells;
344 }

Member Data Documentation

◆ m_addCorners

Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_addCorners {this, "AddCorners", true}
private

Definition at line 75 of file PixelClusteringTool.h.

◆ m_broadErrors

Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_broadErrors {this, "UseBroadErrors", false}
private

Definition at line 77 of file PixelClusteringTool.h.

◆ m_chargeDataKey

SG::ReadCondHandleKey<PixelChargeCalibCondData> ActsTrk::PixelClusteringTool::m_chargeDataKey
private
Initial value:
{this, "PixelChargeCalibCondData", "",
"Pixel charge calibration data"}

Definition at line 72 of file PixelClusteringTool.h.

◆ m_checkGanged

Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_checkGanged {this, "CheckGanged", false}
private

Definition at line 78 of file PixelClusteringTool.h.

◆ m_pixelID

const PixelID* ActsTrk::PixelClusteringTool::m_pixelID {nullptr}
private

Definition at line 80 of file PixelClusteringTool.h.

◆ m_pixelLorentzAngleTool

ToolHandle< ISiLorentzAngleTool > ActsTrk::PixelClusteringTool::m_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"}
private

Definition at line 70 of file PixelClusteringTool.h.

◆ m_pixelReadout

ServiceHandle< InDetDD::IPixelReadoutManager > ActsTrk::PixelClusteringTool::m_pixelReadout
private
Initial value:
{this, "PixelReadoutManager", "InDetDD::ITk::PixelReadoutManager",
"Pixel readout manager" }

Definition at line 67 of file PixelClusteringTool.h.

◆ m_useWeightedPos

Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_useWeightedPos {this, "UseWeightedPosition", false}
private

Definition at line 76 of file PixelClusteringTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ActsTrk::PixelClusteringTool::m_broadErrors
Gaudi::Property< bool > m_broadErrors
Definition: PixelClusteringTool.h:77
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:281
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
PixelID::phi_index
int phi_index(const Identifier &id) const
Definition: PixelID.h:654
InDetDD::SolidStateDetectorElementBase::connectedCell
SiCellId connectedCell(const SiCellId cellId, int number) const
Get the cell ids sharing the readout for this cell.
Definition: SolidStateDetectorElementBase.cxx:250
ActsTrk::PixelClusteringTool::m_pixelLorentzAngleTool
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Definition: PixelClusteringTool.h:70
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::locX
@ locX
Definition: ParamDefs.h:37
InDetDD::PixelModuleDesign
Definition: PixelModuleDesign.h:45
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:38
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
xAOD::xAODInDetMeasurement::Utilities::computeTotalToT
int computeTotalToT(const SG::AuxElement &cluster)
Definition: Event/xAOD/xAODInDetMeasurement/Root/Utilities.cxx:22
InDetDD::SolidStateDetectorElementBase::surface
Trk::Surface & surface()
Element Surface.
InDetDD::PixelDiodeTree::CellIndexType
int CellIndexType
Definition: PixelDiodeTree.h:37
Identifier::get_compact
value_type get_compact() const
Get the compact id.
PixelChargeCalibCondData::CalibrationStrategy::RD53
@ RD53
keylayer_zslicemap.row
row
Definition: keylayer_zslicemap.py:155
ActsTrk::PixelClusteringTool::m_pixelID
const PixelID * m_pixelID
Definition: PixelClusteringTool.h:80
ActsTrk::PixelClusteringTool::unpackRDOs
IPixelClusteringTool::CellCollection unpackRDOs(const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const
Definition: PixelClusteringTool.cxx:296
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
InDetDD::PixelModuleDesign::getFE
static unsigned int getFE(const PixelDiodeTree::DiodeProxy &diode_proxy)
Definition: PixelModuleDesign.h:258
InDetDD::PixelModuleDesign::diodeProxyFromIdx
PixelDiodeTree::DiodeProxy diodeProxyFromIdx(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
Definition: PixelModuleDesign.h:248
ActsTrk::PixelClusteringTool::m_useWeightedPos
Gaudi::Property< bool > m_useWeightedPos
Definition: PixelClusteringTool.h:76
InDetDD::PixelModuleDesign::diodeProxyFromIdxCachePosition
PixelDiodeTree::DiodeProxyWithPosition diodeProxyFromIdxCachePosition(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
Definition: PixelModuleDesign.h:251
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
InDetDD::SolidStateDetectorElementBase::identifyHash
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
ActsTrk::PixelClusteringTool::m_addCorners
Gaudi::Property< bool > m_addCorners
Definition: PixelClusteringTool.h:75
InDetDD::PixelModuleDesign::getDiodeType
static InDetDD::PixelDiodeType getDiodeType(const PixelDiodeTree::DiodeProxy &diode_proxy)
Definition: PixelModuleDesign.h:261
InDetDD::PixelReadoutTechnology::RD53
@ RD53
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
ActsTrk::PixelClusteringTool::m_chargeDataKey
SG::ReadCondHandleKey< PixelChargeCalibCondData > m_chargeDataKey
Definition: PixelClusteringTool.h:72
InDetDD::PixelDiodeTree::DiodeProxyWithPosition
A diode proxy which caches the position of a diode.
Definition: PixelDiodeTree.h:230
InDetDD::SiDetectorElement::cellIdFromIdentifier
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
Definition: SiDetectorElement.cxx:120
ActsTrk::PixelClusteringTool::m_pixelReadout
ServiceHandle< InDetDD::IPixelReadoutManager > m_pixelReadout
Definition: PixelClusteringTool.h:67
InDetDD::SolidStateDetectorElementBase::numberOfConnectedCells
int numberOfConnectedCells(const SiCellId cellId) const
Test if readout cell has more than one diode associated with it.
Definition: SolidStateDetectorElementBase.cxx:243
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::PixelClusteringTool::makeCluster
StatusCode makeCluster(const EventContext &ctx, PixelClusteringTool::Cluster &cluster, const InDetDD::SiDetectorElement *element, const InDetDD::PixelModuleDesign &design, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, xAOD::PixelCluster &container) const
Definition: PixelClusteringTool.cxx:62
lumiFormat.i
int i
Definition: lumiFormat.py:85
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PixelChargeCalibCondData
Definition: PixelChargeCalibCondData.h:24
InDetDD::SiDetectorElement::identifierFromCellId
virtual Identifier identifierFromCellId(const SiCellId &cellId) const override final
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie s...
Definition: SiDetectorElement.cxx:89
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
test_pyathena.parent
parent
Definition: test_pyathena.py:15
PixelID::eta_index
int eta_index(const Identifier &id) const
Definition: PixelID.h:660
PixelChargeCalibCondData::getCalibrationStrategy
CalibrationStrategy getCalibrationStrategy(unsigned int moduleHash) const
Definition: PixelChargeCalibCondData.cxx:254
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
xAOD::xAODInDetMeasurement::Utilities::computeTotalCharge
float computeTotalCharge(const SG::AuxElement &cluster)
Definition: Event/xAOD/xAODInDetMeasurement/Root/Utilities.cxx:9
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
InDet::SiDetectorElementStatus::isGood
bool isGood(IdentifierHash hash) const
Definition: SiDetectorElementStatus.h:97
PixelCalibrationConfig.tot
tot
Definition: PixelCalibrationConfig.py:28
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
charge
double charge(const T &p)
Definition: AtlasPID.h:991
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDetDD::PixelModuleDesign::getReadoutTechnology
PixelReadoutTechnology getReadoutTechnology() const
Definition: PixelModuleDesign.h:391
InDetDD::SiCellId
Definition: SiCellId.h:29
ActsTrk::PixelClusteringTool::isGanged
static std::optional< Identifier > isGanged(const Identifier &rdoID, const InDetDD::SiDetectorElement &element)
Definition: PixelClusteringTool.cxx:347
xAOD::PixelCluster_v1
Definition: PixelCluster_v1.h:17
InDetDD::PixelDiodeTree::DiodeProxy
Helper class to access parameters of a diode.
Definition: PixelDiodeTree.h:183
xAOD::phiWidth
phiWidth
Definition: RingSetConf_v1.cxx:612
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
PixelChargeCalibCondData::getCharge
float getCharge(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float ToT) const
Definition: PixelChargeCalibCondData.cxx:223
ActsTrk::PixelClusteringTool::m_checkGanged
Gaudi::Property< bool > m_checkGanged
Definition: PixelClusteringTool.h:78
InDetDD::PixelDiodeTree::makeCellIndex
static constexpr std::array< PixelDiodeTree::CellIndexType, 2 > makeCellIndex(T local_x_idx, T local_y_idx)
Create a 2D cell index from the indices in local-x (phi, row) and local-y (eta, column) direction.
Definition: PixelDiodeTree.h:320
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::SiDetectorElement::design
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:25
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
SG::ReadCondHandle::cptr
const_pointer_type cptr()
Definition: ReadCondHandle.h:71
Identifier
Definition: IdentifierFieldParser.cxx:14