create the structure ...
1070 {
1071
1072
1073
1074
1075
1076
1077
1078 gStyle->SetPadRightMargin(0.05);
1079 gStyle->SetPadTopMargin(0.075);
1080
1081
1082 TCanvas* tg = new TCanvas("tg", "tg", 700, 600 );
1083 tg->cd();
1084
1085 gStyle->SetStatY(0.4);
1086
1087 gStyle->SetStatX(0.89);
1088
1089 gStyle->SetStatW(0.25);
1090
1091 gStyle->SetStatH(0.16);
1092
1093
1094
1095 if ( argc<2 )
return usage( std::cerr, argc, argv );
1096
1097
1098 for (
int i=1 ;
i<
argc ;
i++ ) {
1099 if ( std::string(argv[i])==
"-h" || std::string(argv[i])==
"--help" )
return usage( *
outp, argc, argv, 0 );
1100 }
1101
1102 std::string
dir =
"";
1103
1104 std::vector<std::string> subdirs;
1105
1106
1107 bool deleteref = false;
1108 bool relocate = false;
1109
1111
1113
1114 for (
int i=1 ;
i<
argc ;
i++ ) {
1115 if ( std::string(argv[i])==
"-v" || std::string(argv[i])==
"--verbose" )
verbose =
true;
1116 else if ( std::string(argv[i])=="-o" ) {
1119 else return usage( std::cerr, argc, argv );
1120 }
1121 else if ( std::string(argv[i])=="-or" || std::string(argv[i])=="--outrefr" ) {
1124 else return usage( std::cerr, argc, argv );
1125 }
1126 else if ( std::string(argv[i])=="-ref" || std::string(argv[i])=="--reference" ) {
1127 std::string reftag;
1130 if ( i<argc-offset ) reftag =
argv[
i];
1131 else return usage( std::cerr, argc, argv );
1134 else return usage( std::cerr, argc, argv );
1136
1137 }
1138 else if ( std::string(argv[i])=="-rc" || std::string(argv[i])=="-refconf" ) {
1141 else return usage( std::cerr, argc, argv );
1142 }
1143 else if ( std::string(argv[i])=="-dr" || std::string(argv[i])=="--deleteref" ) deleteref = true;
1144 else if ( std::string(argv[i])=="-rh" || std::string(argv[i])=="--relocate" ) relocate = true;
1145 else if ( std::string(argv[i])==
"-wc" || std::string(argv[i])==
"--wildcard" )
allhists =
false;
1146 else if ( std::string(argv[i])=="-d" || std::string(argv[i])=="--dir" ) {
1148
1149 if ( i<argc-offset ) {
1150 std::string stringdir(argv[i]);
1151 dirs.insert( std::map<std::string,int>::value_type( stringdir, std::count( stringdir.begin(), stringdir.end(),
'/' ) ) );
1152
1153 std::string tdir =
argv[
i];
1154
1155
1156
1157 do {
1159
1160 }
1161 while ( tdir.size() );
1162 }
1163 else return usage( std::cerr, argc, argv );
1164 }
1165 else if ( std::string(argv[i])=="-x" ) {
1167 if ( i<argc-offset )
exclude.insert( argv[i] );
1168 else return usage( std::cerr, argc, argv );
1169 }
1170 else if ( std::string(argv[i])==
"-ds" || std::string(argv[i]).
find(
"--desc")==0 ) {
1173 else return usage( std::cerr, argc, argv );
1174 }
1175 else if ( std::string(argv[i])=="-b" || std::string(argv[i])=="--base" ) {
1178 else return usage( std::cerr, argc, argv );
1179 }
1180 else if ( std::string(argv[i])=="-a" || std::string(argv[i])=="--algorithm" ) {
1183 else return usage( std::cerr, argc, argv );
1184 }
1185
1186
1187
1188
1189
1190 else if ( std::string(argv[i])=="-t" || std::string(argv[i])=="--tag" ) {
1192 if ( i<argc-offset )
tags.push_back( argv[i] );
1193 else return usage( std::cerr, argc, argv );
1194 }
1195 else if ( std::string(argv[i])=="-r" ) {
1198 if ( i<argc+2-offset ) {
1201 remap.insert( std::map<std::string,std::string>::value_type( src, dest ) );
1202 }
else return usage( std::cerr, argc, argv );
1203 }
1204 else {
1206 files.push_back(argv[i]);
1207 }
1208 }
1209
1210
1211 if (
base ==
"" )
base = std::move(dir);
1212
1213
1215
1216 if (
files.size()<1 )
return usage( std::cerr, argc, argv );
1217
1218
1219
1220
1221 if (
verbose ) std::cerr <<
"timing" << std::endl;
1222
1224
1226
1228 n.name(
"top_level" );
1229
1231
1232
1233
1234 if ( status )
return status;
1235
1236 if ( outfile!=
"" )
outp =
new std::ofstream(
outfile.c_str());
1237
1239
1241
1243
1246
1249
1251 (*outp) << std::endl;
1252
1254
1255 if ( t>1000 ) std::cerr <<
"total time " <<
t*0.001 <<
" s" << std::endl;
1256 else std::cerr <<
"total time " <<
t <<
" ms" << std::endl;
1257
1258 return 0;
1259}
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)