ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_PrepDataToxAOD.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
8// SCT_PrepDataToxAOD.h
9// Header file for class SCT_PrepDataToxAOD
11
12#ifndef SCT_PREPDATATOXAOD_H
13#define SCT_PREPDATATOXAOD_H
14
16
28
30
31#include <atomic>
32#include <string>
33
34class Identifier;
35class SCT_ID;
36class SCT_RDORawData;
37class SiHit;
38
39namespace InDet
40{
41 class SCT_Cluster;
42}
43
45
46 public:
47 // Constructor with parameters:
48 using AthReentrantAlgorithm::AthReentrantAlgorithm;
49
50 // Basic algorithm methods:
51 virtual StatusCode initialize() override;
52 virtual StatusCode execute(const EventContext& ctx) const override;
53 virtual StatusCode finalize() override;
55 virtual bool isClonable() const override { return true; };
56
57 private:
58
61 std::vector<std::vector<int>> addSDOInformation(xAOD::TrackMeasurementValidation* xprd,
62 const InDet::SCT_Cluster* prd,
63 const InDetSimDataCollection* sdoCollection) const;
64
65
67 const InDet::SCT_Cluster* prd,
68 const std::vector<const SiHit*>* siHits,
69 const std::vector<std::vector<int>>& sdoTruthUIDs) const;
70
72 const std::vector<const SiHit*>* siHits,
73 const std::vector<std::vector<int>>& sdoTruthUIDs,
74 std::vector<SiHit>& matchingHits) const;
75
77 const InDet::SCT_Cluster*,
78 const std::map<Identifier,
79 const SCT_RDORawData*>& idToRAWDataMap) const;
80
81 const SCT_ID* m_SCTHelper{nullptr};
82 SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_clustercontainer{this, "SiClusterContainer", "SCT_Clusters"};
85 SG::ReadHandleKey<PRD_MultiTruthCollection> m_multiTruth{this, "PRD_MultiTruth", "PRD_MultiTruthSCT"};
87 {this,"InputTruthParticleLinks","","The key for the truth particle link collection."};
88
89 SG::ReadHandleKey<SCT_RDO_Container> m_rdoContainer{this, "SctRdoContainer", "SCT_RDOs"};
91 SG::WriteHandleKey<std::vector<unsigned int>> m_xAodOffset{this, "SctxAodOffset", "SCT_ClustersOffsets"};
92
93 // For P->T converter of SCT_Clusters
94 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
95
96 BooleanProperty m_useTruthInfo{this, "UseTruthInfo", false};
97 BooleanProperty m_writeRDOinformation{this, "WriteRDOinformation", true};
98 BooleanProperty m_writeSDOs{this, "WriteSDOs", false};
99 BooleanProperty m_writeSiHits{this, "WriteSiHits", false};
100 BooleanProperty m_useSiHitsGeometryMatching{this, "UseSiHitsGeometryMatching", true,
101 "match SiHits to clusters by geometry (+/-1 strip) in union with the SDO "
102 "truth-uniqueID intersection; false = SDO intersection only"};
103
104 // --- private members
105 mutable std::atomic<unsigned int> m_haveTruthLink {};
106 mutable std::atomic<unsigned int> m_missingTruthParticle {};
107 mutable std::atomic<unsigned int> m_missingParentParticle {};
108 mutable std::atomic_bool m_firstEventWarnings{false};
109};
110
111#endif // SCT_PREPDATATOXAOD_H
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
std::atomic< unsigned int > m_missingParentParticle
void findAllHitsCompatibleWithCluster(const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits, const std::vector< std::vector< int > > &sdoTruthUIDs, std::vector< SiHit > &matchingHits) const
BooleanProperty m_useSiHitsGeometryMatching
SG::ReadHandleKey< SiHitCollection > m_sihitContainer
SG::ReadHandleKey< PRD_MultiTruthCollection > m_multiTruth
SG::ReadHandleKey< SCT_RDO_Container > m_rdoContainer
virtual bool isClonable() const override
Make this algorithm clonable.
BooleanProperty m_writeSDOs
SG::ReadHandleKey< InDetSimDataCollection > m_SDOcontainer
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
virtual StatusCode execute(const EventContext &ctx) const override
std::atomic_bool m_firstEventWarnings
BooleanProperty m_writeSiHits
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_xAodContainer
std::vector< std::vector< int > > addSDOInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const InDetSimDataCollection *sdoCollection) const
Decorate the cluster with SDO truth information and return, per RDO, the uniqueIDs of the truth parti...
virtual StatusCode finalize() override
SG::WriteHandleKey< std::vector< unsigned int > > m_xAodOffset
void addSiHitInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits, const std::vector< std::vector< int > > &sdoTruthUIDs) const
BooleanProperty m_writeRDOinformation
const SCT_ID * m_SCTHelper
SG::ReadHandleKey< xAODTruthParticleLinkVector > m_truthParticleLinks
std::atomic< unsigned int > m_missingTruthParticle
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_clustercontainer
void addRDOInformation(xAOD::TrackMeasurementValidation *, const InDet::SCT_Cluster *, const std::map< Identifier, const SCT_RDORawData * > &idToRAWDataMap) const
std::atomic< unsigned int > m_haveTruthLink
BooleanProperty m_useTruthInfo
virtual StatusCode initialize() override
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition SiHit.h:19
Primary Vertex Finder.
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version: