ATLAS Offline Software
Loading...
Searching...
No Matches
ActsClusterComparisonAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EFTRACKING_ACTSCLUSTERCOMPARISONALG_H
6#define EFTRACKING_ACTSCLUSTERCOMPARISONALG_H
7
8// Athena includes
9#include <unordered_map>
10
11#include "Acts/Definitions/Units.hpp"
27
28#include <Gaudi/Accumulators.h>
29
30namespace ActsTrk {
31
52public:
53 using AthReentrantAlgorithm::AthReentrantAlgorithm;
54
56 virtual StatusCode initialize() override;
58 virtual StatusCode execute(const EventContext& ctx) const override;
60 virtual StatusCode finalize() override;
61
62 private:
63 StatusCode validateClusters(const EventContext& eventContext, std::unordered_map<const xAOD::PixelCluster*, const xAOD::PixelCluster*>& pixel_cluster_matches, std::unordered_map<const xAOD::StripCluster*, const xAOD::StripCluster*>& strip_cluster_matches) const;
64 StatusCode validatePixelSpacepoints(const EventContext& eventContext, std::unordered_map<const xAOD::PixelCluster*, const xAOD::PixelCluster*>& pixel_cluster_matches) const;
65
67 std::vector<const xAOD::PixelCluster*>& monitored_list,
68 std::vector<const xAOD::PixelCluster*>& reference_list,
69 const std::string& module_id,
70 std::vector<std::pair<const xAOD::PixelCluster*, const xAOD::PixelCluster*>>& pairs) const;
71
73 std::vector<const xAOD::StripCluster*>& monitored_list,
74 std::vector<const xAOD::StripCluster*>& reference_list,
75 const std::string& module_id,
76 std::vector<std::pair<const xAOD::StripCluster*, const xAOD::StripCluster*>>& pairs) const;
77
80 Gaudi::Property<bool> m_checkSpacepoints{
81 this, "checkSpacepoints", false,
82 "If you also want to validate spacepounts."};
83
84
88 this, "monitoredSpacepointsKey", "xAODSpacepointsFromTracccCluster",
89 "Input monitored spacepoints"};
90
92 this, "referenceSpacepointsKey", "ITkPixelSpacePoints",
93 "Input reference spacepoints"};
94
96 this, "monitoredPixelClustersKey", "xAODPixelClustersFromTracccCluster",
97 "Input monitored pixel clusters"};
98
100 this, "monitoredStripClustersKey", "xAODStripClustersFromTracccCluster",
101 "Input monitored strip clusters"};
102
104 this, "referencePixelClustersKey", "ITkPixelClusters",
105 "Input reference pixel clusters"};
106
108 this, "referenceStripClustersKey", "ITkStripClusters",
109 "Input reference strip clusters"};
110
111
112
113 // cluster sumamry
114 mutable Gaudi::Accumulators::Counter<> m_pixel_unequal;
115 mutable Gaudi::Accumulators::Counter<> m_strip_unequal;
116 mutable Gaudi::Accumulators::Counter<> m_matched_pixel;
117 mutable Gaudi::Accumulators::Counter<> m_matched_strip;
118 mutable Gaudi::Accumulators::Counter<> m_pix_unmatched_mon;
119 mutable Gaudi::Accumulators::Counter<> m_pix_unmatched_ref;
120 mutable Gaudi::Accumulators::Counter<> m_strip_unmatched_mon;
121 mutable Gaudi::Accumulators::Counter<> m_strip_unmatched_ref;
122 mutable Gaudi::Accumulators::Counter<> m_pixel_pos_diff_1sig;
123 mutable Gaudi::Accumulators::Counter<> m_pixel_pos_diff_0p5sig;
124 mutable Gaudi::Accumulators::Counter<> m_pixel_pos_diff_0p25sig;
125 mutable Gaudi::Accumulators::Counter<> m_strip_pos_diff_1sig;
126 mutable Gaudi::Accumulators::Counter<> m_strip_pos_diff_0p5sig;
127 mutable Gaudi::Accumulators::Counter<> m_strip_pos_diff_0p25sig;
128
129 // spacepoint summary
130 mutable Gaudi::Accumulators::Counter<> m_nMonSp;
131 mutable Gaudi::Accumulators::Counter<> m_nRefSp;
132 mutable Gaudi::Accumulators::Counter<> m_nMatchedSp;
133 mutable Gaudi::Accumulators::Counter<> m_nUnmatchedMonSp;
134 mutable Gaudi::Accumulators::Counter<> m_nUnmatchedRefSp;
135 mutable Gaudi::Accumulators::Counter<> m_nSpPosDiff1mm;
136 mutable Gaudi::Accumulators::Counter<> m_nSpPosDiff5mm;
137 mutable Gaudi::Accumulators::Counter<> m_nSpVarRDiff;
138 mutable Gaudi::Accumulators::Counter<> m_nSpVarZDiff;
139
140 Gaudi::Property<std::string> m_pixelManagerKey{
141 this, "PixelManager", "ITkPixel"};
142 Gaudi::Property<std::string> m_stripManagerKey{
143 this, "StripManager", "ITkStrip"};
146 const SCT_ID* m_stripID {nullptr};
147 ToolHandle<ISiLorentzAngleTool> m_stripLorentzAngleTool{
148 this, "StripLorentzAngleTool", "SiLorentzAngleTool",
149 "Tool to retrieve Lorentz angle of Strip"};
150 ToolHandle<ISiLorentzAngleTool> m_pixelLorentzAngleTool{
151 this, "PixelLorentzAngleTool", "",
152 "Tool to retreive Lorentz angle of Pixel"};
153};
154
155} // end of namespace
156
157#endif
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
Gaudi::Accumulators::Counter m_nMatchedSp
StatusCode validateClusters(const EventContext &eventContext, std::unordered_map< const xAOD::PixelCluster *, const xAOD::PixelCluster * > &pixel_cluster_matches, std::unordered_map< const xAOD::StripCluster *, const xAOD::StripCluster * > &strip_cluster_matches) const
Gaudi::Accumulators::Counter m_pix_unmatched_mon
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_referencePixelClustersKey
void matchPixelClusters(std::vector< const xAOD::PixelCluster * > &monitored_list, std::vector< const xAOD::PixelCluster * > &reference_list, const std::string &module_id, std::vector< std::pair< const xAOD::PixelCluster *, const xAOD::PixelCluster * > > &pairs) const
ToolHandle< ISiLorentzAngleTool > m_pixelLorentzAngleTool
Gaudi::Accumulators::Counter m_pixel_unequal
Gaudi::Accumulators::Counter m_strip_unmatched_ref
SG::ReadHandleKey< xAOD::SpacePointContainer > m_monitoredSpacepointsKey
SG::ReadHandleKey< xAOD::StripClusterContainer > m_referenceStripClustersKey
SG::ReadHandleKey< xAOD::PixelClusterContainer > m_monitoredPixelClustersKey
Gaudi::Accumulators::Counter m_nUnmatchedRefSp
Gaudi::Accumulators::Counter m_strip_unequal
Gaudi::Accumulators::Counter m_pixel_pos_diff_0p25sig
Gaudi::Property< std::string > m_stripManagerKey
Gaudi::Accumulators::Counter m_nSpPosDiff5mm
Gaudi::Accumulators::Counter m_strip_pos_diff_0p5sig
const InDetDD::PixelDetectorManager * m_pixelManager
Gaudi::Accumulators::Counter m_nSpVarRDiff
SG::ReadHandleKey< xAOD::StripClusterContainer > m_monitoredStripClustersKey
Gaudi::Accumulators::Counter m_matched_pixel
Gaudi::Accumulators::Counter m_nSpVarZDiff
virtual StatusCode execute(const EventContext &ctx) const override
Execute the algorithm.
Gaudi::Accumulators::Counter m_nSpPosDiff1mm
Gaudi::Accumulators::Counter m_strip_pos_diff_0p25sig
virtual StatusCode finalize() override
Finalize the algorithm.
ToolHandle< ISiLorentzAngleTool > m_stripLorentzAngleTool
Gaudi::Accumulators::Counter m_nUnmatchedMonSp
Gaudi::Accumulators::Counter m_strip_pos_diff_1sig
const InDetDD::SCT_DetectorManager * m_stripManager
Gaudi::Accumulators::Counter m_pixel_pos_diff_1sig
Gaudi::Accumulators::Counter m_strip_unmatched_mon
Gaudi::Accumulators::Counter m_matched_strip
SG::ReadHandleKey< xAOD::SpacePointContainer > m_referenceSpacepointsKey
Gaudi::Accumulators::Counter m_pix_unmatched_ref
virtual StatusCode initialize() override
Initialize the algorithm.
Gaudi::Property< std::string > m_pixelManagerKey
void matchStripClusters(std::vector< const xAOD::StripCluster * > &monitored_list, std::vector< const xAOD::StripCluster * > &reference_list, const std::string &module_id, std::vector< std::pair< const xAOD::StripCluster *, const xAOD::StripCluster * > > &pairs) const
Gaudi::Accumulators::Counter m_pixel_pos_diff_0p5sig
StatusCode validatePixelSpacepoints(const EventContext &eventContext, std::unordered_map< const xAOD::PixelCluster *, const xAOD::PixelCluster * > &pixel_cluster_matches) const
An algorithm that can be simultaneously executed in multiple threads.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a ReadHandle is made.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...