#include "QFramework/TQGraphMakerAnalysisJob.h"
#include "QFramework/TQIterator.h"
#include "QFramework/TQHistogramUtils.h"
#include "QFramework/TQObservable.h"
#include "QFramework/TQStringUtils.h"
#include "QFramework/TQCompiledCut.h"
#include "QFramework/TQTaggable.h"
#include "TObjArray.h"
#include "TList.h"
#include "TObjString.h"
#include "QFramework/TQSample.h"
#include "TFolder.h"
#include "TGraph.h"
#include "TGraph2D.h"
#include "QFramework/TQUtils.h"
#include "TH1.h"
#include "TH1F.h"
#include "TH2F.h"
#include "QFramework/TQLibrary.h"
#include <iostream>
#include <fstream>
#include <stdexcept>
#include <sstream>
#include <cstdlib>
TQMessageStream TQGraphMakerAnalysisJob::f_ErrMsg(new std::stringstream());
ClassImp(TQGraphMakerAnalysisJob)
TQGraphMakerAnalysisJob::TQGraphMakerAnalysisJob() :
TQAnalysisJob("TQGraphMakerAnalysisJob"),
f_Verbose(0),
poolAt(NULL)
{
}
TQGraphMakerAnalysisJob::TQGraphMakerAnalysisJob(TQGraphMakerAnalysisJob* other) :
TQAnalysisJob(other ? other->GetName() : "TQGraphMakerAnalysisJob"),
f_Verbose(other ? other->f_Verbose : 0),
poolAt(other ? other->poolAt : NULL)
{
for(size_t i=0; i<other->fGraphTemplates.size(); ++i){
this->fGraphTemplates.push_back(TQHistogramUtils::copyGraph(other->fGraphTemplates[i]));
this->fGraphTypes.push_back(other->fGraphTypes[i]);
this->fExpressions.push_back(std::vector<TString>());
for(size_t j=0; j<other->fExpressions[i].size(); ++j){
this->fExpressions[i].push_back(other->fExpressions[i][j]);
}
}
}
void TQGraphMakerAnalysisJob::setVerbose(int verbose) {
f_Verbose = verbose;
}
int TQGraphMakerAnalysisJob::getVerbose() {
return f_Verbose;
}
void TQGraphMakerAnalysisJob::setErrorMessage(TString message) {
f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),"<anonymous>",message);
if (f_Verbose > 0) INFOclass(message);
}
void TQGraphMakerAnalysisJob::clearMessages(){
f_ErrMsg.clearMessages();
}
TString TQGraphMakerAnalysisJob::getErrorMessage() {
return f_ErrMsg.getMessages();
}
const TString& TQGraphMakerAnalysisJob::getValidNameCharacters() {
return TQFolder::getValidNameCharacters();
}
void TQGraphMakerAnalysisJob::cancelGraph(const TString& name) {
for(size_t i=fGraphTemplates.size(); i >0 ; i--){
if(fGraphTemplates.at(i)->GetName() == name){
fGraphTemplates.erase(fGraphTemplates.begin()+i-1);
fExpressions.at(i-1).clear();
fExpressions.erase(fExpressions.begin()+i-1);
fGraphTypes.erase(fGraphTypes.begin()+i-1);
return;
}
}
}
bool TQGraphMakerAnalysisJob::bookGraph(TString definition, TQTaggable* aliases) {
DEBUGclass("entering function - booking graph '%s'",definition.Data());
if(definition.IsNull()){
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"obtained empty graph definition");
return false;
}
TString graphDef;
TQStringUtils::readUpTo(definition, graphDef, "<", "()[]{}", "''\"\"");
if(graphDef.IsNull()){
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"graph constructor is empty, remainder is '%s'",definition.Data());
return false;
}
DEBUGclass("creating graph '%s'",graphDef.Data());
TString msg;
TNamed * graph = TQHistogramUtils::createGraph(graphDef, msg);
DEBUGclass(graph ? "success" : "failure");
if (!graph) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::ERROR,this->Class(),__FUNCTION__,msg);
return false;
}
if (!TQFolder::isValidName(graph->GetName())) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"'%s' is an invalid graph name", graph->GetName());
delete graph;
return false;
}
if (TQStringUtils::removeLeading(definition, "<") != 2) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Operator '<<' expected after graph definition");
delete graph;
return false;
}
std::vector<TString> settingTokens = TQStringUtils::split(definition, "<<", "([{'\"", ")]}'\"");
if (settingTokens.size()<1) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"cannot parse definition block '%s'",definition.Data());
delete graph;
return false;
}
definition = settingTokens[0];
TQTaggable options;
if (settingTokens.size()>1) {
TString optionBlock;
TQStringUtils::readBlanksAndNewlines(settingTokens[1]);
if (!TQStringUtils::readBlock(settingTokens[1], optionBlock, "()[]{}", "''\"\"")) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Failed to parse graph option block '%s'", settingTokens[1].Data());
delete graph;
return false;
}
options.importTags(optionBlock);
}
TString expressionBlock;
TQStringUtils::readBlanksAndNewlines(definition);
if (!TQStringUtils::readBlock(definition, expressionBlock, "()[]{}", "''\"\"")) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Missing expression block after '<<' operator");
delete graph;
return false;
}
TList * expressionTokens = TQStringUtils::tokenize(expressionBlock, ",", true, "()[]{}", "''\"\"");
if(expressionTokens->GetEntries() < 1){
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"cannot parse expression block '%s'",expressionBlock.Data());
delete graph;
return false;
}
DEBUGclass("parsing expression block '%s', found %d entries",expressionBlock.Data(),expressionTokens->GetEntries());
std::vector<TString> exprs;
std::vector<TString> titles;
TQIterator itr(expressionTokens);
while (itr.hasNext()) {
TString token(itr.readNext()->GetName());
TString expr;
int nColon = 0;
while(nColon != 1){
TQStringUtils::readUpTo(token, expr, "\\:", "()[]{}", "''\"\"");
nColon = TQStringUtils::countLeading(token, ":");
if (nColon == 1) {
break;
} else if (nColon == 0) {
if(TQStringUtils::removeLeading(token,"\\")){
TQStringUtils::readToken(token,expr,":");
continue;
}
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"':' expected after expression");
DEBUGclass("':' expected after expression");
delete graph;
return false;
} else {
TQStringUtils::readToken(token,expr,":");
continue;
}
}
TQStringUtils::readBlanksAndNewlines(token);
TQStringUtils::removeLeading(token,":");
TQStringUtils::readBlanksAndNewlines(token);
TString buffer;
TString title = TQStringUtils::unquote(token);
const TString expression(aliases ? aliases->replaceInTextRecursive(expr) : expr);
exprs.push_back(TQStringUtils::trim(expression));
titles.push_back(TQStringUtils::trim(title));
DEBUGclass("found expression and title: '%s' and '%s'",expr.Data(),title.Data());
}
TString name = graph->GetName();
int dim = (graph->InheritsFrom(TGraph2D::Class()) ? 3 : 2);
if ( ( dim > 0 && dim != (int)exprs.size() ) || ( dim < 0 && (int)exprs.size() != abs(dim)+1) ) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Dimensionality of graph (%d) and expression block (%d) don't match", dim, (int)(exprs.size()));
delete graph;
DEBUGclass("Dimensionality of graph (%d) and expression block (%d) don't match", dim, (int)(exprs.size()));
return false;
}
if (!TQStringUtils::isValidIdentifier(name, getValidNameCharacters())) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Invalid graph name '%s'", name.Data());
DEBUGclass("Invalid graph name '%s'", name.Data());
delete graph;
return false;
}
bool exists = false;
int i = 0;
while (!exists && i < (int)(fGraphTemplates.size()))
exists = (name.CompareTo(fGraphTemplates.at(i++)->GetName()) == 0);
if (exists) {
this->f_ErrMsg.sendClassFunctionMessage(TQMessageStream::INFO,this->Class(),__FUNCTION__,"Graph with name '%s' has already been booked", name.Data());
DEBUGclass("Graph with name '%s' has already been booked", name.Data());
delete graph;
return false;
}
for (int i = 0; i < (int)exprs.size(); i++) {
TAxis* axis = TQHistogramUtils::getAxis_nonconst(graph,i);
axis->SetTitle(titles[i]);
axis->SetName(exprs[i]);
}
fExpressions.push_back(exprs);
fGraphTypes.push_back(graph->IsA());
fGraphTemplates.push_back(graph);
return true;
}
void TQGraphMakerAnalysisJob::print(const TString& options) {
if(options.Contains("TeX")){
this->printBookingTeX(this->GetName());
} else {
this->printBooking(this->GetName());
}
}
void TQGraphMakerAnalysisJob::printBookingTeX(const TString& moretext) {
std::cout << "\\begin{tabular}{l l l l }" << std::endl;;
std::cout << "\\multicolumn{2}{l}{\\bfseries Booked Graphs}" << " & \\multicolumn{2}{l}{" << moretext << "}\\tabularnewline" << std::endl;
for (size_t i = 0;i < fGraphTemplates.size(); i++) {
TString exp(TQStringUtils::concat(fExpressions.at(i),","));
exp.ReplaceAll("$","\\$");
std::cout << fGraphTemplates.at(i)->GetName() << " & "
<< fGraphTemplates.at(i)->GetTitle() << " & "
<< TQHistogramUtils::getDetailsAsString(fGraphTemplates.at(i), 2) << " & "
<< exp;
if(i != fGraphTemplates.size() -1) std::cout << " \\tabularnewline ";
std::cout<< std::endl;
}
std::cout << "\\end{tabular}" << std::endl;
}
void TQGraphMakerAnalysisJob::printBooking(const TString& moretext) {
std::cout << TQStringUtils::makeBoldBlue("Booked Graphs") << " " << TQStringUtils::makeBoldWhite(moretext) << std::endl;
for (size_t i = 0;i < fGraphTemplates.size(); i++) {
std::cout << TQStringUtils::fixedWidth(fGraphTemplates.at(i)->GetName(),20)
<< TQStringUtils::fixedWidth(fGraphTemplates.at(i)->GetTitle(),20)
<< TQHistogramUtils::getDetailsAsString(fGraphTemplates.at(i), 2)
<< " << " << TQStringUtils::concat(fExpressions.at(i)," : ")
<< std::endl;
}
}
bool TQGraphMakerAnalysisJob::execute(double) {
DEBUGclass("filling graphs for event...");
for (unsigned int i = 0; i < fGraphs.size(); ++i) {
#ifdef _DEBUG_
if(this->fObservables.size() < i){
throw std::runtime_error("insufficient size of observable vector!");
}
#endif
if(fGraphTypes[i] == TGraph::Class()){
TGraph* g = (TGraph*)(fGraphs[i]);
g->Expand(g->GetN()+10,1000);
TRY(
g->SetPoint(g->GetN(),fObservables[i][0]->getValue(),fObservables[i][1]->getValue())
,TString::Format("Failed to add event to graph '%s' using the observable '%s' at cut '%s'.", g->GetName(), fObservables[i][0]->GetName(), this->getCut()->GetName())
);
}
}
return true;
}
TObjArray * TQGraphMakerAnalysisJob::getBranchNames() {
if(!this->fSample){
throw std::runtime_error("cannot retrieve branches on uninitialized object!");
}
TObjArray * bNames = new TObjArray();
for (size_t i = 0; i < fObservables.size(); ++i) {
for (size_t j = 0; j < fObservables[i].size(); ++j) {
TQObservable* obs = fObservables[i][j];
if(obs){
TCollection* c = obs->getBranchNames();
if(c){
if(c->GetEntries() > 0) bNames -> AddAll(c);
c->SetOwner(false);
delete c;
}
}
}
}
return bNames;
}
bool TQGraphMakerAnalysisJob::initializeSelf() {
DEBUGclass("initializing analysis job '%s'",this->GetName());
if(fGraphs.size() < 1){
this->poolAt = this->fSample;
DEBUGclass("initializing graphs");
this->initializeGraphs();
}
bool success = true;
DEBUGclass("initializing observables");
for (unsigned int i = 0; i < fExpressions.size(); ++i) {
std::vector<TQObservable*> observables;
for (unsigned int j = 0; j < fExpressions[i].size(); ++j) {
TString expr(fExpressions[i][j]);
TQObservable* obs = TQObservable::getObservable(expr,this->fSample);
if(obs && success){
DEBUGclass("initializing...");
if (!obs->initialize(this->fSample)) {
ERRORclass("Failed to initialize observable created from expression '%s' for sample '%s' in TQGraphMAnalysisJob '%s' for graph named '%s'",this->fExpressions[i][j].Data(), this->fSample->getPath().Data(), this->GetName(), this->fGraphs[i]->GetName());
success=false;
}
DEBUGclass("initialized observable '%s' of type '%s' with '%s'",
obs->getExpression().Data(),
obs->ClassName(),
obs->getActiveExpression().Data());
}
if(!obs){
DEBUGclass("creating const observable");
obs = TQObservable::getObservable("Const:nan",this->fSample);
obs->initialize(this->fSample);
}
observables.push_back(obs);
}
this->fObservables.push_back(observables);
}
DEBUG("successfully initialized graph job");
return success;
}
void TQGraphMakerAnalysisJob::initializeGraphs(){
DEBUGclass("Size of graph template vector : %i", fGraphTemplates.size());
for (unsigned int i = 0; i < fGraphTemplates.size(); i++) {
TNamed * graph = TQHistogramUtils::copyGraph((fGraphTemplates)[i]);
fGraphs.push_back(graph);
}
}
bool TQGraphMakerAnalysisJob::finalizeSelf() {
for (unsigned int i = 0; i < fObservables.size(); ++i) {
for (unsigned int j = 0; j < fObservables[i].size(); ++j) {
fObservables[i][j]->finalize();
}
}
this->fObservables.clear();
if(this->poolAt == this->fSample)
if(!this->finalizeGraphs())
return false;
return true;
}
bool TQGraphMakerAnalysisJob::finalizeGraphs(){
if (!getCut()) { return false; }
TQFolder * folder = this->poolAt->getFolder(TString::Format(
".graphs/%s+", getCut()->GetName()));
if (!folder) { return false; }
DEBUGclass("successfully created folder for cut %s", getCut()->GetName());
DEBUGclass("length of graph list is %i", fGraphs.size());
for (unsigned int i = 0; i < fGraphs.size(); i++) {
TNamed * graph = (fGraphs)[i];
if (!graph){ DEBUGclass("Graph is 0!"); };
TObject *g = folder->FindObject(graph->GetName());
if (g){
DEBUGclass("removing previous object %s", g->GetName());
folder->Remove(g);
}
TQHistogramUtils::copyGraphAxisTitles(graph,fGraphTemplates[i]);
DEBUGclass("saving graph %s", graph->GetName());
folder->Add(graph);
}
this->fGraphs.clear();
this->poolAt = NULL;
return true;
}
bool TQGraphMakerAnalysisJob::initializeSampleFolder(TQSampleFolder* sf){
bool pool = false;
sf->getTagBool(".aj.pool.graphs",pool);
if(pool && (this->fGraphs.size() == 0)){
this->initializeGraphs();
this->poolAt = sf;
}
return true;
}
bool TQGraphMakerAnalysisJob::finalizeSampleFolder(TQSampleFolder* sf){
if(sf == this->poolAt)
return this->finalizeGraphs();
return true;
}
TQGraphMakerAnalysisJob::~TQGraphMakerAnalysisJob() {
for (unsigned int i = 0; i < fGraphTemplates.size(); i++) {
delete (fGraphTemplates)[i]; }
}
TQAnalysisJob* TQGraphMakerAnalysisJob::getClone(){
TQGraphMakerAnalysisJob* newJob = new TQGraphMakerAnalysisJob(this);
return newJob;
}
void TQGraphMakerAnalysisJob::reset() {
TQAnalysisJob::reset();
fGraphs.clear();
}
int TQGraphMakerAnalysisJob::importJobsFromTextFiles(const TString& files, TQCompiledCut* basecut, const TString& channelFilter, bool verbose){
std::vector <TString> filenames = TQStringUtils::split(files,",");
return TQGraphMakerAnalysisJob::importJobsFromTextFiles(filenames,basecut,channelFilter,verbose);
}
int TQGraphMakerAnalysisJob::importJobsFromTextFiles(const TString& files, TQCompiledCut* basecut, TQTaggable* aliases, const TString& channelFilter, bool verbose){
std::vector <TString> filenames = TQStringUtils::split(files,",");
return TQGraphMakerAnalysisJob::importJobsFromTextFiles(filenames,basecut,aliases,channelFilter,verbose);
}
int TQGraphMakerAnalysisJob::importJobsFromTextFiles(const std::vector<TString>& filenames, TQCompiledCut* basecut, const TString& channelFilter, bool verbose){
return TQGraphMakerAnalysisJob::importJobsFromTextFiles(filenames, basecut, NULL, channelFilter, verbose);
}
int TQGraphMakerAnalysisJob::importJobsFromTextFiles(const std::vector<TString>& filenames, TQCompiledCut* basecut, TQTaggable* aliases, const TString& channelFilter, bool verbose){
if(filenames.size() < 1){
ERRORfunc("importing no graphs from empty files list!");
return -1;
}
std::map<TString,TString> graphDefinitions;
std::vector<TString> assignments;
TString buffer;
for(size_t i=0; i<filenames.size(); i++){
std::vector<TString>* lines = TQStringUtils::readFileLines(filenames[i],2048);
if(!lines){
ERRORfunc("unable to open file '%s'",filenames[i].Data());
continue;
}
for(size_t j=0; j<lines->size(); ++j){
TString line(TQStringUtils::trim(lines->at(j)));
DEBUGclass("looking at line '%s'",line.Data());
if(line.IsNull()) continue;
if(line.BeginsWith("T")){
size_t namestart = TQStringUtils::findFirstOf(line,"'\"",0)+1;
size_t nameend = TQStringUtils::findFirstOf(line,"'\"",namestart);
if(namestart == 0 || namestart > (size_t)line.Length() || nameend > (size_t)line.Length() || nameend == namestart){
ERRORfunc("unable to parse graph definition '%s'",line.Data());
continue;
}
TString name(TQStringUtils::trim(line(namestart,nameend-namestart),"\t ,"));
DEBUGclass("found definition: '%s', assigning as '%s'",line.Data(),name.Data());
graphDefinitions[name] = line;
} else if(TQStringUtils::removeLeading(line,"@") == 1){
DEBUGclass("found assignment: '%s'",line.Data());
assignments.push_back(line);
} else {
WARNfunc("encountered unknown token: '%s'",line.Data());
}
}
delete lines;
}
if(verbose) VERBOSEfunc("going to create '%d' jobs",(int)(assignments.size()));
int retval = 0;
for(size_t i=0; i<assignments.size(); i++){
TString assignment = assignments[i];
DEBUGclass("looking at assignment '%s'",assignment.Data());
TString channel;
if(TQStringUtils::readBlock(assignment,channel) && !channel.IsNull() && !TQStringUtils::matches(channel,channelFilter)) continue;
TString cuts,graphs;
TQStringUtils::readUpTo(assignment,cuts,":");
TQStringUtils::readToken(assignment,buffer," :");
TQStringUtils::readUpTo(assignment,graphs,";");
TQStringUtils::readToken(assignment,buffer,"; ");
DEBUGclass("graphs: '%s'",graphs.Data());
DEBUGclass("cuts: '%s'",cuts.Data());
if(verbose) VERBOSEfunc("building job for cuts '%s'",cuts.Data());
DEBUGclass("spare symbols: '%s'",buffer.Data());
std::vector<TString> vGraphs = TQStringUtils::split(graphs,",");
if(vGraphs.size() < 1){
ERRORfunc("no graphs listed in assignment '%s'",assignments[i].Data());
continue;
}
TQGraphMakerAnalysisJob* job = new TQGraphMakerAnalysisJob();
for(size_t j=0; j<vGraphs.size(); ++j){
const TString def = graphDefinitions[TQStringUtils::trim(vGraphs[j],"\t ,")];
if(def.IsNull()){
ERRORfunc("unable to find graph definition for name '%s', skipping",TQStringUtils::trim(vGraphs[j],"\t ,").Data());
continue;
}
bool ok = job->bookGraph(def,aliases);
if(ok){
if(verbose) VERBOSEfunc("\tbooked graph '%s'",def.Data());
} else {
retval += 1;
if(verbose) f_ErrMsg.writeMessagesToStdout();
DEBUGclass("error booking graph for '%s', function says '%s'",def.Data(),f_ErrMsg.getMessages().Data());
}
}
if(verbose) job->printBooking(cuts);
basecut->addAnalysisJob(job,cuts);
delete job;
}
DEBUGclass("end of function call, encountered %d error messages",retval);
return retval;
}
TQGraphMakerAnalysisJob.cxx:1 TQGraphMakerAnalysisJob.cxx:2 TQGraphMakerAnalysisJob.cxx:3 TQGraphMakerAnalysisJob.cxx:4 TQGraphMakerAnalysisJob.cxx:5 TQGraphMakerAnalysisJob.cxx:6 TQGraphMakerAnalysisJob.cxx:7 TQGraphMakerAnalysisJob.cxx:8 TQGraphMakerAnalysisJob.cxx:9 TQGraphMakerAnalysisJob.cxx:10 TQGraphMakerAnalysisJob.cxx:11 TQGraphMakerAnalysisJob.cxx:12 TQGraphMakerAnalysisJob.cxx:13 TQGraphMakerAnalysisJob.cxx:14 TQGraphMakerAnalysisJob.cxx:15 TQGraphMakerAnalysisJob.cxx:16 TQGraphMakerAnalysisJob.cxx:17 TQGraphMakerAnalysisJob.cxx:18 TQGraphMakerAnalysisJob.cxx:19 TQGraphMakerAnalysisJob.cxx:20 TQGraphMakerAnalysisJob.cxx:21 TQGraphMakerAnalysisJob.cxx:22 TQGraphMakerAnalysisJob.cxx:23 TQGraphMakerAnalysisJob.cxx:24 TQGraphMakerAnalysisJob.cxx:25 TQGraphMakerAnalysisJob.cxx:26 TQGraphMakerAnalysisJob.cxx:27 TQGraphMakerAnalysisJob.cxx:28 TQGraphMakerAnalysisJob.cxx:29 TQGraphMakerAnalysisJob.cxx:30 TQGraphMakerAnalysisJob.cxx:31 TQGraphMakerAnalysisJob.cxx:32 TQGraphMakerAnalysisJob.cxx:33 TQGraphMakerAnalysisJob.cxx:34 TQGraphMakerAnalysisJob.cxx:35 TQGraphMakerAnalysisJob.cxx:36 TQGraphMakerAnalysisJob.cxx:37 TQGraphMakerAnalysisJob.cxx:38 TQGraphMakerAnalysisJob.cxx:39 TQGraphMakerAnalysisJob.cxx:40 TQGraphMakerAnalysisJob.cxx:41 TQGraphMakerAnalysisJob.cxx:42 TQGraphMakerAnalysisJob.cxx:43 TQGraphMakerAnalysisJob.cxx:44 TQGraphMakerAnalysisJob.cxx:45 TQGraphMakerAnalysisJob.cxx:46 TQGraphMakerAnalysisJob.cxx:47 TQGraphMakerAnalysisJob.cxx:48 TQGraphMakerAnalysisJob.cxx:49 TQGraphMakerAnalysisJob.cxx:50 TQGraphMakerAnalysisJob.cxx:51 TQGraphMakerAnalysisJob.cxx:52 TQGraphMakerAnalysisJob.cxx:53 TQGraphMakerAnalysisJob.cxx:54 TQGraphMakerAnalysisJob.cxx:55 TQGraphMakerAnalysisJob.cxx:56 TQGraphMakerAnalysisJob.cxx:57 TQGraphMakerAnalysisJob.cxx:58 TQGraphMakerAnalysisJob.cxx:59 TQGraphMakerAnalysisJob.cxx:60 TQGraphMakerAnalysisJob.cxx:61 TQGraphMakerAnalysisJob.cxx:62 TQGraphMakerAnalysisJob.cxx:63 TQGraphMakerAnalysisJob.cxx:64 TQGraphMakerAnalysisJob.cxx:65 TQGraphMakerAnalysisJob.cxx:66 TQGraphMakerAnalysisJob.cxx:67 TQGraphMakerAnalysisJob.cxx:68 TQGraphMakerAnalysisJob.cxx:69 TQGraphMakerAnalysisJob.cxx:70 TQGraphMakerAnalysisJob.cxx:71 TQGraphMakerAnalysisJob.cxx:72 TQGraphMakerAnalysisJob.cxx:73 TQGraphMakerAnalysisJob.cxx:74 TQGraphMakerAnalysisJob.cxx:75 TQGraphMakerAnalysisJob.cxx:76 TQGraphMakerAnalysisJob.cxx:77 TQGraphMakerAnalysisJob.cxx:78 TQGraphMakerAnalysisJob.cxx:79 TQGraphMakerAnalysisJob.cxx:80 TQGraphMakerAnalysisJob.cxx:81 TQGraphMakerAnalysisJob.cxx:82 TQGraphMakerAnalysisJob.cxx:83 TQGraphMakerAnalysisJob.cxx:84 TQGraphMakerAnalysisJob.cxx:85 TQGraphMakerAnalysisJob.cxx:86 TQGraphMakerAnalysisJob.cxx:87 TQGraphMakerAnalysisJob.cxx:88 TQGraphMakerAnalysisJob.cxx:89 TQGraphMakerAnalysisJob.cxx:90 TQGraphMakerAnalysisJob.cxx:91 TQGraphMakerAnalysisJob.cxx:92 TQGraphMakerAnalysisJob.cxx:93 TQGraphMakerAnalysisJob.cxx:94 TQGraphMakerAnalysisJob.cxx:95 TQGraphMakerAnalysisJob.cxx:96 TQGraphMakerAnalysisJob.cxx:97 TQGraphMakerAnalysisJob.cxx:98 TQGraphMakerAnalysisJob.cxx:99 TQGraphMakerAnalysisJob.cxx:100 TQGraphMakerAnalysisJob.cxx:101 TQGraphMakerAnalysisJob.cxx:102 TQGraphMakerAnalysisJob.cxx:103 TQGraphMakerAnalysisJob.cxx:104 TQGraphMakerAnalysisJob.cxx:105 TQGraphMakerAnalysisJob.cxx:106 TQGraphMakerAnalysisJob.cxx:107 TQGraphMakerAnalysisJob.cxx:108 TQGraphMakerAnalysisJob.cxx:109 TQGraphMakerAnalysisJob.cxx:110 TQGraphMakerAnalysisJob.cxx:111 TQGraphMakerAnalysisJob.cxx:112 TQGraphMakerAnalysisJob.cxx:113 TQGraphMakerAnalysisJob.cxx:114 TQGraphMakerAnalysisJob.cxx:115 TQGraphMakerAnalysisJob.cxx:116 TQGraphMakerAnalysisJob.cxx:117 TQGraphMakerAnalysisJob.cxx:118 TQGraphMakerAnalysisJob.cxx:119 TQGraphMakerAnalysisJob.cxx:120 TQGraphMakerAnalysisJob.cxx:121 TQGraphMakerAnalysisJob.cxx:122 TQGraphMakerAnalysisJob.cxx:123 TQGraphMakerAnalysisJob.cxx:124 TQGraphMakerAnalysisJob.cxx:125 TQGraphMakerAnalysisJob.cxx:126 TQGraphMakerAnalysisJob.cxx:127 TQGraphMakerAnalysisJob.cxx:128 TQGraphMakerAnalysisJob.cxx:129 TQGraphMakerAnalysisJob.cxx:130 TQGraphMakerAnalysisJob.cxx:131 TQGraphMakerAnalysisJob.cxx:132 TQGraphMakerAnalysisJob.cxx:133 TQGraphMakerAnalysisJob.cxx:134 TQGraphMakerAnalysisJob.cxx:135 TQGraphMakerAnalysisJob.cxx:136 TQGraphMakerAnalysisJob.cxx:137 TQGraphMakerAnalysisJob.cxx:138 TQGraphMakerAnalysisJob.cxx:139 TQGraphMakerAnalysisJob.cxx:140 TQGraphMakerAnalysisJob.cxx:141 TQGraphMakerAnalysisJob.cxx:142 TQGraphMakerAnalysisJob.cxx:143 TQGraphMakerAnalysisJob.cxx:144 TQGraphMakerAnalysisJob.cxx:145 TQGraphMakerAnalysisJob.cxx:146 TQGraphMakerAnalysisJob.cxx:147 TQGraphMakerAnalysisJob.cxx:148 TQGraphMakerAnalysisJob.cxx:149 TQGraphMakerAnalysisJob.cxx:150 TQGraphMakerAnalysisJob.cxx:151 TQGraphMakerAnalysisJob.cxx:152 TQGraphMakerAnalysisJob.cxx:153 TQGraphMakerAnalysisJob.cxx:154 TQGraphMakerAnalysisJob.cxx:155 TQGraphMakerAnalysisJob.cxx:156 TQGraphMakerAnalysisJob.cxx:157 TQGraphMakerAnalysisJob.cxx:158 TQGraphMakerAnalysisJob.cxx:159 TQGraphMakerAnalysisJob.cxx:160 TQGraphMakerAnalysisJob.cxx:161 TQGraphMakerAnalysisJob.cxx:162 TQGraphMakerAnalysisJob.cxx:163 TQGraphMakerAnalysisJob.cxx:164 TQGraphMakerAnalysisJob.cxx:165 TQGraphMakerAnalysisJob.cxx:166 TQGraphMakerAnalysisJob.cxx:167 TQGraphMakerAnalysisJob.cxx:168 TQGraphMakerAnalysisJob.cxx:169 TQGraphMakerAnalysisJob.cxx:170 TQGraphMakerAnalysisJob.cxx:171 TQGraphMakerAnalysisJob.cxx:172 TQGraphMakerAnalysisJob.cxx:173 TQGraphMakerAnalysisJob.cxx:174 TQGraphMakerAnalysisJob.cxx:175 TQGraphMakerAnalysisJob.cxx:176 TQGraphMakerAnalysisJob.cxx:177 TQGraphMakerAnalysisJob.cxx:178 TQGraphMakerAnalysisJob.cxx:179 TQGraphMakerAnalysisJob.cxx:180 TQGraphMakerAnalysisJob.cxx:181 TQGraphMakerAnalysisJob.cxx:182 TQGraphMakerAnalysisJob.cxx:183 TQGraphMakerAnalysisJob.cxx:184 TQGraphMakerAnalysisJob.cxx:185 TQGraphMakerAnalysisJob.cxx:186 TQGraphMakerAnalysisJob.cxx:187 TQGraphMakerAnalysisJob.cxx:188 TQGraphMakerAnalysisJob.cxx:189 TQGraphMakerAnalysisJob.cxx:190 TQGraphMakerAnalysisJob.cxx:191 TQGraphMakerAnalysisJob.cxx:192 TQGraphMakerAnalysisJob.cxx:193 TQGraphMakerAnalysisJob.cxx:194 TQGraphMakerAnalysisJob.cxx:195 TQGraphMakerAnalysisJob.cxx:196 TQGraphMakerAnalysisJob.cxx:197 TQGraphMakerAnalysisJob.cxx:198 TQGraphMakerAnalysisJob.cxx:199 TQGraphMakerAnalysisJob.cxx:200 TQGraphMakerAnalysisJob.cxx:201 TQGraphMakerAnalysisJob.cxx:202 TQGraphMakerAnalysisJob.cxx:203 TQGraphMakerAnalysisJob.cxx:204 TQGraphMakerAnalysisJob.cxx:205 TQGraphMakerAnalysisJob.cxx:206 TQGraphMakerAnalysisJob.cxx:207 TQGraphMakerAnalysisJob.cxx:208 TQGraphMakerAnalysisJob.cxx:209 TQGraphMakerAnalysisJob.cxx:210 TQGraphMakerAnalysisJob.cxx:211 TQGraphMakerAnalysisJob.cxx:212 TQGraphMakerAnalysisJob.cxx:213 TQGraphMakerAnalysisJob.cxx:214 TQGraphMakerAnalysisJob.cxx:215 TQGraphMakerAnalysisJob.cxx:216 TQGraphMakerAnalysisJob.cxx:217 TQGraphMakerAnalysisJob.cxx:218 TQGraphMakerAnalysisJob.cxx:219 TQGraphMakerAnalysisJob.cxx:220 TQGraphMakerAnalysisJob.cxx:221 TQGraphMakerAnalysisJob.cxx:222 TQGraphMakerAnalysisJob.cxx:223 TQGraphMakerAnalysisJob.cxx:224 TQGraphMakerAnalysisJob.cxx:225 TQGraphMakerAnalysisJob.cxx:226 TQGraphMakerAnalysisJob.cxx:227 TQGraphMakerAnalysisJob.cxx:228 TQGraphMakerAnalysisJob.cxx:229 TQGraphMakerAnalysisJob.cxx:230 TQGraphMakerAnalysisJob.cxx:231 TQGraphMakerAnalysisJob.cxx:232 TQGraphMakerAnalysisJob.cxx:233 TQGraphMakerAnalysisJob.cxx:234 TQGraphMakerAnalysisJob.cxx:235 TQGraphMakerAnalysisJob.cxx:236 TQGraphMakerAnalysisJob.cxx:237 TQGraphMakerAnalysisJob.cxx:238 TQGraphMakerAnalysisJob.cxx:239 TQGraphMakerAnalysisJob.cxx:240 TQGraphMakerAnalysisJob.cxx:241 TQGraphMakerAnalysisJob.cxx:242 TQGraphMakerAnalysisJob.cxx:243 TQGraphMakerAnalysisJob.cxx:244 TQGraphMakerAnalysisJob.cxx:245 TQGraphMakerAnalysisJob.cxx:246 TQGraphMakerAnalysisJob.cxx:247 TQGraphMakerAnalysisJob.cxx:248 TQGraphMakerAnalysisJob.cxx:249 TQGraphMakerAnalysisJob.cxx:250 TQGraphMakerAnalysisJob.cxx:251 TQGraphMakerAnalysisJob.cxx:252 TQGraphMakerAnalysisJob.cxx:253 TQGraphMakerAnalysisJob.cxx:254 TQGraphMakerAnalysisJob.cxx:255 TQGraphMakerAnalysisJob.cxx:256 TQGraphMakerAnalysisJob.cxx:257 TQGraphMakerAnalysisJob.cxx:258 TQGraphMakerAnalysisJob.cxx:259 TQGraphMakerAnalysisJob.cxx:260 TQGraphMakerAnalysisJob.cxx:261 TQGraphMakerAnalysisJob.cxx:262 TQGraphMakerAnalysisJob.cxx:263 TQGraphMakerAnalysisJob.cxx:264 TQGraphMakerAnalysisJob.cxx:265 TQGraphMakerAnalysisJob.cxx:266 TQGraphMakerAnalysisJob.cxx:267 TQGraphMakerAnalysisJob.cxx:268 TQGraphMakerAnalysisJob.cxx:269 TQGraphMakerAnalysisJob.cxx:270 TQGraphMakerAnalysisJob.cxx:271 TQGraphMakerAnalysisJob.cxx:272 TQGraphMakerAnalysisJob.cxx:273 TQGraphMakerAnalysisJob.cxx:274 TQGraphMakerAnalysisJob.cxx:275 TQGraphMakerAnalysisJob.cxx:276 TQGraphMakerAnalysisJob.cxx:277 TQGraphMakerAnalysisJob.cxx:278 TQGraphMakerAnalysisJob.cxx:279 TQGraphMakerAnalysisJob.cxx:280 TQGraphMakerAnalysisJob.cxx:281 TQGraphMakerAnalysisJob.cxx:282 TQGraphMakerAnalysisJob.cxx:283 TQGraphMakerAnalysisJob.cxx:284 TQGraphMakerAnalysisJob.cxx:285 TQGraphMakerAnalysisJob.cxx:286 TQGraphMakerAnalysisJob.cxx:287 TQGraphMakerAnalysisJob.cxx:288 TQGraphMakerAnalysisJob.cxx:289 TQGraphMakerAnalysisJob.cxx:290 TQGraphMakerAnalysisJob.cxx:291 TQGraphMakerAnalysisJob.cxx:292 TQGraphMakerAnalysisJob.cxx:293 TQGraphMakerAnalysisJob.cxx:294 TQGraphMakerAnalysisJob.cxx:295 TQGraphMakerAnalysisJob.cxx:296 TQGraphMakerAnalysisJob.cxx:297 TQGraphMakerAnalysisJob.cxx:298 TQGraphMakerAnalysisJob.cxx:299 TQGraphMakerAnalysisJob.cxx:300 TQGraphMakerAnalysisJob.cxx:301 TQGraphMakerAnalysisJob.cxx:302 TQGraphMakerAnalysisJob.cxx:303 TQGraphMakerAnalysisJob.cxx:304 TQGraphMakerAnalysisJob.cxx:305 TQGraphMakerAnalysisJob.cxx:306 TQGraphMakerAnalysisJob.cxx:307 TQGraphMakerAnalysisJob.cxx:308 TQGraphMakerAnalysisJob.cxx:309 TQGraphMakerAnalysisJob.cxx:310 TQGraphMakerAnalysisJob.cxx:311 TQGraphMakerAnalysisJob.cxx:312 TQGraphMakerAnalysisJob.cxx:313 TQGraphMakerAnalysisJob.cxx:314 TQGraphMakerAnalysisJob.cxx:315 TQGraphMakerAnalysisJob.cxx:316 TQGraphMakerAnalysisJob.cxx:317 TQGraphMakerAnalysisJob.cxx:318 TQGraphMakerAnalysisJob.cxx:319 TQGraphMakerAnalysisJob.cxx:320 TQGraphMakerAnalysisJob.cxx:321 TQGraphMakerAnalysisJob.cxx:322 TQGraphMakerAnalysisJob.cxx:323 TQGraphMakerAnalysisJob.cxx:324 TQGraphMakerAnalysisJob.cxx:325 TQGraphMakerAnalysisJob.cxx:326 TQGraphMakerAnalysisJob.cxx:327 TQGraphMakerAnalysisJob.cxx:328 TQGraphMakerAnalysisJob.cxx:329 TQGraphMakerAnalysisJob.cxx:330 TQGraphMakerAnalysisJob.cxx:331 TQGraphMakerAnalysisJob.cxx:332 TQGraphMakerAnalysisJob.cxx:333 TQGraphMakerAnalysisJob.cxx:334 TQGraphMakerAnalysisJob.cxx:335 TQGraphMakerAnalysisJob.cxx:336 TQGraphMakerAnalysisJob.cxx:337 TQGraphMakerAnalysisJob.cxx:338 TQGraphMakerAnalysisJob.cxx:339 TQGraphMakerAnalysisJob.cxx:340 TQGraphMakerAnalysisJob.cxx:341 TQGraphMakerAnalysisJob.cxx:342 TQGraphMakerAnalysisJob.cxx:343 TQGraphMakerAnalysisJob.cxx:344 TQGraphMakerAnalysisJob.cxx:345 TQGraphMakerAnalysisJob.cxx:346 TQGraphMakerAnalysisJob.cxx:347 TQGraphMakerAnalysisJob.cxx:348 TQGraphMakerAnalysisJob.cxx:349 TQGraphMakerAnalysisJob.cxx:350 TQGraphMakerAnalysisJob.cxx:351 TQGraphMakerAnalysisJob.cxx:352 TQGraphMakerAnalysisJob.cxx:353 TQGraphMakerAnalysisJob.cxx:354 TQGraphMakerAnalysisJob.cxx:355 TQGraphMakerAnalysisJob.cxx:356 TQGraphMakerAnalysisJob.cxx:357 TQGraphMakerAnalysisJob.cxx:358 TQGraphMakerAnalysisJob.cxx:359 TQGraphMakerAnalysisJob.cxx:360 TQGraphMakerAnalysisJob.cxx:361 TQGraphMakerAnalysisJob.cxx:362 TQGraphMakerAnalysisJob.cxx:363 TQGraphMakerAnalysisJob.cxx:364 TQGraphMakerAnalysisJob.cxx:365 TQGraphMakerAnalysisJob.cxx:366 TQGraphMakerAnalysisJob.cxx:367 TQGraphMakerAnalysisJob.cxx:368 TQGraphMakerAnalysisJob.cxx:369 TQGraphMakerAnalysisJob.cxx:370 TQGraphMakerAnalysisJob.cxx:371 TQGraphMakerAnalysisJob.cxx:372 TQGraphMakerAnalysisJob.cxx:373 TQGraphMakerAnalysisJob.cxx:374 TQGraphMakerAnalysisJob.cxx:375 TQGraphMakerAnalysisJob.cxx:376 TQGraphMakerAnalysisJob.cxx:377 TQGraphMakerAnalysisJob.cxx:378 TQGraphMakerAnalysisJob.cxx:379 TQGraphMakerAnalysisJob.cxx:380 TQGraphMakerAnalysisJob.cxx:381 TQGraphMakerAnalysisJob.cxx:382 TQGraphMakerAnalysisJob.cxx:383 TQGraphMakerAnalysisJob.cxx:384 TQGraphMakerAnalysisJob.cxx:385 TQGraphMakerAnalysisJob.cxx:386 TQGraphMakerAnalysisJob.cxx:387 TQGraphMakerAnalysisJob.cxx:388 TQGraphMakerAnalysisJob.cxx:389 TQGraphMakerAnalysisJob.cxx:390 TQGraphMakerAnalysisJob.cxx:391 TQGraphMakerAnalysisJob.cxx:392 TQGraphMakerAnalysisJob.cxx:393 TQGraphMakerAnalysisJob.cxx:394 TQGraphMakerAnalysisJob.cxx:395 TQGraphMakerAnalysisJob.cxx:396 TQGraphMakerAnalysisJob.cxx:397 TQGraphMakerAnalysisJob.cxx:398 TQGraphMakerAnalysisJob.cxx:399 TQGraphMakerAnalysisJob.cxx:400 TQGraphMakerAnalysisJob.cxx:401 TQGraphMakerAnalysisJob.cxx:402 TQGraphMakerAnalysisJob.cxx:403 TQGraphMakerAnalysisJob.cxx:404 TQGraphMakerAnalysisJob.cxx:405 TQGraphMakerAnalysisJob.cxx:406 TQGraphMakerAnalysisJob.cxx:407 TQGraphMakerAnalysisJob.cxx:408 TQGraphMakerAnalysisJob.cxx:409 TQGraphMakerAnalysisJob.cxx:410 TQGraphMakerAnalysisJob.cxx:411 TQGraphMakerAnalysisJob.cxx:412 TQGraphMakerAnalysisJob.cxx:413 TQGraphMakerAnalysisJob.cxx:414 TQGraphMakerAnalysisJob.cxx:415 TQGraphMakerAnalysisJob.cxx:416 TQGraphMakerAnalysisJob.cxx:417 TQGraphMakerAnalysisJob.cxx:418 TQGraphMakerAnalysisJob.cxx:419 TQGraphMakerAnalysisJob.cxx:420 TQGraphMakerAnalysisJob.cxx:421 TQGraphMakerAnalysisJob.cxx:422 TQGraphMakerAnalysisJob.cxx:423 TQGraphMakerAnalysisJob.cxx:424 TQGraphMakerAnalysisJob.cxx:425 TQGraphMakerAnalysisJob.cxx:426 TQGraphMakerAnalysisJob.cxx:427 TQGraphMakerAnalysisJob.cxx:428 TQGraphMakerAnalysisJob.cxx:429 TQGraphMakerAnalysisJob.cxx:430 TQGraphMakerAnalysisJob.cxx:431 TQGraphMakerAnalysisJob.cxx:432 TQGraphMakerAnalysisJob.cxx:433 TQGraphMakerAnalysisJob.cxx:434 TQGraphMakerAnalysisJob.cxx:435 TQGraphMakerAnalysisJob.cxx:436 TQGraphMakerAnalysisJob.cxx:437 TQGraphMakerAnalysisJob.cxx:438 TQGraphMakerAnalysisJob.cxx:439 TQGraphMakerAnalysisJob.cxx:440 TQGraphMakerAnalysisJob.cxx:441 TQGraphMakerAnalysisJob.cxx:442 TQGraphMakerAnalysisJob.cxx:443 TQGraphMakerAnalysisJob.cxx:444 TQGraphMakerAnalysisJob.cxx:445 TQGraphMakerAnalysisJob.cxx:446 TQGraphMakerAnalysisJob.cxx:447 TQGraphMakerAnalysisJob.cxx:448 TQGraphMakerAnalysisJob.cxx:449 TQGraphMakerAnalysisJob.cxx:450 TQGraphMakerAnalysisJob.cxx:451 TQGraphMakerAnalysisJob.cxx:452 TQGraphMakerAnalysisJob.cxx:453 TQGraphMakerAnalysisJob.cxx:454 TQGraphMakerAnalysisJob.cxx:455 TQGraphMakerAnalysisJob.cxx:456 TQGraphMakerAnalysisJob.cxx:457 TQGraphMakerAnalysisJob.cxx:458 TQGraphMakerAnalysisJob.cxx:459 TQGraphMakerAnalysisJob.cxx:460 TQGraphMakerAnalysisJob.cxx:461 TQGraphMakerAnalysisJob.cxx:462 TQGraphMakerAnalysisJob.cxx:463 TQGraphMakerAnalysisJob.cxx:464 TQGraphMakerAnalysisJob.cxx:465 TQGraphMakerAnalysisJob.cxx:466 TQGraphMakerAnalysisJob.cxx:467 TQGraphMakerAnalysisJob.cxx:468 TQGraphMakerAnalysisJob.cxx:469 TQGraphMakerAnalysisJob.cxx:470 TQGraphMakerAnalysisJob.cxx:471 TQGraphMakerAnalysisJob.cxx:472 TQGraphMakerAnalysisJob.cxx:473 TQGraphMakerAnalysisJob.cxx:474 TQGraphMakerAnalysisJob.cxx:475 TQGraphMakerAnalysisJob.cxx:476 TQGraphMakerAnalysisJob.cxx:477 TQGraphMakerAnalysisJob.cxx:478 TQGraphMakerAnalysisJob.cxx:479 TQGraphMakerAnalysisJob.cxx:480 TQGraphMakerAnalysisJob.cxx:481 TQGraphMakerAnalysisJob.cxx:482 TQGraphMakerAnalysisJob.cxx:483 TQGraphMakerAnalysisJob.cxx:484 TQGraphMakerAnalysisJob.cxx:485 TQGraphMakerAnalysisJob.cxx:486 TQGraphMakerAnalysisJob.cxx:487 TQGraphMakerAnalysisJob.cxx:488 TQGraphMakerAnalysisJob.cxx:489 TQGraphMakerAnalysisJob.cxx:490 TQGraphMakerAnalysisJob.cxx:491 TQGraphMakerAnalysisJob.cxx:492 TQGraphMakerAnalysisJob.cxx:493 TQGraphMakerAnalysisJob.cxx:494 TQGraphMakerAnalysisJob.cxx:495 TQGraphMakerAnalysisJob.cxx:496 TQGraphMakerAnalysisJob.cxx:497 TQGraphMakerAnalysisJob.cxx:498 TQGraphMakerAnalysisJob.cxx:499 TQGraphMakerAnalysisJob.cxx:500 TQGraphMakerAnalysisJob.cxx:501 TQGraphMakerAnalysisJob.cxx:502 TQGraphMakerAnalysisJob.cxx:503 TQGraphMakerAnalysisJob.cxx:504 TQGraphMakerAnalysisJob.cxx:505 TQGraphMakerAnalysisJob.cxx:506 TQGraphMakerAnalysisJob.cxx:507 TQGraphMakerAnalysisJob.cxx:508 TQGraphMakerAnalysisJob.cxx:509 TQGraphMakerAnalysisJob.cxx:510 TQGraphMakerAnalysisJob.cxx:511 TQGraphMakerAnalysisJob.cxx:512 TQGraphMakerAnalysisJob.cxx:513 TQGraphMakerAnalysisJob.cxx:514 TQGraphMakerAnalysisJob.cxx:515 TQGraphMakerAnalysisJob.cxx:516 TQGraphMakerAnalysisJob.cxx:517 TQGraphMakerAnalysisJob.cxx:518 TQGraphMakerAnalysisJob.cxx:519 TQGraphMakerAnalysisJob.cxx:520 TQGraphMakerAnalysisJob.cxx:521 TQGraphMakerAnalysisJob.cxx:522 TQGraphMakerAnalysisJob.cxx:523 TQGraphMakerAnalysisJob.cxx:524 TQGraphMakerAnalysisJob.cxx:525 TQGraphMakerAnalysisJob.cxx:526 TQGraphMakerAnalysisJob.cxx:527 TQGraphMakerAnalysisJob.cxx:528 TQGraphMakerAnalysisJob.cxx:529 TQGraphMakerAnalysisJob.cxx:530 TQGraphMakerAnalysisJob.cxx:531 TQGraphMakerAnalysisJob.cxx:532 TQGraphMakerAnalysisJob.cxx:533 TQGraphMakerAnalysisJob.cxx:534 TQGraphMakerAnalysisJob.cxx:535 TQGraphMakerAnalysisJob.cxx:536 TQGraphMakerAnalysisJob.cxx:537 TQGraphMakerAnalysisJob.cxx:538 TQGraphMakerAnalysisJob.cxx:539 TQGraphMakerAnalysisJob.cxx:540 TQGraphMakerAnalysisJob.cxx:541 TQGraphMakerAnalysisJob.cxx:542 TQGraphMakerAnalysisJob.cxx:543 TQGraphMakerAnalysisJob.cxx:544 TQGraphMakerAnalysisJob.cxx:545 TQGraphMakerAnalysisJob.cxx:546 TQGraphMakerAnalysisJob.cxx:547 TQGraphMakerAnalysisJob.cxx:548 TQGraphMakerAnalysisJob.cxx:549 TQGraphMakerAnalysisJob.cxx:550 TQGraphMakerAnalysisJob.cxx:551 TQGraphMakerAnalysisJob.cxx:552 TQGraphMakerAnalysisJob.cxx:553 TQGraphMakerAnalysisJob.cxx:554 TQGraphMakerAnalysisJob.cxx:555 TQGraphMakerAnalysisJob.cxx:556 TQGraphMakerAnalysisJob.cxx:557 TQGraphMakerAnalysisJob.cxx:558 TQGraphMakerAnalysisJob.cxx:559 TQGraphMakerAnalysisJob.cxx:560 TQGraphMakerAnalysisJob.cxx:561 TQGraphMakerAnalysisJob.cxx:562 TQGraphMakerAnalysisJob.cxx:563 TQGraphMakerAnalysisJob.cxx:564 TQGraphMakerAnalysisJob.cxx:565 TQGraphMakerAnalysisJob.cxx:566 TQGraphMakerAnalysisJob.cxx:567 TQGraphMakerAnalysisJob.cxx:568 TQGraphMakerAnalysisJob.cxx:569 TQGraphMakerAnalysisJob.cxx:570 TQGraphMakerAnalysisJob.cxx:571 TQGraphMakerAnalysisJob.cxx:572 TQGraphMakerAnalysisJob.cxx:573 TQGraphMakerAnalysisJob.cxx:574 TQGraphMakerAnalysisJob.cxx:575 TQGraphMakerAnalysisJob.cxx:576 TQGraphMakerAnalysisJob.cxx:577 TQGraphMakerAnalysisJob.cxx:578 TQGraphMakerAnalysisJob.cxx:579 TQGraphMakerAnalysisJob.cxx:580 TQGraphMakerAnalysisJob.cxx:581 TQGraphMakerAnalysisJob.cxx:582 TQGraphMakerAnalysisJob.cxx:583 TQGraphMakerAnalysisJob.cxx:584 TQGraphMakerAnalysisJob.cxx:585 TQGraphMakerAnalysisJob.cxx:586 TQGraphMakerAnalysisJob.cxx:587 TQGraphMakerAnalysisJob.cxx:588 TQGraphMakerAnalysisJob.cxx:589 TQGraphMakerAnalysisJob.cxx:590 TQGraphMakerAnalysisJob.cxx:591 TQGraphMakerAnalysisJob.cxx:592 TQGraphMakerAnalysisJob.cxx:593 TQGraphMakerAnalysisJob.cxx:594 TQGraphMakerAnalysisJob.cxx:595 TQGraphMakerAnalysisJob.cxx:596 TQGraphMakerAnalysisJob.cxx:597 TQGraphMakerAnalysisJob.cxx:598 TQGraphMakerAnalysisJob.cxx:599 TQGraphMakerAnalysisJob.cxx:600 TQGraphMakerAnalysisJob.cxx:601 TQGraphMakerAnalysisJob.cxx:602 TQGraphMakerAnalysisJob.cxx:603 TQGraphMakerAnalysisJob.cxx:604 TQGraphMakerAnalysisJob.cxx:605 TQGraphMakerAnalysisJob.cxx:606 TQGraphMakerAnalysisJob.cxx:607 TQGraphMakerAnalysisJob.cxx:608 TQGraphMakerAnalysisJob.cxx:609 TQGraphMakerAnalysisJob.cxx:610 TQGraphMakerAnalysisJob.cxx:611 TQGraphMakerAnalysisJob.cxx:612 TQGraphMakerAnalysisJob.cxx:613 TQGraphMakerAnalysisJob.cxx:614 TQGraphMakerAnalysisJob.cxx:615 TQGraphMakerAnalysisJob.cxx:616 TQGraphMakerAnalysisJob.cxx:617 TQGraphMakerAnalysisJob.cxx:618 TQGraphMakerAnalysisJob.cxx:619 TQGraphMakerAnalysisJob.cxx:620 TQGraphMakerAnalysisJob.cxx:621 TQGraphMakerAnalysisJob.cxx:622 TQGraphMakerAnalysisJob.cxx:623 TQGraphMakerAnalysisJob.cxx:624 TQGraphMakerAnalysisJob.cxx:625 TQGraphMakerAnalysisJob.cxx:626 TQGraphMakerAnalysisJob.cxx:627 TQGraphMakerAnalysisJob.cxx:628 TQGraphMakerAnalysisJob.cxx:629 TQGraphMakerAnalysisJob.cxx:630 TQGraphMakerAnalysisJob.cxx:631 TQGraphMakerAnalysisJob.cxx:632 TQGraphMakerAnalysisJob.cxx:633 TQGraphMakerAnalysisJob.cxx:634 TQGraphMakerAnalysisJob.cxx:635 TQGraphMakerAnalysisJob.cxx:636 TQGraphMakerAnalysisJob.cxx:637 TQGraphMakerAnalysisJob.cxx:638 TQGraphMakerAnalysisJob.cxx:639 TQGraphMakerAnalysisJob.cxx:640 TQGraphMakerAnalysisJob.cxx:641 TQGraphMakerAnalysisJob.cxx:642 TQGraphMakerAnalysisJob.cxx:643 TQGraphMakerAnalysisJob.cxx:644 TQGraphMakerAnalysisJob.cxx:645 TQGraphMakerAnalysisJob.cxx:646 TQGraphMakerAnalysisJob.cxx:647 TQGraphMakerAnalysisJob.cxx:648 TQGraphMakerAnalysisJob.cxx:649 TQGraphMakerAnalysisJob.cxx:650 TQGraphMakerAnalysisJob.cxx:651 TQGraphMakerAnalysisJob.cxx:652 TQGraphMakerAnalysisJob.cxx:653 TQGraphMakerAnalysisJob.cxx:654 TQGraphMakerAnalysisJob.cxx:655 TQGraphMakerAnalysisJob.cxx:656 TQGraphMakerAnalysisJob.cxx:657 TQGraphMakerAnalysisJob.cxx:658 TQGraphMakerAnalysisJob.cxx:659 TQGraphMakerAnalysisJob.cxx:660 TQGraphMakerAnalysisJob.cxx:661 TQGraphMakerAnalysisJob.cxx:662 TQGraphMakerAnalysisJob.cxx:663 TQGraphMakerAnalysisJob.cxx:664 TQGraphMakerAnalysisJob.cxx:665 TQGraphMakerAnalysisJob.cxx:666 TQGraphMakerAnalysisJob.cxx:667 TQGraphMakerAnalysisJob.cxx:668 TQGraphMakerAnalysisJob.cxx:669 TQGraphMakerAnalysisJob.cxx:670 TQGraphMakerAnalysisJob.cxx:671 TQGraphMakerAnalysisJob.cxx:672 TQGraphMakerAnalysisJob.cxx:673 TQGraphMakerAnalysisJob.cxx:674 TQGraphMakerAnalysisJob.cxx:675 TQGraphMakerAnalysisJob.cxx:676 TQGraphMakerAnalysisJob.cxx:677 TQGraphMakerAnalysisJob.cxx:678 TQGraphMakerAnalysisJob.cxx:679 TQGraphMakerAnalysisJob.cxx:680 TQGraphMakerAnalysisJob.cxx:681 TQGraphMakerAnalysisJob.cxx:682 TQGraphMakerAnalysisJob.cxx:683 TQGraphMakerAnalysisJob.cxx:684 TQGraphMakerAnalysisJob.cxx:685 TQGraphMakerAnalysisJob.cxx:686 TQGraphMakerAnalysisJob.cxx:687 TQGraphMakerAnalysisJob.cxx:688 TQGraphMakerAnalysisJob.cxx:689