 |
ATLAS Offline Software
|
Go to the documentation of this file.
8 #include "CLHEP/Geometry/Point3D.h"
30 declareInterface<IDataRetriever>(
this);
43 return m_geo.retrieve();
60 if (not pixelDetEleHandle.
isValid() or elements==
nullptr) {
62 return StatusCode::FAILURE;
69 return StatusCode::RECOVERABLE;
83 unsigned long NClusterTotal = 0;
84 for (
const auto SiClusterColl : * SiClusterCont)
85 NClusterTotal += SiClusterColl->size();
88 DataVect x0; x0.reserve(NClusterTotal);
89 DataVect y0; y0.reserve(NClusterTotal);
91 DataVect widthx; widthx.reserve(NClusterTotal);
92 DataVect widthy; widthy.reserve(NClusterTotal);
93 DataVect eloss; eloss.reserve(NClusterTotal);
97 DataVect numBarcodes; numBarcodes.reserve(NClusterTotal);
101 DataVect etaModule; etaModule.reserve(NClusterTotal);
104 for (
const auto SiClusterColl : * SiClusterCont) {
107 if ( !
m_geo->PixelIDHelper()->is_pixel(SiClusterColl->identify())) continue ;
110 for (
const auto sicluster : * SiClusterColl) {
114 if (not cluster)
continue;
120 ATH_MSG_DEBUG(
"Could not obtain Detector Element with ID " <<
id );
125 x0.push_back(
DataType(cluster->globalPosition().x() /10.));
126 y0.push_back(
DataType(cluster->globalPosition().y() /10.));
127 z0.push_back(
DataType(cluster->globalPosition().z() /10.));
128 widthx.push_back(
DataType(cluster->width().phiR()/10.0));
129 widthy.push_back(
DataType(cluster->width().z()/10.0));
130 eloss.push_back(
DataType(cluster->energyLoss()));
136 etaModule.push_back(
DataType(
m_geo->PixelIDHelper()->eta_module(clusterId)));
142 unsigned long countBarcodes=0;
143 using iter = PRD_MultiTruthCollection::const_iterator;
144 std::pair<iter,iter>
range = simClusterMap->equal_range(clusterId);
149 numBarcodes.push_back(
DataType(countBarcodes));
165 dataMap[
"etaModule"] = etaModule;
168 if ( numBarcodes.size() > 0 ){
170 dataMap[
"numBarcodes"] = numBarcodes;
172 std::string bctag =
"barcodes multiple=\""+
DataType(
barcodes.size()/
double(numBarcodes.size())).toString()+
"\"";
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
virtual std::string dataTypeName() const
Return the name of the data type.
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
const ToolHandle< IInDetGeoModelTool > m_geo
A tool handle to the geo model tool.
value_type get_compact() const
Get the compact id.
bool m_usePixelTruthMap
The StoreGate key for the PRD MultiTruthMap with the track associations.
const std::string & key() const
Return the StoreGate ID for the referenced object.
std::map< std::string, DataVect > DataMap
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::ReadHandleKey< PRD_MultiTruthCollection > m_PixelTruthMapName
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
def barcodes(beg, end, sz)
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
virtual StatusCode initialize()
initialize only geo model tool
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
PixelClusterRetriever(const std::string &type, const std::string &name, const IInterface *parent)
Standard Constructor.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
This header is shared inbetween the C-style server thread and the C++ Athena ServerSvc.
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...
SG::ReadHandleKey< InDet::SiClusterContainer > m_PixelClusterCollName
The StoreGate key for the SiClusterCollection to retrieve.
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const