#include "QFramework/TQEventlistPrinter.h"
#include "QFramework/TQIterator.h"
#include "QFramework/TQLibrary.h"
#include "QFramework/TQPathManager.h"
ClassImp(TQEventlistPrinter)
TQEventlistPrinter::TQEventlistPrinter() :
TQPresenter()
{
}
TQEventlistPrinter::TQEventlistPrinter(TQSampleFolder * samples) :
TQPresenter(samples)
{
}
TQEventlistPrinter::TQEventlistPrinter(TQSampleDataReader * reader) :
TQPresenter(reader)
{
}
int TQEventlistPrinter::writeEventlists(const TString& jobname, const TString& outputPath, const TString& tags){
TQTaggable taggable(tags);
return this->writeEventlists(jobname, outputPath,taggable);
}
int TQEventlistPrinter::writeEventlists(const TString& jobname, const TString& outputPath, TQTaggable tags){
TQTaggableIterator pitr(this->fProcesses);
TQTaggableIterator citr(this->fCuts);
bool verbose = tags.getTagBoolDefault("verbose",false);
int nlists = 0;
std::vector<TString> formats = tags.getTagVString("formats");
if(formats.size() < 1) formats.push_back(tags.getTagStringDefault("format","txt"));
if(verbose) VERBOSEclass("writing event lists to '%s'",outputPath.Data());
tags.setGlobalOverwrite(false);
tags.setTagString("layout","article");
while(pitr.hasNext()){
TQNamedTaggable* process = pitr.readNext();
TString path = tags.replaceInText(process->getTagStringDefault(".path",process->GetName()));
TString name = tags.replaceInText(TQFolder::makeValidIdentifier(process->getTagStringDefault(".name",process->GetName())));
if(TQStringUtils::findFirstNotOf(path,"| ") == -1) continue;
while(citr.hasNext()){
TQNamedTaggable* cut = citr.readNext();
TString cutname = cut->getTagStringDefault(".name",cut->GetName());
TString evtlistname = TQFolder::concatPaths(cutname,jobname);
TQTable* evtlist = this->fReader->getEventlist(path,evtlistname);
if(!evtlist){
if(verbose) WARNclass("unable to retrieve event list '%s' from path '%s'",evtlistname.Data(),path.Data());
continue;
}
evtlist->setTagString("colAlign","r");
evtlist->setTagString("title",name + " @ " + cutname);
TString filename = jobname+"-"+cutname+"-"+name;
for(size_t i=0; i<formats.size(); i++){
TString filepath = TQFolder::concatPaths(outputPath,filename)+"."+formats[i];
filepath = TString(TQPathManager::getPathManager()->getLocalPath(filepath));
bool ok = evtlist->write(filepath,formats[i],tags);
if(!ok){
if(verbose) WARNclass("unable to write event list '%s' to '%s'",evtlistname.Data(),filepath.Data());
continue;
} else if(verbose){
VERBOSEclass("successfully written event list '%s' to '%s'",evtlistname.Data(),filepath.Data());
}
}
delete evtlist;
nlists++;
}
citr.reset();
}
return nlists;
}
TQEventlistPrinter.cxx:10 TQEventlistPrinter.cxx:11 TQEventlistPrinter.cxx:12 TQEventlistPrinter.cxx:13 TQEventlistPrinter.cxx:14 TQEventlistPrinter.cxx:15 TQEventlistPrinter.cxx:16 TQEventlistPrinter.cxx:17 TQEventlistPrinter.cxx:18 TQEventlistPrinter.cxx:19 TQEventlistPrinter.cxx:20 TQEventlistPrinter.cxx:21 TQEventlistPrinter.cxx:22 TQEventlistPrinter.cxx:23 TQEventlistPrinter.cxx:24 TQEventlistPrinter.cxx:25 TQEventlistPrinter.cxx:26 TQEventlistPrinter.cxx:27 TQEventlistPrinter.cxx:28 TQEventlistPrinter.cxx:29 TQEventlistPrinter.cxx:30 TQEventlistPrinter.cxx:31 TQEventlistPrinter.cxx:32 TQEventlistPrinter.cxx:33 TQEventlistPrinter.cxx:34 TQEventlistPrinter.cxx:35 TQEventlistPrinter.cxx:36 TQEventlistPrinter.cxx:37 TQEventlistPrinter.cxx:38 TQEventlistPrinter.cxx:39 TQEventlistPrinter.cxx:40 TQEventlistPrinter.cxx:41 TQEventlistPrinter.cxx:42 TQEventlistPrinter.cxx:43 TQEventlistPrinter.cxx:44 TQEventlistPrinter.cxx:45 TQEventlistPrinter.cxx:46 TQEventlistPrinter.cxx:47 TQEventlistPrinter.cxx:48 TQEventlistPrinter.cxx:49 TQEventlistPrinter.cxx:50 TQEventlistPrinter.cxx:51 TQEventlistPrinter.cxx:52 TQEventlistPrinter.cxx:53 TQEventlistPrinter.cxx:54 TQEventlistPrinter.cxx:55 TQEventlistPrinter.cxx:56 TQEventlistPrinter.cxx:57 TQEventlistPrinter.cxx:58 TQEventlistPrinter.cxx:59 TQEventlistPrinter.cxx:60 TQEventlistPrinter.cxx:61 TQEventlistPrinter.cxx:62 TQEventlistPrinter.cxx:63 TQEventlistPrinter.cxx:64 TQEventlistPrinter.cxx:65 TQEventlistPrinter.cxx:66 TQEventlistPrinter.cxx:67 TQEventlistPrinter.cxx:68 TQEventlistPrinter.cxx:69 TQEventlistPrinter.cxx:70 TQEventlistPrinter.cxx:71 TQEventlistPrinter.cxx:72 TQEventlistPrinter.cxx:73 TQEventlistPrinter.cxx:74 TQEventlistPrinter.cxx:75 TQEventlistPrinter.cxx:76 TQEventlistPrinter.cxx:77 TQEventlistPrinter.cxx:78 TQEventlistPrinter.cxx:79 TQEventlistPrinter.cxx:80 TQEventlistPrinter.cxx:81 TQEventlistPrinter.cxx:82 TQEventlistPrinter.cxx:83 TQEventlistPrinter.cxx:84 TQEventlistPrinter.cxx:85 TQEventlistPrinter.cxx:86 TQEventlistPrinter.cxx:87 TQEventlistPrinter.cxx:88 TQEventlistPrinter.cxx:89 TQEventlistPrinter.cxx:90 TQEventlistPrinter.cxx:91 TQEventlistPrinter.cxx:92 TQEventlistPrinter.cxx:93 TQEventlistPrinter.cxx:94 TQEventlistPrinter.cxx:95 TQEventlistPrinter.cxx:96 TQEventlistPrinter.cxx:97 TQEventlistPrinter.cxx:98 TQEventlistPrinter.cxx:99 TQEventlistPrinter.cxx:100 TQEventlistPrinter.cxx:101 TQEventlistPrinter.cxx:102 TQEventlistPrinter.cxx:103 TQEventlistPrinter.cxx:104