|
ATLAS Offline Software
|
#include <InDetTrackHoleSearchTool.h>
|
| InDetTrackHoleSearchTool (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~InDetTrackHoleSearchTool () |
| default destructor More...
|
|
virtual StatusCode | initialize () |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | finalize () |
| standard Athena-Algorithm method More...
|
|
virtual void | countHoles (const Trk::Track &track, std::vector< int > &information, const Trk::ParticleHypothesis partHyp=Trk::pion) const |
| Input : track, partHyp Output: Changes in information This method first calls the method getMapOfHits to isolate the relevant hits on the track before calling the method performHoleSearchStepWise which then performs the actual hole search. More...
|
|
virtual const Trk::TrackStates * | getHolesOnTrack (const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const |
| Input : track, parthyp Return: A DataVector containing pointers to TrackStateOnSurfaces which each represent an identified hole on the track. More...
|
|
virtual const Trk::Track * | getTrackWithHoles (const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const |
| Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the input track plus the tsos of the identified holes The parthyp argument is relevant for the extrapolation steps in the hole search. More...
|
|
virtual const Trk::Track * | getTrackWithHolesAndOutliers (const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const |
| Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the input track plus the tsos of the identified holes or outliers The parthyp argument is relevant for the extrapolation steps in the hole search. 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 |
|
|
void | searchForHoles (const Trk::Track &track, std::vector< int > *information, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles, const Trk::ParticleHypothesis partHyp=Trk::pion) const |
| Input : track, parthyp Return: Changes in information and/or listOfHoles The interfacing method to the step wise hole search. More...
|
|
bool | getMapOfHits (const EventContext &ctx, const Trk::Track &track, const Trk::ParticleHypothesis partHyp, std::map< const Identifier, const Trk::TrackStateOnSurface * > &mapOfHits, std::map< const Identifier, std::pair< const Trk::TrackParameters *, const bool >> &mapOfPredictions) const |
| Input: track Output: changes in mapOfHits (filling it) and hasTRT Return value: True if filling was successful, false otherwise This method distills the relevant hits out of a given track. More...
|
|
void | performHoleSearchStepWise (std::map< const Identifier, const Trk::TrackStateOnSurface * > &mapOfHits, std::map< const Identifier, std::pair< const Trk::TrackParameters *, const bool > > &mapOfPredictions, std::vector< int > *information, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles) const |
| This method searches for holes in a track. More...
|
|
const Trk::Track * | addHolesToTrack (const Trk::Track &oldTrack, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles) const |
| This Method creates a new Track from the TSOS of the input track combined with the TSOS from listOfHoles. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
This is for the Doxygen-Documentation.
Please delete these lines and fill in information about the Algorithm! Please precede every member function declaration with a short Doxygen comment stating the purpose of this function.
- Author
- Markus Elsing
Definition at line 48 of file InDetTrackHoleSearchTool.h.
◆ StoreGateSvc_t
◆ InDetTrackHoleSearchTool()
InDet::InDetTrackHoleSearchTool::InDetTrackHoleSearchTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~InDetTrackHoleSearchTool()
InDet::InDetTrackHoleSearchTool::~InDetTrackHoleSearchTool |
( |
| ) |
|
|
virtualdefault |
◆ addHolesToTrack()
This Method creates a new Track from the TSOS of the input track combined with the TSOS from listOfHoles.
Definition at line 710 of file InDetTrackHoleSearchTool.cxx.
712 auto trackTSOS = std::make_unique<Trk::TrackStates>();
722 ATH_MSG_DEBUG(
"No holes on track, copy input track to new track");
726 std::move(trackTSOS),
732 for (
const auto *listOfHole : *listOfHoles) {
733 trackTSOS->push_back(listOfHole);
747 if (fabs(perigee->parameters()[
Trk::qOverP]) > 0.002) {
754 trackTSOS->sort(CompFunc);
762 std::move(trackTSOS),
◆ countHoles()
Input : track, partHyp Output: Changes in information This method first calls the method getMapOfHits to isolate the relevant hits on the track before calling the method performHoleSearchStepWise which then performs the actual hole search.
Additionally the Layers of the Pixel Detector which contribute measurements to the track are counted
If problems occur, the information counters for Holes and PixelLayers are reset to -1 flagging them as not set.
Implements Trk::ITrackHoleSearchTool.
Definition at line 72 of file InDetTrackHoleSearchTool.cxx.
75 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
nullptr;
79 for (
const auto *listOfHole : *listOfHoles) {
83 listOfHoles =
nullptr;
◆ createHoleTSOS()
This method creates a TSOS to represent a detected hole.
I creates a new TP from the input and returns a (pointer to a) new TSOS containing the TP and the typeset 'Hole'
Definition at line 702 of file InDetTrackHoleSearchTool.cxx.
703 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
◆ 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
◆ finalize()
StatusCode InDet::InDetTrackHoleSearchTool::finalize |
( |
| ) |
|
|
virtual |
◆ getHolesOnTrack()
Input : track, parthyp Return: A DataVector containing pointers to TrackStateOnSurfaces which each represent an identified hole on the track.
The parthyp argument is relevant for the extrapolation steps in the hole search. Attention: This is a factory, ownership of the return vector is passed to the calling method.
Implements Trk::ITrackHoleSearchTool.
Definition at line 88 of file InDetTrackHoleSearchTool.cxx.
90 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
94 for (
const auto *listOfHole : *listOfHoles)
95 output->push_back(listOfHole);
98 listOfHoles =
nullptr;
◆ getMapOfHits()
Input: track Output: changes in mapOfHits (filling it) and hasTRT Return value: True if filling was successful, false otherwise This method distills the relevant hits out of a given track.
Definition at line 171 of file InDetTrackHoleSearchTool.cxx.
187 for (
const auto *iterTSOS : *
track.trackStateOnSurfaces()) {
193 if (iterTSOS->measurementOnTrack() !=
nullptr
194 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
195 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
196 id = iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify();
198 }
else if (iterTSOS->trackParameters() !=
nullptr
199 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
200 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
201 id = iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify();
207 mapOfHits.insert(std::pair<const Identifier, const Trk::TrackStateOnSurface*>(
id,iterTSOS));
210 if (!iterTSOS->trackParameters() &&
m_warning<10) {
212 ATH_MSG_WARNING(
"No track parameters available for state of type measurement");
218 if (
m_cosmic && !firstsipar && iterTSOS->trackParameters()) firstsipar=iterTSOS->trackParameters();
219 if (iterTSOS->trackParameters()) {
220 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
221 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
222 +
pow(iterTSOS->trackParameters()->position().y(),2))
223 <<
" Si measurement");
226 if (iterTSOS->trackParameters()) {
227 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
228 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
229 +
pow(iterTSOS->trackParameters()->position().y(),2))
230 <<
" TRT measurement");
236 ATH_MSG_DEBUG(
"Number of Si hits + outliers on original track: " << mapOfHits.size() <<
" , hits only: " << imeas);
244 std::unique_ptr<const Trk::TrackParameters> startParameters;
261 ATH_MSG_ERROR (
"cast to CylinderSurface failed, should never happen !");
273 if (!startParameters) {
274 ATH_MSG_DEBUG(
"no start parameters on SCT cylinder, try TRT ec disc");
301 if (
track.perigeeParameters()) {
302 startParameters.reset(
track.perigeeParameters()->clone());
303 }
else if (
track.trackParameters()->front()) {
308 *(
track.trackParameters()->front()),
316 if (!startParameters) {
317 ATH_MSG_DEBUG(
"No start point obtained, hole search not performed.");
322 bool foundFirst =
false;
326 ATH_MSG_DEBUG(
"We are looking for an extended list of holes, so add eventual holes before first hits");
340 while (iterTSOS!=
track.trackStateOnSurfaces()->end()
348 <<
" r: " << sqrt(
pow(startParameters->
position().x(),2)
352 int nmeas=(
int)
track.measurementsOnTrack()->size();
353 for (; iterTSOS!=
track.trackStateOnSurfaces()->end();++iterTSOS) {
367 if ((*iterTSOS)->measurementOnTrack() !=
nullptr
368 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
369 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
370 id = (*iterTSOS)->measurementOnTrack()->
associatedSurface().associatedDetectorElement()->identify();
371 surf = &(*iterTSOS)->measurementOnTrack()->associatedSurface();
373 }
else if ((*iterTSOS)->trackParameters() !=
nullptr
374 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
375 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
377 surf = &((*iterTSOS)->trackParameters()->associatedSurface());
380 surf=&((*iterTSOS)->trackParameters()->associatedSurface());
390 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
397 if (paramList.empty()) {
402 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
405 for (std::unique_ptr<Trk::TrackParameters>& thisParameters : paramList) {
406 ATH_MSG_VERBOSE(
"extrapolated pos: " << thisParameters->position() <<
" r: " <<
407 sqrt(
pow(thisParameters->position().x(),2)+
pow(thisParameters->position().y(),2)));
411 if ((thisParameters->associatedSurface()).associatedDetectorElement() !=
nullptr &&
412 (thisParameters->associatedSurface()).associatedDetectorElement()->identify() != 0) {
413 id2 = (thisParameters->associatedSurface()).associatedDetectorElement()->identify();
417 startParameters = std::move(thisParameters);
424 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
428 startParameters = std::move(thisParameters);
437 if (iTSOS == mapOfHits.end() && !foundFirst) {
438 ATH_MSG_VERBOSE(
"Si surface before first Si measurement, skip it and continue");
443 if (iTSOS != mapOfHits.end()) {
450 if (iTSOS->second->trackParameters()) {
452 startParameters.reset( iTSOS->second->trackParameters()->clone());
455 startParameters.reset(thisParameters->clone());
460 std::pair<const Trk::TrackParameters*,const bool> trackparampair (thisParameters.release(),
true);
461 if (mapOfPredictions.insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*,const bool> >(
id2,trackparampair)).second) {
465 delete trackparampair.first;
466 trackparampair.first=
nullptr;
478 if (measno==nmeas)
break;
486 ATH_MSG_DEBUG(
"Search for dead modules after the last Si measurement");
494 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
500 if (paramList.empty()) {
501 ATH_MSG_VERBOSE(
"--> Did not manage to extrapolate to another surface, break loop");
503 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
506 for (std::unique_ptr<Trk::TrackParameters>& thisParameter : paramList) {
509 if (thisParameter->associatedSurface().associatedDetectorElement() !=
nullptr &&
510 thisParameter->associatedSurface().associatedDetectorElement()->identify() != 0) {
511 id2 = thisParameter->associatedSurface().associatedDetectorElement()->identify();
515 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
521 std::pair<Trk::TrackParameters*, const bool> trackparampair(
524 .insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*, const bool>>(
525 id2, trackparampair))
527 thisParameter.reset(trackparampair.first->clone());
530 thisParameter.reset(trackparampair.first);
538 startParameters = std::move(thisParameter);
544 boundaryVol =
nullptr;
548 ATH_MSG_DEBUG(
"Number of Predictions found: " << mapOfPredictions.size());
◆ getTrackWithHoles()
Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the input track plus the tsos of the identified holes The parthyp argument is relevant for the extrapolation steps in the hole search.
Attention: This is a factory, ownership of the return track is passed to the calling method.
Implements Trk::ITrackHoleSearchTool.
Definition at line 103 of file InDetTrackHoleSearchTool.cxx.
105 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
109 listOfHoles =
nullptr;
◆ getTrackWithHolesAndOutliers()
Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the input track plus the tsos of the identified holes or outliers The parthyp argument is relevant for the extrapolation steps in the hole search.
Attention: This is a factory, ownership of the return track is passed to the calling method.
Implements Trk::ITrackHoleSearchTool.
Definition at line 114 of file InDetTrackHoleSearchTool.cxx.
◆ initialize()
StatusCode InDet::InDetTrackHoleSearchTool::initialize |
( |
| ) |
|
|
virtual |
◆ 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()
const InterfaceID & Trk::ITrackHoleSearchTool::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.
◆ performHoleSearchStepWise()
This method searches for holes in a track.
It receives a list of detector responses sorted along the track. The TSOS in the list of hits should contain TrackParameters or at least MeasurementOnTrack. The method extrapolates along the tracks, using the hit information to update the extrapolation procedure. Surface without detector responses, which are crossed by the extrapolation are counted as holes. The number of holes found is returned through the information array. Input: mapOfHits,mapOfPredicitons Output: Changes in information,listOfHoles
This function looks for holes in a given set of TrackStateOnSurface (TSOS) within the Si-detectors. In order to do so, an extrapolation is performed from detector element to the next and compared to the ones in the TSOS. If surfaces other than the ones in the track are crossed, these are possible holes or dead modules. Checks for sensitivity of struck material are performed.
The function requires the TSOS to have either TrackParameters (should have) or a MeasurementBase (must have). The startPoint of an extrapolation is required to be a TP. In case only a MB is present, the extrapolation Startpoint is set by the result TP of the last extrapolation, if possible.
Definition at line 554 of file InDetTrackHoleSearchTool.cxx.
569 unsigned int foundTSOS = 0;
570 int PixelHoles = 0, SctHoles = 0, SctDoubleHoles = 0, PixelDead=0, SctDead=0;
571 std::set<Identifier> SctHoleIds;
574 ATH_MSG_DEBUG(
"Number of hits+outliers: " << mapOfHits.size() <<
" and predicted parameters:" << mapOfPredictions.size());
576 for (std::map<
const Identifier,std::pair<const Trk::TrackParameters*,const bool> >::const_iterator
it = mapOfPredictions.begin();
577 it != mapOfPredictions.end(); ++
it) {
586 if (iTSOS == mapOfHits.end()) {
591 ATH_MSG_VERBOSE(
"Found element is a dead pixel module, add it to the list and continue");
595 ATH_MSG_VERBOSE(
"Found element is a dead SCT module, add it to the list and continue");
609 if (((
it->second).second)) {
611 ATH_MSG_VERBOSE(
"Found element is a Pixel hole, add it to the list and continue");
614 ATH_MSG_VERBOSE(
"Found element is a SCT hole, add it to the list and continue");
622 ATH_MSG_ERROR (
"cast to SiDetectorElement failed, should never happen !");
628 if (SctHoleIds.find(otherId) != SctHoleIds.end()) {
633 SctHoleIds.insert(
id);
637 if (listOfHoles) listOfHoles->push_back(
createHoleTSOS(nextParameters));
646 ATH_MSG_VERBOSE(
"Found TSOS is an outlier, not a hole, skip it and continue");
648 mapOfHits.erase(iTSOS);
656 mapOfHits.erase(iTSOS);
662 << PixelHoles <<
" Pixel holes, "
663 << SctHoles <<
" Sct holes, "
664 << SctDoubleHoles <<
" Double holes");
666 if (listOfHoles)
ATH_MSG_DEBUG(
"==> Size of listOfHoles: " << listOfHoles->size());
668 if (!mapOfHits.empty()) {
669 int ioutliers = 0, imeasurements = 0;
670 for (std::map<const Identifier, const Trk::TrackStateOnSurface*>::const_iterator iter = mapOfHits.begin();
671 iter != mapOfHits.end(); ++iter) {
677 if (imeasurements > 0) {
678 if (PixelHoles+SctHoles+SctDoubleHoles > 0) {
679 ATH_MSG_DEBUG(
"Not all measurements found, but holes. Left measurements: "
680 << imeasurements <<
" outliers: " << ioutliers <<
" found: " << foundTSOS
681 <<
" Pixel holes: " << PixelHoles <<
" Sct holes: " << SctHoles
682 <<
" Double holes: " << SctDoubleHoles);
684 ATH_MSG_DEBUG(
"Problem ? Not all measurements found. Left measurements: "
685 << imeasurements <<
" outliers: " << ioutliers <<
" found: " << foundTSOS);
◆ renounce()
◆ renounceArray()
◆ searchForHoles()
Input : track, parthyp Return: Changes in information and/or listOfHoles The interfacing method to the step wise hole search.
Information and listOfHoles have to be given as pointers, zeros can be given in order to suppress the connected functionality (counting holes / producing hole TSOSs). This Method is not a member of the ITrackHoleSearchTool interface.
Definition at line 122 of file InDetTrackHoleSearchTool.cxx.
139 std::map<const Identifier, const Trk::TrackStateOnSurface*> mapOfHits;
151 std::map<const Identifier, std::pair<const Trk::TrackParameters*,const bool> > mapOfPredictions;
154 Gaudi::Hive::currentContext(),
track, partHyp, mapOfHits, mapOfPredictions);
160 ATH_MSG_DEBUG(
"List of hits not properly obtained, abort hole search.");
163 for (
auto & mapOfPrediction : mapOfPredictions) {
164 delete (mapOfPrediction.second).
first;
165 (mapOfPrediction.second).
first =
nullptr;
◆ 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_atlasId
◆ m_boundaryCheckTool
Initial value:{
this,
"BoundaryCheckTool",
"InDet::InDetBoundaryCheckTool",
"Boundary checking tool for detector sensitivities"
}
Definition at line 119 of file InDetTrackHoleSearchTool.h.
◆ m_cosmic
bool InDet::InDetTrackHoleSearchTool::m_cosmic |
|
private |
◆ m_countDeadModulesAfterLastHit
bool InDet::InDetTrackHoleSearchTool::m_countDeadModulesAfterLastHit |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_extendedListOfHoles
bool InDet::InDetTrackHoleSearchTool::m_extendedListOfHoles |
|
private |
◆ m_extrapolator
Initial value:{
this,
"Extrapolator",
"Trk::Extrapolator/InDetExtrapolator",
"Extrapolator used to extrapolate to layers"
}
Pointer to Extrapolator AlgTool.
Definition at line 113 of file InDetTrackHoleSearchTool.h.
◆ m_minSiHits
int InDet::InDetTrackHoleSearchTool::m_minSiHits |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_warning
std::atomic_int InDet::InDetTrackHoleSearchTool::m_warning |
|
mutableprivate |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
bool is_pixel(Identifier id) const
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Const iterator class for DataVector/DataList.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
@ DeadElement
outside the element
@ Insensitive
close to the edge of an active element
bool is_sct(Identifier id) const
const Amg::Vector3D & position() const
Access method for the position.
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::unique_ptr< ParametersBase< DIM, T > > uniqueClone() const
clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existi...
@ numberOfSCTDeadSensors
number of TRT hits
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool is_trt(Identifier id) const
virtual Identifier identify() const =0
Identifier.
#define ATH_MSG_VERBOSE(x)
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...
void stable_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of stable_sort for DataVector/List.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ numberOfTRTDeadStraws
number of TRT tube hits
virtual const S & associatedSurface() const override final
Access to the Surface method.
Class providing comparison function, or relational definition, for sorting MeasurementBase objects.
DataVector< const Trk::TrackStateOnSurface > TrackStates
@ Hole
A hole on the track - this is defined in the following way.
::StatusCode StatusCode
StatusCode definition for legacy code.
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
@ Outside
with the insensitive area of an active element
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const Perigee * perigeeParameters() const
return Perigee.
represents the track state (measurement, material, fit parameters and quality) at a surface.
const SiDetectorElement * otherSide() const
Useful for SCT only.
std::unique_ptr< FitQuality > uniqueClone() const
NVI uniqueClone.
const Amg::Vector3D & momentum() const
Access method for the momentum.
#define ATH_MSG_WARNING(x)
const TrackingVolume * trackingVolume(const std::string &name) const
return the tracking Volume by name, 0 if it doesn't exist
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ Error
within the nominally active area of a dead element
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
virtual Identifier identify() const override final
identifier of this detector element (inline)
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
@ OnEdge
within the sensitive area of an active element