21 ISvcLocator* pSvcLocator ) :
22 base_class(
name, pSvcLocator),
25 declareProperty(
"VerboseThreshold",
m_verboseThresh,
"overlaps above this fraction print their items, def=0.2");
26 assert( pSvcLocator );
35 return StatusCode::SUCCESS;
42 std::map<std::string, std::set<std::string> >::const_iterator
it =
m_streamItems.begin();
45 ATH_MSG_DEBUG(
"STREAM " <<
it->first <<
" has (" <<
it->second.size() <<
") items");
46 std::set<std::string>::const_iterator iprint =
it->second.begin();
47 while (iprint !=
it->second.end()) {
51 std::map<std::string, std::set<std::string> >::const_iterator it2 =
m_streamItems.begin();
52 float inv_size = 1. /
static_cast<float> (
it->second.size());
54 if (it2->first !=
it->first) {
55 std::set<std::string> olist;
56 std::set_intersection(
it->second.begin(),
it->second.end(),it2->second.begin(),it2->second.end(),std::inserter(olist,olist.begin()));
58 ATH_MSG_DEBUG(
" --> Overlap with " << it2->first <<
" (" << olist.size() <<
") items");
60 for (
const std::string& ol : olist) {
70 return StatusCode::SUCCESS;
82 it->second.insert(itemname);
86 std::set<std::string>
start;
87 start.insert(itemname);
93 return StatusCode::SUCCESS;
106 int n =
it->second.erase(itemname);
109 return StatusCode::SUCCESS;
117 std::map<std::string, std::set<std::string> >::const_iterator
it =
m_streamItems.begin();
120 if (
it->second.find(itemname) !=
it->second.end())
contains =
true;
131 std::vector<std::string>
t;
132 std::map<std::string, std::set<std::string> >::const_iterator
it =
m_streamItems.begin();
134 if (
it->second.find(itemname) !=
it->second.end())
t.push_back(
it->first);
144 std::vector<std::string>
t;