Loading [MathJax]/jax/output/SVG/config.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
13 ISvcLocator *pSvcLocator) :
70 return StatusCode::SUCCESS;
89 measToTruth = measToTruthHandle.
cptr();
95 ATH_CHECK(xaod.
record(std::make_unique<xAOD::TrackMeasurementValidationContainer>(),
96 std::make_unique<xAOD::TrackMeasurementValidationAuxContainer>()));
118 std::vector<xAOD::TrackMeasurementValidation*>
toAdd(
clusters->size(),
nullptr);
119 for (std::size_t
i(0);
i<
toAdd.size(); ++
i) {
135 ATH_MSG_FATAL(
"Invalid pixel detector element for hash " << hashId );
136 return StatusCode::FAILURE;
139 const std::vector<Identifier> rdoList = cluster->rdoList();
140 std::vector< std::uint64_t > rdoIdentifierList;
141 rdoIdentifierList.reserve(rdoList.size());
146 for(
const Identifier& hitIdentifier : rdoList ){
147 rdoIdentifierList.push_back( hitIdentifier.get_compact() );
161 return StatusCode::FAILURE;
174 auto gpos = cluster->globalPosition();
178 auto locpos = cluster->localPosition<2>();
181 auto localCov = cluster->localCovariance<2>();
185 decor_detectorElementID(*measurement) = hashId;
186 decor_waferID(*measurement) = waferId.
get_compact();
189 decor_sizePhi(*measurement) = cluster->channelsInPhi();
190 decor_sizeZ(*measurement) = cluster->channelsInEta();
191 decor_SiWidth(*measurement) = cluster->channelsInPhi();
194 decor_omegax(*measurement) = cluster->omegaX();
195 decor_omegay(*measurement) = cluster->omegaY();
196 decor_LorentzShift(*measurement) =
static_cast<float>(
m_lorentzAngleTool->getLorentzShift(cluster->identifierHash(), ctx) );
197 decor_centroid_xphi(*measurement) =
centroid.xPhi();
198 decor_centroid_xeta(*measurement) =
centroid.xEta();
199 decor_side(*measurement) = 0;
214 if (cluster->index() >= measToTruth->size()) {
215 ATH_MSG_ERROR(
"PRD index "<< cluster->index() <<
" not present in the measurement to truth vector with size " << measToTruth->size() );
216 return StatusCode::FAILURE;
219 auto tps = measToTruth->at(cluster->index());
221 std::vector<unsigned int> tp_indices;
222 std::vector<unsigned int> tp_barcodes;
223 for (
const auto&
tp : tps) {
224 tp_indices.push_back(
tp->index());
229 decor_truth_indices(*measurement) = std::move(tp_indices);
230 decor_truth_barcode(*measurement) = std::move(tp_barcodes);
235 ATH_MSG_DEBUG(
" recorded PixelPrepData objects: size " << measurements->
size() );
236 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
const PixelID * m_PixelHelper
PixelClusterTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
long unsigned int DetectorIdentType
int phi_index(const Identifier &id) const
const_pointer_type cptr()
Dereference the pointer.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xphi
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version:
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_centroid_xeta
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_phi_module
value_type get_compact() const
Get the compact id.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_layer
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_clustercontainer_key
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_bec
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_LorentzShift
void setRdoIdentifierList(const std::vector< uint64_t > &rdoIdentifierList)
Sets the list of RDO identifiers.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizeZ
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_eta_module
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.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Class describing a TrackMeasurementValidation.
SG::ReadHandleKey< ActsTrk::MeasurementToTruthParticleAssociation > m_associationMap_key
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_barcodes
void setLocalPosition(float localX, float localY)
Sets the local position.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegay
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
Handle class for adding a decoration to an object.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_side
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_truth_indices
int eta_index(const Identifier &id) const
iterator insert(iterator position, value_type pElem)
Add a new element to the collection.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
void setIdentifier(uint64_t identifier)
Sets the identifier.
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_waferID
Gaudi::Property< bool > m_useTruthInfo
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ToolHandle< ISiLorentzAngleTool > m_lorentzAngleTool
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_write_xaod_key
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
void setGlobalPosition(float globalX, float globalY, float globalZ)
Sets the global position.
PixelClusterContainer_v1 PixelClusterContainer
Define the version of the pixel cluster container.
unsigned int DetectorIDHashType
@ detector ID element hash
void setLocalPositionError(float localXError, float localYError, float localXYCorrelation)
Sets the local position error.
StatusCode initialize(bool used=true)
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_sizePhi
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_detectorElementID
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
virtual StatusCode initialize() override
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
const T * at(size_type n) const
Access an element, as an rvalue.
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_omegax
int phi_module(const Identifier &id) const
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurement_SiWidth
size_type size() const noexcept
Returns the number of elements in the collection.
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
Vertex centroid(const Polygon &p)
const_pointer_type cptr()