|
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 711 of file InDetTrackHoleSearchTool.cxx.
713 auto trackTSOS = std::make_unique<Trk::TrackStates>();
723 ATH_MSG_DEBUG(
"No holes on track, copy input track to new track");
727 std::move(trackTSOS),
733 for (
const auto *listOfHole : *listOfHoles) {
734 trackTSOS->push_back(listOfHole);
748 if (fabs(perigee->parameters()[
Trk::qOverP]) > 0.002) {
755 trackTSOS->sort(CompFunc);
763 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 66 of file InDetTrackHoleSearchTool.cxx.
69 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
nullptr;
73 for (
const auto *listOfHole : *listOfHoles) {
77 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 703 of file InDetTrackHoleSearchTool.cxx.
704 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 82 of file InDetTrackHoleSearchTool.cxx.
84 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
88 for (
const auto *listOfHole : *listOfHoles)
89 output->push_back(listOfHole);
92 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 165 of file InDetTrackHoleSearchTool.cxx.
181 for (
const auto *iterTSOS : *
track.trackStateOnSurfaces()) {
187 if (iterTSOS->measurementOnTrack() !=
nullptr
188 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
189 && iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
190 id = iterTSOS->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify();
192 }
else if (iterTSOS->trackParameters() !=
nullptr
193 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
194 && iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
195 id = iterTSOS->trackParameters()->associatedSurface().associatedDetectorElement()->identify();
201 mapOfHits.insert(std::pair<const Identifier, const Trk::TrackStateOnSurface*>(
id,iterTSOS));
204 if (!iterTSOS->trackParameters() &&
m_warning<10) {
206 ATH_MSG_WARNING(
"No track parameters available for state of type measurement");
212 if (
m_cosmic && !firstsipar && iterTSOS->trackParameters()) firstsipar=iterTSOS->trackParameters();
213 if (iterTSOS->trackParameters()) {
214 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
215 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
216 +
pow(iterTSOS->trackParameters()->position().y(),2))
217 <<
" Si measurement");
220 if (iterTSOS->trackParameters()) {
221 ATH_MSG_VERBOSE(
"TSOS pos: " << iterTSOS->trackParameters()->position()
222 <<
" r: " << sqrt(
pow(iterTSOS->trackParameters()->position().x(),2)
223 +
pow(iterTSOS->trackParameters()->position().y(),2))
224 <<
" TRT measurement");
230 ATH_MSG_DEBUG(
"Number of Si hits + outliers on original track: " << mapOfHits.size() <<
" , hits only: " << imeas);
238 std::unique_ptr<const Trk::TrackParameters> startParameters;
255 ATH_MSG_ERROR (
"cast to CylinderSurface failed, should never happen !");
267 if (!startParameters) {
268 ATH_MSG_DEBUG(
"no start parameters on SCT cylinder, try TRT ec disc");
295 if (
track.perigeeParameters()) {
296 startParameters.reset(
track.perigeeParameters()->clone());
297 }
else if (
track.trackParameters()->front()) {
302 *(
track.trackParameters()->front()),
310 if (!startParameters) {
311 ATH_MSG_DEBUG(
"No start point obtained, hole search not performed.");
316 bool foundFirst =
false;
320 ATH_MSG_DEBUG(
"We are looking for an extended list of holes, so add eventual holes before first hits");
334 while (iterTSOS!=
track.trackStateOnSurfaces()->end()
342 <<
" r: " << sqrt(
pow(startParameters->
position().x(),2)
346 int nmeas=(
int)
track.measurementsOnTrack()->size();
347 for (; iterTSOS!=
track.trackStateOnSurfaces()->end();++iterTSOS) {
361 if ((*iterTSOS)->measurementOnTrack() !=
nullptr
362 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement() !=
nullptr
363 && (*iterTSOS)->measurementOnTrack()->associatedSurface().associatedDetectorElement()->identify() != 0) {
364 id = (*iterTSOS)->measurementOnTrack()->
associatedSurface().associatedDetectorElement()->identify();
365 surf = &(*iterTSOS)->measurementOnTrack()->associatedSurface();
367 }
else if ((*iterTSOS)->trackParameters() !=
nullptr
368 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr
369 && (*iterTSOS)->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0) {
371 surf = &((*iterTSOS)->trackParameters()->associatedSurface());
374 surf=&((*iterTSOS)->trackParameters()->associatedSurface());
384 if(std::abs(startParameters->
position().z())>5000.){
385 ATH_MSG_DEBUG(
"Pathological track parameter well outside of tracking detector");
386 ATH_MSG_DEBUG(
"Propagator might have issue with this, discarding");
391 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
398 if (paramList.empty()) {
403 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
406 for (std::unique_ptr<Trk::TrackParameters>& thisParameters : paramList) {
407 ATH_MSG_VERBOSE(
"extrapolated pos: " << thisParameters->position() <<
" r: " <<
408 sqrt(
pow(thisParameters->position().x(),2)+
pow(thisParameters->position().y(),2)));
412 if ((thisParameters->associatedSurface()).associatedDetectorElement() !=
nullptr &&
413 (thisParameters->associatedSurface()).associatedDetectorElement()->identify() != 0) {
414 id2 = (thisParameters->associatedSurface()).associatedDetectorElement()->identify();
418 startParameters = std::move(thisParameters);
425 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
429 startParameters = std::move(thisParameters);
438 if (iTSOS == mapOfHits.end() && !foundFirst) {
439 ATH_MSG_VERBOSE(
"Si surface before first Si measurement, skip it and continue");
444 if (iTSOS != mapOfHits.end()) {
451 if (iTSOS->second->trackParameters()) {
453 startParameters.reset( iTSOS->second->trackParameters()->clone());
456 startParameters.reset(thisParameters->clone());
461 std::pair<const Trk::TrackParameters*,const bool> trackparampair (thisParameters.release(),
true);
462 if (mapOfPredictions.insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*,const bool> >(
id2,trackparampair)).second) {
466 delete trackparampair.first;
467 trackparampair.first=
nullptr;
479 if (measno==nmeas)
break;
487 ATH_MSG_DEBUG(
"Search for dead modules after the last Si measurement");
495 std::vector<std::unique_ptr<Trk::TrackParameters> > paramList =
501 if (paramList.empty()) {
502 ATH_MSG_VERBOSE(
"--> Did not manage to extrapolate to another surface, break loop");
504 ATH_MSG_VERBOSE(
"Number of parameters in this step: " << paramList.size());
507 for (std::unique_ptr<Trk::TrackParameters>& thisParameter : paramList) {
510 if (thisParameter->associatedSurface().associatedDetectorElement() !=
nullptr &&
511 thisParameter->associatedSurface().associatedDetectorElement()->identify() != 0) {
512 id2 = thisParameter->associatedSurface().associatedDetectorElement()->identify();
516 ATH_MSG_VERBOSE(
"Surface is not Pixel or SCT, stop loop over parameters in this step");
522 std::pair<Trk::TrackParameters*, const bool> trackparampair(
525 .insert(std::pair<
const Identifier, std::pair<const Trk::TrackParameters*, const bool>>(
526 id2, trackparampair))
528 thisParameter.reset(trackparampair.first->clone());
531 thisParameter.reset(trackparampair.first);
539 startParameters = std::move(thisParameter);
545 boundaryVol =
nullptr;
549 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 97 of file InDetTrackHoleSearchTool.cxx.
99 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles =
new std::vector<const Trk::TrackStateOnSurface*>;
103 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 108 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 555 of file InDetTrackHoleSearchTool.cxx.
570 unsigned int foundTSOS = 0;
571 int PixelHoles = 0, SctHoles = 0, SctDoubleHoles = 0, PixelDead=0, SctDead=0;
572 std::set<Identifier> SctHoleIds;
575 ATH_MSG_DEBUG(
"Number of hits+outliers: " << mapOfHits.size() <<
" and predicted parameters:" << mapOfPredictions.size());
577 for (std::map<
const Identifier,std::pair<const Trk::TrackParameters*,const bool> >::const_iterator
it = mapOfPredictions.begin();
578 it != mapOfPredictions.end(); ++
it) {
587 if (iTSOS == mapOfHits.end()) {
592 ATH_MSG_VERBOSE(
"Found element is a dead pixel module, add it to the list and continue");
596 ATH_MSG_VERBOSE(
"Found element is a dead SCT module, add it to the list and continue");
610 if (((
it->second).second)) {
612 ATH_MSG_VERBOSE(
"Found element is a Pixel hole, add it to the list and continue");
615 ATH_MSG_VERBOSE(
"Found element is a SCT hole, add it to the list and continue");
623 ATH_MSG_ERROR (
"cast to SiDetectorElement failed, should never happen !");
629 if (SctHoleIds.find(otherId) != SctHoleIds.end()) {
634 SctHoleIds.insert(
id);
638 if (listOfHoles) listOfHoles->push_back(
createHoleTSOS(nextParameters));
647 ATH_MSG_VERBOSE(
"Found TSOS is an outlier, not a hole, skip it and continue");
649 mapOfHits.erase(iTSOS);
657 mapOfHits.erase(iTSOS);
663 << PixelHoles <<
" Pixel holes, "
664 << SctHoles <<
" Sct holes, "
665 << SctDoubleHoles <<
" Double holes");
667 if (listOfHoles)
ATH_MSG_DEBUG(
"==> Size of listOfHoles: " << listOfHoles->size());
669 if (!mapOfHits.empty()) {
670 int ioutliers = 0, imeasurements = 0;
671 for (std::map<const Identifier, const Trk::TrackStateOnSurface*>::const_iterator iter = mapOfHits.begin();
672 iter != mapOfHits.end(); ++iter) {
678 if (imeasurements > 0) {
679 if (PixelHoles+SctHoles+SctDoubleHoles > 0) {
680 ATH_MSG_DEBUG(
"Not all measurements found, but holes. Left measurements: "
681 << imeasurements <<
" outliers: " << ioutliers <<
" found: " << foundTSOS
682 <<
" Pixel holes: " << PixelHoles <<
" Sct holes: " << SctHoles
683 <<
" Double holes: " << SctDoubleHoles);
685 ATH_MSG_DEBUG(
"Problem ? Not all measurements found. Left measurements: "
686 << 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 116 of file InDetTrackHoleSearchTool.cxx.
133 std::map<const Identifier, const Trk::TrackStateOnSurface*> mapOfHits;
145 std::map<const Identifier, std::pair<const Trk::TrackParameters*,const bool> > mapOfPredictions;
148 Gaudi::Hive::currentContext(),
track, partHyp, mapOfHits, mapOfPredictions);
154 ATH_MSG_DEBUG(
"List of hits not properly obtained, abort hole search.");
157 for (
auto & mapOfPrediction : mapOfPredictions) {
158 delete (mapOfPrediction.second).
first;
159 (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.
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
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