![]() |
ATLAS Offline Software
|
This version of PointFinder uses SiCluster to find space points in the pixel and SCT detectors. More...
#include <SiTrackerSpacePointFinder.h>
Classes | |
| struct | SPFCache |
| This is a temporary object to aid reentrant coding. More... | |
Public Member Functions | |
| virtual bool | isReEntrant () const override |
| Avoid scheduling algorithm multiple times. | |
| virtual StatusCode | sysInitialize () override |
| Override sysInitialize. | |
| virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. | |
| virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. | |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. | |
| virtual bool | filterPassed (const EventContext &ctx) const |
| virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
AthCondAlgorithm methods | |
| SiTrackerSpacePointFinder (const std::string &name, ISvcLocator *pSvcLocator) | |
| virtual | ~SiTrackerSpacePointFinder ()=default |
| virtual StatusCode | initialize () override |
| virtual StatusCode | execute (const EventContext &ctx) const override |
| virtual StatusCode | finalize () override |
| virtual bool | isClonable () const override |
| Make this algorithm clonable. | |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| 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. | |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Disallow constructor without parameters, copy constructor, assignment operator | |
| SiTrackerSpacePointFinder ()=delete | |
| SiTrackerSpacePointFinder (const SiTrackerSpacePointFinder &)=delete | |
| SiTrackerSpacePointFinder & | operator= (const SiTrackerSpacePointFinder &)=delete |
Main SCT space point methods | |
| void | addSCT_SpacePoints (const SCT_ClusterCollection *next, const SiElementPropertiesTable *properties, const InDetDD::SiDetectorElementCollection *elements, SpacePointCollection *spacepointCollection, SpacePointOverlapCollection *spacepointOverlapCollection, SPFCache &, DataPool< SCT_SpacePoint > *dataItemsSCT) const |
Private Attributes | |
| DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. | |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Input data using SG::ReadHandleKey | |
| SG::ReadHandleKey< SCT_ClusterContainer > | m_Sct_clcontainerKey {this, "SCT_ClustersName", "SCT_Clusters", "SCT clContainer"} |
| SG::ReadHandleKey< PixelClusterContainer > | m_Pixel_clcontainerKey {this, "PixelsClustersName", "PixelClusters", "Pixel clContainer"} |
Input condition data using SG::ReadCondHandleKey | |
| SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
| For beam spot. | |
| SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > | m_SCTPropertiesKey {this, "SCTPropertiesKey", "SCT_ElementPropertiesTable", "Key of input SiElementPropertiesTable for SCT"} |
| To get SCT neighbours. | |
| SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} |
| For SCT alignment. | |
Output data using SG::WriteHandleKey | |
| SG::WriteHandleKey< SpacePointContainer > | m_SpacePointContainer_SCTKey {this, "SpacePointsSCTName", "SCT_SpacePoints", "SpacePoint SCT container"} |
| SG::WriteHandleKey< SpacePointContainer > | m_SpacePointContainerPixelKey {this, "SpacePointsPixelName", "PixelSpacePoints", "SpacePoint Pixel container"} |
| SG::WriteHandleKey< SpacePointOverlapCollection > | m_spacepointoverlapCollectionKey {this, "SpacePointsOverlapName", "OverlapSpacePoints", "Space Point Overlap collection"} |
Caches for HLT using SG::UpdateHandleKey | |
| SG::UpdateHandleKey< SpacePointCache > | m_SpacePointCache_SCTKey {this, "SpacePointCacheSCT", ""} |
| SG::UpdateHandleKey< SpacePointCache > | m_SpacePointCache_PixKey {this, "SpacePointCachePix", ""} |
ToolHandle | |
| ToolHandle< SiSpacePointMakerTool > | m_SiSpacePointMakerTool {this, "SiSpacePointMakerTool", "InDet::SiSpacePointMakerTool"} |
| ToolHandle< GenericMonitoringTool > | m_monTool {this, "monTool", "", "Monitoring tool"} |
Id helpers | |
| const PixelID * | m_idHelperPixel {nullptr} |
| const SCT_ID * | m_idHelper {nullptr} |
Configuration flags | |
| BooleanProperty | m_selectPixels {this, "ProcessPixels", true} |
| BooleanProperty | m_selectSCTs {this, "ProcessSCTs", true} |
| BooleanProperty | m_overlap {this, "ProcessOverlaps", true, "process overlaps of SCT wafers"} |
| BooleanProperty | m_allClusters {this, "AllClusters", false, "process all clusters without limits"} |
| bool | m_cachemode {false} |
| used for online MT counters | |
| BooleanProperty | m_useDataPoolWithCache {this, "useDataPoolWithCache", false, "use DataPool With Cache"} |
| BooleanProperty | m_useSCTLayerDep_OverlapCuts {this,"useSCTLayerDep_OverlapCuts", true} |
| BooleanProperty | m_doEndcapEtaOverlapSP {this,"doEndcapEtaOverlapSP", false} |
Cut parameters | |
The following are ranges within which clusters must lie to make a spacepoint. Opposite and eta neighbours clusters must lie within range of each other. Phi clusters must lie in region of each wafer separately. | |
| FloatProperty | m_overlapLimitOpposite {this, "OverlapLimitOpposite", 2.8, "overlap limit for opposite-neighbour"} |
| FloatProperty | m_overlapLimitPhi {this, "OverlapLimitPhi", 5.64, "overlap limit for phi-neighbours"} |
| FloatProperty | m_overlapLimitEtaMin {this, "OverlapLimitEtaMin", 1.68, "low overlap limit for eta-neighbours"} |
| FloatProperty | m_overlapLimitEtaMax {this, "OverlapLimitEtaMax", 3.0, "high overlap limit for eta-neighbours"} |
Beam spot override | |
| BooleanProperty | m_overrideBS {this, "OverrideBeamSpot", false} |
| FloatProperty | m_xVertex {this, "VertexX", 0.} |
| FloatProperty | m_yVertex {this, "VertexY", 0.} |
| FloatProperty | m_zVertex {this, "VertexZ", 0.} |
Counters | |
Use mutable to be updated in const methods. AthCondAlgorithm is const during event processing. Use std::atomic to be multi-thread safe. | |
| std::atomic< int > | m_numberOfEvents {0} |
| std::atomic< int > | m_numberOfPixel {0} |
| std::atomic< int > | m_numberOfSCT {0} |
| std::atomic< int > | m_sctCacheHits {0} |
| std::atomic< int > | m_pixCacheHits {0} |
| std::atomic< int > | m_nspacePoints {0} |
| std::atomic< int > | m_nspacePointsOverlap {0} |
This version of PointFinder uses SiCluster to find space points in the pixel and SCT detectors.
The algorithm retrieves all clusters from StoreGate using SG::ReadHandle(Key) and uses the begin-end iterators to iterate over the clusters. It then has to see whether the next cluster is a pixel or SCT cluster. Pixel space points are obtained directly from the clusters. To make SCT space points we also need the IdentifiableContainer for the SCT clusters, since we need random access to find overlapping detectors on the stereo layer. Space points are made by combining clusters from pairs of overlapping detectors. The user can choose just to process the phi wafer and its opposite on the stereo layer, or also to consider overlaps with the four nearest neighbours of the opposite wafer.
The space points are wrtten to Storegate as SpacePointContainer for Pixels and non-overlapping SCT space points and as SpacePointOverlapCollection for the overlapping ones.
Job Options: Process pixels: default true Process SCTs: default true Process overlaps: default true SCT IdentifiableContainer name: default "SCT_Clusters" SCT SpacePointSet name: default "SCT_SpacePoints"
Fatal Errors: neither pixels nor SCTs selected SCTs selected and no name for SCT Identifiable Collection No name for SpacePointSet Failure to retrieve event StoreGate failure.
Possible errors for which processing continues: No clusters found for event Implementation of SCT_Neighbours is SiElementPropertiesTable, is prepared by SiElementPropertiesTableCondAlg and is stored in StoreGate using SG::WriteCondHandle(Key).
Definition at line 83 of file SiTrackerSpacePointFinder.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| InDet::SiTrackerSpacePointFinder::SiTrackerSpacePointFinder | ( | const std::string & | name, |
| ISvcLocator * | pSvcLocator ) |
Definition at line 37 of file SiTrackerSpacePointFinder.cxx.
|
virtualdefault |
|
privatedelete |
|
privatedelete |
|
private |
Definition at line 378 of file SiTrackerSpacePointFinder.cxx.
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 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.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
overridevirtual |
Definition at line 109 of file SiTrackerSpacePointFinder.cxx.
|
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
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
|
inlinevirtualinherited |
Definition at line 96 of file AthCommonReentrantAlgorithm.h.
|
overridevirtual |
Definition at line 359 of file SiTrackerSpacePointFinder.cxx.
|
overridevirtual |
Definition at line 43 of file SiTrackerSpacePointFinder.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.
|
inlineoverridevirtual |
Make this algorithm clonable.
Reimplemented from AthCommonReentrantAlgorithm< Gaudi::Algorithm >.
Definition at line 103 of file SiTrackerSpacePointFinder.h.
|
inlineoverridevirtualinherited |
Avoid scheduling algorithm multiple times.
With multiple concurrent events, conditions objects often expire simultaneously for all slots. To avoid that the scheduler runs the CondAlg in each slot, we declare it as "non-reentrant". This ensures that the conditions objects are only created once.
In case a particular CondAlg should behave differently, it can override this method again and return true.
Definition at line 39 of file AthCondAlgorithm.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
privatedelete |
|
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.
|
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.
|
inlinevirtualinherited |
Definition at line 100 of file AthCommonReentrantAlgorithm.h.
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in HypoBase, and InputMakerBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Definition at line 205 of file SiTrackerSpacePointFinder.h.
|
private |
For beam spot.
Definition at line 155 of file SiTrackerSpacePointFinder.h.
|
private |
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 211 of file SiTrackerSpacePointFinder.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
|
private |
Definition at line 194 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 193 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 186 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 254 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 255 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 249 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 250 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 251 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 203 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 228 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 226 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 222 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 224 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 236 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 253 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 147 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 146 of file SiTrackerSpacePointFinder.h.
|
mutableprivate |
Definition at line 252 of file SiTrackerSpacePointFinder.h.
|
private |
For SCT alignment.
Definition at line 159 of file SiTrackerSpacePointFinder.h.
|
private |
To get SCT neighbours.
Definition at line 157 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 201 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 202 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 185 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 177 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 175 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 166 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 167 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 168 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 208 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 210 of file SiTrackerSpacePointFinder.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.
|
private |
Definition at line 237 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 238 of file SiTrackerSpacePointFinder.h.
|
private |
Definition at line 239 of file SiTrackerSpacePointFinder.h.