![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include "Identifier/Identifier.h"
25 using namespace InDet;
29 m_idHelper(nullptr) {}
60 return StatusCode::SUCCESS;
77 ATH_CHECK( clusterContainer.
record (std::make_unique<PixelClusterContainer>(clusterContainercache.
ptr() )));
84 ATH_MSG_DEBUG(
"Pixel clusters '" << clusterContainer.
name() <<
"' symlinked in StoreGate");
88 ambiguitiesMap = std::make_unique<PixelGangedClusterAmbiguities>();
96 std::unique_ptr<DataPool<PixelCluster>> dataItemsPool =
nullptr;
98 if (!hasExternalCache) {
99 dataItemsPool = std::make_unique<DataPool<PixelCluster>>(ctx);
100 dataItemsPool->reserve(20000);
102 dataItemsPool = std::make_unique<DataPool<PixelCluster>>(ctx);
111 for(; rdoCollections!=rdoCollectionsEnd; ++rdoCollections){
112 const COLLECTION* RDO_Collection(*rdoCollections);
113 if (!RDO_Collection || RDO_Collection->
empty())
continue;
114 PixelClusterContainer::IDC_WriteHandle lock = clusterContainer->getWriteHandle(rdoCollections.
hashId());
115 if( lock.OnlineAndPresentInAnotherView() )
continue;
118 std::unique_ptr<PixelClusterCollection> clusterCollection(
120 dataItemsPool.get(), ctx));
122 if (clusterCollection && !clusterCollection->empty()){
125 ATH_CHECK(lock.addOrDelete( std::move(clusterCollection) ));
139 std::vector<IdentifierHash> listOfPixIds;
140 for (; roi!=roiE; ++roi) {
142 listOfPixIds.clear();
147 << listOfPixIds.size() <<
" det. Elements" );
148 for (
auto & listOfPixId : listOfPixIds) {
151 if (!RDO_Collection)
continue;
152 PixelClusterContainer::IDC_WriteHandle lock = clusterContainer->getWriteHandle(listOfPixId);
153 if( lock.OnlineAndPresentInAnotherView() )
continue;
156 std::unique_ptr<PixelClusterCollection> clusterCollection(
158 dataItemsPool.get(), ctx));
159 if (clusterCollection && !clusterCollection->empty()) {
161 << clusterCollection->size() <<
" clusters" );
163 ATH_CHECK(lock.addOrDelete( std::move(clusterCollection) ));
172 ATH_MSG_DEBUG(
"clusterContainer->numberOfCollections() " << clusterContainer->numberOfCollections());
174 ATH_MSG_DEBUG(
"PixelClusterAmbiguitiesMap recorded in StoreGate");
176 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
Const iterator class for DataVector/DataList.
Group
Properties of a chain group.
ToolHandle< IPixelClusteringTool > m_clusteringTool
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
const PixelID * m_idHelper
const std::string & name() const
Return the StoreGate ID for the referenced object.
StatusCode symLink(const WriteHandleKey< U > &key)
Make an explicit link.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::UpdateHandleKey< InDet::PixelClusterContainerCache > m_clusterContainercacheKey
ToolHandle< IRegSelTool > m_regionSelector
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
StatusCode setConst()
Set the 'const' bit for the bound proxy in the store.
pointer_type ptr()
Dereference the pointer.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
An algorithm that can be simultaneously executed in multiple threads.
virtual bool hasExternalCache() const override final
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Handle class for recording to StoreGate.
::StatusCode StatusCode
StatusCode definition for legacy code.
BooleanProperty m_useDataPoolWithCache
const_iterator end() const
return const_iterator for end of container
const_iterator begin() const
return const_iterator for first entry
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::ReadHandleKey< PixelRDO_Container > m_rdoContainerKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
IdentifierHash hashId() const
hashId of the pointed-to element
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::WriteHandleKey< PixelGangedClusterAmbiguities > m_ambiguitiesMapKey
size_type wafer_hash_max(void) const
virtual StatusCode initialize() override
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
virtual const T * indexFindPtr(IdentifierHash hashId) const override final
return pointer on the found entry or null if out of range using hashed index - fast version,...
SG::WriteHandleKey< PixelClusterContainer > m_clusterContainerKey
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
BooleanProperty m_roiSeeded
ToolHandle< GenericMonitoringTool > m_monTool
SG::WriteHandleKey< SiClusterContainer > m_clusterContainerLinkKey
ToolHandle< PixelGangedAmbiguitiesFinder > m_gangedAmbiguitiesFinder
class to find out which clusters shares ganged pixels
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
PixelClusterization()=delete