13 #include "GaudiKernel/ThreadLocalContext.h" 
   20                                                                   const IInterface* 
p ) :
 
   22 m_selectionString(
""),
 
   37     if (m_selectionString.empty()) {
 
   39         return StatusCode::FAILURE;
 
   40     } 
else {
ATH_MSG_INFO(
"Selection string: " << m_selectionString);}
 
   43     if (!m_selectionString.empty()) {
 
   44        ATH_CHECK(initializeParser( m_selectionString) );
 
   48     ATH_CHECK( m_SGKey.initialize (m_streamName) );
 
   49     ATH_MSG_INFO(
"Using " << m_SGKey << 
"as the source collection");
 
   51     return StatusCode::SUCCESS;
 
   57     ATH_MSG_INFO(
"Processed "<< m_ntot <<
" objects, "<< m_npass<< 
" were retained ");
 
   59     return StatusCode::SUCCESS;
 
   65     const EventContext& ctx = Gaudi::Hive::currentContext();
 
   71     unsigned int nObjects = 
particles->size();
 
   72     if (nObjects==0) 
return StatusCode::SUCCESS;
 
   75     std::vector<bool> 
mask;
 
   76     mask.assign(nObjects,
false); 
 
   81         std::vector<int> 
entries =  m_parser->evaluateAsVector();
 
   85             ATH_MSG_ERROR(
"Sizes incompatible! Are you sure your selection string used the same collection as the input collection??");
 
   86             return StatusCode::FAILURE;
 
   98     return StatusCode::SUCCESS;