14 #include "GaudiKernel/ThreadLocalContext.h"
21 const IInterface*
p ) :
33 if (m_selectionString.empty()) {
34 ATH_MSG_FATAL(
"No inner detector track selection string provided!");
35 return StatusCode::FAILURE;
36 }
else {
ATH_MSG_INFO(
"Track thinning selection string: " << m_selectionString);}
39 ATH_CHECK( m_SGKey.initialize (m_streamName) );
40 ATH_MSG_INFO(
"Using " << m_SGKey <<
"as the source collection for thinning.");
43 if (!m_selectionString.empty()) {
44 ATH_CHECK( initializeParser(m_selectionString) );
46 return StatusCode::SUCCESS;
51 ATH_MSG_INFO(
"Processed "<< m_ntot <<
" measurements, "<< m_npass<<
" were retained ");
53 return StatusCode::SUCCESS;
59 const EventContext& ctx = Gaudi::Hive::currentContext();
66 unsigned int nClusters =
clusters->size();
67 if (nClusters==0)
return StatusCode::SUCCESS;
70 std::vector<bool>
mask;
71 mask.assign(nClusters,
false);
76 std::vector<int>
entries = m_parser->evaluateAsVector();
80 ATH_MSG_ERROR(
"Sizes incompatible! Are you sure your selection string used the same collection as the input collection??");
81 return StatusCode::FAILURE;
88 unsigned int n_pass=0;
89 for (
unsigned int i=0;
i<nClusters; ++
i) {
90 if (
mask[
i]) ++n_pass;
97 return StatusCode::SUCCESS;