|
ATLAS Offline Software
|
Go to the documentation of this file.
20 const std::string &
name,
21 const IInterface *
parent) :
42 return StatusCode::SUCCESS;
46 std::optional<Identifier>
62 const Identifier& rdoID,
const EventContext& ctx,
80 std::vector<UnpackedPixelRDO>& collectionID)
const
90 const auto pDuplicate = std::find_if(collectionID.begin(), collectionID.end(),isDuplicate);
91 const bool foundDuplicate {pDuplicate != collectionID.end()};
93 pDuplicate->LVL1 =
std::max(pDuplicate->LVL1, lvl1);
95 return foundDuplicate;
104 if (!pixelDetElStatus.
isValid()) {
105 std::stringstream
msg;
107 throw std::runtime_error(
msg.str());
109 return pixelDetElStatus.
cptr();
119 const unsigned int RDO_size = collection.
size();
128 if (pixelDetElStatus){
132 pixelDetElStatus->
isGood(idHash),
143 if (not pixelDetEleHandle.
isValid() or pixelDetEle ==
nullptr) {
152 ATH_MSG_ERROR(
"Dynamic cast failed at "<<__LINE__<<
" of PixelRDOTool.cxx.");
159 std::vector<UnpackedPixelRDO>
163 const EventContext& ctx,
164 int defaultLabel)
const
166 std::vector<UnpackedPixelRDO> unpacked;
167 unpacked.reserve(collection.
size());
168 std::unordered_set<Identifier> idset;
174 for(
const auto *
const rdo : collection) {
177 if (!
isGoodRDO(pixelDetElStatus, idHash, rdoID, ctx, cacheEntry))
180 if (not idset.insert(rdoID).second) {
185 const int lvl1 = rdo->getLVL1A();
189 const int tot = rdo->getToT();
191 unpacked.emplace_back(
202 std::optional<Identifier> gangedID =
isGanged(rdoID, element);
203 if (gangedID.has_value()) {
204 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.
const_pointer_type cptr()
Dereference the pointer.
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.
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual IdentifierHash identifyHash() const override final
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.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
bool isGood(IdentifierHash hash) const
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
StatusCode initialize(bool used=true)
#define ATH_MSG_WARNING(x)
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
size_type size() const noexcept
Returns the number of elements in the collection.
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const