Loading [MathJax]/extensions/tex2jax.js
 |
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...
|
|
| DeclareInterfaceID (ITrackHoleSearchTool, 1, 0) |
|
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 712 of file InDetTrackHoleSearchTool.cxx.
714 auto trackTSOS = std::make_unique<Trk::TrackStates>();
724 ATH_MSG_DEBUG(
"No holes on track, copy input track to new track");
728 std::move(trackTSOS),
734 for (
const auto *listOfHole : *listOfHoles) {
735 trackTSOS->push_back(listOfHole);
749 if (fabs(perigee->parameters()[
Trk::qOverP]) > 0.002) {
756 trackTSOS->sort(CompFunc);
764 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 67 of file InDetTrackHoleSearchTool.cxx.
70 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
nullptr;
74 for (
const auto *listOfHole : *listOfHoles) {
78 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 704 of file InDetTrackHoleSearchTool.cxx.
705 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]
◆ DeclareInterfaceID()
◆ 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
◆ 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 83 of file InDetTrackHoleSearchTool.cxx.
85 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
89 for (
const auto *listOfHole : *listOfHoles)
90 output->push_back(listOfHole);
93 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 166 of file InDetTrackHoleSearchTool.cxx.
182 for (
const auto *iterTSOS : *
track.trackStateOnSurfaces()) {
188 if (iterTSOS->measurementOnTrack() !=
nullptr
189 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
190 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
191 id = iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify();
193 }
else if (iterTSOS->trackParameters() !=
nullptr
194 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
195 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
196 id = iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify();
202 mapOfHits.insert(std::pair<const Identifier, const Trk::TrackStateOnSurface*>(
id,iterTSOS));
205 if (!iterTSOS->trackParameters() &&
m_warning<10) {
207 ATH_MSG_WARNING(
"No track parameters available for state of type measurement");
213 if (
m_cosmic && !firstsipar && iterTSOS->trackParameters()) firstsipar=iterTSOS->trackParameters();
214 if (iterTSOS->trackParameters()) {
215 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
216 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
217 +
pow(iterTSOS->trackParameters()->position().y(),2))
218 <<
" Si measurement");
221 if (iterTSOS->trackParameters()) {
222 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
223 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
224 +
pow(iterTSOS->trackParameters()->position().y(),2))
225 <<
" TRT measurement");
231 ATH_MSG_DEBUG(
"Number of Si hits + outliers on original track: " << mapOfHits.size() <<
" , hits only: " << imeas);
239 std::unique_ptr<const Trk::TrackParameters> startParameters;
256 ATH_MSG_ERROR (
"cast to CylinderSurface failed, should never happen !");
268 if (!startParameters) {
269 ATH_MSG_DEBUG(
"no start parameters on SCT cylinder, try TRT ec disc");
296 if (
track.perigeeParameters()) {
297 startParameters.reset(
track.perigeeParameters()->clone());
298 }
else if (
track.trackParameters()->front()) {
303 *(
track.trackParameters()->front()),
311 if (!startParameters) {
312 ATH_MSG_DEBUG(
"No start point obtained, hole search not performed.");
317 bool foundFirst =
false;
321 ATH_MSG_DEBUG(
"We are looking for an extended list of holes, so add eventual holes before first hits");
335 while (iterTSOS!=
track.trackStateOnSurfaces()->end()
343 <<
" r: " << sqrt(
pow(startParameters->
position().x(),2)
347 int nmeas=(
int)
track.measurementsOnTrack()->size();
348 for (; iterTSOS!=
track.trackStateOnSurfaces()->end();++iterTSOS) {
362 if ((*iterTSOS)->measurementOnTrack() !=
nullptr
363 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
364 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
365 id = (*iterTSOS)->measurementOnTrack()->
associatedSurface().associatedDetectorElement()->identify();
366 surf = &(*iterTSOS)->measurementOnTrack()->associatedSurface();
368 }
else if ((*iterTSOS)->trackParameters() !=
nullptr
369 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
370 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
372 surf = &((*iterTSOS)->trackParameters()->associatedSurface());
375 surf=&((*iterTSOS)->trackParameters()->associatedSurface());
385 if(std::abs(startParameters->
position().z())>5000.){
386 ATH_MSG_DEBUG(
"Pathological track parameter well outside of tracking detector");
387 ATH_MSG_DEBUG(
"Propagator might have issue with this, discarding");
392 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
399 if (paramList.empty()) {
404 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
407 for (std::unique_ptr<Trk::TrackParameters>& thisParameters : paramList) {
408 ATH_MSG_VERBOSE(
"extrapolated pos: " << thisParameters->position() <<
" r: " <<
409 sqrt(
pow(thisParameters->position().x(),2)+
pow(thisParameters->position().y(),2)));
413 if ((thisParameters->associatedSurface()).associatedDetectorElement() !=
nullptr &&
414 (thisParameters->associatedSurface()).associatedDetectorElement()->identify() != 0) {
415 id2 = (thisParameters->associatedSurface()).associatedDetectorElement()->identify();
419 startParameters = std::move(thisParameters);
426 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
430 startParameters = std::move(thisParameters);
439 if (iTSOS == mapOfHits.end() && !foundFirst) {
440 ATH_MSG_VERBOSE(
"Si surface before first Si measurement, skip it and continue");
445 if (iTSOS != mapOfHits.end()) {
452 if (iTSOS->second->trackParameters()) {
454 startParameters.reset( iTSOS->second->trackParameters()->clone());
457 startParameters.reset(thisParameters->clone());
462 std::pair<const Trk::TrackParameters*,const bool> trackparampair (thisParameters.release(),
true);
463 if (mapOfPredictions.insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*,const bool> >(
id2,trackparampair)).second) {
467 delete trackparampair.first;
468 trackparampair.first=
nullptr;
480 if (measno==nmeas)
break;
488 ATH_MSG_DEBUG(
"Search for dead modules after the last Si measurement");
496 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
502 if (paramList.empty()) {
503 ATH_MSG_VERBOSE(
"--> Did not manage to extrapolate to another surface, break loop");
505 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
508 for (std::unique_ptr<Trk::TrackParameters>& thisParameter : paramList) {
511 if (thisParameter->associatedSurface().associatedDetectorElement() !=
nullptr &&
512 thisParameter->associatedSurface().associatedDetectorElement()->identify() != 0) {
513 id2 = thisParameter->associatedSurface().associatedDetectorElement()->identify();
517 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
523 std::pair<Trk::TrackParameters*, const bool> trackparampair(
526 .insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*, const bool>>(
527 id2, trackparampair))
529 thisParameter.reset(trackparampair.first->clone());
532 thisParameter.reset(trackparampair.first);
540 startParameters = std::move(thisParameter);
546 boundaryVol =
nullptr;
550 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 98 of file InDetTrackHoleSearchTool.cxx.
100 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
104 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 109 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.
◆ 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 556 of file InDetTrackHoleSearchTool.cxx.
571 unsigned int foundTSOS = 0;
572 int PixelHoles = 0, SctHoles = 0, SctDoubleHoles = 0, PixelDead=0, SctDead=0;
573 std::set<Identifier> SctHoleIds;
576 ATH_MSG_DEBUG(
"Number of hits+outliers: " << mapOfHits.size() <<
" and predicted parameters:" << mapOfPredictions.size());
578 for (std::map<
const Identifier,std::pair<const Trk::TrackParameters*,const bool> >::const_iterator
it = mapOfPredictions.begin();
579 it != mapOfPredictions.end(); ++
it) {
588 if (iTSOS == mapOfHits.end()) {
593 ATH_MSG_VERBOSE(
"Found element is a dead pixel module, add it to the list and continue");
597 ATH_MSG_VERBOSE(
"Found element is a dead SCT module, add it to the list and continue");
611 if (((
it->second).second)) {
613 ATH_MSG_VERBOSE(
"Found element is a Pixel hole, add it to the list and continue");
616 ATH_MSG_VERBOSE(
"Found element is a SCT hole, add it to the list and continue");
624 ATH_MSG_ERROR (
"cast to SiDetectorElement failed, should never happen !");
630 if (SctHoleIds.find(otherId) != SctHoleIds.end()) {
635 SctHoleIds.insert(
id);
639 if (listOfHoles) listOfHoles->push_back(
createHoleTSOS(nextParameters));
648 ATH_MSG_VERBOSE(
"Found TSOS is an outlier, not a hole, skip it and continue");
650 mapOfHits.erase(iTSOS);
658 mapOfHits.erase(iTSOS);
664 << PixelHoles <<
" Pixel holes, "
665 << SctHoles <<
" Sct holes, "
666 << SctDoubleHoles <<
" Double holes");
668 if (listOfHoles)
ATH_MSG_DEBUG(
"==> Size of listOfHoles: " << listOfHoles->size());
670 if (!mapOfHits.empty()) {
671 int ioutliers = 0, imeasurements = 0;
672 for (std::map<const Identifier, const Trk::TrackStateOnSurface*>::const_iterator iter = mapOfHits.begin();
673 iter != mapOfHits.end(); ++iter) {
679 if (imeasurements > 0) {
680 if (PixelHoles+SctHoles+SctDoubleHoles > 0) {
681 ATH_MSG_DEBUG(
"Not all measurements found, but holes. Left measurements: "
682 << imeasurements <<
" outliers: " << ioutliers <<
" found: " << foundTSOS
683 <<
" Pixel holes: " << PixelHoles <<
" Sct holes: " << SctHoles
684 <<
" Double holes: " << SctDoubleHoles);
686 ATH_MSG_DEBUG(
"Problem ? Not all measurements found. Left measurements: "
687 << 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 117 of file InDetTrackHoleSearchTool.cxx.
134 std::map<const Identifier, const Trk::TrackStateOnSurface*> mapOfHits;
146 std::map<const Identifier, std::pair<const Trk::TrackParameters*,const bool> > mapOfPredictions;
149 Gaudi::Hive::currentContext(),
track, partHyp, mapOfHits, mapOfPredictions);
155 ATH_MSG_DEBUG(
"List of hits not properly obtained, abort hole search.");
158 for (
auto & mapOfPrediction : mapOfPredictions) {
159 delete (mapOfPrediction.second).
first;
160 (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
BooleanProperty InDet::InDetTrackHoleSearchTool::m_cosmic {this, "Cosmics", false} |
|
private |
◆ m_countDeadModulesAfterLastHit
BooleanProperty InDet::InDetTrackHoleSearchTool::m_countDeadModulesAfterLastHit {this, "CountDeadModulesAfterLastHit", true} |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_extendedListOfHoles
BooleanProperty InDet::InDetTrackHoleSearchTool::m_extendedListOfHoles {this, "ExtendedListOfHoles", false} |
|
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
IntegerProperty InDet::InDetTrackHoleSearchTool::m_minSiHits {this, "minSiHits", 3} |
|
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.
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)
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
@ 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
constexpr int pow(int base, int exp) noexcept
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