create the structure ...
1066 {
1067
1068
1069
1070
1071
1072
1073
1074 gStyle->SetPadRightMargin(0.05);
1075 gStyle->SetPadTopMargin(0.075);
1076
1077
1078 TCanvas* tg = new TCanvas("tg", "tg", 700, 600 );
1079 tg->cd();
1080
1081 gStyle->SetStatY(0.4);
1082
1083 gStyle->SetStatX(0.89);
1084
1085 gStyle->SetStatW(0.25);
1086
1087 gStyle->SetStatH(0.16);
1088
1089
1090
1091 if ( argc<2 )
return usage( std::cerr, argc, argv );
1092
1093
1094 for (
int i=1 ;
i<
argc ;
i++ ) {
1095 if ( std::string(argv[i])==
"-h" || std::string(argv[i])==
"--help" )
return usage( *
outp, argc, argv, 0 );
1096 }
1097
1098 std::string
dir =
"";
1099
1100 std::vector<std::string> subdirs;
1101
1102
1103 bool deleteref = false;
1104 bool relocate = false;
1105
1107
1109
1110
1111 for (
int i=1 ;
i<
argc ;
i++ ) {
1112 if ( std::string(argv[i])==
"-v" || std::string(argv[i])==
"--verbose" )
verbose =
true;
1113 else if ( std::string(argv[i])=="-o" ) {
1116 else return usage( std::cerr, argc, argv );
1117 }
1118 else if ( std::string(argv[i])=="-or" || std::string(argv[i])=="--outrefr" ) {
1121 else return usage( std::cerr, argc, argv );
1122 }
1123 else if ( std::string(argv[i])=="-ref" || std::string(argv[i])=="--reference" ) {
1124 std::string reftag;
1127 if ( i<argc-offset ) reftag =
argv[
i];
1128 else return usage( std::cerr, argc, argv );
1131 else return usage( std::cerr, argc, argv );
1133
1134 }
1135 else if ( std::string(argv[i])=="-rc" || std::string(argv[i])=="-refconf" ) {
1138 else return usage( std::cerr, argc, argv );
1139 }
1140 else if ( std::string(argv[i])=="-dr" || std::string(argv[i])=="--deleteref" ) deleteref = true;
1141 else if ( std::string(argv[i])=="-rh" || std::string(argv[i])=="--relocate" ) relocate = true;
1142 else if ( std::string(argv[i])==
"-wc" || std::string(argv[i])==
"--wildcard" )
allhists =
false;
1143 else if ( std::string(argv[i])=="-d" || std::string(argv[i])=="--dir" ) {
1145
1146 if ( i<argc-offset ) {
1147 std::string stringdir(argv[i]);
1148 dirs.insert( std::map<std::string,int>::value_type( stringdir, std::count( stringdir.begin(), stringdir.end(),
'/' ) ) );
1149
1150 std::string tdir =
argv[
i];
1151
1152
1153
1154 do {
1155 subdirs.push_back(
chop( tdir,
"/" ) );
1156
1157 }
1158 while ( tdir.size() );
1159 }
1160 else return usage( std::cerr, argc, argv );
1161 }
1162 else if ( std::string(argv[i])=="-x" ) {
1164 if ( i<argc-offset )
exclude.insert( argv[i] );
1165 else return usage( std::cerr, argc, argv );
1166 }
1167 else if ( std::string(argv[i])==
"-ds" || std::string(argv[i]).
find(
"--desc")==0 ) {
1170 else return usage( std::cerr, argc, argv );
1171 }
1172 else if ( std::string(argv[i])=="-b" || std::string(argv[i])=="--base" ) {
1175 else return usage( std::cerr, argc, argv );
1176 }
1177 else if ( std::string(argv[i])=="-a" || std::string(argv[i])=="--algorithm" ) {
1180 else return usage( std::cerr, argc, argv );
1181 }
1182
1183
1184
1185
1186
1187 else if ( std::string(argv[i])=="-t" || std::string(argv[i])=="--tag" ) {
1189 if ( i<argc-offset )
tags.push_back( argv[i] );
1190 else return usage( std::cerr, argc, argv );
1191 }
1192 else if ( std::string(argv[i])=="-r" ) {
1195 if ( i<argc+2-offset ) {
1198 remap.insert( std::map<std::string,std::string>::value_type( src, dest ) );
1199 }
else return usage( std::cerr, argc, argv );
1200 }
1201 else {
1203 files.push_back(argv[i]);
1204 }
1205 }
1206
1207
1208 if (
base ==
"" )
base = std::move(dir);
1209
1210
1212
1213 if (
files.size()<1 )
return usage( std::cerr, argc, argv );
1214
1215
1216
1217
1218 if (
verbose ) std::cerr <<
"timing" << std::endl;
1219
1221
1223
1225 n.name(
"top_level" );
1226
1228
1229
1230
1231 if ( status )
return status;
1232
1233 if ( outfile!=
"" )
outp =
new std::ofstream(
outfile.c_str());
1234
1236
1238
1240
1243
1246
1248 (*outp) << std::endl;
1249
1251
1252 if ( t>1000 ) std::cerr <<
"total time " <<
t*0.001 <<
" s" << std::endl;
1253 else std::cerr <<
"total time " <<
t <<
" ms" << std::endl;
1254
1255 return 0;
1256}
struct timeval simpletimer_start(void)
double simpletimer_stop(const struct timeval &start_time)
Header file for AthHistogramAlgorithm.
make the histogram assessment part of the config
int ir
counter of the current depth
std::string description
glabal timer - how long have I taken so far?
std::vector< std::string > tags
void referenceblock(const std::string &file)
std::vector< reference > references
std::ostream * outp
send output to here ...
int cost(std::vector< std::string > &files, node &n, const std::string &directory="", bool deleteref=false, bool relocate=false)
std::string find(const std::string &s)
return a remapped string
std::set< std::string > exclude
list of directories to be excluded
std::vector< std::string > refblock
std::string chop(std::string &s1, const std::string &s2)