 |
ATLAS Offline Software
|
Go to the documentation of this file.
17 #include <boost/container/flat_set.hpp>
23 const std::string &
name,
24 const IInterface *
parent) :
42 return StatusCode::SUCCESS;
46 std::optional<Identifier>
62 const Identifier& rdoID,
const EventContext& ctx,
66 std::array<InDetDD::PixelDiodeTree::CellIndexType,2> diode_idx
74 pixelDetElStatus ? pixelDetElStatus->
isChipGood(moduleHash,feValue) :
false,
81 if (pixelDetElStatus) {
83 return pixelDetElStatus->
isChipGood(moduleHash, feValue);
85 return m_summaryTool->isGood(moduleHash, rdoID, ctx, cacheEntry);
93 std::vector<UnpackedPixelRDO>& collectionID)
const
103 const auto pDuplicate = std::find_if(collectionID.begin(), collectionID.end(),isDuplicate);
104 const bool foundDuplicate {pDuplicate != collectionID.end()};
106 pDuplicate->LVL1 =
std::max(pDuplicate->LVL1, lvl1);
108 return foundDuplicate;
120 std::stringstream
msg;
122 throw std::runtime_error(
msg.str());
132 const unsigned int RDO_size = collection.
size();
141 if (pixelDetElStatus){
145 pixelDetElStatus->
isGood(idHash),
156 if (not pixelDetEleHandle.
isValid() or pixelDetEle ==
nullptr) {
165 ATH_MSG_ERROR(
"Dynamic cast failed at "<<__LINE__<<
" of PixelRDOTool.cxx.");
172 std::vector<UnpackedPixelRDO>
176 const EventContext& ctx,
177 int defaultLabel)
const
179 std::vector<UnpackedPixelRDO> unpacked;
180 unpacked.reserve(collection.
size());
192 boost::container::flat_set<Identifier> idset;
194 for(
const auto *
const rdo : collection) {
205 const int lvl1 = rdo->getLVL1A();
209 if (not idset.insert(rdoID).second) {
220 const int tot = rdo->getToT();
222 unpacked.emplace_back(
233 std::optional<Identifier> gangedID =
isGanged(rdoID, element);
234 if (gangedID.has_value()) {
235 unpacked.emplace_back(
def retrieve(aClass, aKey=None)
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
int phi_index(const Identifier &id) const
SiCellId connectedCell(const SiCellId cellId, int number) const
Get the cell ids sharing the readout for this cell.
bool isChipGood(IdentifierHash hash, unsigned int chip) const
Trk::Surface & surface()
Element Surface.
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
static unsigned int getFE(const PixelDiodeTree::DiodeProxy &diode_proxy)
PixelDiodeTree::DiodeProxyWithPosition diodeProxyFromIdxCachePosition(const std::array< PixelDiodeTree::IndexType, 2 > &idx) const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual IdentifierHash identifyHash() const override final
A diode proxy which caches the position of a diode.
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
int numberOfConnectedCells(const SiCellId cellId) const
Test if readout cell has more than one diode associated with it.
#define VALIDATE_STATUS_ARRAY(use_info, info_val, summary_val)
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual Identifier identifierFromCellId(const SiCellId &cellId) const override final
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie s...
#define VALIDATE_STATUS_ARRAY_ACTIVATED
int eta_index(const Identifier &id) const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isGood(IdentifierHash hash) const
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
StatusCode initialize(bool used=true)
#define ATH_MSG_WARNING(x)
static constexpr std::array< PixelDiodeTree::CellIndexType, 2 > makeCellIndex(T local_x_idx, T local_y_idx)
Create a 2D cell index from the indices in local-x (phi, row) and local-y (eta, column) direction.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
size_type size() const noexcept
Returns the number of elements in the collection.
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const