 |
ATLAS Offline Software
|
#include <SiTrackerSpacePointFinder.h>
|
struct | SPFCache |
| This is a temporary object to aid reentrant coding. More...
|
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 . 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 | 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 |
|
|
| 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. 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...
|
|
|
| SiTrackerSpacePointFinder ()=delete |
|
| SiTrackerSpacePointFinder (const SiTrackerSpacePointFinder &)=delete |
|
SiTrackerSpacePointFinder & | operator= (const SiTrackerSpacePointFinder &)=delete |
|
|
void | addSCT_SpacePoints (const SCT_ClusterCollection *next, const SiElementPropertiesTable *properties, const InDetDD::SiDetectorElementCollection *elements, SpacePointCollection *spacepointCollection, SpacePointOverlapCollection *spacepointOverlapCollection, SPFCache &, DataPool< SCT_SpacePoint > *dataItemsSCT) const |
|
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. 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 |
|
|
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"} |
|
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
| For beam spot. More...
|
|
SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > | m_SCTPropertiesKey {this, "SCTPropertiesKey", "SCT_ElementPropertiesTable", "Key of input SiElementPropertiesTable for SCT"} |
| To get SCT neighbours. More...
|
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} |
| For SCT alignment. More...
|
|
|
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"} |
|
|
SG::UpdateHandleKey< SpacePointCache > | m_SpacePointCache_SCTKey {this, "SpacePointCacheSCT", ""} |
|
SG::UpdateHandleKey< SpacePointCache > | m_SpacePointCache_PixKey {this, "SpacePointCachePix", ""} |
|
|
ToolHandle< SiSpacePointMakerTool > | m_SiSpacePointMakerTool {this, "SiSpacePointMakerTool", "InDet::SiSpacePointMakerTool"} |
|
ToolHandle< GenericMonitoringTool > | m_monTool {this, "monTool", "", "Monitoring tool"} |
|
|
const PixelID * | m_idHelperPixel {nullptr} |
|
const SCT_ID * | m_idHelper {nullptr} |
|
|
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 More...
|
|
BooleanProperty | m_useDataPoolWithCache {this, "useDataPoolWithCache", false, "use DataPool With Cache"} |
|
BooleanProperty | m_useSCTLayerDep_OverlapCuts {this,"useSCTLayerDep_OverlapCuts", true} |
|
BooleanProperty | m_doEndcapEtaOverlapSP {this,"doEndcapEtaOverlapSP", false} |
|
|
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"} |
|
|
BooleanProperty | m_overrideBS {this, "OverrideBeamSpot", false} |
|
FloatProperty | m_xVertex {this, "VertexX", 0.} |
|
FloatProperty | m_yVertex {this, "VertexY", 0.} |
|
FloatProperty | m_zVertex {this, "VertexZ", 0.} |
|
|
Use mutable to be updated in const methods.
AthReentrantAlgorithm 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.
◆ StoreGateSvc_t
◆ SiTrackerSpacePointFinder() [1/3]
InDet::SiTrackerSpacePointFinder::SiTrackerSpacePointFinder |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~SiTrackerSpacePointFinder()
virtual InDet::SiTrackerSpacePointFinder::~SiTrackerSpacePointFinder |
( |
| ) |
|
|
virtualdefault |
◆ SiTrackerSpacePointFinder() [2/3]
InDet::SiTrackerSpacePointFinder::SiTrackerSpacePointFinder |
( |
| ) |
|
|
privatedelete |
◆ SiTrackerSpacePointFinder() [3/3]
◆ addSCT_SpacePoints()
Definition at line 381 of file SiTrackerSpacePointFinder.cxx.
422 std::array<const SCT_ClusterCollection*, nNeighbours> neighbourClusters{};
423 std::array<const InDetDD::SiDetectorElement*, nNeighbours> neighbourElements{};
424 std::array<double, 14> overlapExtents{};
432 const std::vector<IdentifierHash>* others(
properties->neighbours(triggerIdHash));
433 if (others==
nullptr || others->empty() )
return;
436 neighbourElements[0] = triggerElement;
437 neighbourClusters[0] = sctClusters;
450 float hwidth(
properties->halfWidth(triggerIdHash));
463 for (
const auto& otherHash : *others) {
469 if(!otherElement || !otherClusters)
continue;
471 neighbourElements[neigbourIndices[
n]] = otherElement;
472 neighbourClusters[neigbourIndices[
n]] = otherClusters;
482 overlapExtents[ 6] =-hwidth;
485 overlapExtents[ 9] = hwidth;
490 overlapExtents[11] = hwidth;
491 overlapExtents[12] =-hwidth;
518 neighbourElements, neighbourClusters, overlapExtents,
m_allClusters,
519 r_cache.vertex, spacepointCollection, spacepointOverlapCollection,
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
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.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode InDet::SiTrackerSpacePointFinder::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Definition at line 112 of file SiTrackerSpacePointFinder.cxx.
122 elements = sctDetEle.retrieve();
123 if (elements==
nullptr) {
125 return StatusCode::SUCCESS;
131 return StatusCode::SUCCESS;
134 SPFCache r_cache(ctx);
138 r_cache.vertex =
beamSpot->beamVtx().position();
145 std::unique_ptr<DataPool<PixelSpacePoint>> dataItemsPixel =
nullptr;
154 ATH_CHECK( spacePointContainerPixel.
record( std::make_unique<SpacePointContainer>(updateH.ptr()) ) );
158 if (!hasExternalCache) {
159 dataItemsPixel = std::make_unique<DataPool<PixelSpacePoint>>(ctx);
160 dataItemsPixel->reserve(5000);
162 dataItemsPixel = std::make_unique<DataPool<PixelSpacePoint>>(ctx);
168 std::unique_ptr<DataPool<SCT_SpacePoint>> dataItemsSCT =
nullptr;
177 ATH_CHECK( spacePointContainer_SCT.
record( std::make_unique<SpacePointContainer>(updateH.ptr()) ) );
181 if (!hasExternalCache) {
182 dataItemsSCT = std::make_unique<DataPool<SCT_SpacePoint>>(ctx);
183 dataItemsSCT->reserve(10000);
185 dataItemsSCT = std::make_unique<DataPool<SCT_SpacePoint>>(ctx);
193 ATH_CHECK( spacepointoverlapCollection.
record( std::make_unique<SpacePointOverlapCollection>() ) );
198 ATH_MSG_DEBUG(
"Container '" << spacepointoverlapCollection.
name() <<
"' initialised" );
201 int sctCacheCount = 0;
202 int pixCacheCount = 0;
207 if (!sct_clcontainer.isValid()){
208 msg(
MSG:: FATAL) <<
"Could not find the data object "<< sct_clcontainer.name() <<
" !" <<
endmsg;
209 return StatusCode::RECOVERABLE;
212 r_cache.SCTCContainer = sct_clcontainer.cptr();
214 ATH_MSG_DEBUG(
"SCT Cluster container found: " << sct_clcontainer->size() <<
" collections" );
220 SCT_ClusterContainer::const_iterator
it = sct_clcontainer->begin();
221 SCT_ClusterContainer::const_iterator itend = sct_clcontainer->end();
223 for (;
it != itend; ++
it){
230 ATH_MSG_DEBUG(
"SCT Hash " << idHash <<
" is already in cache");
236 auto spacepointCollection = std::make_unique<SpacePointCollection>(idHash);
237 spacepointCollection->setIdentifier(elementID);
243 if(!colNext->empty() && !elements->getDetectorElement(colNext->identifyHash())->isStereo()) {
245 colNext,
properties, elements, spacepointCollection.get(),
246 spacepointoverlapCollection.
ptr(), r_cache, dataItemsSCT.get());
251 size_t size = spacepointCollection->size();
253 ATH_MSG_VERBOSE(
"SiTrackerSpacePointFinder algorithm found no space points" );
259 return StatusCode::RECOVERABLE;
262 nReceivedSPsSCT +=
size;
273 if (!pixel_clcontainer.isValid()){
274 msg(
MSG:: FATAL) <<
"Could not find the data object "<< pixel_clcontainer.name() <<
" !" <<
endmsg;
275 return StatusCode::RECOVERABLE;
278 ATH_MSG_DEBUG(
"Data object " << pixel_clcontainer.name() <<
" found" );
281 PixelClusterContainer::const_iterator colNext = pixel_clcontainer->begin();
282 PixelClusterContainer::const_iterator lastCol = pixel_clcontainer->end();
286 for (; colNext != lastCol; ++colNext)
292 ATH_MSG_DEBUG(
"pixel Hash " << idHash <<
" is already in cache");
297 Identifier elementID = (*colNext)->identify();
298 auto spacepointCollection = std::make_unique< SpacePointCollection >(idHash);
299 spacepointCollection->setIdentifier(elementID);
305 if (!(*colNext)->empty())
308 *colNext, spacepointCollection.get(), dataItemsPixel.get());
312 size_t size = spacepointCollection->size();
315 ATH_MSG_DEBUG(
"SiTrackerSpacePointFinder algorithm found no space points" );
323 return StatusCode::RECOVERABLE;
326 <<
" SpacePoints successfully added to Container !" );
327 nReceivedSPsPIX +=
size;
337 if (spacepointoverlapCollection->
empty())
343 ATH_MSG_DEBUG( spacepointoverlapCollection->
size() <<
" overlap space points registered." );
354 return StatusCode::SUCCESS;
◆ 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
◆ extraOutputDeps()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode InDet::SiTrackerSpacePointFinder::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode InDet::SiTrackerSpacePointFinder::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 46 of file SiTrackerSpacePointFinder.cxx.
47 ATH_MSG_FATAL(
"SCTs selected and no name set for SCT clusters");
48 return StatusCode::FAILURE;
53 ATH_MSG_FATAL(
"Pixels selected and no name set for Pixel clusters");
54 return StatusCode::FAILURE;
60 return StatusCode::FAILURE;
66 return StatusCode::FAILURE;
72 return StatusCode::FAILURE;
99 ATH_MSG_INFO(
"Use SCT SP overlap cuts based on layer number parity");
102 ATH_MSG_INFO(
"Doing eta overlap space points in strips endcap");
104 return StatusCode::SUCCESS;
◆ 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.
◆ isClonable()
virtual bool InDet::SiTrackerSpacePointFinder::isClonable |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ operator=()
◆ 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.
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
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 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
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 InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ 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_allClusters
BooleanProperty InDet::SiTrackerSpacePointFinder::m_allClusters {this, "AllClusters", false, "process all clusters without limits"} |
|
private |
◆ m_beamSpotKey
◆ m_cachemode
bool InDet::SiTrackerSpacePointFinder::m_cachemode {false} |
|
private |
◆ m_detStore
◆ m_doEndcapEtaOverlapSP
BooleanProperty InDet::SiTrackerSpacePointFinder::m_doEndcapEtaOverlapSP {this,"doEndcapEtaOverlapSP", false} |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_idHelper
const SCT_ID* InDet::SiTrackerSpacePointFinder::m_idHelper {nullptr} |
|
private |
◆ m_idHelperPixel
const PixelID* InDet::SiTrackerSpacePointFinder::m_idHelperPixel {nullptr} |
|
private |
◆ m_monTool
◆ m_nspacePoints
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_nspacePoints {0} |
|
mutableprivate |
◆ m_nspacePointsOverlap
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_nspacePointsOverlap {0} |
|
mutableprivate |
◆ m_numberOfEvents
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_numberOfEvents {0} |
|
mutableprivate |
◆ m_numberOfPixel
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_numberOfPixel {0} |
|
mutableprivate |
◆ m_numberOfSCT
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_numberOfSCT {0} |
|
mutableprivate |
◆ m_overlap
BooleanProperty InDet::SiTrackerSpacePointFinder::m_overlap {this, "ProcessOverlaps", true, "process overlaps of SCT wafers"} |
|
private |
◆ m_overlapLimitEtaMax
FloatProperty InDet::SiTrackerSpacePointFinder::m_overlapLimitEtaMax {this, "OverlapLimitEtaMax", 3.0, "high overlap limit for eta-neighbours"} |
|
private |
◆ m_overlapLimitEtaMin
FloatProperty InDet::SiTrackerSpacePointFinder::m_overlapLimitEtaMin {this, "OverlapLimitEtaMin", 1.68, "low overlap limit for eta-neighbours"} |
|
private |
◆ m_overlapLimitOpposite
FloatProperty InDet::SiTrackerSpacePointFinder::m_overlapLimitOpposite {this, "OverlapLimitOpposite", 2.8, "overlap limit for opposite-neighbour"} |
|
private |
◆ m_overlapLimitPhi
FloatProperty InDet::SiTrackerSpacePointFinder::m_overlapLimitPhi {this, "OverlapLimitPhi", 5.64, "overlap limit for phi-neighbours"} |
|
private |
◆ m_overrideBS
BooleanProperty InDet::SiTrackerSpacePointFinder::m_overrideBS {this, "OverrideBeamSpot", false} |
|
private |
◆ m_pixCacheHits
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_pixCacheHits {0} |
|
mutableprivate |
◆ m_Pixel_clcontainerKey
◆ m_Sct_clcontainerKey
◆ m_sctCacheHits
std::atomic<int> InDet::SiTrackerSpacePointFinder::m_sctCacheHits {0} |
|
mutableprivate |
◆ m_SCTDetEleCollKey
◆ m_SCTPropertiesKey
◆ m_selectPixels
BooleanProperty InDet::SiTrackerSpacePointFinder::m_selectPixels {this, "ProcessPixels", true} |
|
private |
◆ m_selectSCTs
BooleanProperty InDet::SiTrackerSpacePointFinder::m_selectSCTs {this, "ProcessSCTs", true} |
|
private |
◆ m_SiSpacePointMakerTool
◆ m_SpacePointCache_PixKey
◆ m_SpacePointCache_SCTKey
◆ m_SpacePointContainer_SCTKey
◆ m_SpacePointContainerPixelKey
◆ m_spacepointoverlapCollectionKey
◆ m_useDataPoolWithCache
BooleanProperty InDet::SiTrackerSpacePointFinder::m_useDataPoolWithCache {this, "useDataPoolWithCache", false, "use DataPool With Cache"} |
|
private |
◆ m_useSCTLayerDep_OverlapCuts
BooleanProperty InDet::SiTrackerSpacePointFinder::m_useSCTLayerDep_OverlapCuts {this,"useSCTLayerDep_OverlapCuts", true} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_xVertex
FloatProperty InDet::SiTrackerSpacePointFinder::m_xVertex {this, "VertexX", 0.} |
|
private |
◆ m_yVertex
FloatProperty InDet::SiTrackerSpacePointFinder::m_yVertex {this, "VertexY", 0.} |
|
private |
◆ m_zVertex
FloatProperty InDet::SiTrackerSpacePointFinder::m_zVertex {this, "VertexZ", 0.} |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
SG::ReadCondHandleKey< InDet::SiElementPropertiesTable > m_SCTPropertiesKey
To get SCT neighbours.
IDC_WriteHandle getWriteHandle(IdentifierHash hash)
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
bool m_cachemode
used for online MT counters
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
For beam spot.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const std::string & name() const
Return the StoreGate ID for the referenced object.
BooleanProperty m_overrideBS
std::atomic< int > m_pixCacheHits
SG::ReadHandleKey< SCT_ClusterContainer > m_Sct_clcontainerKey
bool OnlineAndPresentInAnotherView()
This method is to avoid calling an expensive operation in the offline case.
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)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const PixelID * m_idHelperPixel
BooleanProperty m_allClusters
ToolHandle< SiSpacePointMakerTool > m_SiSpacePointMakerTool
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
std::atomic< int > m_numberOfPixel
void search(TDirectory *td, const std::string &s, std::string cwd, node *n)
recursive directory search for TH1 and TH2 and TProfiles
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainer_SCTKey
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_SCTKey
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
FloatProperty m_overlapLimitPhi
BooleanProperty m_useDataPoolWithCache
constexpr size_t nNeighbours
virtual bool hasExternalCache() const override final
SG::WriteHandleKey< SpacePointContainer > m_SpacePointContainerPixelKey
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
SG::WriteHandleKey< SpacePointOverlapCollection > m_spacepointoverlapCollectionKey
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
For SCT alignment.
std::atomic< int > m_sctCacheHits
#define CHECK(...)
Evaluate an expression and check for errors.
BooleanProperty m_useSCTLayerDep_OverlapCuts
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::atomic< int > m_nspacePoints
void addSCT_SpacePoints(const SCT_ClusterCollection *next, const SiElementPropertiesTable *properties, const InDetDD::SiDetectorElementCollection *elements, SpacePointCollection *spacepointCollection, SpacePointOverlapCollection *spacepointOverlapCollection, SPFCache &, DataPool< SCT_SpacePoint > *dataItemsSCT) const
void clear()
Erase all the elements in the collection.
virtual StatusCode initialize() override
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
SG::ReadHandleKey< PixelClusterContainer > m_Pixel_clcontainerKey
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::atomic< int > m_numberOfSCT
size_type wafer_hash_max(void) const
virtual StatusCode sysInitialize() override
Override sysInitialize.
BooleanProperty m_selectPixels
int layer_disk(const Identifier &id) const
StatusCode initialize(bool used=true)
size_type wafer_hash_max(void) const
ToolHandle< GenericMonitoringTool > m_monTool
Eigen::Matrix< double, 3, 1 > Vector3D
StatusCode addOrDelete(std::unique_ptr< T > ptr)
std::atomic< int > m_nspacePointsOverlap
const SCT_ID * m_idHelper
BooleanProperty m_selectSCTs
FloatProperty m_overlapLimitOpposite
virtual StatusCode finalize() override
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
FloatProperty m_overlapLimitEtaMin
BooleanProperty m_doEndcapEtaOverlapSP
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
FloatProperty m_overlapLimitEtaMax
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
SG::UpdateHandleKey< SpacePointCache > m_SpacePointCache_PixKey
NeighbourIndices
Total number of neightbours and indices.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Trk::PrepRawDataCollection< SCT_Cluster > SCT_ClusterCollection
size_type size() const noexcept
Returns the number of elements in the collection.
BooleanProperty m_overlap
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
virtual Identifier identify() const override final
identifier of this detector element (inline)
bool empty() const noexcept
Returns true if the collection is empty.
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be sct id, otherwise answer is not accurate. Use SiliconID for gen...