#include "ATOOLS/Math/Histogram.H" #include "ATOOLS/Org/Message.H" #include "ATOOLS/Org/Terminator_Objects.H" #include "ATOOLS/Org/Shell_Tools.H" #include "ATOOLS/Org/MyStrStream.H" #include #include #include #include #include using namespace ATOOLS; using namespace std; void PrintInfo() { cout<<"usage: Combine_Analysis [options] OUTPUT_DIRECTORY INPUT_DIRECTORY1 INPUT_DIRECTORY2 ..."< only combine histogram files that pass the "< rescale output by "< inlist; for (;i filelist; if (inlist[0][inlist[0].length()-1]!='/') { std::string file=inlist[0]+".zip"; ZipArchive *zf(new ZipArchive(file)); int res=zf->open(ZipArchive::WRITE); const std::vector &entries=zf->getEntries(); for (size_t i(0);i "+flname; system(tmp.c_str()); std::string buf; ifstream from(flname.c_str()); while (from) { getline(from,buf); if (buf.find(".dat")!=string::npos) if (FileExists(inlist[0]+buf)) filelist.push_back(buf); } from.close(); system(("rm "+flname).c_str()); } if (check) { double** csmatrix=new double*[inlist.size()]; int** nummatrix=new int*[inlist.size()]; string** namematrix=new string*[inlist.size()]; for (size_t j=0;j hvec; for (size_t j=0;jCheckStatistics(*(hvec[k]),avgdev,stddev)>1) { if (stddev>csmatrix[j][k]) { csmatrix[j][k]=stddev; namematrix[j][k]=filelist[i]; } if (stddev1.5) nummatrix[j][k]++; if (stddev<0.5) nummatrix[k][j]++; } } } for (size_t j=0;j1.5) { cout<<" Data sets "<0) { bool valid=1; if (mode==0) h0.Restore(); for (int j=1;j0) { if (mode==0) histo.Restore(); switch (mode) { case 2: h0.Addopt(histo); break; case 3: h0.BinMin(histo); break; case 4: h0.BinMax(histo); break; default: h0+=histo; } } else valid=0; } if (valid) { if (mode==0) h0.Finalize(); if (mode==5) h0.Scale(factor); if (noheader) h0.SetFills(-1); if (filelist[i].rfind("/")!=std::string::npos) ATOOLS::MakeDir(output+filelist[i].substr(0,filelist[i].rfind("/"))); h0.Output(output+filelist[i]); sc++; } } } if (sc>0) cout<<"successfully combined "<0) { for (size_t i=0;i