|
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 EventContext &ctx=Gaudi::Hive::currentContext()) 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."} |
|
IntegerProperty | 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 |
|
const PixelID * | m_pixelid = nullptr |
| 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...
|
|
BooleanProperty | m_doNotRecalibrateNN {this, "doNotRecalibrateNN", false} |
|
BooleanProperty | m_noNNandBroadErrors {this, "noNNandBroadErrors", false} |
|
BooleanProperty | m_usingTIDE_Ambi {this, "RunningTIDE_Ambi", false} |
| Enable different treatment of cluster errors based on NN information (do only if TIDE ambi is run) More...
|
|
SG::ReadHandleKey< InDet::PixelGangedClusterAmbiguities > | m_splitClusterMapKey {this, "SplitClusterAmbiguityMap", ""} |
|
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 106 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 143 of file ITkPixelClusterOnTrackTool.cxx.
148 const double TOPHAT_SIGMA = 1. / std::sqrt(12.);
175 if (
pix->rdoList().empty()) {
176 ATH_MSG_WARNING(
"Pixel RDO-list size is 0, check integrity of pixel clusters! stop ROT creation.");
187 float trkphicomp = my_track.dot(my_phiax);
188 float trketacomp = my_track.dot(my_etaax);
189 float trknormcomp = my_track.dot(my_normal);
190 double bowphi = std::atan2(trkphicomp, trknormcomp);
191 double boweta = std::atan2(trketacomp, trknormcomp);
193 float tanl =
m_lorentzAngleTool->getTanLorentzAngle(iH, Gaudi::Hive::currentContext());
197 if (bowphi >
M_PI *0.5) {
200 if (bowphi < -
M_PI *0.5) {
209 double thetaloc = -999.;
210 if (boweta > -0.5 *
M_PI && boweta <
M_PI / 2.) {
211 thetaloc = M_PI_2 - boweta;
212 }
else if (boweta > M_PI_2 && boweta <
M_PI) {
213 thetaloc = 1.5 *
M_PI - boweta;
215 thetaloc = -M_PI_2 - boweta;
217 double etaloc = -1 *
log(
tan(thetaloc * 0.5));
223 double PixTrkPt = trackPar.
pT();
224 double PixTrkEta = trackPar.
eta();
225 ATH_MSG_VERBOSE(
"tanl = " << tanl <<
" readout side is " << readoutside <<
226 " module " << PixEtaModule <<
" " << PixPhiModule <<
227 " track pt, eta = " << PixTrkPt <<
" " << PixTrkEta <<
228 " track momentum phi, norm = " << trkphicomp <<
" " <<
229 trknormcomp <<
" bowphi = " << bowphi <<
" angle = " <<
angle);
231 float omegaphi =
pix->omegax();
232 float omegaeta =
pix->omegay();
233 double localphi = -9999.;
234 double localeta = -9999.;
236 const std::vector<Identifier> & rdos =
pix->rdoList();
242 for (
const auto & rId:rdos) {
251 meanpos = meanpos / rdos.size();
262 double shift =
m_lorentzAngleTool->getLorentzShift(iH, Gaudi::Hive::currentContext());
263 int nrows = rowmax - rowmin + 1;
264 int ncol = colmax - colmin + 1;
273 std::pair<double,double> delta = offlineITkCalibDataHandle->getClusterErrorData()->getDelta(&element_id,nrows,
angle,ncol,etaloc);
274 double delta_phi = nrows != 1 ? delta.first : 0.;
275 double delta_eta = ncol != 1 ? delta.second : 0.;
277 localeta += delta_eta*(omegaeta-0.5);
281 localphi = meanpos.xPhi() + shift;
282 localeta = meanpos.xEta();
294 if (std::abs(
angle) > 1) {
298 ATH_MSG_VERBOSE(
"Shallow track with tanl = " << tanl <<
" bowphi = " <<
299 bowphi <<
" angle = " <<
angle <<
" width.z = " <<
width.z() <<
300 " errphi = " << errphi <<
" erreta = " << erreta);
302 errphi =
width.phiR() * TOPHAT_SIGMA;
303 erreta =
width.z() * TOPHAT_SIGMA;
305 errphi = (
width.phiR() / nrows) * TOPHAT_SIGMA;
306 erreta = (
width.z() / ncol) * TOPHAT_SIGMA;
308 std::pair<double,double> delta_err = offlineITkCalibDataHandle->getClusterErrorData()->getDeltaError(&element_id);
309 errphi = nrows != 1 ? delta_err.first : (
width.phiR()/nrows)*TOPHAT_SIGMA;
310 erreta = ncol != 1 ? delta_err.second : (
width.z()/ncol)*TOPHAT_SIGMA;
325 cov(0, 0) = errphi * errphi;
328 cov(1, 1) = erreta * erreta;
336 cov = Trk::ErrorScalingCast<PixelRIO_OnTrackErrorScaling>(*error_scaling)
343 iH, glob,
pix->gangedPixel(), isbroad);
◆ correctNN()
Definition at line 370 of file ITkPixelClusterOnTrackTool.cxx.
379 if (pixelPrepCluster ==
nullptr) {
386 ATH_MSG_WARNING(
"Cannot access detector element. Aborting cluster correction...");
400 std::move(
cov), iH, glob,
410 if (!
getErrorsTIDE_Ambi(pixelPrepCluster, trackPar, finalposition, finalerrormatrix)) {
422 <<
" +/- " << std::sqrt(pixelPrepCluster->
localCovariance()(1, 1)) <<
"\n"
423 <<
" Final position x: " << finalposition[0]
424 <<
" +/- " << std::sqrt(finalerrormatrix(0, 0))
425 <<
" y: " << finalposition[1] <<
" +/- "
426 <<std::sqrt(finalerrormatrix(1, 1)) );
432 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);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ 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 454 of file ITkPixelClusterOnTrackTool.cxx.
458 std::vector<Amg::Vector2D> vectorOfPositions;
459 int numberOfSubclusters = 1;
460 vectorOfPositions.push_back(pixelPrepCluster->
localPosition());
464 InDet::PixelGangedClusterAmbiguities::const_iterator mapBegin = splitClusterMap->begin();
465 InDet::PixelGangedClusterAmbiguities::const_iterator mapEnd = splitClusterMap->end();
466 for (InDet::PixelGangedClusterAmbiguities::const_iterator mapIter = mapBegin; mapIter != mapEnd; ++mapIter) {
469 if (
first == pixelPrepCluster &&
second != pixelPrepCluster) {
470 ATH_MSG_DEBUG(
"Found additional split cluster in ambiguity map (+=1).");
471 numberOfSubclusters += 1;
477 if (pixelAddCluster ==
nullptr) {
478 ATH_MSG_WARNING(
"Pixel ambiguity map has empty pixel cluster. Please DEBUG!");
481 vectorOfPositions.push_back(pixelAddCluster->
localPosition());
494 "Parameters are not at a plane ! Aborting cluster correction... ");
498 std::vector<Amg::Vector2D> allLocalPositions;
499 std::vector<Amg::MatrixX> allErrorMatrix;
505 numberOfSubclusters);
507 if (allLocalPositions.empty()) {
508 ATH_MSG_DEBUG(
" Cluster cannot be treated by NN. Giving back to default clusterization " );
513 if (allLocalPositions.size() !=
size_t(numberOfSubclusters)) {
514 ATH_MSG_WARNING(
"Returned position vector size " << allLocalPositions.size() <<
515 " not according to expected number of subclusters: " << numberOfSubclusters <<
". Abort cluster correction..." );
523 if (numberOfSubclusters == 1) {
524 finalposition = allLocalPositions[0];
525 finalerrormatrix = allErrorMatrix[0];
528 else if (numberOfSubclusters == 2) {
530 square(vectorOfPositions[0][0] - allLocalPositions[0][0]) / allErrorMatrix[0](0, 0) +
531 square(vectorOfPositions[1][0] - allLocalPositions[1][0]) / allErrorMatrix[1](0, 0) +
532 square(vectorOfPositions[0][1] - allLocalPositions[0][1]) / allErrorMatrix[0](1, 1) +
533 square(vectorOfPositions[1][1] - allLocalPositions[1][1]) / allErrorMatrix[1](1, 1);
536 square(vectorOfPositions[1][0] - allLocalPositions[0][0]) / allErrorMatrix[0](0, 0) +
537 square(vectorOfPositions[0][0] - allLocalPositions[1][0]) / allErrorMatrix[1](0, 0) +
538 square(vectorOfPositions[1][1] - allLocalPositions[0][1]) / allErrorMatrix[0](1, 1) +
539 square(vectorOfPositions[0][1] - allLocalPositions[1][1]) / allErrorMatrix[1](1, 1);
542 " Old pix (1) x: " << vectorOfPositions[0][0] <<
" y: " << vectorOfPositions[0][1] <<
"\n"
543 <<
" Old pix (2) x: " << vectorOfPositions[1][0] <<
" y: " << vectorOfPositions[1][1] <<
"\n"
544 <<
" Pix (1) x: " << allLocalPositions[0][0] <<
" +/- " << std::sqrt(allErrorMatrix[0](0, 0))
545 <<
" y: " << allLocalPositions[0][1] <<
" +/- " << std::sqrt(allErrorMatrix[0](1, 1)) <<
"\n"
546 <<
" Pix (2) x: " << allLocalPositions[1][0] <<
" +/- " << std::sqrt(allErrorMatrix[1](0, 0))
547 <<
" y: " << allLocalPositions[1][1] <<
" +/- " << std::sqrt(allErrorMatrix[1](1, 1)) <<
"\n"
548 <<
" Old (1) new (1) dist: " << std::sqrt(distancesq1) <<
" Old (1) new (2) " << std::sqrt(distancesq2) );
551 if (distancesq1 < distancesq2) {
552 finalposition = allLocalPositions[0];
553 finalerrormatrix = allErrorMatrix[0];
555 finalposition = allLocalPositions[1];
556 finalerrormatrix = allErrorMatrix[1];
561 else if (numberOfSubclusters == 3) {
564 distances[0] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 0, 1, 2);
565 distances[1] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 0, 2, 1);
566 distances[2] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 1, 0, 2);
567 distances[3] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 1, 2, 0);
568 distances[4] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 2, 0, 1);
569 distances[5] =
distance(vectorOfPositions, allLocalPositions, allErrorMatrix, 2, 1, 0);
571 int smallestDistanceIndex = -10;
572 double minDistance = 1e10;
574 for (
int i = 0;
i < 6;
i++) {
577 if (distances[
i] < minDistance) {
578 minDistance = distances[
i];
579 smallestDistanceIndex =
i;
583 ATH_MSG_DEBUG(
" The minimum distance is : " << minDistance <<
" for index: " << smallestDistanceIndex);
585 if (smallestDistanceIndex == 0 || smallestDistanceIndex == 1) {
586 finalposition = allLocalPositions[0];
587 finalerrormatrix = allErrorMatrix[0];
589 if (smallestDistanceIndex == 2 || smallestDistanceIndex == 4) {
590 finalposition = allLocalPositions[1];
591 finalerrormatrix = allErrorMatrix[1];
593 if (smallestDistanceIndex == 3 || smallestDistanceIndex == 5) {
594 finalposition = allLocalPositions[2];
595 finalerrormatrix = allErrorMatrix[2];
◆ getErrorsTIDE_Ambi()
Definition at line 602 of file ITkPixelClusterOnTrackTool.cxx.
607 std::vector<Amg::Vector2D> vectorOfPositions;
608 int numberOfSubclusters = 1;
611 numberOfSubclusters = 1 + splitClusterMap->count(pixelPrepCluster);
613 if (splitClusterMap->count(pixelPrepCluster) == 0 && splitProb.
isSplit()) {
614 numberOfSubclusters = 2;
616 if (splitClusterMap->count(pixelPrepCluster) != 0 && !splitProb.
isSplit()) {
617 numberOfSubclusters = 1;
624 ATH_MSG_WARNING(
"Parameters are not at a plane surface ! Aborting cluster "
629 std::vector<Amg::Vector2D> allLocalPositions;
630 std::vector<Amg::MatrixX> allErrorMatrix;
636 numberOfSubclusters);
638 if (allLocalPositions.empty()) {
640 " Cluster cannot be treated by NN. Giving back to default clusterization, too big: " <<
645 if (allLocalPositions.size() !=
size_t(numberOfSubclusters)) {
647 "Returned position vector size " << allLocalPositions.size() <<
" not according to expected number of subclusters: " << numberOfSubclusters <<
648 ". Abort cluster correction...");
655 if (numberOfSubclusters == 1) {
656 finalposition = allLocalPositions[0];
657 finalerrormatrix = allErrorMatrix[0];
665 if (trackPar.covariance()) {
666 localerr =
Amg::Vector2D(std::sqrt((*trackPar.covariance())(0, 0)), std::sqrt((*trackPar.covariance())(1, 1)));
669 double minDistance(1e300);
672 for (
unsigned int i(0);
i < allLocalPositions.size(); ++
i) {
674 square(localpos[0] - allLocalPositions[
i][0]) / localerr[0]
675 + square(localpos[1] - allLocalPositions[
i][1]) / localerr[1];
683 finalposition = allLocalPositions[
index];
684 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
BooleanProperty ITk::PixelClusterOnTrackTool::m_doNotRecalibrateNN {this, "doNotRecalibrateNN", false} |
|
private |
◆ m_errorStrategy
std::atomic_int ITk::PixelClusterOnTrackTool::m_errorStrategy {2} |
|
mutableprivate |
◆ m_errorStrategyProperty
IntegerProperty ITk::PixelClusterOnTrackTool::m_errorStrategyProperty |
|
private |
◆ m_evtStore
◆ m_lorentzAngleTool
◆ m_NnClusterizationFactory
Initial value:{this, "NnClusterizationFactory",
"InDet::NnClusterizationFactory/NnClusterizationFactory"}
NN clusterizationi factory for NN based positions and errors.
Definition at line 163 of file ITkPixelClusterOnTrackTool.h.
◆ m_noNNandBroadErrors
BooleanProperty ITk::PixelClusterOnTrackTool::m_noNNandBroadErrors {this, "noNNandBroadErrors", false} |
|
private |
◆ m_pixelErrorScalingKey
◆ m_pixelid
const PixelID* ITk::PixelClusterOnTrackTool::m_pixelid = nullptr |
|
private |
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 156 of file ITkPixelClusterOnTrackTool.h.
◆ m_positionStrategy
IntegerProperty ITk::PixelClusterOnTrackTool::m_positionStrategy |
|
private |
Initial value:{this, "PositionStrategy", 1,
"Which calibration of cluster positions"}
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
BooleanProperty ITk::PixelClusterOnTrackTool::m_usingTIDE_Ambi {this, "RunningTIDE_Ambi", false} |
|
private |
Enable different treatment of cluster errors based on NN information (do only if TIDE ambi is run)
Definition at line 170 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.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
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)