ATLAS Offline Software
|
#include <SimpleTRT_SeededSpacePointFinder_ATL.h>
Public Types | |
typedef std::list< std::pair< int, int > > | modulLookupTable |
Public Member Functions | |
SimpleTRT_SeededSpacePointFinder_ATL (const std::string &, const std::string &, const IInterface *) | |
virtual | ~SimpleTRT_SeededSpacePointFinder_ATL () |
virtual StatusCode | initialize () override |
virtual StatusCode | finalize () override |
virtual std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > | newEvent () const override |
obsolete, do not do anything. More... | |
virtual std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > | newRegion (const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override |
const SiSpacePointsSeed * | next (InDet::ITRT_SeededSpacePointFinder::IEventData &event_data) const override |
std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > | find2Sp (const EventContext &ctx, const Trk::TrackParameters &, InDet::ITRT_SeededSpacePointFinder::IEventData &event_data) const override |
main method, calls the private methods and returns a pointer to the list of SpacePointpairs. More... | |
MsgStream & | dump (MsgStream &out) const override |
std::ostream & | dump (std::ostream &out) const override |
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 |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
void | getSpacePointsInROI (const EventContext &ctx, std::set< IdentifierHash > &setOfSCT_Hashes, int modulTRT, std::multimap< int, const Trk::SpacePoint * > &relevantSpacePoints) const |
retrieves SP Collections of modules in the ROI and sorts them by SCT layer More... | |
void | getHashesInROI (const EventContext &ctx, const Trk::TrackParameters &directionTRT, std::set< IdentifierHash > &setOfSCT_Hashes) const |
obtains the hashes of modules in the ROI More... | |
void | combineSpacePoints (const std::multimap< int, const Trk::SpacePoint * > &relevantSpacePoints, const Trk::TrackParameters &directionTRT, int modulTRT, std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > &listOfSpacePointPairsBuffer) const |
builds pairs of SP according to the kook-up table More... | |
bool | pairIsOk (const Trk::SpacePoint *sp1, const Trk::SpacePoint *sp2, const Trk::TrackParameters &directionTRT) const |
applies rough cuts on the quality of a SP pair More... | |
void | setupLookUpTable () |
the name says it More... | |
void | printLookupTable () const |
int | TRT_Module (const Trk::TrackParameters &directionTRT) const |
returns the number of the TRT wheel or barrel where the TP belongs to 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... | |
Static Private Member Functions | |
static void | getSearchRange (double &deltaPhi, double &deltaEta) |
List with SP pairs as seed for the Si part of the back-track. More... | |
Private Attributes | |
BooleanProperty | m_useROI {this, "RestrictROI", true} |
Controls, if SP have to be checked with the AssociationTool of the forward tracking and to avoid double use of measurements. More... | |
IntegerProperty | m_maxHoles {this, "MaxHoles", 1} |
controls how many not considered SCT layers are allowed between two SP in order to form a seed pair More... | |
DoubleProperty | m_perigeeCut {this, "PerigeeCut", 200.} |
rough cuts on the quality of the suggested SP pair More... | |
DoubleProperty | m_directionPhiCut {this, "DirectionPhiCut", 0.05} |
SG::ReadHandleKey< SpacePointContainer > | m_spacepointsSCTname {this,"SpacePointsSCTName","SCT_SpacePoints","RHK to retrieve SCT SpacePointContainer"} |
SG::ReadHandleKey< SpacePointOverlapCollection > | m_spacepointsOverlapname {this,"SpacePointsSCTName","OverlapSpacePoints","RHK to retrieve OverlapCollection"} |
SG::ReadHandleKey< Trk::PRDtoTrackMap > | m_prdToTrackMap {this,"PRDtoTrackMap",""} |
modulLookupTable | m_modulLookupTable [2 *SIMPLE_TRT_INDEX_OFFSET+1] |
Lookup table that contains the SCT Layers to be considered to provide SP for the pairing in dependence on the TRT part the track parameter is on. More... | |
std::set< int > | m_modulLookupTableIndex [2 *SIMPLE_TRT_INDEX_OFFSET+1] |
ToolHandle< IRegSelTool > | m_pRegionSelector { this, "RegSelTool_SCT", "RegSelTool/RegSelTool_SCT" } |
Region Selector. More... | |
const SCT_ID * | m_sctId = nullptr |
ID SCT helper. More... | |
const TRT_ID * | m_trtId = nullptr |
ID TRT helper. More... | |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Definition at line 38 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
typedef std::list<std::pair< int,int > > InDet::SimpleTRT_SeededSpacePointFinder_ATL::modulLookupTable |
Definition at line 47 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
InDet::SimpleTRT_SeededSpacePointFinder_ATL::SimpleTRT_SeededSpacePointFinder_ATL | ( | const std::string & | t, |
const std::string & | n, | ||
const IInterface * | p | ||
) |
Definition at line 31 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
virtualdefault |
|
private |
builds pairs of SP according to the kook-up table
This method combines SpacePoints contained in the first argument to pairs which are then stored in the internal list of SpacePoint pairs.
Only SpacePoints which are on two different SCT layers or wheels specified as pair in the look-up table are combined. The pairing is only accepted, if if satisfies quality cuts specified in the method pairIsOk.
The second argument specifies the TRT track parameter which is used for quality cuts on the SpacePoint pairs. The third argument specifies the part of the TRT the track parameter comes from. This number is used to inquire the relevant pairings of SCT layers from the look-up table.
Definition at line 417 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
overridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 758 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
overridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 766 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
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
|
overridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 91 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
overridevirtual |
main method, calls the private methods and returns a pointer to the list of SpacePointpairs.
The list itself is a private member of this class
The main method. This method is called from outside to form pairs of SCT SpacePoints which could seed Si tracks linked to the TRT TrackParameter given as input. iModus is a dummy variable to satisfy the interface.
This method calls several private methods to perform specific tasks. These are:
getHashesInROI : If the restriction of the Region Of Intereset is used, this method returns a set of IdHashes of SCT modules within the ROI
getSpacePointsInROI : This Method retrieves the SpacePointCollections from StoreGate and fills a map with the SpacePoints. The map key is a number which identifies the layer or disc the SpacePoint is on.
combineSpacePoints : The retrieved and sorted SpacePoints are combined to pairs. Pairs are built only of SpacePoints which are on the layer or disc pairs specified in the internal look-up table.
The method returns a pointer to an internal list of SpacePoint pairs, the list may very well be empty nevertheless.
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 109 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
private |
obtains the hashes of modules in the ROI
This Method finds the IdHashes of SCT modules inside a Region Of Interest around the TRT track parameter. First the allowed tolerance in phi and eta is inquired, then a vector with the relevant hashes is retrieved from the RegionSelectorService. In order to be able to search conveniently for hashes later on, they are then copied into a STL set, which is then returned via call by reference.
Definition at line 196 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
staticprivate |
List with SP pairs as seed for the Si part of the back-track.
It is cleared and filled in every call of find2Sp, the pointer to it is returned. determines the width of the considered ROI around the TP. deltaPhi and deltaEta are return values
This method defines the tolerance for the ROI around the TRT track parameter. At the moment it is set constant, but it should be considered to define it in dependence on the track parameter. In order to suppress warnings for unused variables, the method signature including the track parameter as an argument is replaced for the time being by a signature without the track parameter.
Definition at line 403 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
private |
retrieves SP Collections of modules in the ROI and sorts them by SCT layer
This method retrieves the SpacePoints in a given region of interest. The region of interest is defined by the hashes in the first argument of the method.
The second argument specifies the part of the TRT in which the TRT track parameter is situated. This number is used to inquire the index of the look-up table, which layers of the SCT are relevant for the pair building process. Only SpacePointCollections from relevant layers or discs are looped over in order to save time.
If the restriction of the ROI is used, it is inquired for every SpacePointCollection, if the corresponding SCT module is listed in the set of IdHashes which defines the ROI. In this case, only Collections which satisfy this are looped over.
Relevant SpacePoints are then stored in a map. Key of the map is a number which identifies the SCT layer the SpacePoints are on.
In a last step, the SpacePointOverlapCollection is retrieved and looped over. SpacePoints in the ROI (if use is specified) are added to the list of SpacePoints
If the AssociationTool is used, only SpacePoints are stored, which do not contain a PRD that is not yet registered in the AssociationTool, i.e. which is not already used by the inside-out tracking.
Definition at line 230 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
overridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 49 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
overridevirtualinherited |
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.
|
inlinestaticinherited |
Definition at line 108 of file ITRT_SeededSpacePointFinder.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
inlineoverridevirtual |
obsolete, do not do anything.
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 178 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
overridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 102 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
inlineoverridevirtual |
Implements InDet::ITRT_SeededSpacePointFinder.
Definition at line 172 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
overridevirtualinherited |
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.
|
private |
applies rough cuts on the quality of a SP pair
This method applies quality cuts on a given pairing of SpacePoints. The quality cuts at the moment are:
If the cuts are satisfied, true is returned, false otherwise.
Definition at line 468 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
private |
This method provides a printout of the look-up table for debugging purposes. It is called in the setup.
Definition at line 775 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
the name says it
This method sets up the look-up table. This table is an array of lists of integer pairs. The index of the array corresponds to a number which identifies the part of the TRT the TRT track parameter comes from, the two integer numbers in the pairs identify the SCT layers or wheels from which SpacePoints have to be paired if the TRT track parameter comes from the corresponding TRT part.
The numbering scheme for the TRT detectors: 0 -> barrel straws 1 - 14 -> forward wheels, counted from inside out -1 - -14 -> backward wheels, -1 the innermost
The numbering scheme for the SCT detector (first number ATLAS, second number within this Tool):
____backw_________________________ __barrel__ ________forw_____________
Index = 8 7 6 5 4 3 2 1 0 3 (13) 0 1 2 3 4 5 6 7 8 -9 -8 -7 -6 -5 -4 -3 -2 -1 2 (12) 1 2 3 4 5 6 7 8 9 1 (11) 0 (10)
The numbering scheme used here deviates from the numbering used in the ATLAS Detector description for two reasons:
As anyway a specific numbering scheme has to be employed here, it is designed to be anti-symmetric with respect to forward and backward direction. This allows a convenient automatic set-up of the backward part of the look-up table, once the forward part is defined and thus reduces the likelihood of mistakes. In order to compensate for negative module numbers, an offset is added when they are used as index to the look-up table, because C++ does not allow negative indices (as FORTRAN would do ... :-) )
Depending on the number of allowed holes, i.e. basically the number of SCT layers or wheels omitted between the SpacePoints of a pair, additional pairings of SCT layers are added to the look-up table.
Definition at line 513 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
private |
returns the number of the TRT wheel or barrel where the TP belongs to
This method returns the id number of the TRT part, the given trackparameter comes from following the numbering scheme applied in this Tool (see documentation to setupLookupTable).
Definition at line 806 of file SimpleTRT_SeededSpacePointFinder_ATL.cxx.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 101 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
controls how many not considered SCT layers are allowed between two SP in order to form a seed pair
Definition at line 97 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Lookup table that contains the SCT Layers to be considered to provide SP for the pairing in dependence on the TRT part the track parameter is on.
Definition at line 116 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Definition at line 117 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
rough cuts on the quality of the suggested SP pair
Definition at line 100 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Definition at line 111 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Region Selector.
Definition at line 121 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
ID SCT helper.
Definition at line 124 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Definition at line 110 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Definition at line 109 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
ID TRT helper.
Definition at line 127 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
private |
Controls, if SP have to be checked with the AssociationTool of the forward tracking and to avoid double use of measurements.
It is set true, if an AssociationTool is specified in the setup controls if the ROI is restricted around the TRT trackparameters
Definition at line 90 of file SimpleTRT_SeededSpacePointFinder_ATL.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.