20 const IInterface* p ) :
33 ATH_MSG_FATAL(
"No inner detector track selection string provided!");
34 return StatusCode::FAILURE;
45 return StatusCode::SUCCESS;
52 return StatusCode::SUCCESS;
64 unsigned int nClusters = clusters->size();
65 if (nClusters==0)
return StatusCode::SUCCESS;
68 std::vector<bool> mask;
69 mask.assign(nClusters,
false);
74 std::vector<int>
entries = m_parser->evaluateAsVector();
75 unsigned int nEntries =
entries.size();
77 if (nClusters != nEntries ) {
78 ATH_MSG_ERROR(
"Sizes incompatible! Are you sure your selection string used the same collection as the input collection??");
79 return StatusCode::FAILURE;
82 for (
unsigned int i=0; i<nClusters; ++i)
if (
entries[i]==1) mask[i]=
true;
86 unsigned int n_pass=0;
87 for (
unsigned int i=0; i<nClusters; ++i) {
88 if (mask[i]) ++n_pass;
95 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
Handle for requesting thinning for a data object.
std::atomic< unsigned int > m_ntot
virtual StatusCode initialize() override
virtual StatusCode finalize() override
std::atomic< unsigned int > m_npass
StringProperty m_streamName
SG::ThinningHandleKey< xAOD::TrackMeasurementValidationContainer > m_SGKey
virtual ~TrackMeasurementThinning()
Destructor.
Gaudi::Property< std::string > m_selectionString
TrackMeasurementThinning(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
virtual StatusCode doThinning(const EventContext &ctx) const override
Check that the current event passes this filter.
Handle for requesting thinning for a data object.