14 #include "dqm_core/LibraryManager.h"
15 #include "dqm_core/InputRootFile.h"
44 void RecursivelyDeleteCollection(TCollection*
seq) {
46 while (TObject*
obj =
it()) {
47 TCollection* coll =
dynamic_cast<TCollection*
>(
obj);
49 RecursivelyDeleteCollection(coll);
72 HanApp(
const std::string& configName,
const std::string& inputName,
const std::string&
outputName,
const std::string&
path )
86 Analyze(
const std::string& configName_,
const std::string& inputName_,
const std::string& outputName_,
const std::string& path_ )
91 runtimeConfig.setPath( path_ );
94 TSeqCollection *outputList =
new TList();
101 HanOutput output( outputName_, outputMap, outputList );
102 output.setInput(
const_cast<TDirectory*
>(input.getBasedir()));
108 std::cout <<
"Reading configuration and input histograms...\n" <<
std::flush;
109 config.BuildMonitors( configName_, input, output );
110 std::cout <<
"Preparing output...\n" <<
std::flush;
111 config.BuildConfigOutput( configName_, input.file(), path_, outputMap, outputList );
113 std::cout <<
"Analyzing histograms...\n" <<
std::flush;
116 output.publishMissingDQPars();
118 std::cout <<
"Writing output file...\n" <<
std::flush;
121 std::cout <<
"Deleting objects from memory.\n" <<
std::flush;
122 RecursivelyDeleteCollection(outputList);