2 #include <TDirectory.h>
12 #include <TPaveStats.h>
30 char *cfile = argv[1];
32 std::cout <<
"ready to check file " << cfile << std::endl;
36 std::cout <<
"DQM file is ok" << std::endl;
41 std::cout <<
"Too few arguments: " << argc << std::endl;
51 printf(
"************************************\n");
53 printf(
"** W A R N I N G: the DQM file %s does not exist", filename.c_str());
55 printf(
"************************************\n");
56 }
else if (runflag == 2) {
57 printf(
"************************************\n");
59 printf(
"** W A R N I N G: the DQM file %s is incomplete", filename.c_str());
61 printf(
"************************************\n");
62 }
else if (runflag != 0) {
63 printf(
"************************************\n");
65 printf(
"** W A R N I N G: problems found in the DQM file %s", filename.c_str());
67 printf(
"************************************\n");
73 std::string nrun = filename.substr(filename.find(
"_R000") + 5, 6);
75 TFile *
dqmfile = TFile::Open(filename.c_str(),
"READ");
77 if (dqmfile ==
nullptr)
80 std::string infodir =
"DQMData/Run " + nrun +
"/Info/Run summary/ProvInfo";
81 gDirectory->cd(infodir.c_str());
83 TIter
next(gDirectory->GetListOfKeys());
86 int isruncomplete = -1;
88 while ((key = dynamic_cast<TKey *>(
next()))) {
93 if (svar.find(
"runIsComplete") != std::string::npos) {
94 std::string statusflag = svar.substr(svar.rfind(
'<') - 1, 1);
95 isruncomplete = atoi(statusflag.c_str());
101 if (isruncomplete == -1)
103 if (isruncomplete == 0)
105 if (isruncomplete == 1)
int check_runcomplete(std::string filename)
int read_runflag(std::string filename)
printf("params %d %f %f %f\n", minT, eps, errmax, chi2max)
tuple key
prepare the HTCondor submission files and eventually submit them