642 {
643
644 static std::string savedir = "";
645
647
649
652
654
656
657 std::string newspacer = space;
658
661 return;
662 }
663
664
665
667
668 std::string output_name =
find(
n.name());
669
671 if ( path==
"" )
path += output_name;
673 if ( rawpath==
"" ) rawpath +=
n.name();
675 }
676
678
679 if (
print ) (*outp) << space <<
"dir " <<
n.name() <<
" {" <<
"\n";
680
681 bool first_hists = true;
682
683 for (
unsigned i=0 ;
i<
n.size() ;
i++ ) {
687 if ( first_hists ) {
688 (*outp) << space << "\t" << "hist .* {\n";
689 (*outp) << space << "\t\t" << "regex \t= 1\n";
690 (*outp) << space <<
"\t\t" <<
"algorithm \t= " <<
algorithm <<
"\n";
691 (*outp) << space <<
"\t\t" <<
"description \t= " <<
description <<
"\n";
692 (*outp) << space <<
"\t\t" <<
"output \t= " <<
path <<
"\n";
693 (*outp) << space << "\t\t" << "display \t= StatBox\n";
695 for (
unsigned it=0 ;
it<
tags.size() ;
it++ ) (*
outp) << space <<
"\t\t" <<
replace(
tags[it],
"=",
"\t=") <<
"\n";
696 (*outp) << space << "\t" << "}\n";
697 }
698 first_hists = false;
699 }
700 else {
701 (*outp) << space <<
"\t" <<
"hist " <<
n[
i]->name() <<
" {\n";
702 (*outp) << space <<
"\t\t" <<
"algorithm \t= " <<
algorithm <<
"\n";
703 (*outp) << space <<
"\t\t" <<
"description \t= " <<
description <<
"\n";
704 (*outp) << space <<
"\t\t" <<
"output \t= " <<
path <<
"\n";
705 (*outp) << space << "\t\t" << "display \t= StatBox\n";
707 static const std::string equalStr{"="};
708 static const std::string tabEqualStr{"\t="};
709 for (
unsigned it=0 ;
it<
tags.size() ;
it++ ) (*
outp) << space <<
"\t\t" <<
replace(
tags[it],equalStr,tabEqualStr) <<
"\n";
710 (*outp) << space << "\t" << "}\n";
711
712
713
714
715
716 }
717 }
718 }
719
720 if (
print ) (*outp) << space <<
"}\n";
721 }
722
723 }
void print(char *figname, TCanvas *c1)
bool matchdir(const std::string &s)
see whether this directory matches any of the directories we are explicitly being asked to match
std::string description
glabal timer - how long have I taken so far?
std::vector< std::string > tags
std::string replace(std::string s, const std::string &s2, const std::string &s3)
std::ostream * outp
send output to here ...
std::string find(const std::string &s)
return a remapped string
std::set< std::string > exclude
list of directories to be excluded
static const std::string delimiter("/")
std::map< std::string, int > dirs
list of directories to be explicitly included, together with corresponding depths of subdirectories
path
python interpreter configuration --------------------------------------—