![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <ITkPixelClusterOnTrackTool.h>
|
| PixelClusterOnTrackTool (const std::string &, const std::string &, const IInterface *) |
| AlgTool constructor. More...
|
|
virtual | ~PixelClusterOnTrackTool ()=default |
|
virtual StatusCode | initialize () override |
| AlgTool initialisation. More...
|
|
virtual InDet::PixelClusterOnTrack * | correct (const Trk::PrepRawData &, const Trk::TrackParameters &) const override |
| produces a PixelClusterOnTrack (object factory!). More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
InDet::PixelClusterOnTrack * | correctDefault (const Trk::PrepRawData &, const Trk::TrackParameters &) const |
| The correct method produces a PixelClusterOnTrack using the measured PixelCluster and the track prediction. More...
|
|
InDet::PixelClusterOnTrack * | correctNN (const Trk::PrepRawData &, const Trk::TrackParameters &) const |
|
bool | getErrorsDefaultAmbi (const InDet::PixelCluster *, const Trk::TrackParameters &, Amg::Vector2D &, Amg::MatrixX &) const |
|
bool | getErrorsTIDE_Ambi (const InDet::PixelCluster *, const Trk::TrackParameters &, Amg::Vector2D &, Amg::MatrixX &) const |
|
InDet::PixelClusterOnTrack * | correct (const Trk::PrepRawData &, const Trk::TrackParameters &, const ITk::PixelClusterStrategy) const |
|
const Trk::ClusterSplitProbabilityContainer::ProbabilityInfo & | getClusterSplittingProbability (const InDet::PixelCluster *pix) const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
ToolHandle< ISiLorentzAngleTool > | m_lorentzAngleTool {this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retreive Lorentz angle"} |
|
SG::ReadCondHandleKey< ITk::PixelOfflineCalibData > | m_clusterITkErrorKey {this, "ITkPixelOfflineCalibData", "ITkPixelOfflineCalibData", "Output key of ITk pixel cluster"} |
|
SG::ReadCondHandleKey< RIO_OnTrackErrorScaling > | m_pixelErrorScalingKey {this,"PixelErrorScalingKey", "/Indet/TrkErrorScalingPixel", "Key for pixel error scaling conditions data."} |
|
int | m_positionStrategy |
| toolhandle for central error scaling flag storing if errors need scaling or should be kept nominal More...
|
|
std::atomic_int | m_errorStrategy {2} |
|
IntegerProperty | m_errorStrategyProperty {this, "ErrorStrategy", 2, "Which calibration of cluster position errors"} |
|
const PixelID * | m_pixelid |
| Flag controlling how module distortions are taken into account: More...
|
|
bool | m_applyNNcorrection {false} |
| Enable NN based calibration (do only if NN calibration is applied) More...
|
|
BooleanProperty | m_applyNNcorrectionProperty {this, "applyNNcorrection", false} |
|
ToolHandle< InDet::NnClusterizationFactory > | m_NnClusterizationFactory |
| NN clusterizationi factory for NN based positions and errors. More...
|
|
bool | m_doNotRecalibrateNN |
|
bool | m_noNNandBroadErrors |
|
bool | m_usingTIDE_Ambi |
| Enable different treatment of cluster errors based on NN information (do only if TIDE ambi is run) More...
|
|
SG::ReadHandleKey< InDet::PixelGangedClusterAmbiguities > | m_splitClusterMapKey |
|
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainer > | m_clusterSplitProbContainer {this, "ClusterSplitProbabilityName", "",""} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
◆ StoreGateSvc_t
◆ PixelClusterOnTrackTool()
ITk::PixelClusterOnTrackTool::PixelClusterOnTrackTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~PixelClusterOnTrackTool()
virtual ITk::PixelClusterOnTrackTool::~PixelClusterOnTrackTool |
( |
| ) |
|
|
virtualdefault |
◆ correct() [1/2]
produces a PixelClusterOnTrack (object factory!).
Depending on job options it changes the pixel cluster position and error according to the parameters (in particular, the angle) of the intersecting track.
Implements Trk::IRIO_OnTrackCreator.
Definition at line 119 of file ITkPixelClusterOnTrackTool.cxx.
◆ correct() [2/2]
◆ correctDefault()
The correct method produces a PixelClusterOnTrack using the measured PixelCluster and the track prediction.
Definition at line 156 of file ITkPixelClusterOnTrackTool.cxx.
161 const double TOPHAT_SIGMA = 1. / std::sqrt(12.);
188 if (
pix->rdoList().empty()) {
189 ATH_MSG_WARNING(
"Pixel RDO-list size is 0, check integrity of pixel clusters! stop ROT creation.");
200 float trkphicomp = my_track.dot(my_phiax);
201 float trketacomp = my_track.dot(my_etaax);
202 float trknormcomp = my_track.dot(my_normal);
203 double bowphi = std::atan2(trkphicomp, trknormcomp);
204 double boweta = std::atan2(trketacomp, trknormcomp);
210 if (bowphi >
M_PI *0.5) {
213 if (bowphi < -
M_PI *0.5) {
222 double thetaloc = -999.;
223 if (boweta > -0.5 *
M_PI && boweta <
M_PI / 2.) {
224 thetaloc = M_PI_2 - boweta;
225 }
else if (boweta > M_PI_2 && boweta <
M_PI) {
226 thetaloc = 1.5 *
M_PI - boweta;
228 thetaloc = -M_PI_2 - boweta;
230 double etaloc = -1 *
log(
tan(thetaloc * 0.5));
236 double PixTrkPt = trackPar.
pT();
237 double PixTrkEta = trackPar.
eta();
238 ATH_MSG_VERBOSE(
"tanl = " << tanl <<
" readout side is " << readoutside <<
239 " module " << PixEtaModule <<
" " << PixPhiModule <<
240 " track pt, eta = " << PixTrkPt <<
" " << PixTrkEta <<
241 " track momentum phi, norm = " << trkphicomp <<
" " <<
242 trknormcomp <<
" bowphi = " << bowphi <<
" angle = " <<
angle);
244 float omegaphi =
pix->omegax();
245 float omegaeta =
pix->omegay();
246 double localphi = -9999.;
247 double localeta = -9999.;
249 const std::vector<Identifier> & rdos =
pix->rdoList();
255 for (
const auto & rId:rdos) {
264 meanpos = meanpos / rdos.size();
276 int nrows = rowmax - rowmin + 1;
277 int ncol = colmax - colmin + 1;
286 std::pair<double,double> delta = offlineITkCalibDataHandle->getClusterErrorData()->getDelta(&element_id,nrows,
angle,ncol,etaloc);
287 double delta_phi = nrows != 1 ? delta.first : 0.;
288 double delta_eta = ncol != 1 ? delta.second : 0.;
290 localeta += delta_eta*(omegaeta-0.5);
294 localphi = meanpos.xPhi() + shift;
295 localeta = meanpos.xEta();
307 if (std::abs(
angle) > 1) {
311 ATH_MSG_VERBOSE(
"Shallow track with tanl = " << tanl <<
" bowphi = " <<
312 bowphi <<
" angle = " <<
angle <<
" width.z = " <<
width.z() <<
313 " errphi = " << errphi <<
" erreta = " << erreta);
315 errphi =
width.phiR() * TOPHAT_SIGMA;
316 erreta =
width.z() * TOPHAT_SIGMA;
318 errphi = (
width.phiR() / nrows) * TOPHAT_SIGMA;
319 erreta = (
width.z() / ncol) * TOPHAT_SIGMA;
321 std::pair<double,double> delta_err = offlineITkCalibDataHandle->getClusterErrorData()->getDeltaError(&element_id);
322 errphi = nrows != 1 ? delta_err.first : (
width.phiR()/nrows)*TOPHAT_SIGMA;
323 erreta = ncol != 1 ? delta_err.second : (
width.z()/ncol)*TOPHAT_SIGMA;
338 cov(0, 0) = errphi * errphi;
341 cov(1, 1) = erreta * erreta;
349 cov = Trk::ErrorScalingCast<PixelRIO_OnTrackErrorScaling>(*error_scaling)
356 iH, glob,
pix->gangedPixel(), isbroad);
◆ correctNN()
Definition at line 383 of file ITkPixelClusterOnTrackTool.cxx.
392 if (pixelPrepCluster ==
nullptr) {
399 ATH_MSG_WARNING(
"Cannot access detector element. Aborting cluster correction...");
413 std::move(
cov), iH, glob,
423 if (!
getErrorsTIDE_Ambi(pixelPrepCluster, trackPar, finalposition, finalerrormatrix)) {
435 <<
" +/- " << std::sqrt(pixelPrepCluster->
localCovariance()(1, 1)) <<
"\n"
436 <<
" Final position x: " << finalposition[0]
437 <<
" +/- " << std::sqrt(finalerrormatrix(0, 0))
438 <<
" y: " << finalposition[1] <<
" +/- "
439 <<std::sqrt(finalerrormatrix(1, 1)) );
445 cov = Trk::ErrorScalingCast<PixelRIO_OnTrackErrorScaling>(*error_scaling)
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ getClusterSplittingProbability()
◆ getErrorsDefaultAmbi()
Definition at line 467 of file ITkPixelClusterOnTrackTool.cxx.
471 std::vector<Amg::Vector2D> vectorOfPositions;
472 int numberOfSubclusters = 1;
473 vectorOfPositions.push_back(pixelPrepCluster->
localPosition());
477 InDet::PixelGangedClusterAmbiguities::const_iterator mapBegin = splitClusterMap->begin();
478 InDet::PixelGangedClusterAmbiguities::const_iterator mapEnd = splitClusterMap->end();
479 for (InDet::PixelGangedClusterAmbiguities::const_iterator mapIter = mapBegin; mapIter != mapEnd; ++mapIter) {
482 if (
first == pixelPrepCluster &&
second != pixelPrepCluster) {
483 ATH_MSG_DEBUG(
"Found additional split cluster in ambiguity map (+=1).");
484 numberOfSubclusters += 1;
490 if (pixelAddCluster ==
nullptr) {
491 ATH_MSG_WARNING(
"Pixel ambiguity map has empty pixel cluster. Please DEBUG!");
494 vectorOfPositions.push_back(pixelAddCluster->
localPosition());
507 "Parameters are not at a plane ! Aborting cluster correction... ");
511 std::vector<Amg::Vector2D> allLocalPositions;
512 std::vector<Amg::MatrixX> allErrorMatrix;
518 numberOfSubclusters);
520 if (allLocalPositions.empty()) {
521 ATH_MSG_DEBUG(
" Cluster cannot be treated by NN. Giving back to default clusterization " );
526 if (allLocalPositions.size() !=
size_t(numberOfSubclusters)) {
527 ATH_MSG_WARNING(
"Returned position vector size " << allLocalPositions.size() <<
528 " not according to expected number of subclusters: " << numberOfSubclusters <<
". Abort cluster correction..." );
536 if (numberOfSubclusters == 1) {
537 finalposition = allLocalPositions[0];
538 finalerrormatrix = allErrorMatrix[0];
541 else if (numberOfSubclusters == 2) {
543 square(vectorOfPositions[0][0] - allLocalPositions[0][0]) / allErrorMatrix[0](0, 0) +
544 square(vectorOfPositions[1][0] - allLocalPositions[1][0]) / allErrorMatrix[1](0, 0) +
545 square(vectorOfPositions[0][1] - allLocalPositions[0][1]) / allErrorMatrix[0](1, 1) +
546 square(vectorOfPositions[1][1] - allLocalPositions[1][1]) / allErrorMatrix[1](1, 1);
549 square(vectorOfPositions[1][0] - allLocalPositions[0][0]) / allErrorMatrix[0](0, 0) +
550 square(vectorOfPositions[0][0] - allLocalPositions[1][0]) / allErrorMatrix[1](0, 0) +
551 square(vectorOfPositions[1][1] - allLocalPositions[0][1]) / allErrorMatrix[0](1, 1) +
552 square(vectorOfPositions[0][1] - allLocalPositions[1][1]) / allErrorMatrix[1](1, 1);
555 " Old pix (1) x: " << vectorOfPositions[0][0] <<
" y: " << vectorOfPositions[0][1] <<
"\n"
556 <<
" Old pix (2) x: " << vectorOfPositions[1][0] <<
" y: " << vectorOfPositions[1][1] <<
"\n"
557 <<
" Pix (1) x: " << allLocalPositions[0][0] <<
" +/- " << std::sqrt(allErrorMatrix[0](0, 0))
558 <<
" y: " << allLocalPositions[0][1] <<
" +/- " << std::sqrt(allErrorMatrix[0](1, 1)) <<
"\n"
559 <<
" Pix (2) x: " << allLocalPositions[1][0] <<
" +/- " << std::sqrt(allErrorMatrix[1](0, 0))
560 <<
" y: " << allLocalPositions[1][1] <<
" +/- " << std::sqrt(allErrorMatrix[1](1, 1)) <<
"\n"
561 <<
" Old (1) new (1) dist: " << std::sqrt(distancesq1) <<
" Old (1) new (2) " << std::sqrt(distancesq2) );
564 if (distancesq1 < distancesq2) {
565 finalposition = allLocalPositions[0];
566 finalerrormatrix = allErrorMatrix[0];
568 finalposition = allLocalPositions[1];
569 finalerrormatrix = allErrorMatrix[1];
574 else if (numberOfSubclusters == 3) {
577 distances[0] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 0, 1, 2);
578 distances[1] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 0, 2, 1);
579 distances[2] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 1, 0, 2);
580 distances[3] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 1, 2, 0);
581 distances[4] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 2, 0, 1);
582 distances[5] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 2, 1, 0);
584 int smallestDistanceIndex = -10;
585 double minDistance = 1e10;
587 for (
int i = 0;
i < 6;
i++) {
590 if (distances[
i] < minDistance) {
591 minDistance = distances[
i];
592 smallestDistanceIndex =
i;
596 ATH_MSG_DEBUG(
" The minimum distance is : " << minDistance <<
" for index: " << smallestDistanceIndex);
598 if (smallestDistanceIndex == 0 || smallestDistanceIndex == 1) {
599 finalposition = allLocalPositions[0];
600 finalerrormatrix = allErrorMatrix[0];
602 if (smallestDistanceIndex == 2 || smallestDistanceIndex == 4) {
603 finalposition = allLocalPositions[1];
604 finalerrormatrix = allErrorMatrix[1];
606 if (smallestDistanceIndex == 3 || smallestDistanceIndex == 5) {
607 finalposition = allLocalPositions[2];
608 finalerrormatrix = allErrorMatrix[2];
◆ getErrorsTIDE_Ambi()
Definition at line 615 of file ITkPixelClusterOnTrackTool.cxx.
620 std::vector<Amg::Vector2D> vectorOfPositions;
621 int numberOfSubclusters = 1;
624 numberOfSubclusters = 1 + splitClusterMap->count(pixelPrepCluster);
626 if (splitClusterMap->count(pixelPrepCluster) == 0 && splitProb.
isSplit()) {
627 numberOfSubclusters = 2;
629 if (splitClusterMap->count(pixelPrepCluster) != 0 && !splitProb.
isSplit()) {
630 numberOfSubclusters = 1;
637 ATH_MSG_WARNING(
"Parameters are not at a plane surface ! Aborting cluster "
642 std::vector<Amg::Vector2D> allLocalPositions;
643 std::vector<Amg::MatrixX> allErrorMatrix;
649 numberOfSubclusters);
651 if (allLocalPositions.empty()) {
653 " Cluster cannot be treated by NN. Giving back to default clusterization, too big: " <<
658 if (allLocalPositions.size() !=
size_t(numberOfSubclusters)) {
660 "Returned position vector size " << allLocalPositions.size() <<
" not according to expected number of subclusters: " << numberOfSubclusters <<
661 ". Abort cluster correction...");
668 if (numberOfSubclusters == 1) {
669 finalposition = allLocalPositions[0];
670 finalerrormatrix = allErrorMatrix[0];
678 if (trackPar.covariance()) {
679 localerr =
Amg::Vector2D(std::sqrt((*trackPar.covariance())(0, 0)), std::sqrt((*trackPar.covariance())(1, 1)));
682 double minDistance(1e300);
685 for (
unsigned int i(0);
i < allLocalPositions.size(); ++
i) {
687 square(localpos[0] - allLocalPositions[
i][0]) / localerr[0]
688 + square(localpos[1] - allLocalPositions[
i][1]) / localerr[1];
696 finalposition = allLocalPositions[
index];
697 finalerrormatrix = allErrorMatrix[
index];
◆ initialize()
StatusCode ITk::PixelClusterOnTrackTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& Trk::IRIO_OnTrackCreator::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_applyNNcorrection
bool ITk::PixelClusterOnTrackTool::m_applyNNcorrection {false} |
|
private |
◆ m_applyNNcorrectionProperty
BooleanProperty ITk::PixelClusterOnTrackTool::m_applyNNcorrectionProperty {this, "applyNNcorrection", false} |
|
private |
◆ m_clusterITkErrorKey
◆ m_clusterSplitProbContainer
◆ m_detStore
◆ m_doNotRecalibrateNN
bool ITk::PixelClusterOnTrackTool::m_doNotRecalibrateNN |
|
private |
◆ m_errorStrategy
std::atomic_int ITk::PixelClusterOnTrackTool::m_errorStrategy {2} |
|
mutableprivate |
◆ m_errorStrategyProperty
IntegerProperty ITk::PixelClusterOnTrackTool::m_errorStrategyProperty {this, "ErrorStrategy", 2, "Which calibration of cluster position errors"} |
|
private |
◆ m_evtStore
◆ m_lorentzAngleTool
◆ m_NnClusterizationFactory
◆ m_noNNandBroadErrors
bool ITk::PixelClusterOnTrackTool::m_noNNandBroadErrors |
|
private |
◆ m_pixelErrorScalingKey
◆ m_pixelid
Flag controlling how module distortions are taken into account:
case 0 --—> No distorsions implemented;
case 1 --—> Set curvature (in 1/meter) and twist (in radiant) equal for all modules;
case 2 --—> Read curvatures and twists from textfile containing Survey data;
case 3 --—> Set curvature and twist from Gaussian random generator with mean and RMS coming from Survey data;
case 4 --—> Read curvatures and twists from database (not ready yet); identifier-helper
Definition at line 154 of file ITkPixelClusterOnTrackTool.h.
◆ m_positionStrategy
int ITk::PixelClusterOnTrackTool::m_positionStrategy |
|
private |
toolhandle for central error scaling flag storing if errors need scaling or should be kept nominal
Definition at line 136 of file ITkPixelClusterOnTrackTool.h.
◆ m_splitClusterMapKey
◆ m_usingTIDE_Ambi
bool ITk::PixelClusterOnTrackTool::m_usingTIDE_Ambi |
|
private |
Enable different treatment of cluster errors based on NN information (do only if TIDE ambi is run)
Definition at line 166 of file ITkPixelClusterOnTrackTool.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
int phi_index(const Identifier &id) const
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual bool type(Trk::PrepRawDataType type) const override
Interface method checking the type.
const Amg::Vector3D & etaAxis() const
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
constexpr virtual SurfaceType surfaceType() const override=0
Returns the Surface Type enum for the surface used to define the derived class.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
int readoutSide() const
ReadoutSide.
virtual bool type(PrepRawDataType type) const =0
Interface method checking the type.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
SiLocalPosition positionFromColumnRow(const int column, const int row) const
Given row and column index of a diode, return position of diode center ALTERNATIVE/PREFERED way is to...
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
int eta_index(const Identifier &id) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
constexpr virtual ParametersType type() const override=0
Return the ParametersType enum.
virtual const Amg::Vector3D & normal() const override final
Get reconstruction local normal axes in global frame.
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Amg::Vector2D localPosition() const
Access method for the local coordinates, local parameter definitions differ for each surface type.
int eta_module(const Identifier &id) const
double pT() const
Access method for transverse momentum.
bool gangedPixel() const
return the flag of this cluster containing a gangedPixel
const Amg::Vector2D & localPosition() const
return the local position reference
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
bool isTooBigToBeSplit() const
const Amg::Vector3D & momentum() const
Access method for the momentum.
const Amg::Vector3D & globalPosition() const
return global position reference
#define ATH_MSG_WARNING(x)
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
def delta_phi(phi1, phi2)
const Amg::Vector3D & phiAxis() const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
double eta() const
Access method for pseudorapidity - from momentum.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
int phi_module(const Identifier &id) const
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
static const ProbabilityInfo & getNoSplitProbability()
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual Identifier identify() const override final
identifier of this detector element (inline)
Vertex centroid(const Polygon &p)