24class node :
public std::vector<node*> {
32 node(
node* n=0,
const std::string &d=
"", TObject* t=0 ) :
34 if ( t!=0 )
mname = t->GetName();
35 mhirate = std::pair<std::string, double>(
"", 0);
63 void addrate(
const std::string& s,
double r ) {
64 addrate( std::pair<std::string, double>( s,
r ) );
67 void addrate(
const std::pair<std::string, double>&
r ) {
71 const std::pair<std::string, double>&
rate()
const {
return mhirate; }
93 s << n.depth() << n.name() <<
"::" << n.stype() <<
" : obj " << n.object() <<
" : size " << n.size() <<
"\tpath " << n.path();
95 else if ( n.size() ) {
96 if ( n.parent() ) s <<
"\t( parent " << n.parent()->name() <<
" )";
97 if ( n.rate().first!=
"" )s <<
"\t\t:::(max rate chain " << n.rate().first <<
" " << n.rate().second <<
" ):::";
98 for (
unsigned i=0 ; i<n.size() ; i++ ) {
100 s <<
"\n" << i <<
" " << n.depth() <<
" " << *n[i];
std::string stype() const
const std::string & name() const
const std::pair< std::string, double > & rate() const
const std::string & path() const
const node * parent() const
const std::string & depth() const
void addrate(const std::pair< std::string, double > &r)
std::pair< std::string, double > mhirate
node(node *n=0, const std::string &d="", TObject *t=0)
void addrate(const std::string &s, double r)
virtual TYPE type() const
void path(const std::string &p)
void name(const std::string &n)
const TObject * object() const
std::ostream & operator<<(std::ostream &s, const node &n)