ATLAS Offline Software
Loading...
Searching...
No Matches
ThinInDetClustersAlg.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef THINNINGUTILS_ThinInDetClustersAlg_H
8#define THINNINGUTILS_ThinInDetClustersAlg_H 1
9
13
15// FrameWork includes
17#include "GaudiKernel/ServiceHandle.h"
18#include "GaudiKernel/ToolHandle.h"
26
27// STL includes
28#include <atomic>
29#include <string>
30#include <vector>
31
32class ThinInDetClustersAlg final : public ExpressionParserUser<::AthReentrantAlgorithm>
33{
34 public:
36 ThinInDetClustersAlg(const std::string& name, ISvcLocator* pSvcLocator);
37
39 virtual ~ThinInDetClustersAlg() = default;
40
42 virtual StatusCode initialize() override;
43
45 virtual StatusCode execute(const EventContext& ctx) const override;
46
48 virtual StatusCode finalize() override;
49
50 private:
52 mutable std::atomic<unsigned int> m_ntot{};
53 mutable std::atomic<unsigned int> m_npass{};
55 BooleanProperty m_thinPixelHitsOnTrack
56 { this, "ThinPixelHitsOnTrack", false, ""};
57 BooleanProperty m_thinSCTHitsOnTrack
58 { this, "ThinSCTHitsOnTrack", false, ""};
59 BooleanProperty m_thinTRTHitsOnTrack
60 { this, "ThinTRTHitsOnTrack", false, ""};
61
63 StringProperty m_streamName
64 { this, "StreamName", "", "Name of the stream being thinned" };
65
68
69 StringProperty m_selectionString
70 { this, "SelectionString", "InDetTrackParticles.pt>10*GeV", "Selection string for each TrackParticle container" };
71
74 { this, "InDetTrackParticlesKey", "InDetTrackParticles", "" };
75
77 mutable std::atomic<unsigned int> m_ntot_pix_states{};
78 mutable std::atomic<unsigned int> m_npass_pix_states{};
80 { this, "InDetTrackStatesPixKey", "PixelMSOSs", "" }; // original
81
82 mutable std::atomic<unsigned int> m_ntot_pix_measurements{};
83 mutable std::atomic<unsigned int> m_npass_pix_measurements{};
85 { this, "InDetTrackMeasurementsPixKey", "PixelClusters", "" };
86
87 mutable std::atomic<unsigned int> m_ntot_sct_states{};
88 mutable std::atomic<unsigned int> m_npass_sct_states{};
90 { this, "InDetTrackStatesSctKey", "SCT_MSOSs", "" };
91
92 mutable std::atomic<unsigned int> m_ntot_sct_measurements{};
93 mutable std::atomic<unsigned int> m_npass_sct_measurements{};
95 { this, "InDetTrackMeasurementsSctKey", "SCT_Clusters", "" };
96
97 mutable std::atomic<unsigned int> m_ntot_trt_states{};
98 mutable std::atomic<unsigned int> m_npass_trt_states{};
100 { this, "InDetTrackStatesTrtKey", "TRT_MSOSs", "" };
101
102 mutable std::atomic<unsigned int> m_ntot_trt_measurements{};
103 mutable std::atomic<unsigned int> m_npass_trt_measurements{};
105 { this, "InDetTrackMeasurementsTrtKey", "TRT_DriftCircles", "" };
106
108 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
109
122
124 void selectTrackHits(const xAOD::TrackParticleContainer& inputTrackParticles,
125 const std::vector<bool>& inputMask,
126 MeasurementType detTypeToSelect,
127 std::vector<bool>& outputStatesMask, std::vector<bool>& outputMeasurementsMask) const;
128
129 StatusCode filterTrackHits
130 (MeasurementType detTypeToSelect,
131 const xAOD::TrackParticleContainer& inputTrackParticles,
132 const std::vector<bool>& inputMask,
135 std::atomic<unsigned int>& ntot_states,
136 std::atomic<unsigned int>& npass_states,
137 std::atomic<unsigned int>& npass_measurements,
138 const EventContext& ctx) const;
139};
140
141#endif //> !THINNINGUTILS_ThinInDetClustersAlg_H
142
HandleKey object for adding thinning to an object.
HandleKey object for adding thinning to an object.
MeasurementType
Track state types Subset of enum MeasurementType from Athena: Tracking/TrkEvent/TrkEventPrimitives/Tr...
StringProperty m_selectionString
Expressions for object thinning selections Default InDetTrackParticles (also accomplished through fla...
std::atomic< unsigned int > m_ntot_sct_states
std::atomic< unsigned int > m_npass_pix_states
std::atomic< unsigned int > m_npass_sct_measurements
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsPixSGKey
virtual StatusCode finalize() override
Athena algorithm's finalize hook.
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesSctSGKey
BooleanProperty m_thinPixelHitsOnTrack
Thinning logic.
BooleanProperty m_thinTRTHitsOnTrack
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesTrtSGKey
std::atomic< unsigned int > m_npass_trt_measurements
std::atomic< unsigned int > m_npass
ThinInDetClustersAlg(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::atomic< unsigned int > m_ntot_sct_measurements
std::atomic< unsigned int > m_ntot_pix_states
Counters and keys for xAOD::TrackStateValidation and xAOD::TrackMeasurementValidation containers.
virtual ~ThinInDetClustersAlg()=default
Destructor:
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_inDetSGKey
SGKey for TrackParticleContainer.
void selectTrackHits(const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, MeasurementType detTypeToSelect, std::vector< bool > &outputStatesMask, std::vector< bool > &outputMeasurementsMask) const
Select TrackStateValidation and TrackMeasurementValidation objects that are used in the (thinned) tra...
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsTrtSGKey
std::atomic< unsigned int > m_npass_sct_states
std::atomic< unsigned int > m_ntot_pix_measurements
virtual StatusCode initialize() override
Athena algorithm's initalize hook.
std::atomic< unsigned int > m_npass_pix_measurements
std::atomic< unsigned int > m_ntot_trt_states
std::atomic< unsigned int > m_npass_trt_states
SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > m_statesPixSGKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
For P->T converter of SCT_Clusters.
std::atomic< unsigned int > m_ntot_trt_measurements
StatusCode filterTrackHits(MeasurementType detTypeToSelect, const xAOD::TrackParticleContainer &inputTrackParticles, const std::vector< bool > &inputMask, const SG::ThinningHandleKey< xAOD::TrackStateValidationContainer > &statesKey, const SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > &measurementsKey, std::atomic< unsigned int > &ntot_states, std::atomic< unsigned int > &npass_states, std::atomic< unsigned int > &npass_measurements, const EventContext &ctx) const
StringProperty m_streamName
Stream for object thinning selections.
virtual StatusCode execute(const EventContext &ctx) const override
Athena algorithm's execute hook.
BooleanProperty m_thinSCTHitsOnTrack
std::atomic< unsigned int > m_ntot
Counters and keys for xAOD::TrackParticle container.
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_measurementsSctSGKey
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".