ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::PixelClusteringToolImpl< T_RDOContainer > Class Template Reference

#include <PixelClusteringTool.h>

Inheritance diagram for ActsTrk::PixelClusteringToolImpl< T_RDOContainer >:
Collaboration diagram for ActsTrk::PixelClusteringToolImpl< T_RDOContainer >:

Public Types

using IClusteringToolType = typename ActsTrk::RDOContainerTraits<T_RDOContainer>::IClusteringToolType
using base_class = extends<AthAlgTool,typename ActsTrk::RDOContainerTraits<T_RDOContainer>::IClusteringToolType>::base_class

Public Member Functions

 PixelClusteringToolImpl (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual std::pair< unsigned int, unsigned int > countCells (const T_RDOContainer &rdo_collection, const std::vector< IdentifierHash > &listOfIds, const InDetDD::SiDetectorElementCollection &detector_elements) const override
virtual StatusCode clusterize (const EventContext &ctx, const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs &RDOs, const InDet::SiDetectorElementStatus &pixelDetElStatus, const InDetDD::SiDetectorElement &element, typename IClusteringToolType::CellContainer &cellContainer) const override
virtual std::any createEventDataCache (xAOD::PixelClusterContainer &cont, std::size_t nClusterRDOs) const override
virtual StatusCode makeClusters (const EventContext &ctx, const T_RDOContainer &rdo_container, const typename IClusteringToolType::CellContainer &cellContainer, unsigned int module_i, const InDetDD::SiDetectorElement &element, unsigned int icluster, xAOD::PixelClusterContainer &cont, std::any &vars) const override

Private Types

using ClusterProxy = InPlaceClusterization::ClusterProxy<const typename IClusteringToolType::CellContainer>
using Cell = typename IClusteringToolType::CellContainer::Cell

Private Member Functions

template<bool GANGED>
std::pair< unsigned int, unsigned int > countCellsImpl (const T_RDOContainer &rdo_collection, const std::vector< IdentifierHash > &listOfIds, const InDetDD::SiDetectorElementCollection &detector_elements) const
std::span< typename IClusteringToolType::CellContainer::Cell > unpackRDOs (const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs &RDOs, const InDet::SiDetectorElementStatus &pixelDetElStatus, const InDetDD::SiDetectorElement &element, typename IClusteringToolType::CellContainer &cellContainer) const
StatusCode makeCluster (size_t icluster, const PixelClusteringToolImpl::ClusterProxy &cluster, const InDetDD::SiDetectorElement &element, const InDetDD::PixelModuleDesign &design, const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs &RDOs, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, const double lorentz_shift, xAOD::PixelCluster::ClusterVars &clusterVars) const

Private Attributes

ToolHandle< ISiLorentzAngleToolm_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"}
SG::ReadCondHandleKey< PixelChargeCalibCondDatam_chargeDataKey
Gaudi::Property< std::string > m_idHelperName
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}
Gaudi::Property< bool > m_isITk {this, "isITk", true, "True if running in ITk"}
const PixelIDm_pixelID {nullptr}

Detailed Description

template<typename T_RDOContainer>
class ActsTrk::PixelClusteringToolImpl< T_RDOContainer >

Definition at line 27 of file PixelClusteringTool.h.

Member Typedef Documentation

◆ base_class

template<typename T_RDOContainer>
using ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::base_class = extends<AthAlgTool,typename ActsTrk::RDOContainerTraits<T_RDOContainer>::IClusteringToolType>::base_class

Definition at line 30 of file PixelClusteringTool.h.

◆ Cell

template<typename T_RDOContainer>
using ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::Cell = typename IClusteringToolType::CellContainer::Cell
private

Definition at line 76 of file PixelClusteringTool.h.

◆ ClusterProxy

template<typename T_RDOContainer>
using ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::ClusterProxy = InPlaceClusterization::ClusterProxy<const typename IClusteringToolType::CellContainer>
private

Definition at line 75 of file PixelClusteringTool.h.

◆ IClusteringToolType

template<typename T_RDOContainer>
using ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::IClusteringToolType = typename ActsTrk::RDOContainerTraits<T_RDOContainer>::IClusteringToolType

Definition at line 29 of file PixelClusteringTool.h.

Constructor & Destructor Documentation

◆ PixelClusteringToolImpl()

template<typename T_RDOContainer>
ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::PixelClusteringToolImpl ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 106 of file PixelClusteringTool.cxx.

109{}
extends< AthAlgTool, typename ActsTrk::RDOContainerTraits< T_RDOContainer >::IClusteringToolType >::base_class base_class

Member Function Documentation

◆ clusterize()

template<typename T_RDOContainer>
StatusCode ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::clusterize ( const EventContext & ctx,
const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs & RDOs,
const InDet::SiDetectorElementStatus & pixelDetElStatus,
const InDetDD::SiDetectorElement & element,
typename IClusteringToolType::CellContainer & cellContainer ) const
overridevirtual

Definition at line 373 of file PixelClusteringTool.cxx.

378{
379 IdentifierHash idHash = RDOs.identifyHash();
381 if ( pixelDetElStatus.isGood(idHash) ) {
382 // Retrieve the cells from the detector element
385
386 static constexpr unsigned int SORT_BY_LOCAL_X=0u;
390 // set the cell range per cluster
393 unsigned int idx_begin,
394 unsigned int idx_end) {
395 cellContainer.registerNewCluster(idx_begin,idx_end);
396 });
397 }
398 // must add a range for every call otherwise the cell container and
399 // the list of processed modules get out of sync.
400 cellContainer.registerClustersForNewModule(rangeGuard.range());
401
402 return StatusCode::SUCCESS;
403}
std::span< typename IClusteringToolType::CellContainer::Cell > unpackRDOs(const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs &RDOs, const InDet::SiDetectorElementStatus &pixelDetElStatus, const InDetDD::SiDetectorElement &element, typename IClusteringToolType::CellContainer &cellContainer) const
void for_each_cluster(cell_collection_t &cells, func_t func)
call the given function for each cluster of a label sorted cell collection.

◆ countCells()

template<typename T_RDOContainer>
std::pair< unsigned int, unsigned int > ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::countCells ( const T_RDOContainer & rdo_collection,
const std::vector< IdentifierHash > & listOfIds,
const InDetDD::SiDetectorElementCollection & detector_elements ) const
overridevirtual

Definition at line 163 of file PixelClusteringTool.cxx.

165 {
166 if (m_isITk || !m_checkGanged ) {
168 }
169 else {
171 }
172}
std::pair< unsigned int, unsigned int > countCellsImpl(const T_RDOContainer &rdo_collection, const std::vector< IdentifierHash > &listOfIds, const InDetDD::SiDetectorElementCollection &detector_elements) const
Gaudi::Property< bool > m_checkGanged

◆ countCellsImpl()

template<typename T_RDOContainer>
template<bool GANGED>
std::pair< unsigned int, unsigned int > ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::countCellsImpl ( const T_RDOContainer & rdo_collection,
const std::vector< IdentifierHash > & listOfIds,
const InDetDD::SiDetectorElementCollection & detector_elements ) const
private

Definition at line 115 of file PixelClusteringTool.cxx.

117 {
120 const PixelID* pixelID)
121 -> unsigned int
122 {
123 unsigned int n_hits = RDOs.size();
124 if constexpr(GANGED) {
125 assert(detector_elements.at(RDOs.identifyHash()));
126 assert(dynamic_cast<const InDetDD::PixelModuleDesign *>(&detector_elements.at(RDOs.identifyHash())->design()) != nullptr);
127 const InDetDD::PixelModuleDesign &design = static_cast<const InDetDD::PixelModuleDesign &>(detector_elements.at(RDOs.identifyHash())->design());
128 if (isFEI3(design)) {
130 if (rdo.isGanged(design, *pixelID)) {
131 ++n_hits;
132 }
133 }
134 }
135 }
136 return n_hits;
137 };
138 unsigned int n_hits=0u;
139 if (listOfIds.empty()) {
141 assert( RDOs.isValid());
143 }
144 }
145 else {
146 for (const IdentifierHash& id : listOfIds) {
147 if (not id.is_valid()) continue;
149 if (RDOs.has_value()) {
151 }
152 }
153 }
154 // the total number of hits is the best estimate of the maximum number of clusters.
155 // @TODO could apply a factor for the number clusters or only if the number of hits
156 // are above a certain threshold to reduce memory consumption though impact
157 // is likely small.
158 return {n_hits,n_hits};
159}
static std::optional< RDOCollectionAdapter > make(const T_RDOContainer &rdo_container, const IdentifierHash &id_hash)

◆ createEventDataCache()

template<typename T_RDOContainer>
std::any ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::createEventDataCache ( xAOD::PixelClusterContainer & cont,
std::size_t nClusterRDOs ) const
overridevirtual

Definition at line 407 of file PixelClusteringTool.cxx.

◆ initialize()

template<typename T_RDOContainer>
StatusCode ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::initialize ( )
overridevirtual

Definition at line 83 of file PixelClusteringTool.cxx.

84{
85 ATH_MSG_DEBUG("Initializing " << this->name() << " ...");
86
91
92 ATH_CHECK(this->m_pixelLorentzAngleTool.retrieve());
93
94 ATH_CHECK(this->m_chargeDataKey.initialize(not m_chargeDataKey.empty()));
95
96 ATH_MSG_INFO(" Charge Data Key:" << m_chargeDataKey);
97 ATH_MSG_INFO(" ID Helper Name:" << m_idHelperName);
98
100
101 ATH_MSG_DEBUG(this->name() << " successfully initialized");
102 return StatusCode::SUCCESS;
103}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
Gaudi::Property< bool > m_broadErrors
Gaudi::Property< bool > m_useWeightedPos
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Gaudi::Property< std::string > m_idHelperName
SG::ReadCondHandleKey< PixelChargeCalibCondData > m_chargeDataKey

◆ makeCluster()

template<typename T_RDOContainer>
StatusCode ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::makeCluster ( size_t icluster,
const PixelClusteringToolImpl< T_RDOContainer >::ClusterProxy & cluster,
const InDetDD::SiDetectorElement & element,
const InDetDD::PixelModuleDesign & design,
const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs & RDOs,
const PixelChargeCalibCondData * calibData,
const PixelChargeCalibCondData::CalibrationStrategy calibStrategy,
const double lorentz_shift,
xAOD::PixelCluster::ClusterVars & clusterVars ) const
private

Definition at line 176 of file PixelClusteringTool.cxx.

185{
186
188 float tot_acc = 0.f;
189
198
199 // We temporary comment this since it is not used
200 // bool hasGanged = false;
201 unsigned int n_rdos = clusterVars.rdoList.getBeginIndex(icluster);
202 assert( clusterVars.totList.getBeginIndex(icluster)==n_rdos );
203 assert( calibData==nullptr || clusterVars.chargeList.getBeginIndex(icluster)==n_rdos );
204
205 IdentifierHash idHash = element.identifyHash();
206 assert( idHash == cluster.identifyHash());
207 Identifier module_id = element.identify();
210
212 for (CellProxy cellProxy : cluster) {
213
214 //Construct the identifier class
215
216 // We temporary comment this since it is not used
217 // TODO: Check how the ganged info is used in legacy
218 // if (multiChip) {
219 // hasGanged = hasGanged ||
220 // m_pixelRDOTool->isGanged(id, element).has_value();
221 // }
222 assert(cellProxy.srcIndex() < rdos.size());
223
226 assert( rdo.index() >= rdos.beginIndex() && rdo.index() < rdos.endIndex() );
227 }
228
229 Identifier rdo_id = rdo.computeIdentifier(*m_pixelID,module_id, cellProxy);
230 if (!first_rdo_id.has_value()) {
231 first_rdo_id=rdo_id.get_compact();
232 }
233
234 assert(rdo.getLVL1A()>=0 && rdo.getLVL1A() < std::numeric_limits<uint8_t>::max());
235 cluster_lvl1min = std::min(cluster_lvl1min, static_cast<int>(rdo.getLVL1A()) );
236
237 const int tot = rdo.getToT();
238 float charge = tot;
239
242 cellProxy.coordinates()[1]);
244
245 if (calibData) {
246 // Retrieving the calibration only depends on FE and not per cell (can be further optimized)
247 // Single FE modules could have an optimized getCharge function where the calib constants are cached
249 auto diode_type = design.getDiodeType(si_param);
250 if (m_isITk){
251 // @TODO only check in makeClusters or check at all ?
252 if (design.getReadoutTechnology() != InDetDD::PixelReadoutTechnology::RD53) {
253 ATH_MSG_ERROR("Chip type is not recognized!");
254 return StatusCode::FAILURE;
255 }
256
257 charge = calibData->getCharge(diode_type,
259 idHash,
260 feValue,
261 tot);
262 } else {
263 charge = calibData->getCharge(diode_type,
264 idHash,
265 feValue,
266 tot);
267
268 // These numbers are taken from the Cluster Maker Tool
269 if (design.getReadoutTechnology() != InDetDD::PixelReadoutTechnology::RD53 && (idHash < 12 or idHash > 2035)) {
270 charge = tot/8.0*(8000.0-1200.0)+1200.0;
271 }
272 }
273 clusterVars.chargeList.setValue(n_rdos,charge);
274 }
275 clusterVars.rdoList.setValue(n_rdos,rdo_id.get_compact());
276 clusterVars.totList.setValue(n_rdos,tot);
277 ++n_rdos;
278
281 if (row>rowmax) {
282 rowmax=row;
284 }
285 if (row<rowmin) {
286 rowmin=row;
288 }
289 if (col>colmax) {
290 colmax=col;
292 }
293 if (col<colmin) {
294 colmin=col;
296 }
297
298 // We compute the digital position as a sum of all RDO positions
299 // all with the same weight of 1
300 // We do not compute a charge-weighted center of gravity here (by default) since
301 // we observe it to be worse than the digital position
302 // ToT-weighted center of gravity must not be used
303 if (m_useWeightedPos) {
304 pos_acc += charge * si_param.position();
305 tot_acc += charge;
306 } else {
307 pos_acc += si_param.position();
308 tot_acc += 1;
309 }
310
311 }
312 assert(n_rdos>0); // clusters must not be empty
313 if (tot_acc > 0)
314 pos_acc /= tot_acc;
315
316
317 const int colWidth = colmax - colmin + 1;
318 const int rowWidth = rowmax - rowmin + 1;
319
320 double etaWidth = colmax_diode.xEtaMax() - colmin_diode.xEtaMin(); // design.widthFromColumnRange(colmin, colmax);
321 double phiWidth = rowmax_diode.xPhiMax() - rowmin_diode.xPhiMin(); // design.widthFromColumnRange(colmin, colmax);
322
323 // ask for Lorentz correction, get global position
326 // find global position of element
327 const Amg::Transform3D& T = element.surface().transform();
328 double Ax[3] = {T(0,0),T(1,0),T(2,0)};
329 double Ay[3] = {T(0,1),T(1,1),T(2,1)};
330 double R [3] = {T(0,3),T(1,3),T(2,3)};
331
332 const Amg::Vector2D& M = locpos;
333 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]);
334
335 // Compute error matrix
336 float width0, width1;
337 if (m_broadErrors) {
338 // Use cluster width
341 } else {
342 // Use average pixel width
345 }
346
347 // Actually create the cluster (i.e. fill the values)
348
351 localCovariance(0, 0) = width0 * width0 / 12.0f;
352 localCovariance(1, 1) = width1 * width1 / 12.0f;
353
354 clusterVars.identifierHash[icluster] = idHash;
355 xAOD::VectorMap<2>(clusterVars.localPositionDim2[icluster].data()) = localPosition;
356 xAOD::MatrixMap<2>(clusterVars.localCovarianceDim2[icluster].data()) = localCovariance;
357 assert( first_rdo_id.has_value());
358 clusterVars.identifier[icluster] = *first_rdo_id;
359 clusterVars.rdoList.updateEndIndex(icluster,n_rdos);
360 xAOD::VectorMap<3>(clusterVars.globalPosition[icluster].data()) = globalPos.cast<float>();
361 clusterVars.totList.updateEndIndex(icluster,n_rdos);
362 clusterVars.chargeList.updateEndIndex(icluster, (calibData ? n_rdos : 0u));
364 clusterVars.channelsInPhi[icluster] = rowWidth;
365 clusterVars.channelsInEta[icluster] = colWidth;
366 clusterVars.widthInEta[icluster] = etaWidth;
367
368 return StatusCode::SUCCESS;
369}
#define ATH_MSG_ERROR(x)
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.
Eigen::Map< MeasVector< N > > VectorMap
Eigen::Map< MeasMatrix< N > > MatrixMap

◆ makeClusters()

template<typename T_RDOContainer>
StatusCode ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::makeClusters ( const EventContext & ctx,
const T_RDOContainer & rdo_container,
const typename IClusteringToolType::CellContainer & cellContainer,
unsigned int module_i,
const InDetDD::SiDetectorElement & element,
unsigned int icluster,
xAOD::PixelClusterContainer & cont,
std::any & vars ) const
overridevirtual

Definition at line 416 of file PixelClusteringTool.cxx.

425{
426 // Retrieve the calibration data
427 const PixelChargeCalibCondData *calibData = nullptr;
428 if (not m_chargeDataKey.empty()) {
430 calibData = calibDataHandle.cptr();
431
432 if (!calibData) {
433 ATH_MSG_ERROR("PixelChargeCalibCondData requested but couldn't be retrieved from " << m_chargeDataKey.key());
434 return StatusCode::FAILURE;
435 }
436 }
437
438 // Get the element design
440 static_cast<const InDetDD::PixelModuleDesign&>(element.design());
441
442 // Get the calibration strategy for this module.
443 // Default to RD53 if the calibData is not available. That is fine because it won't be used anyway
445
446 IdentifierHash idHash = element.identifyHash();
447 double lorentzShift = m_pixelLorentzAngleTool->getLorentzShift(idHash, ctx);
448
450 if (!clusterVars) throw std::bad_any_cast();
451
453 if (!rdos_optional.has_value()) return StatusCode::FAILURE;
455
461
465 element,
466 design,
467 *rdos,
468 calibData,
471 *clusterVars));
472 }
473
474 return StatusCode::SUCCESS;
475}
InPlaceClusterization::ClusterProxy< const typename IClusteringToolType::CellContainer > ClusterProxy
StatusCode makeCluster(size_t icluster, const PixelClusteringToolImpl::ClusterProxy &cluster, const InDetDD::SiDetectorElement &element, const InDetDD::PixelModuleDesign &design, const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs &RDOs, const PixelChargeCalibCondData *calibData, const PixelChargeCalibCondData::CalibrationStrategy calibStrategy, const double lorentz_shift, xAOD::PixelCluster::ClusterVars &clusterVars) const
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ unpackRDOs()

template<typename T_RDOContainer>
std::span< typename ActsTrk::RDOContainerTraits< T_RDOContainer >::IClusteringToolType::CellContainer::Cell > ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::unpackRDOs ( const ActsTrk::RDOContainerTraits< T_RDOContainer >::PerModuleRDOs & RDOs,
const InDet::SiDetectorElementStatus & pixelDetElStatus,
const InDetDD::SiDetectorElement & element,
typename IClusteringToolType::CellContainer & cellContainer ) const
private

Definition at line 479 of file PixelClusteringTool.cxx.

484{
485 // Get the element design
487 static_cast<const InDetDD::PixelModuleDesign&>(element.design());
488
490
492 unsigned int rdo_i=0;
494 auto coordinates=rdo.coordinates(*m_pixelID);
497
498 // check if good RDO
499 // the pixel RDO tool here says always good if m_useModuleMap is false
500 if (pixelDetElStatus.isChipGood(rangeGuard.identifyHash(), fe)) {
502
503 if ( check_ganged ) {
505 if (gangedCoordinates.has_value()) {
506 cellContainer.emplace_back_cell(*gangedCoordinates, rdo_i);
507 }
508 }
509 }
510 ++rdo_i;
511 }
512
513 return rangeGuard.moduleCellSpan();
514}

Member Data Documentation

◆ m_addCorners

template<typename T_RDOContainer>
Gaudi::Property<bool> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_addCorners {this, "AddCorners", true}
private

Definition at line 101 of file PixelClusteringTool.h.

101{this, "AddCorners", true};

◆ m_broadErrors

template<typename T_RDOContainer>
Gaudi::Property<bool> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_broadErrors {this, "UseBroadErrors", false}
private

Definition at line 103 of file PixelClusteringTool.h.

103{this, "UseBroadErrors", false};

◆ m_chargeDataKey

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

Definition at line 96 of file PixelClusteringTool.h.

96 {this, "PixelChargeCalibCondData", "",
97 "Pixel charge calibration data"};

◆ m_checkGanged

template<typename T_RDOContainer>
Gaudi::Property<bool> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_checkGanged {this, "CheckGanged", false}
private

Definition at line 104 of file PixelClusteringTool.h.

104{this, "CheckGanged", false};

◆ m_idHelperName

template<typename T_RDOContainer>
Gaudi::Property<std::string> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_idHelperName
private
Initial value:
{this, "IDHelperName", "PixelID",
"Pixel-like ID helper name to retrieve from DetectorStore"}

Definition at line 98 of file PixelClusteringTool.h.

98 {this, "IDHelperName", "PixelID",
99 "Pixel-like ID helper name to retrieve from DetectorStore"};

◆ m_isITk

template<typename T_RDOContainer>
Gaudi::Property<bool> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_isITk {this, "isITk", true, "True if running in ITk"}
private

Definition at line 105 of file PixelClusteringTool.h.

105{this, "isITk", true, "True if running in ITk"};

◆ m_pixelID

template<typename T_RDOContainer>
const PixelID* ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_pixelID {nullptr}
private

Definition at line 106 of file PixelClusteringTool.h.

106{nullptr};

◆ m_pixelLorentzAngleTool

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

Definition at line 94 of file PixelClusteringTool.h.

94{this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"};

◆ m_useWeightedPos

template<typename T_RDOContainer>
Gaudi::Property<bool> ActsTrk::PixelClusteringToolImpl< T_RDOContainer >::m_useWeightedPos {this, "UseWeightedPosition", false}
private

Definition at line 102 of file PixelClusteringTool.h.

102{this, "UseWeightedPosition", false};

The documentation for this class was generated from the following files: