#include "QFramework/TQSampleDataReader.h"
#include "QFramework/TQHistogramUtils.h"
#include "QFramework/TQTHnBaseUtils.h"
#include "QFramework/TQStringUtils.h"
#include "QFramework/TQSampleFolder.h"
#include "QFramework/TQFolder.h"
#include "QFramework/TQCounter.h"
#include "QFramework/TQTaggable.h"
#include "QFramework/TQIterator.h"
#include "QFramework/TQUtils.h"
#include "QFramework/TQListUtils.h"
#include "QFramework/TQValue.h"
#include "QFramework/TQPCA.h"
#include "QFramework/TQCut.h"
#include "THashList.h"
#include "TMap.h"
#include "TTree.h"
#include "TList.h"
#include "TProfile.h"
#include "TProfile2D.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TGraph.h"
#include "TGraph2D.h"
#include "THnBase.h"
#include "THnSparse.h"
#include "TMath.h"
#include "TFile.h"
#include "QFramework/TQLibrary.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdlib>
ClassImp(TQSampleDataReader)
TQSampleDataReader::TQSampleDataReader():
f_errMsg(new std::stringstream(),true,true)
{
reset();
}
TQSampleDataReader::TQSampleDataReader(TQSampleFolder * sampleFolder):
f_errMsg(new std::stringstream(),true,true)
{
reset();
f_baseSampleFolder = sampleFolder;
}
TQSampleFolder* TQSampleDataReader::getSampleFolder(){
return f_baseSampleFolder;
}
void TQSampleDataReader::reset() {
f_baseSampleFolder = 0;
f_localMode = false;
f_Verbose = 0;
f_errMsg.clearMessages();
f_styleScheme = "default";
f_filterScheme = "";
f_normScheme = "";
f_scaleScheme = ".default";
f_pathHistograms = ".histograms";
f_pathGraphs = ".graphs";
f_pathGridScan = ".gridscan";
f_pathCutflow = ".cutflow";
f_pathEventlists = ".eventlists";
f_pathScaleFactors = ".scalefactors";
f_pathPCA = ".pca";
f_pathTrees = ".trees";
if (collectTimer) delete collectTimer;
if (summationTimer) delete summationTimer;
if (auxTimer) delete auxTimer;
collectTimer = new TStopwatch(); collectTimer->Reset();
summationTimer = new TStopwatch(); summationTimer->Reset();
auxTimer = new TStopwatch(); auxTimer->Reset();
}
void TQSampleDataReader::setLocalMode(bool localMode) {
f_localMode = localMode;
}
bool TQSampleDataReader::getLocalMode() {
return f_localMode;
}
void TQSampleDataReader::setVerbose(int verbose) {
f_Verbose = verbose;
}
int TQSampleDataReader::getVerbose() {
return f_Verbose;
}
void TQSampleDataReader::setErrorMessage(const TString& fname, const TString& message) {
f_errMsg.sendClassFunctionMessage(TQMessageStream::ERROR,this->Class(),fname,message);
if (f_Verbose > 0) {
TQLibrary::msgStream.sendClassFunctionMessage(TQMessageStream::ERROR,this->Class(),fname,message);
}
}
TString TQSampleDataReader::getErrorMessage() {
return f_errMsg.getMessages();
}
std::vector<TString> TQSampleDataReader::getPaths(const TString& paths, TList * inputTokens, const TString& pathPrefix){
auto pathterms = this->parsePaths(paths,inputTokens,pathPrefix);
std::vector<TString> retval;
for(const auto& altpath:pathterms){
for(const auto& path:altpath){
retval.push_back(path.path);
}
}
return retval;
}
std::vector< std::vector<TString> > TQSampleDataReader::getParsedPathStrings(TString paths, TList * inputTokens, TString pathPrefix) {
std::vector<TQSampleDataReader::AltPath_t> altPaths = parsePaths(paths, inputTokens, pathPrefix);
std::vector< std::vector<TString> > altPathStrings;
for ( auto altPath : altPaths ) {
std::vector<TString> pathTermStrings;
altPathStrings.push_back(pathTermStrings);
for ( auto pathTerm : altPath ) {
altPathStrings.back().push_back(pathTerm.path);
}
}
return altPathStrings;
}
std::vector<TQSampleDataReader::AltPath_t> TQSampleDataReader::parsePaths(TString paths, TList * inputTokens, TString pathPrefix) {
DEBUGclass("called with '%s'",paths.Data());
paths.ReplaceAll(",",";");
if(paths.Contains("$")){
DEBUGclass("path '%s' contains unresolved tags, unable to parse!",paths.Data());
std::vector<TQSampleDataReader::AltPath_t> dummy;
return dummy;
}
f_errMsg.clearMessages();
std::vector<TQSampleDataReader::AltPath_t> tokens;
for (int i = 0; inputTokens && i < inputTokens->GetEntries(); i++) {
TList * subInputTokens = (TList*)inputTokens->At(i);
TQSampleDataReader::AltPath_t altPath;
tokens.push_back(altPath);
for (int j = 0; j < subInputTokens->GetEntries(); j++) {
TList * subsubInputTokens = (TList*)subInputTokens->At(j);
double factor = ((TQValue*)subsubInputTokens->At(0))->getDouble();
TString path = ((TQValue*)subsubInputTokens->At(1))->getString();
double statCor = ((TQValue*)subsubInputTokens->At(2))->getDouble();
PathTerm pathTerm(factor,path,statCor);
tokens.back().push_back(pathTerm);
}
}
TQSampleDataReader::AltPath_t firstPath;
tokens.push_back(firstPath);
bool isFirstPath = true;
bool done = false;
bool error = false;
do {
int nCharsRead = 0;
TString thisOperator;
DEBUGclass("remaining text: '%s'",paths.Data());
TQStringUtils::readBlanks(paths);
nCharsRead += TQStringUtils::readToken(paths, thisOperator, "+-");
TString operatorAppendix = paths;
TString thisPath;
TString pathBuffer;
TQStringUtils::readBlanks(paths);
int nNewChars = 0;
double factor = 1.;
double statCor = 1.;
int endidx = TQStringUtils::findFirstNotOf(paths,TQStringUtils::numerals+". ");
if(endidx > 0 && endidx < paths.Length() && paths[endidx] == '*'){
TQStringUtils::readToken(paths,pathBuffer,TQStringUtils::numerals+".");
TQStringUtils::removeLeading(paths,"*");
nNewChars = 0;
factor = std::atof(pathBuffer.Data());
pathBuffer.Clear();
statCor = factor;
}
nNewChars += TQStringUtils::readTokenAndBlock(paths, pathBuffer,TQStringUtils::getDefaultIDCharacters() + "/*?","[]");
TString innerBuffer = "";
if(TQStringUtils::readUpTo(pathBuffer,thisPath,"[") < nNewChars){
TQStringUtils::readBlock(pathBuffer,innerBuffer,"[]");
std::vector<TQSampleDataReader::AltPath_t> parsed = this->parsePaths(innerBuffer,NULL,"");
if (parsed.size() < 1) {
DEBUGclass("encountered error while parsing '%s'",innerBuffer.Data());
return parsed;
}
TQSampleDataReader::AltPath_t subtokens = parsed.at(0);
TQSampleDataReader::AltPath_t::reverse_iterator rit = subtokens.rbegin();
for(; rit != subtokens.rend(); ++rit){
TString subtoken = rit->path;
double subop_factor = rit->factor * factor;
double subop_statcor = rit->statCor * factor;
TString subop = "+";
if(subop_factor<0){
if(thisOperator.BeginsWith("-"))
subop="+";
else
subop="-";
} else {
if(thisOperator.BeginsWith("-"))
subop="-";
else
subop="+";
}
if(subop_statcor<0 || (thisOperator.Length()>1))
subop+=subop;
if(fabs(subop_factor) != 1){
subop+=TString::Format("%f*",fabs(subop_factor));
}
paths = subop+thisPath+subtoken+pathBuffer+paths;
}
continue;
}
nCharsRead+=nNewChars;
TString pathAppendix = paths;
TString thisSep;
TQStringUtils::readBlanks(paths);
paths = TQStringUtils::trim(paths,"()/");
nCharsRead += TQStringUtils::readToken(paths, thisSep, ";", 1);
if (!thisPath.IsNull() && !pathPrefix.IsNull()){
thisPath = TQFolder::concatPaths(pathPrefix, thisPath);
}
if (nCharsRead == 0) {
if (!paths.IsNull()) {
setErrorMessage(__FUNCTION__,TString::Format("syntax error near unexpected token '%s'", paths.Data()));
error = true;
} else if (isFirstPath) {
if (tokens.size() > 1)
setErrorMessage(__FUNCTION__,"alternative path expected");
else
setErrorMessage(__FUNCTION__,"path expected");
error = true;
} else {
done = true;
}
continue;
}
if ((thisOperator.IsNull() && isFirstPath) || thisOperator.CompareTo("+") == 0) {
factor *= 1.;
} else if (thisOperator.CompareTo("-") == 0) {
factor *= -1.;
} else if (thisOperator.CompareTo("--") == 0) {
factor *= -1.;
statCor *= -1.;
} else {
if (thisOperator.IsNull())
setErrorMessage(__FUNCTION__,TString::Format("operator (+, -, --) expected near '%s'", operatorAppendix.Data()));
else
setErrorMessage(__FUNCTION__,TString::Format("operator (+, -, --) expected near '%s'", thisOperator.Data()));
error = true;
continue;
}
if (!thisPath.IsNull()) {
PathTerm pathTerm(factor,thisPath,statCor);
DEBUGclass("adding '%s'",thisPath.Data());
tokens.back().push_back(pathTerm);
isFirstPath = false;
} else {
if (thisOperator.IsNull())
setErrorMessage(__FUNCTION__,TString::Format("path expected near '%s'", pathAppendix.Data()));
else
setErrorMessage(__FUNCTION__,TString::Format("path expected after operator '%s'", thisOperator.Data()));
error = true;
continue;
}
if (thisSep.CompareTo(";") == 0) {
TQSampleDataReader::AltPath_t newPath;
tokens.push_back(newPath);
isFirstPath = true;
}
} while (!error && !done);
if (error) {
tokens.clear();
}
return tokens;
}
bool TQSampleDataReader::compareHistograms(const TString& histName1, const TString& histName2, const TString path, double maxdiff, bool print){
if(!this->f_baseSampleFolder){
ERRORclass("no sample folder assigned!");
return false;
}
TString fullpath = TQFolder::concatPaths(path,this->f_pathHistograms);
TList* histfolders = this->f_baseSampleFolder->getListOfFolders(fullpath);
if(histfolders->GetEntries() < 1){
WARNclass("could not find any histograms under folder matching '%s'",path.Data());
}
int found = 0;
int ok = 0;
TString fstring = TString::Format("discrepancy of X²=%%.%df detected",std::max((int)(ceil(-log10(maxdiff))),3));
TQFolderIterator itr(histfolders,true);
while(itr.hasNext()){
TQFolder* f = itr.readNext();
if(!f) continue;
TH1* h1 = dynamic_cast<TH1*>(f->getObject(histName1));
TH1* h2 = dynamic_cast<TH1*>(f->getObject(histName2));
TString fpath = f->getBase()->getPath();
if(!h1 && !h2) continue;
if(!h1 && print){
std::cout << TQStringUtils::fixedWidth(fpath,60, "l") << " " << TQStringUtils::makeBoldYellow(TString::Format("unable to find histogram '%s'",histName1.Data())) << std::endl;
}
if(!h2 && print){
std::cout << TQStringUtils::fixedWidth(fpath,60, "l") << " " << TQStringUtils::makeBoldYellow(TString::Format("unable to find histogram '%s'",histName2.Data())) << std::endl;
}
if(!h1 || !h2) continue;
found++;
double diff = TQHistogramUtils::getChi2(h1,h2);
if(diff < maxdiff){
ok++;
} else if(print){
std::cout << TQStringUtils::fixedWidth(fpath,60, "l") << " " << TString::Format(fstring.Data(),diff) << std::endl;
}
}
if(ok != found){
if(found > 0){
if(print) std::cout << TString::Format("found disagreement: only %d/%d histograms under '%s' were found equal!",ok,found,path.Data()) << std::endl;
} else {
if(print) std::cout << TQStringUtils::makeBoldRed("could not find any histograms!") << std::endl;
}
return false;
}
if(print) std::cout << TString::Format("found agreement for all %d histograms under '%s'!",ok,path.Data()) << std::endl;
return true;
}
void TQSampleDataReader::printPaths(TString paths) {
std::vector<TQSampleDataReader::AltPath_t> altPaths = parsePaths(paths);
for( auto altPath : altPaths ) {
for( auto pathTerm : altPath ) {
std::cout << pathTerm.factor << ": " << pathTerm.path.Data() << std::endl;
}
std::cout << "---------" << std::endl;
}
}
bool TQSampleDataReader::passesFilter(TQSampleFolder * sampleFolder, TString filterName) {
if (filterName.Length() == 0)
return true;
if (!sampleFolder)
return false;
return true;
}
TList * TQSampleDataReader::getListOfSampleFoldersTrivial(TString path, TClass* tclass) {
if (!f_baseSampleFolder) {
setErrorMessage(__FUNCTION__,"no valid base sample folder specified");
return 0;
}
TList* list = f_baseSampleFolder->getListOfSampleFolders(path, tclass);
if(!list || list->GetEntries() < 1){
setErrorMessage(__FUNCTION__,TString::Format("unknown path '%s'", path.Data()));
return NULL;
}
return list;
}
TList * TQSampleDataReader::getListOfSampleFolders(const TString& path, TClass* tclass) {
if (!f_baseSampleFolder) {
setErrorMessage(__FUNCTION__,"no valid base sample folder specified");
return 0;
}
TList* folders = new TList();
std::vector<TQSampleDataReader::AltPath_t> altPaths = this->parsePaths(path);
if(altPaths.size() < 1){
DEBUGclass("unable to find paths for '%s'",path.Data());
return NULL;
}
for( auto altPath : altPaths ) {
for( auto pathTerm : altPath ) {
TString sfname = pathTerm.path;
TList* sflist = f_baseSampleFolder->getListOfSampleFolders(sfname,tclass);
if (!sflist) continue;
for (int k = 0; k < sflist->GetEntries(); k++) {
TObject* obj = sflist->At(k);
if(obj && obj->InheritsFrom(tclass))
folders->Add(obj);
}
delete sflist;
}
}
if (!folders || folders->GetEntries() == 0) {
setErrorMessage(__FUNCTION__,TString::Format("unknown path '%s'", path.Data()));
return NULL;
}
return folders;
}
TH1 * TQSampleDataReader::getRatesHistogram(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable tagsOptions(options);
return getRatesHistogram(path, name, &tagsOptions, sfList);
}
TH1 * TQSampleDataReader::getRatesHistogram(const TString& path, TString name, TQTaggable * options, TList * ) {
TQTaggable tags;
if(options) tags.importTags(options);
TString outerList_str;
TQStringUtils::readBlock(name, outerList_str, "{}");
auto outerList = TQStringUtils::split(outerList_str,",","{","}");
TString styleScheme = tags.getTagStringDefault("styleScheme", f_styleScheme);
size_t n = outerList.size();
size_t m = 0;
if(outerList_str.Contains("{")){
m = (outerList_str.CountChar(',')+1 - n) / n + 1;
}
TH1* histo = 0;
bool labels = true;
if(m>0){
auto binningX = tags.getTagVDouble("boundariesX");
if(binningX.size() == 0){
for(size_t i=0; i<n; ++i){
binningX.push_back(i);
}
}
if(binningX.size() != n+1){
setErrorMessage(__FUNCTION__,"Invalid binning for rates histogram");
return NULL;
}
auto binningY = tags.getTagVDouble("boundariesY");
if(binningY.size() == 0){
for(size_t i=0; i<m; ++i){
binningY.push_back(i);
}
}
if(binningY.size() != m+1){
setErrorMessage(__FUNCTION__,"Invalid binning for rates histogram");
return NULL;
}
histo = new TH2D("rates_histogram", "rates_histogram", n, &binningX[0], binningY.size()-1, &binningY[0]);
labels = false;
} else {
if(options && tags.hasTag("boundaries.0")){
auto binning = tags.getTagVDouble("boundaries");
if(binning.size() != n+1){
setErrorMessage(__FUNCTION__,"Invalid binning for rates histogram");
return NULL;
}
histo = new TH1D("rates_histogram", "rates_histogram", n, &binning[0]);
labels = false;
} else {
histo = new TH1D("rates_histogram", "rates_histogram", n, 0., (double)n);
}
}
histo->SetDirectory(NULL);
TList * thisSfList = new TList();
thisSfList->SetOwner(false);
bool stop = false;
int i = 1;
TString lastName;
for(auto name:outerList){
lastName = name;
DEBUGclass("getting "+name);
std::vector<TString> innerList;
if(name.Contains("{")){
TString innerList_str;
TQStringUtils::readBlock(name, innerList_str, "{}");
innerList = TQStringUtils::split(innerList_str, ",", "{","}");
if (innerList.size() == 0){
setErrorMessage(__FUNCTION__,"Invalid list of bins for rates histogram");
return NULL;
}
}
if(innerList.size() > 0){
int j=1;
for(auto name:innerList){
lastName = name;
DEBUGclass("getting "+name);
TQCounter * cnt = this->getCounter(path, name, options, thisSfList);
if (!cnt) {
TH1 * h = this->getHistogram(path, name, options, thisSfList);
cnt = TQHistogramUtils::histogramToCounter(h);
if (h) delete h;
}
if (cnt) {
TString title = cnt->GetTitle();
if(title.IsNull())title=name;
histo->SetBinContent(i, j, cnt->getCounter());
histo->SetBinError(i, j, cnt->getError());
} else {
DEBUGclass("stopping -- failed");
stop = true;
}
if(stop) break;
++j;
}
} else {
TQCounter * cnt = this->getCounter(path, name, options, thisSfList);
if (!cnt) {
TH1 * h = this->getHistogram(path, name, options, thisSfList);
cnt = TQHistogramUtils::histogramToCounter(h);
if (h) delete h;
}
if (cnt) {
TString title = cnt->GetTitle();
if(title.IsNull())title=name;
if(labels){
histo->GetXaxis()->SetBinLabel(i, title);
}
histo->SetBinContent(i, cnt->getCounter());
histo->SetBinError(i, cnt->getError());
delete cnt;
} else {
DEBUGclass("stopping -- failed");
stop = true;
}
if(stop) break;
}
i++;
}
if (thisSfList) {
TQHistogramUtils::applyStyle(histo,
(TQSampleFolder*)thisSfList->First(), styleScheme);
delete thisSfList;
thisSfList = NULL;
}
if (stop) {
delete histo;
histo = NULL;
setErrorMessage(__FUNCTION__,TString::Format("Element '%s' not found in '%s'",
lastName.Data(), path.Data()));
}
return histo;
}
TProfile * TQSampleDataReader::getProfile(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TProfile * histo = getProfile(path, name, tagsOptions, sfList);
delete tagsOptions;
return histo;
}
TProfile * TQSampleDataReader::getProfile(const TString& path, TString name, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
TProfile * histo = NULL;
TQStringUtils::removeLeading(name, " \t");
std::vector<TQSampleDataReader::AltPath_t> histNames = this->parsePaths(name);
for( auto altPath : histNames ) {
for( auto pathTerm : altPath ) {
double factor = pathTerm.factor;
TString histName = pathTerm.path;
TProfile* newHisto = this->getElement<TProfile>(path, histName, this->f_pathHistograms, options, sfList);
if(!newHisto) continue;
if(!histo){
histo = newHisto;
histo->Scale(factor);
} else {
histo->Add(newHisto,factor);
delete newHisto;
}
}
}
if (f_Verbose > 1) {
VERBOSEclass("Profiles");
VERBOSEclass("- original: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
if (options->getTagBoolDefault("norm", false)) {
TQHistogramUtils::normalize(histo);
}
TQHistogramUtils::applyStyle(histo, options);
if (histo && options->getTagBoolDefault("reset", false)) {
histo->Reset();
}
double scale = 1.;
if (histo && options->getTagDouble("scale", scale)) {
histo->Scale(scale);
if (!TMath::AreEqualRel(scale, 1., 0.01)) {
TString title(histo->GetTitle());
title.Append(TString::Format(" (#times%g)", scale));
histo->SetTitle(title);
}
}
f_Verbose = tmpVerbose;
return histo;
}
TH1 * TQSampleDataReader::getHistogram(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TH1 * histo = getHistogram(path, name, tagsOptions, sfList);
delete tagsOptions;
return histo;
}
void TQSampleDataReader::processHistogramOptions(TH1*& histo, TQTaggable* options){
DEBUGclass("HistogramName: %s", histo->GetName() );
int cutBinLowX = options->getTagIntegerDefault("~cutBinLowX", options->getTagIntegerDefault("~cutBinLow", -1));
int cutBinHighX = options->getTagIntegerDefault("~cutBinHighX", options->getTagIntegerDefault("~cutBinHigh", -1));
int cutBinLowY = options->getTagIntegerDefault("~cutBinLowY", -1);
int cutBinHighY = options->getTagIntegerDefault("~cutBinHighY", -1);
int zoomBinLowX = options->getTagIntegerDefault("~zoomBinLowX", options->getTagIntegerDefault("~zoomBinLow", -1));
int zoomBinHighX = options->getTagIntegerDefault("~zoomBinHighX", options->getTagIntegerDefault("~zoomBinHigh", -1));
int zoomBinLowY = options->getTagIntegerDefault("~zoomBinLowY", -1);
int zoomBinHighY = options->getTagIntegerDefault("~zoomBinHighY", -1);
double cutLowX,cutHighX,cutLowY,cutHighY,zoomLowX,zoomHighX,zoomLowY,zoomHighY = 0;
if(options->getTagDouble("~cutLowX", cutLowX ) || options->getTagDouble("~cutLow", cutLowX )) cutBinLowX = histo->GetXaxis()->FindBin(cutLowX);
if(options->getTagDouble("~cutHighX", cutHighX) || options->getTagDouble("~cutHigh", cutHighX)) cutBinHighX = histo->GetXaxis()->FindBin(cutHighX)-1;
if(options->getTagDouble("~cutLowY", cutLowY )) cutBinLowY = histo->GetYaxis()->FindBin(cutLowY );
if(options->getTagDouble("~cutHighY", cutHighY )) cutBinHighY= histo->GetYaxis()->FindBin(cutHighY)-1;
if(options->getTagDouble("~zoomLowX", zoomLowX ) || options->getTagDouble("~zoomLow", zoomLowX )) zoomBinLowX = histo->GetXaxis()->FindBin(zoomLowX);
if(options->getTagDouble("~zoomHighX", zoomHighX) || options->getTagDouble("~zoomHigh", zoomHighX)) zoomBinHighX = histo->GetXaxis()->FindBin(zoomHighX);
if(options->getTagDouble("~zoomLowY", zoomLowY )) zoomBinLowY = histo->GetYaxis()->FindBin(zoomLowY );
if(options->getTagDouble("~zoomHighY", zoomHighY )) zoomBinHighY= histo->GetYaxis()->FindBin(zoomHighY);
if(cutBinLowX != -1 || cutBinHighX != -1 || cutBinLowY != -1 || cutBinHighY != -1 || zoomBinLowX != -1 || zoomBinHighX != -1 || zoomBinLowY != -1 || zoomBinHighY != -1) {
TH1 * newHisto = TQHistogramUtils::cutAndZoomHistogram(histo,
cutBinLowX, cutBinHighX, cutBinLowY, cutBinHighY,
zoomBinLowX, zoomBinHighX, zoomBinLowY, zoomBinHighY);
if (!newHisto) {
setErrorMessage(__FUNCTION__,TString::Format(
"Invalid cut/zoom parameter for histogram '%s'", histo->GetName()));
}
delete histo;
histo = newHisto;
if (f_Verbose > 1) {
VERBOSEclass("- cut/zoomed: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
}
int projXBinLowY = -2;
int projXBinHighY = -2;
int projYBinLowX = -2;
int projYBinHighX = -2;
if (!options->getTagInteger("~projXBinLowY", projXBinLowY)) {
if (!options->getTagInteger("~projXBinY", projXBinLowY)) {
projXBinLowY = (options->getTagBoolDefault("~projX", false) ? -1 : -2);
}
}
if (!options->getTagInteger("~projXBinHighY", projXBinHighY)) {
if (!options->getTagInteger("~projXBinY", projXBinHighY)) {
projXBinHighY = (options->getTagBoolDefault("~projX", false) ? -1 : -2);
}
}
if (!options->getTagInteger("~projYBinLowX", projYBinLowX)) {
if (!options->getTagInteger("~projYBinX", projYBinLowX)) {
projYBinLowX = (options->getTagBoolDefault("~projY", false) ? -1 : -2);
}
}
if (!options->getTagInteger("~projYBinHighX", projYBinHighX)) {
if (!options->getTagInteger("~projYBinX", projYBinHighX)) {
projYBinHighX = (options->getTagBoolDefault("~projY", false) ? -1 : -2);
}
}
if ((projXBinLowY != -2 || projXBinHighY != -2 || projYBinLowX != -2 || projYBinHighX != -2)) {
TH1 * newHisto = NULL;
if ((projXBinLowY != -2 || projXBinHighY != -2) && projYBinLowX == -2 && projYBinHighX == -2) {
newHisto = TQHistogramUtils::getProjectionX(histo, projXBinLowY, projXBinHighY);
} else if ((projYBinLowX != -2 || projYBinHighX != -2) && projXBinLowY == -2 && projXBinHighY == -2) {
newHisto = TQHistogramUtils::getProjectionY(histo, projYBinLowX, projYBinHighX);
}
if (!newHisto) {
setErrorMessage(__FUNCTION__,TString::Format(
"Invalid projection parameter for histogram '%s'", histo->GetName()));
}
delete histo;
histo = newHisto;
if (f_Verbose > 1) {
VERBOSEclass("- projected: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
}
int rebinX = options->getTagIntegerDefault("~rebinX", 0);
int rebinY = options->getTagIntegerDefault("~rebinY", 0);
int rebinZ = options->getTagIntegerDefault("~rebinZ", 0);
std::vector<double> rebinXList = options->getTagVDouble("~rebinXList");
std::vector<double> rebinYList = options->getTagVDouble("~rebinYList");
std::vector<int> rebinXBinList = options->getTagVInteger("~rebinXBinList");
std::vector<int> rebinYBinList = options->getTagVInteger("~rebinYBinList");
bool remap = options->getTagBoolDefault("~remap",false);
bool relabel = options->getTagBoolDefault("~relabel",false);
bool rebinned = false;
if ((rebinX > 0 || rebinY > 0 || rebinZ > 0)) {
if(!histo->InheritsFrom(TH2::Class())){
delete histo;
histo = 0;
setErrorMessage(__FUNCTION__,"Cannot use rebinX, rebinY, rebinZ for 1D-histograms, please use rebin");
} else if(!TQHistogramUtils::rebin(histo,rebinX,rebinY,rebinZ,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
} else if (f_Verbose > 1) {
VERBOSEclass("- rebinned: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
rebinned = true;
} else if(rebinXList.size() > 0){
if(!histo->InheritsFrom(TH2::Class())){
setErrorMessage(__FUNCTION__,"Cannot use rebinYList for 1D-histograms, please use rebinList");
delete histo;
histo = 0;
} else {
if(rebinYList.size() > 0){
if(!TQHistogramUtils::rebin(histo,rebinXList,rebinYList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
} else {
if(!TQHistogramUtils::rebin(histo,rebinXList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
}
}
rebinned = true;
} else if(rebinXBinList.size() > 0){
if(!histo->InheritsFrom(TH2::Class())){
setErrorMessage(__FUNCTION__,"Cannot use rebinYBinList for 1D-histograms, please use rebinBinList");
delete histo;
histo = 0;
} else {
if(rebinYBinList.size() > 0){
if(!TQHistogramUtils::rebin(histo,rebinXBinList,rebinYBinList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
} else {
if(!TQHistogramUtils::rebin(histo,rebinXBinList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
}
}
rebinned = true;
}
if(options->getTagBoolDefault("~unroll",false)){
TH2* h2 = dynamic_cast<TH2*>(histo);
if(h2){
bool firstX = options->getTagBoolDefault("~unroll.firstX",true);
bool includeUO = options->getTagBoolDefault("~unroll.includeUndervlowOverflow",false);
TH1* newhisto = TQHistogramUtils::unrollHistogram(h2,firstX,includeUO);
if(newhisto){
histo = newhisto;
TQHistogramUtils::copyStyle(histo,h2);
delete h2;
}
}
}
int rebin = options->getTagIntegerDefault("~rebin", 0);
std::vector<double> rebinList = options->getTagVDouble("~rebinList");
std::vector<int> rebinBinList = options->getTagVInteger("~rebinBinList");
if(rebin){
if(!TQHistogramUtils::rebin(histo,rebin,0,0,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
} else if (f_Verbose > 1) {
VERBOSEclass("- rebinned: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
rebinned = true;
} else if(rebinList.size() > 0){
if(!TQHistogramUtils::rebin(histo,rebinList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
rebinned = true;
} else if(rebinBinList.size() > 0){
if(!TQHistogramUtils::rebin(histo,rebinBinList,remap)){
setErrorMessage(__FUNCTION__,TString::Format("Invalid rebinning parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
rebinned = true;
}
if(!rebinned && remap){
if(relabel){
TQHistogramUtils::remapAndRelabel(histo->GetXaxis());
if(histo->InheritsFrom(TH2::Class())) TQHistogramUtils::remapAndRelabel(histo->GetYaxis());
if(histo->InheritsFrom(TH3::Class())) TQHistogramUtils::remapAndRelabel(histo->GetZaxis());
} else {
TQHistogramUtils::remap(histo->GetXaxis(),0,1);
if(histo->InheritsFrom(TH2::Class())) TQHistogramUtils::remap(histo->GetYaxis(),0,1);
if(histo->InheritsFrom(TH3::Class())) TQHistogramUtils::remap(histo->GetZaxis(),0,1);
}
}
double slope = 1.;
if (options->getTagDouble("~slope", slope)) {
if (!TQHistogramUtils::applySlopeToHistogram(histo, slope)) {
setErrorMessage(__FUNCTION__,TString::Format("Invalid slope parameter for histogram '%s'", histo->GetName()));
delete histo;
histo = 0;
}
}
if (options->getTagBoolDefault("~norm", false)) {
TQHistogramUtils::normalize(histo);
}
TQHistogramUtils::applyStyle(histo, options);
if (options->getTagBoolDefault("~reset", false)) {
histo->Reset();
}
double scale = 1.;
if (options->getTagDouble("~scale", scale)) {
histo->Scale(scale);
if (!TMath::AreEqualRel(scale, 1., 0.01)) {
TString title(histo->GetTitle());
title.Append(TString::Format(" (#times%g)", scale));
histo->SetTitle(title);
}
}
int densityBin = 0;
if (options->getTagInteger("~scaleDensityToBin",densityBin)){
histo->Scale(histo->GetXaxis()->GetBinWidth(densityBin),"width");
}
if (options->getTagBoolDefault("~applyPoissonErrors", false)) {
TQHistogramUtils::applyPoissonErrors(histo);
}
double scaleErrors;
if (options->getTagDouble("~scaleErrors", scaleErrors)) {
DEBUGclass("scaling errors of histogram '%s' to %g",histo->GetName(),scaleErrors);
TQHistogramUtils::scaleErrors(histo,scaleErrors);
}
double zvalue;
if(options->getTagDouble("~rerollGauss",zvalue)){
TQHistogramUtils::rerollGauss(histo,zvalue);
} else if(options->getTagBoolDefault("~rerollPoisson")){
TQHistogramUtils::rerollPoisson(histo);
}
bool includeUnderflow = options->getTagBoolDefault("~includeUnderflow",false) or options->getTagBoolDefault("~includeUnderflowOverflow",false);
bool includeOverflow = options->getTagBoolDefault("~includeOverflow",false) or options->getTagBoolDefault("~includeUnderflowOverflow",false);
TQHistogramUtils::includeOverflowBins(histo, includeUnderflow, includeOverflow);
bool extraUnderflow = options->getTagBoolDefault("~extraUnderflow",false) or options->getTagBoolDefault("~extraUnderflowOverflow",false);
bool extraOverflow = options->getTagBoolDefault("~extraOverflow",false) or options->getTagBoolDefault("~extraUnderflowOverflow",false);
TQHistogramUtils::extraOverflowBins(histo, extraUnderflow, extraOverflow, remap);
double minBinContent;
double ensureAbsMinimumContent;
TString SampleName;
options->getTagString("~Sample", SampleName);
if (options->getTagDouble("~ensureMinimumBinContent", minBinContent)) {
if (options->getTagDouble("~ensureAbsMinimumContent", ensureAbsMinimumContent)) {
INFOclass("ensureAbsMinimumContent on sample: '%s'", SampleName.Data());
TQHistogramUtils::ensureAbsMinimumBinContent(histo, minBinContent);
} else{
TQHistogramUtils::ensureMinimumBinContent(histo,minBinContent,true);
}
}
std::vector<TString> labelsX = options->getTagVString("~relabelX");
if(labelsX.size() > 0 && labelsX.size() == (size_t)histo->GetXaxis()->GetNbins()){
for(size_t i=0; i<labelsX.size(); ++i){
histo->GetXaxis()->SetBinLabel(i+1,labelsX[i]);
histo->GetXaxis()->LabelsOption("v");
}
}
std::vector<TString> labelsY = options->getTagVString("~relabelY");
if(labelsY.size() > 0 && labelsY.size() == (size_t)histo->GetYaxis()->GetNbins()){
for(size_t i=0; i<labelsY.size(); ++i){
histo->GetYaxis()->SetBinLabel(i+1,labelsY[i]);
}
}
std::vector<TString> labelsZ = options->getTagVString("~relabelZ");
if(labelsZ.size() > 0 && labelsZ.size() == (size_t)histo->GetZaxis()->GetNbins()){
for(size_t i=0; i<labelsZ.size(); ++i){
histo->GetZaxis()->SetBinLabel(i+1,labelsZ[i]);
}
}
bool histogramOfOnes = options->getTagBoolDefault("~histogramOfOnes", false);
if ( histogramOfOnes ) {
DEBUGclass("Making a histogram of ones (to be used for testing fits with ShapeFactors)");
for (int i=0; i<histo->GetNbinsX()+1; ++i){
DEBUGclass("Set bin %i to 1", i);
histo->SetBinContent(i, 1.);
}
}
}
TH1 * TQSampleDataReader::getHistogram(const TString& path, TString name, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
TH1 * histo = NULL;
TQStringUtils::removeLeading(name, " \t");
if (name.BeginsWith("{")) {
histo = this->getRatesHistogram(path, name, options, sfList);
} else {
histo = dynamic_cast<TH1*>(this->getElement<TH1>(path, name, this->f_pathHistograms, options, sfList));
}
if (f_Verbose > 1) {
VERBOSEclass("Histograms");
VERBOSEclass("- original: %s",TQHistogramUtils::getDetailsAsString(histo, 2).Data());
}
if (histo && options){
TString pathToTransferFrom;
if (options->getTagString("transferRelativeErrorsFromPath",pathToTransferFrom)) {
TH1 * relErrorsHisto = NULL;
if (pathToTransferFrom.BeginsWith("{")) {
relErrorsHisto = this->getRatesHistogram(pathToTransferFrom, name, options, sfList);
} else {
relErrorsHisto = dynamic_cast<TH1*>(this->getElement<TH1>(pathToTransferFrom, name, this->f_pathHistograms, options, sfList));
}
if (!TQHistogramUtils::transferRelativeErrors(relErrorsHisto, histo)) {
ERRORclass(TString::Format("Failed to transfer relative errors from histogram with name '%s' and path '%s' to histogram '%s' at path '%s'", name.Data(), pathToTransferFrom.Data(), name.Data(), path.Data()));
}
}
this->processHistogramOptions(histo,options);
if(options->getTagBoolDefault("printNFInLegend",false)){
TQTaggable newoptions(*options);
newoptions.setTagString("scaleScheme","none");
newoptions.setTagBool("printNFInLegend",false);
TH1* unscaled = this->getHistogram(path,name,&newoptions,NULL);
double nf = TQHistogramUtils::getIntegral(histo) / TQHistogramUtils::getIntegral(unscaled);
delete unscaled;
TString title(histo->GetTitle());
title.Append(TString::Format(" (#times%.3g)", nf));
histo->SetTitle(title);
}
if(options->getTagBoolDefault("sortBinsByRatio",false)){
TString numerator = options->getTagStringDefault("sortBinsByRatio.numerator","sig");
TString denominator = options->getTagStringDefault("sortBinsByRatio.denominator","bkg");
TQTaggable subOptions(options);
subOptions.setTagBool("sortBinsByRatio",false);
TH1* num = this->getHistogram(numerator,name,&subOptions);
TH1* denom = this->getHistogram(denominator,name,&subOptions);
std::vector<int> bins = TQHistogramUtils::getBinsSortedByRatio(num,denom,1e-12);
TQHistogramUtils::reorder(histo,bins);
delete num;
delete denom;
}
}
f_Verbose = tmpVerbose;
return histo;
}
THnBase * TQSampleDataReader::getTHnBase(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
THnBase * histo = getTHnBase(path, name, tagsOptions, sfList);
delete tagsOptions;
return histo;
}
THnBase * TQSampleDataReader::getTHnBase(const TString& path, TString name, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
THnBase * histo = NULL;
TQStringUtils::removeLeading(name, " \t");
histo = dynamic_cast<THnBase*>(this->getElement<THnBase>(path, name, this->f_pathHistograms, options, sfList));
f_Verbose = tmpVerbose;
return histo;
}
TGraph * TQSampleDataReader::getGraph(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TGraph * graph = getGraph(path, name, tagsOptions, sfList);
delete tagsOptions;
return graph;
}
TGraph * TQSampleDataReader::getGraph(const TString& path, TString name, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
TGraph * graph = NULL;
TQStringUtils::removeLeading(name, " \t");
graph = dynamic_cast<TGraph*>(this->getElement<TGraph>(path, name, this->f_pathGraphs, options, sfList));
f_Verbose = tmpVerbose;
return graph;
}
TGraph2D * TQSampleDataReader::getGraph2D(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TGraph2D * graph = getGraph2D(path, name, tagsOptions, sfList);
delete tagsOptions;
return graph;
}
TGraph2D * TQSampleDataReader::getGraph2D(const TString& path, TString name, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
TGraph2D * graph = NULL;
TQStringUtils::removeLeading(name, " \t");
graph = dynamic_cast<TGraph2D*>(this->getElement<TGraph2D>(path, name, this->f_pathGraphs, options, sfList));
f_Verbose = tmpVerbose;
return graph;
}
template<class T>
TList * TQSampleDataReader::collectElements(TQSampleDataReader::AltPath_t& paths, TQSampleDataReader::AltPath_t& elements, const TString& subPath, TList * sfList, TQTaggable * options) {
TList * list = new TList();
list->SetOwner(true);
TString scaleScheme = options ? options->getTagStringDefault("scaleScheme", f_scaleScheme) : f_scaleScheme;
int nElements = 0;
for( auto pathTerm : paths ) {
TString pathName = pathTerm.path;
double pathfactor = pathTerm.factor;
if (this->f_Verbose > 3) {
VERBOSEclass("Collecting using path expression %s (factor:%f)",pathName.Data(),pathfactor);
}
TQSampleFolderIterator pIter2(this->f_baseSampleFolder->getListOfSampleFolders(pathName, TQSampleFolder::Class(), true), true);
while(pIter2.hasNext() && nElements >= 0){
TQSampleFolder* sf = pIter2.readNext();
if(!sf) continue;
if (this->f_Verbose > 3) {
VERBOSEclass("Collecting from path match %s",sf->getPath().Data());
}
for( auto elementTerm : elements ) {
const TString& elementName = elementTerm.path;
double elementfactor = elementTerm.factor;
TList * baseScaleList = this->getBaseScaleFactors(sf, elementName, scaleScheme);
if(pathfactor != 1. || elementfactor != 1.){
if (!baseScaleList) {
baseScaleList = new TList();
}
TQCounter* scale = new TQCounter("prefactor",pathfactor*elementfactor,0.);
baseScaleList->Add(scale);
}
if (f_Verbose > 3) {
VERBOSEclass("now collecting elements for path '%s' (with %d base scale factors)",sf->getPath().Data(),baseScaleList ? baseScaleList->GetEntries() : 0);
if (f_Verbose > 4) {
TQCounterIterator itr(baseScaleList);
while(itr.hasNext()){
TQCounter* c = itr.readNext();
VERBOSEclass("%s = %g",c->GetName(),c->getCounter());
}
}
}
nElements += this->collectElementsWorker<T>(sf, elementName, subPath, list, baseScaleList, sfList, options, 1);
if(baseScaleList){
baseScaleList->SetOwner(false);
delete baseScaleList;
}
}
}
}
if(nElements <= 0){
delete list;
list = nullptr;
}
return list;
}
void TQSampleDataReader::setDefaultScaleScheme(const TString& defaultScheme){
this->f_scaleScheme = defaultScheme;
}
template<class T>
int TQSampleDataReader::collectElementsWorker(TQSampleFolder * sampleFolder, const TString& elementName, const TString& subPath, TList* list, TList * baseScaleList, TList * sfList, TQTaggable * options, int indent) {
TList* scaleList = nullptr;
if (f_Verbose > 4) {
VERBOSEclass("trying to collect '"+elementName+"'");
}
if (!sampleFolder) return 0;
TString scaleScheme = options ? options->getTagStringDefault("scaleScheme", f_scaleScheme) : f_scaleScheme;
if (!(f_localMode && sampleFolder == f_baseSampleFolder)) {
TString text;
TString sftext;
bool printsftext = (f_Verbose > 4);
if (f_Verbose > 3) {
text.Append(TQStringUtils::repeat(" ", indent * 2));
text.Append(TQStringUtils::makeBoldBlue(sampleFolder->GetName()));
text.Append(" ");
text.Append(subPath);
sftext.Append(TQStringUtils::makeBoldRed(" [local SF = ("));
}
TString scaleFactorPath = elementName;
while (!scaleFactorPath.IsNull()) {
TQCounter * localScaleItemCounter = sampleFolder->getScaleFactorCounterInternal(scaleFactorPath,scaleScheme);
TQFolder::getPathTail(scaleFactorPath);
if (!localScaleItemCounter) continue;
if (!scaleList) {
scaleList = new TList();
scaleList->SetOwner(false);
scaleList->AddAll(baseScaleList);
}
scaleList->Add(localScaleItemCounter);
if (f_Verbose > 3) {
if (!localScaleItemCounter || localScaleItemCounter->getCounter() == 1.) {
sftext.Append(TQStringUtils::makeBoldWhite("1."));
} else {
printsftext = true;
sftext.Append(TQStringUtils::makeBoldRed(TString::Format("%f", localScaleItemCounter->getCounter() )));
}
if (!scaleFactorPath.IsNull()) {
sftext.Append(TQStringUtils::makeBoldRed(", "));
}
}
}
if (f_Verbose > 3) {
sftext.Append(TQStringUtils::makeBoldRed(")]"));
if(printsftext)
VERBOSEclass(text + sftext);
else
VERBOSEclass(text);
}
}
int nElements = 0;
sampleFolder->resolveImportLinks(false);
TString folderPath = TQFolder::concatPaths(subPath, elementName);
TString objName = TQFolder::getPathTail(folderPath);
TQFolder* containingFolder = sampleFolder->getFolder(folderPath);
T* obj = NULL;
if (containingFolder) {
obj = dynamic_cast<T*>(containingFolder->getObject(objName));
} else {
if (f_Verbose > 4) {
VERBOSEclass("no container '%s' in '%s'",folderPath.Data(),sampleFolder->getPath().Data());
}
}
if (obj){
if (f_Verbose > 4) {
VERBOSEclass("found object '%s'",obj->GetName());
}
TList * localList = new TList();
localList->Add(containingFolder);
localList->Add(obj);
localList->AddAll(scaleList ? scaleList : baseScaleList);
list->Add(localList);
nElements = 1;
obj = 0;
if (sfList) sfList->Add(sampleFolder);
} else {
if (f_Verbose > 4) {
VERBOSEclass("found no object '%s', looping inside '%s' for %d elements",objName.Data(),sampleFolder->getPath().Data(),nElements);
sampleFolder->print("rdt");
}
TQIterator itr(sampleFolder->getListOfSampleFolders("?"),true);
while (itr.hasNext() && nElements >= 0) {
TQSampleFolder* sf = static_cast<TQSampleFolder*>(itr.readNext());
if(!sf) continue;
if (f_Verbose > 4) {
VERBOSEclass("looking inside '%s'",sf->getPath().Data());
}
nElements+=this->collectElementsWorker<T>(sf, elementName, subPath, list, scaleList ? scaleList : baseScaleList, sfList, options, indent + 1);
}
}
if (scaleList) delete scaleList;
return nElements;
}
template<class T>
int TQSampleDataReader::sumElements( TList * list, T * &histo, TQTaggable * options ) {
int nElements = 0;
if (!list) return -1;
bool useScaleUncertainty = options ? options->getTagBoolDefault("includeScaleUncertainty", false) : false;
bool useManualCorrelations = options ? options->getTagBoolDefault("useManualCorrelations", false) : false;
bool advancedUncertaintyTreatment = useScaleUncertainty || useManualCorrelations;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 1) continue;
double scale = 1.;
for (int j=2; j<l->GetSize(); j++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(l->At(j));
if(cnt) scale *= cnt->getCounter();
}
T* h = dynamic_cast<T*>(l->At(1));
if (!histo) {
if(!h){
ERRORclass("object list [1] is not a histogram!");
continue;
}
histo = (T*)TQHistogramUtils::copyHistogram(h,"NODIR");
if (!histo) {
ERRORclass("Failed to copy histogram!");
continue;
}
TQHistogramUtils::scaleHistogram(histo,scale,0.,false);
DEBUGclass("starting summation with histogram: s(w)=%g, n=%zu",histo->Integral(),histo->GetEntries());
nElements = 1;
} else {
DEBUGclass("adding histogram: s(w)=%g, n=%zu",h->Integral(),h->GetEntries());
TQHistogramUtils::addHistogram(histo,h,scale,0.,0.,false);
nElements++;
}
}
bool simpleScaleUncertainty = false;
itr.reset();
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TQCounter* cnt = dynamic_cast<TQCounter*>(l->At(1));
if (!cnt) {
simpleScaleUncertainty = true;
break;
}
TString id = cnt->GetTitle();
TQFolder* corrFolder = this->getCorrelationFolderByIdentifier(id);
if (!corrFolder) {
simpleScaleUncertainty = true;
break;
}
}
if (!simpleScaleUncertainty && advancedUncertaintyTreatment && nElements>0) {
double correlationAux = 0.;
const int nbins = TQHistogramUtils::getNbinsGlobal(histo);
std::vector<double> binErrors2(nbins);
TQListIterator cont1(list);
while(cont1.hasNext()){
TList* c1 = cont1.readNext();
if(!c1 || c1->GetSize()<2) continue;
TQFolder * oFolder1 = dynamic_cast<TQFolder*>(c1->At(0));
T* h1 = dynamic_cast<T*>(c1->At(1));
if(!h1) continue;
if(!TQHistogramUtils::checkConsistency(histo, h1) ) continue;
for (int j=1; j<c1->GetSize(); j++) {
if (!c1->At(j)) continue;
TQListIterator cont2(list);
while(cont2.hasNext()){
TList* c2 = cont2.readNext();
if(!c2 || c2->GetSize()<2) continue;
TQFolder * oFolder2 = dynamic_cast<TQFolder*>(c2->At(0));
T* h2 = dynamic_cast<T*>(c2->At(1));
if(!h2) continue;
if(!TQHistogramUtils::checkConsistency(histo, h2) ) continue;
for (int l=1; l<c2->GetSize(); l++) {
if (!c2->At(l)) continue;
correlationAux = 0.;
if ( j == 1 && l == 1) {
if ( h1 == h2 || ( useManualCorrelations && TQStringUtils::equal(h1->GetName(),h2->GetName()) && areFoldersCorrelated(oFolder1,oFolder2,correlationAux) ) ) {
if (h1 == h2) correlationAux = 1.;
double tempErr = correlationAux;
for (int j1=2; j1<c1->GetSize(); j1++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(c1->At(j1));
if(!cnt) continue;
tempErr *= cnt->getCounter();
}
for (int l1=2; l1<c2->GetSize(); l1++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(c2->At(l1));
if(!cnt) continue;
tempErr *= cnt->getCounter();
}
for (int bin = 0; bin<nbins; bin++) {
binErrors2[bin] += h1->GetBinError(bin) * h2->GetBinError(bin)*tempErr;
}
}
} else if ( j > 1 && l > 1 && useScaleUncertainty ) {
if ( !(c1->At(j) && c1->At(j)->IsA() == TQCounter::Class() ) || !((c2->At(l)) && c2->At(l)->IsA() == TQCounter::Class()) || (static_cast<TQCounter*>(c1->At(j)))->getError() == 0. || (static_cast<TQCounter*>(c2->At(l)))->getError() == 0.) continue;
TString id1 = c1->At(j)->GetTitle();
TString id2 = c2->At(l)->GetTitle();
double tempErr = 1.;
for (int j1=2; j1<c1->GetSize(); j1++) {
if (!c1->At(j1) || c1->At(j1)->IsA() != TQCounter::Class()) continue;
TQCounter* cnt = static_cast<TQCounter*>(c1->At(j1));
tempErr *= ( j == j1 ? cnt->getError() : cnt->getCounter() );
}
for (int l1=2; l1<c2->GetSize(); l1++) {
if (!c2->At(l1) || c2->At(l1)->IsA() != TQCounter::Class()) continue;
TQCounter* cnt = static_cast<TQCounter*>(c2->At(l1));
tempErr *= ( l == l1 ? cnt->getError() : cnt->getCounter() );
}
if ( !id1.IsNull() && !id2.IsNull() ) {
TQFolder* f1 = this->getCorrelationFolderByIdentifier(id1);
TQFolder* f2 = this->getCorrelationFolderByIdentifier(id2);
if ( f1 && f2 && f1->getObject(id2) ) {
double corr = (dynamic_cast<TQCounter*>( f1->getObject(id2) ))->getCounter();
#ifdef _DEBUG_
if ( f2->getObject(id1) && !TMath::AreEqualAbs(corr, (dynamic_cast<TQCounter*>( f2->getObject(id1) ))->getCounter() , std::numeric_limits<double>::epsilon()) ) {
WARNclass("Correlations do not match: cor(x1,x2) = %d, cor(x2,x1) = %d \nID(x1) = '%s'\nID(x2) = '%s'", corr, (dynamic_cast<TQCounter*>( f2->getObject(id1) ))->getCounter(), id1.Data(), id2.Data() );
} else if (!f2->getObject(id1)) {
ERRORclass("Failed to retrieve secondary correlation counter (ID '%s') from folder %s", id1.Data(), f2->getPath().Data());
}
#endif
tempErr*= corr;
} else {
WARNclass("Failed to retrieve correlation counter from folder '%s' for NF counters with identifiers (titles) %s and %s!",f1->getPath().Data(),id1.Data(),id2.Data());
if (TQStringUtils::equal(id1,id2)) {
WARNclass("identifiers are equal, assuming full correlation (100%)");
} else {
WARNclass("identifiers are equal, assuming no correlation (0%)");
tempErr *= 0;
}
}
for (int bin = 0; bin<nbins; bin++) {
binErrors2[bin] += h1->GetBinContent(bin) * h2->GetBinContent(bin) * tempErr;
}
} else if (!(TQStringUtils::equal(c1->At(j)->GetName(),"prefactor") || TQStringUtils::equal(c2->At(l)->GetName(),"prefactor") )){
WARNclass("At least one counter has no title, skipping uncertainty contribution involving this counter");
(dynamic_cast<TQCounter*>(c1->At(j)))->print();
(dynamic_cast<TQCounter*>(c2->At(l)))->print();
}
}
}
}
}
}
for (int bin=0; bin<nbins; ++bin) {
histo->SetBinError(bin, sqrt(binErrors2[bin]));
}
}
# ifdef _DEBUG_
if(histo){
DEBUGclass("resulting histogram: s(w)=%g, n=%zu",histo->Integral(),histo->GetEntries());
} else {
DEBUGclass("no histogram generated!");
}
#endif
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, THnBase * &histo, TQTaggable * ) {
int nElements = 0;
if (!list) return -1;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 1) continue;
double scale = 1.;
for (int j=2; j<l->GetSize(); j++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(l->At(j));
if(cnt) scale *= cnt->getCounter();
}
THnBase* h = dynamic_cast<THnBase*>(l->At(1));
if (!histo) {
if(!h){
ERRORclass("object list [1] is not a histogram!");
continue;
}
histo = (THnBase*)TQTHnBaseUtils::copyHistogram(h,"NODIR");
if (!histo) {
ERRORclass("Failed to copy histogram!");
continue;
}
TQTHnBaseUtils::scaleHistogram(histo,scale,0.,false);
nElements = 1;
} else {
TQTHnBaseUtils::addHistogram(histo,h,scale,0.,0.,false);
nElements++;
}
}
# ifdef _DEBUG_
if(histo){
DEBUGclass("resulting histogram: n=%zu",histo->GetEntries());
} else {
DEBUGclass("no histogram generated!");
}
#endif
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, TQTable * &table, TQTaggable * ) {
int nElements = 0;
if (!list) return -1;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TQTable* t = dynamic_cast<TQTable*>(l->At(1));
if(!t) continue;
if (table) {
table->appendLines(t,1,true);
} else {
table = new TQTable(t);
}
nElements++;
}
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, TGraph * &graph, TQTaggable * ) {
int nElements = 0;
if (!list) return -1;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TGraph* g = dynamic_cast<TGraph*>(l->At(1));
if(!g) continue;
if (graph) {
TQHistogramUtils::addGraph(graph,g);
} else {
graph = (TGraph*)TQHistogramUtils::copyGraph(g);
}
nElements++;
}
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, TGraph2D * &graph, TQTaggable * ) {
int nElements = 0;
if (!list) return -1;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TGraph2D* g = dynamic_cast<TGraph2D*>(l->At(1));
if(!g) continue;
if (graph) {
TQHistogramUtils::addGraph(graph,g);
} else {
graph = (TGraph2D*)TQHistogramUtils::copyGraph(g);
}
nElements++;
}
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, TQPCA * &pca, TQTaggable * ) {
int nElements = 0;
if (!list) return -1;
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TQPCA* p = dynamic_cast<TQPCA*>(l->At(1));
if(!p) continue;
if (pca) {
pca->add(p);
} else {
pca = (TQPCA*)(p->Clone());
}
nElements++;
}
return nElements;
}
int TQSampleDataReader::sumElements( TList * list, TTree * &tree, TQTaggable * ) {
if (!gDirectory->IsWritable()) {
ERRORclass("current directory is not writable and you can't create a tree on memory ");
ERRORclass("please create a new TFile before getting the tree ");
tree = NULL;
return -1;
}
int nElements = 0;
if (!list) return -1;
TList* trees = new TList();
trees->SetOwner(false);
TQListIterator itr(list);
while(itr.hasNext()){
TList* l = itr.readNext();
if(!l || l->GetSize() < 2) continue;
TTree* t = dynamic_cast<TTree*>(l->At(1));
if(!t) continue;
trees->Add(t);
nElements++;
}
if (trees->GetSize()==0){
tree = NULL;
delete trees;
return 0;
} else if (trees->GetSize()==1){
tree = (TTree*)trees->At(0)->Clone();
delete trees;
return 1;
} else {
tree = TTree::MergeTrees(trees);
delete trees;
return nElements;
}
}
TString TQSampleDataReader::getStoragePath(TQFolder* f) {
TString path = "";
TQFolder* thisFolder = f;
while (!thisFolder->InheritsFrom(TQSampleFolder::Class())) {
path = TQFolder::concatPaths(thisFolder->GetName(),path);
thisFolder = thisFolder->getBase();
}
return path;
}
bool TQSampleDataReader::areFoldersCorrelated(TQFolder* f1, TQFolder* f2) {
double tmp = 0.;
return this->areFoldersCorrelated(f1,f2,tmp);
}
bool TQSampleDataReader::areFoldersCorrelated(TQFolder* f1, TQFolder* f2, double& correlation, bool reversed) {
if (!f1 || !f2) {
ERRORclass("Recieved null-pointer, returning false!");
return false;
}
correlation = 0.;
if (!TQStringUtils::equal( getStoragePath(f1), getStoragePath(f2) )) return false;
TQFolder* rootFolder = f1->getRoot();
bool found = false;
TQFolder* currentFolder = f1;
std::vector<TString> paths;
while ( !found && currentFolder ) {
currentFolder->getTag(".correlate.path",paths);
if (paths.size() > 0) {
found = true;
for (size_t i=0; i<paths.size(); i++) {
TQFolder* f = rootFolder->getFolder(paths[i]);
if (f && (f == f2 || f->isBaseOf(f2)) ) {
if (!currentFolder->getTagDouble(TString::Format(".correlate.value.%zu", i), correlation)) {
WARNclass("Found correlation reference from folder '%s' to folder '%s' (from tag '.correlate.path.%d') but no corresponding correlation value. Full correlation (1.0) will be assumed!",currentFolder->getPath().Data(),f->getPath().Data(),i);
correlation = 1.;
}
return true;
}
}
return false;
} else {
currentFolder = currentFolder->getBase();
}
}
if (!reversed) return this->areFoldersCorrelated(f2,f1,correlation,true);
return false;
}
int TQSampleDataReader::sumElements( TList * list, TQCounter * &counter, TQTaggable * options ) {
int nElements = 0;
if (!list) return -1;
bool useScaleUncertainty = options ? options->getTagBoolDefault("includeScaleUncertainty", false) : false;
bool useManualCorrelations = options ? options->getTagBoolDefault("useManualCorrelations", false) : false;
bool advancedUncertaintyTreatment = useScaleUncertainty || useManualCorrelations;
TQListIterator itr1(list);
TQListIterator itr2(list);
bool simpleScaleUncertainty = !advancedUncertaintyTreatment;
if (!simpleScaleUncertainty) {
while(itr1.hasNext()){
TList* l = itr1.readNext();
if(!l || l->GetSize() < 2) continue;
TQCounter* cnt = dynamic_cast<TQCounter*>(l->At(1));
TString id = cnt->GetTitle();
TQFolder* corrFolder = this->getCorrelationFolderByIdentifier(id);
if (!corrFolder) {
simpleScaleUncertainty = true;
break;
}
}
}
while(itr2.hasNext()){
TList* l = itr2.readNext();
if(!l || l->GetSize() < 2) continue;
TQCounter* cnt = dynamic_cast<TQCounter*>(l->At(1));
if(!cnt) continue;
double scale = 1.;
double uncertFrac = 0.;
for (int j=2; j<l->GetSize(); j++) {
TQCounter * c = dynamic_cast<TQCounter*>(l->At(j));
if (c) {
double thisScale = c->getCounter();
scale *= thisScale;
uncertFrac += pow(c->getError()/thisScale, 2);
}
}
double uncertAbs = sqrt(uncertFrac) * scale;
if (counter) {
if (simpleScaleUncertainty) {
counter->add(cnt,scale,uncertAbs,0.,useScaleUncertainty);
} else {
counter->add(cnt,scale,0.,0.,false);
}
} else {
counter = new TQCounter(cnt);
if (simpleScaleUncertainty) {
counter->scale(scale,uncertAbs,useScaleUncertainty);
} else {
counter->scale(scale,0.,false);
}
}
nElements++;
}
if (!simpleScaleUncertainty && advancedUncertaintyTreatment && nElements > 0) {
double correlationAux = 0.;
double uncertSq = 0;
itr1.reset();
while(itr1.hasNext()){
TList* l1 = itr1.readNext();
if(!l1 || l1->GetSize() < 2) continue;
TQFolder * oFolder1 = dynamic_cast<TQFolder*>(l1->At(0));
for (int j=1; j<l1->GetSize();j++) {
TQCounter* cnt1 = dynamic_cast<TQCounter*>(l1->At(j));
if(!cnt1) continue;
TQListIterator itr2(list);
while(itr2.hasNext()){
TList* l2 = itr2.readNext();
if(!l2 || l2->GetSize() < 2) continue;
TQFolder * oFolder2 = dynamic_cast<TQFolder*>(l1->At(0));
for (int l=1;l<l2->GetSize();l++) {
TQCounter* cnt2 = dynamic_cast<TQCounter*>(l2->At(l));
if(!cnt2) continue;
double tempErr = 1.;
if (l == 1 && j == 1 ) {
if ( cnt1 != cnt2 ) {
if (useManualCorrelations && TQStringUtils::equal(cnt1->GetName(),cnt2->GetName()) && areFoldersCorrelated(oFolder1,oFolder2,correlationAux) ) {
tempErr*=correlationAux;
} else {
continue;
}
}
} else if (!useScaleUncertainty) continue;
if ( (l==1 && j>1) || (l>1 && j==1) ) continue;
for (int i = 1; i<l1->GetSize(); i++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(l1->At(i));
if(!cnt) continue;
tempErr *= ( j == i ? cnt->getError() : cnt->getCounter() );
}
for (int k = 1; k<l2->GetSize(); k++) {
TQCounter* cnt = dynamic_cast<TQCounter*>(l2->At(k));
if(!cnt) continue;
tempErr *= ( l == k ? cnt->getError() : cnt->getCounter() ) ;
}
TString id1 = cnt1->GetTitle();
TString id2 = cnt2->GetTitle();
if (l>1 && j>1 && !(id1.IsNull() || id2.IsNull()) ) {
TQFolder* f1 = this->getCorrelationFolderByIdentifier(id1);
if (!f1) {
ERRORclass("Failed to retrieve primary correlation folder!");
return -1;
} else if (f1->getObject(id2)) {
double corr = (dynamic_cast<TQCounter*>( f1->getObject(id2) ))->getCounter();
#ifdef _DEBUG_
TQFolder* f2 = this->getCorrelationFolderByIdentifier(id2);
if (!f2) WARNclass("Unable to retrieve secondary correlation folder (id '%s')", id2.Data());
else if (f2->getObject(id1) && !TMath::AreEqualAbs(corr, (dynamic_cast<TQCounter*>( f2->getObject(id1) ))->getCounter() , std::numeric_limits<double>::epsilon()) ) {
WARNclass("Correlations do not match: cor(x1,x2) = %d, cor(x2,x1) = %d", corr, (dynamic_cast<TQCounter*>( f2->getObject(id1) ))->getCounter() );
} else if (!f2->getObject(id1)) {
WARNclass("Unable to retrieve second correlation counter (id '%s')",id1.Data());
}
#endif
tempErr *= corr;
} else {
WARNclass("Failed to retrieve correlation counter from folder '%s' for NF counters with identifiers (titles) %s and %s!",f1->getPath().Data(),id1.Data(),id2.Data());
if (TQStringUtils::equal(id1,id2)) {
WARNclass("identifiers are equal, assuming full correlation (100%)");
} else {
WARNclass("identifiers are equal, assuming no correlation (0%)");
tempErr *= 0;
}
}
} else if (l>1 && j>1 ) {
if (cnt1 != cnt2) tempErr *= 0;
}
uncertSq += tempErr;
}
}
}
}
counter->setErrorSquared(uncertSq);
}
return nElements;
}
TQCounter * TQSampleDataReader::getCounter(const TString& path,const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TQCounter * counter = getCounter(path, name, tagsOptions, sfList);
delete tagsOptions;
return counter;
}
TQTable * TQSampleDataReader::getEventlist(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TQTable * evtlist = getEventlist(path, name, tagsOptions, sfList);
delete tagsOptions;
return evtlist;
}
TQTable * TQSampleDataReader::getEventlist(const TString& path, const TString& name, TQTaggable * options, TList * sfList) {
TQTable* evtlist = dynamic_cast<TQTable*>(this->getElement<TQTable>(path, name, this->f_pathEventlists, options, sfList));
if(!evtlist){
TList* alt = dynamic_cast<TList*>(this->getElement<TQTable>(path, name, this->f_pathEventlists, options, sfList));
if(alt){
evtlist = new TQTable(alt);
delete alt;
}
}
if(!evtlist) return NULL;
if(options->getTagBoolDefault("recognizeIntegers",true)){
for(int i=0; i<evtlist->getNcols(); ++i){
bool isInt = true;
for(int j=1; j<evtlist->getNrows(); ++j){
const double val = evtlist->getEntryValue(j,i,0);
const double diff = fabs((double(int(val))/val) - 1);
if( diff > 10*std::numeric_limits<double>::epsilon() ) isInt = false;
}
if(isInt){
for(int j=1; j<evtlist->getNrows(); ++j){
const int val = evtlist->getEntryValue(j,i,0);
evtlist->setEntryValue(j,i,val);
}
}
}
}
return evtlist;
}
TQCounter * TQSampleDataReader::getCounter(const TString& path, const TString& name, TQTaggable * options, TList * sfList) {
TQCounter* retval = NULL;
if(TQStringUtils::isNumber(path)){
double c = atof(path);
retval = new TQCounter(name,c,sqrt(c));
} else {
retval = dynamic_cast<TQCounter*>(this->getElement<TQCounter>(path, name, this->f_pathCutflow, options, sfList));
}
if(!retval){
TH1* hist = getHistogram(path,name,options,sfList);
if(hist){
double val,err;
val = TQHistogramUtils::getIntegralAndError(hist,err);
retval = new TQCounter(name,val,err,hist->GetEntries());
retval->SetTitle(hist->GetTitle());
delete hist;
}
} else {
TString pathToTransferFrom;
if (options && options->getTagString("transferRelativeErrorsFromPath",pathToTransferFrom)) {
TQCounter * relErrorCounter = NULL;
relErrorCounter = dynamic_cast<TQCounter*>(this->getElement<TQCounter>(pathToTransferFrom, name, this->f_pathCutflow, options, sfList));
if (!TQHistogramUtils::transferRelativeErrors(relErrorCounter, retval)) {
ERRORclass(TString::Format("Failed to transfer relative errors from histogram with name '%s' and path '%s'", name.Data(), pathToTransferFrom.Data()));
}
}
}
return retval;
}
TQPCA * TQSampleDataReader::getPCA(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TQPCA * grid = getPCA(path, name, tagsOptions, sfList);
delete tagsOptions;
return grid;
}
TQPCA * TQSampleDataReader::getPCA(const TString& path, const TString& name, TQTaggable * options, TList * sfList) {
return dynamic_cast<TQPCA*>(this->getElement<TQPCA>(path, name, this->f_pathPCA, options, sfList));
}
TTree * TQSampleDataReader::getTree(const TString& path, const TString& name, const TString& options, TList * sfList) {
TQTaggable * tagsOptions = new TQTaggable(options);
TTree * tree = getTree(path, name, tagsOptions, sfList);
delete tagsOptions;
return tree;
}
TTree * TQSampleDataReader::getTree(const TString& path, const TString& name, TQTaggable * options, TList * sfList) {
return this->getElement<TTree>(path, name, this->f_pathTrees, options, sfList);
}
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
template <class CLASS>
int TQSampleDataReader::getElementWorker(TQSampleDataReader::AltPath_t& paths, TQSampleDataReader::AltPath_t& elements, CLASS*&element,
const TString& subPath, TList* sfList,
TQTaggable* options) {
TList * elementList = this->collectElements<CLASS>(paths, elements, subPath, sfList, options);
if(elementList) {
int nSubElements = 0;
nSubElements = this->sumElements(elementList,element,options);
if(f_Verbose > 0){
VERBOSEclass("getElementWorker: summed %d elements",nSubElements);
}
elementList->SetOwner(true);
delete elementList;
return nSubElements;
} else {
if(f_Verbose > 0){
VERBOSEclass("getElementWorker: no element list retrieved");
}
}
return -1;
}
#pragma GCC diagnostic pop
TObject * TQSampleDataReader::getElement(const TString& path, const TString& name, TClass* objClass, const TString& subPath, TQTaggable * options, TList * sfList){
#define CALL_GET_ELEMENT(CLASS) if(!objClass || objClass->InheritsFrom(CLASS::Class())) { TObject* obj = this->getElement<CLASS>(path,name,subPath,options,sfList); if(obj) return obj; }
CALL_GET_ELEMENT(TQCounter);
CALL_GET_ELEMENT(TProfile2D);
CALL_GET_ELEMENT(TProfile);
CALL_GET_ELEMENT(TH3);
CALL_GET_ELEMENT(TH2);
CALL_GET_ELEMENT(TH1);
CALL_GET_ELEMENT(TQTable);
CALL_GET_ELEMENT(TQPCA);
CALL_GET_ELEMENT(THnBase);
CALL_GET_ELEMENT(TGraph);
CALL_GET_ELEMENT(TGraph2D);
ERRORclass("cannot get element of unsupproted class '%s'",objClass->GetName());
return NULL;
}
template <class T>
T * TQSampleDataReader::getElement(const TString& path, const TString& name, const TString& subPath, TQTaggable * options, TList * sfList) {
int tmpVerbose = f_Verbose;
if (options) {
f_Verbose = options->getTagIntegerDefault("verbosity", f_Verbose);
}
if (f_Verbose > 3) {
VERBOSEclass("getElement: starting to collect elements. path='%s', name='%s'",path.Data(),name.Data());
}
f_errMsg.clearMessages();
std::vector<TQSampleDataReader::AltPath_t> altPaths = parsePaths(path, 0, options ? options->getTagStringDefault("prefix.path", "") : "");
std::vector<TQSampleDataReader::AltPath_t> altElements = parsePaths(name, 0, options ? options->getTagStringDefault("prefix.name", "") : "");
bool tmpSFList = false;
if(!sfList && f_applyStyles){
tmpSFList = true;
sfList = new TList();
}
if (altPaths.size() < 1){
ERRORclass("Failed to parse paths '%s'",path.Data());
return 0;
}
if(altElements.size() < 1) {
ERRORclass("Failed to parse elements from '%s'",name.Data());
return 0;
}
T * element = 0;
int nElements = 0;
bool globalError = false;
bool invalidPath = true;
TString errorMsg;
int iAltPaths = -1;
while (!globalError && invalidPath && ++iAltPaths < (int)altPaths.size()) {
invalidPath = false;
nElements = 0;
delete element;
element = 0;
TQSampleDataReader::AltPath_t paths = altPaths.at(iAltPaths);
int iAltElement = -1;
while (!globalError && !invalidPath && ++iAltElement < (int)altElements.size()) {
TQSampleDataReader::AltPath_t elements = altElements.at(iAltElement);
if (f_Verbose > 3) {
VERBOSEclass("getElement: attempting to obtain elements from path '%s'",path.Data());
}
int nSubElements = 0;
nSubElements = this->getElementWorker<T>(paths, elements, element, subPath, sfList, options);
if (nSubElements < 0) {
if (f_Verbose > 0) {
VERBOSEclass("getElement: an error occurred trying to retrieve elements from path '%s'",path.Data());
}
nElements = 0;
globalError = true;
} else if (nSubElements == 0) {
errorMsg = TString::Format("no elements found in path variant %d, element variant %d.", iAltPaths, iAltElement);
nElements = 0;
invalidPath = true;
} else {
nElements+=nSubElements;
}
}
}
if(f_applyStyles && nElements > 0){
if(f_Verbose > 0){
VERBOSEclass("getElement: done collecting elements, calculating style");
}
this->applyStyleToElement(element,sfList,options);
}
if(sfList && tmpSFList) delete sfList;
if (nElements == 0) {
delete element;
element = 0;
}
if (invalidPath)
setErrorMessage(__FUNCTION__,errorMsg);
if(f_Verbose > 4) {
if(element) VERBOSEclass("returning element '%s'",element->GetName()); else VERBOSEclass("returning NULL");
}
f_Verbose = tmpVerbose;
return element;
}
void TQSampleDataReader::applyStyleToElement(TObject* element, TCollection* sfList, TQTaggable* options){
TQFolder* baseSF = this->f_baseSampleFolder->findCommonBaseFolder(sfList,true);
if(baseSF){
if(element->InheritsFrom(TH1::Class())){
if(f_Verbose > 3){
VERBOSEclass("applying style to %s: contributing folders are",element->GetName());
TQFolderIterator fitr(sfList);
while(fitr.hasNext()){
TQFolder* f = fitr.readNext();
if(!f) continue;
VERBOSEclass("\t%s",f->getPathWildcarded().Data());
}
VERBOSEclass(" ==> applying tags from %s",baseSF->getPath().Data());
VERBOSEclass("\t%s",baseSF->exportTagsAsString().Data());
}
TString styleScheme = options ? options->getTagStringDefault("styleScheme", f_styleScheme) : f_styleScheme;
TQHistogramUtils::applyStyle((TH1*)(element), baseSF, styleScheme,true);
} else if (element->InheritsFrom(TNamed::Class())){
TString title;
if (baseSF->getTagString("style.title", title)) {
((TNamed*)(element))->SetTitle(title.Data());
}
}
}
}
void TQSampleDataReader::addObjectNames(TQSampleFolder * sampleFolder, const TString& objectPath,
TClass * objectClass, TList * &objectNames, TList * sfList, const TString& filterScheme) {
if (!sampleFolder) {
return;
}
TList * objects = sampleFolder->getListOfObjectNames(objectClass, true, objectPath);
if (objects) {
if (!objectNames) {
objectNames = new THashList();
objectNames->SetOwner(true);
}
objects->SetOwner(false);
TQIterator itr(objects);
while (itr.hasNext()) {
TObject * obj = itr.readNext();
if (objectNames->FindObject(obj->GetName())) {
delete obj;
} else {
objectNames->Add(obj);
}
}
}
TQSampleFolderIterator itr(sampleFolder->getListOfSampleFolders("?"), true);
while (itr.hasNext()) {
this->addObjectNames(itr.readNext(), objectPath, objectClass,objectNames, sfList, filterScheme);
}
}
void TQSampleDataReader::addObjectNames(const TString& path, const TString& objectPath,
TClass * objectClass, TList * &objectNames, TList * sfList, const TString& filterScheme) {
TQSampleFolderIterator itr(this->getListOfSampleFolders(path));
while(itr.hasNext()){
TQSampleFolder* sf = itr.readNext();
if(!sf) continue;
DEBUGclass("adding '%s' object names for '%s'",objectClass->GetName(),sf->getPath().Data());
this->addObjectNames(sf, objectPath, objectClass, objectNames, sfList, filterScheme);
}
}
TList * TQSampleDataReader::getBaseScaleFactors(TQSampleFolder * sampleFolder, const TString& path, const TString& scaleScheme) {
if (f_Verbose > 3 && sampleFolder) {
VERBOSEclass("path='%s'",sampleFolder->getPath().Data());
}
TList * scaleList = NULL;
if (f_localMode && (!f_baseSampleFolder || !f_baseSampleFolder->isBaseOf(sampleFolder)))
return scaleList;
TQSampleFolder * sf = sampleFolder;
while (sf) {
if (sf != sampleFolder) {
if (f_Verbose > 3) {
VERBOSEclass("looking at folder '%s'",sf->getPath().Data());
}
TString scaleFactorPath = path;
while (!scaleFactorPath.IsNull()) {
TQCounter * localScaleItem = sf->getScaleFactorCounterInternal(scaleFactorPath,scaleScheme);
scaleFactorPath = TQFolder::getPathWithoutTail(scaleFactorPath);
if (!localScaleItem) {
continue;
}
if (f_Verbose > 3) {
VERBOSEclass("at path '%s', found '%g'",scaleFactorPath.Data(),localScaleItem->getCounter());
}
if(!scaleList){
scaleList = new TList();
scaleList->SetOwner(false);
}
scaleList->Add(localScaleItem);
}
}
sf = sf->getBaseSampleFolder();
if (f_localMode && sf == f_baseSampleFolder) {
sf = NULL;
}
}
return scaleList;
}
bool TQSampleDataReader::hasHistogram(const TString& path, const TString& name, const TString& options) {
TH1 * histo = getHistogram(path, name, options);
if (histo) {
delete histo;
return true;
} else {
return false;
}
}
bool TQSampleDataReader::hasCounter(const TString& path, const TString& name, const TString& options) {
TQCounter * counter = getCounter(path, name, options);
if (counter) {
delete counter;
return true;
} else {
return false;
}
}
TList * TQSampleDataReader::getListOfHistogramNames(const TString& path, TList * sfList) {
TList * objectNames = NULL;
this->addObjectNames(path, f_pathHistograms, TH1::Class(), objectNames, sfList, "");
return objectNames;
}
TList * TQSampleDataReader::getListOfObjectNames(TClass* objClass, const TString& subpath, const TString& path, TList * sfList){
TList * objectNames = 0;
this->addObjectNames(path, subpath, objClass, objectNames, sfList, "");
return objectNames;
}
TList * TQSampleDataReader::getListOfCounterNames(const TString& path, TList * sfList) {
TList * objectNames = 0;
this->addObjectNames(path, f_pathCutflow, TQCounter::Class(), objectNames, sfList, "");
return objectNames;
}
TList * TQSampleDataReader::getListOfEventlistNames(const TString& path, TList * sfList) {
TList * objectNames = 0;
this->addObjectNames(path, f_pathEventlists, TList::Class(), objectNames, sfList, "");
this->addObjectNames(path, f_pathEventlists, TQTable::Class(), objectNames, sfList, "");
return objectNames;
}
void TQSampleDataReader::printListOfHistogramLocations(const TString& name) {
TList* sfList = new TList();
TH1 * histo = getHistogram(".", name, "", sfList);
delete histo;
TQIterator itr(sfList,true);
while(itr.hasNext()){
TQSampleFolder* sf = dynamic_cast<TQSampleFolder*>(itr.readNext());
if(!sf) continue;
TH1* hist = dynamic_cast<TH1*>(sf->getObject(name,f_pathHistograms));
std::cout << TQStringUtils::fixedWidth(sf->getPath(),40,"l");
if(hist) std::cout << TQHistogramUtils::getDetailsAsString(hist);
std::cout << std::endl;
}
}
void TQSampleDataReader::printListOfHistograms(TString options) {
int tmpVerbose = f_Verbose;
f_Verbose = 0;
TString path = TQStringUtils::readPrefix(options, ":", ".");
TList * names = this->getListOfHistogramNames(path);
TString line;
line.Append(TQStringUtils::fixedWidth("Histogram name", 50, "l"));
line.Append(TQStringUtils::fixedWidth("Type", 8, "l"));
line.Append(TQStringUtils::fixedWidth("Binning", 70, "l"));
line.Append(TQStringUtils::fixedWidth("# Folders", 12));
std::cout << TQStringUtils::makeBoldWhite(line) << std::endl;
std::cout << TQStringUtils::makeBoldWhite(TQStringUtils::repeat("=", TQStringUtils::getWidth(line))) << std::endl;
if (!names) {
return;
}
TString prefix;
names->Sort();
TQIterator itr(names,true);
while (itr.hasNext()){
TObject* obj = itr.readNext();
TString name = obj->GetName();
TString newPrefix = TQFolder::getPathWithoutTail(name);
if (newPrefix.IsNull()) {
newPrefix = ".";
}
if (newPrefix.CompareTo(prefix) != 0) {
prefix = newPrefix;
std::cout << TString::Format("%*s\033[1;34m%s\033[0m/", 0, "", prefix.Data()) << std::endl;
}
TList * sfList = new TList();
TH1 * histo = getHistogram(path, name, "", sfList);
TString errorMsg = this->getErrorMessage();
TString histoType;
if (histo)
histoType = histo->IsA()->GetName();
line.Clear();
if (histo) {
TString histoDetails = TQHistogramUtils::getDetailsAsString(histo, 2);
line.Append(TQStringUtils::fixedWidth(
TQStringUtils::repeat(" ", 2 * TQFolder::countPathLevels(prefix, false)) +
TQFolder::getPathTail(name), 50,"l"));
line.Append(TQStringUtils::fixedWidth(histoType, 8, "l"));
line.Append(TQStringUtils::fixedWidth(histoDetails, 70, "l"));
line.Append(TQStringUtils::fixedWidth(TString::Format("%d", sfList->GetEntries()), 12,"l"));
} else {
line.Append(TQStringUtils::fixedWidth(
TQStringUtils::repeat(" ", 2 * TQFolder::countPathLevels(prefix)) +
"\033[0;31m" + TQFolder::getPathTail(name) + "\033[0m", 50, "l"));
line.Append(TQStringUtils::fixedWidth("--", 8, "l"));
line.Append(TQStringUtils::fixedWidth(errorMsg, 70, "l"));
line.Append(TQStringUtils::fixedWidth("--", 12,"l"));
}
std::cout << line << std::endl;
delete histo;
delete sfList;
}
f_Verbose = tmpVerbose;
}
void TQSampleDataReader::printListOfCounterLocations(const TString& name) {
TList* sfList = new TList();
TQCounter* cnt = this->getCounter(".", name, "", sfList);
delete cnt;
TQIterator itr(sfList,true);
while(itr.hasNext()){
TQSampleFolder* sf = dynamic_cast<TQSampleFolder*>(itr.readNext());
if(!sf) continue;
TQCounter* cnt = dynamic_cast<TQCounter*>(sf->getObject(name,f_pathCutflow));
std::cout << TQStringUtils::fixedWidth(sf->getPath(),40,"l");
if(cnt) cnt->getAsString();
std::cout << std::endl;
}
}
void TQSampleDataReader::printListOfCounters(TString options) {
int tmpVerbose = f_Verbose;
f_Verbose = 0;
TString path = TQStringUtils::readPrefix(options, ":", ".");
TList * names = this->getListOfCounterNames(path);
TString line;
line.Append(TQStringUtils::fixedWidth("Counter name", 30, "l"));
line.Append(TQStringUtils::fixedWidth("Counter title", 50, "l"));
line.Append(TQStringUtils::fixedWidth("Details", 50));
line.Append(TQStringUtils::fixedWidth("# Folders", 10));
std::cout << TQStringUtils::makeBoldWhite(line) << std::endl;
std::cout << TQStringUtils::makeBoldWhite(TQStringUtils::repeat("=", TQStringUtils::getWidth(line))) << std::endl;
if (!names) {
return;
}
TQIterator itr(names->MakeIterator(kIterBackward),true);
while (itr.hasNext()){
TObject* obj = itr.readNext();
TString name(obj->GetName());
TList * sfList = new TList();
TQCounter * cnt = getCounter(path, name, "", sfList);
TString title(cnt->GetTitle());
TString errorMsg = this->getErrorMessage();
line.Clear();
if (cnt) {
TString details = cnt->getAsString();
line.Append(TQStringUtils::fixedWidth(TQStringUtils::makeBoldWhite(name),30,"l"));
line.Append(TQStringUtils::fixedWidth(title,50,"l"));
line.Append(TQStringUtils::fixedWidth(details, 50, "l"));
line.Append(TQStringUtils::fixedWidth(TString::Format("%d", sfList->GetEntries()), 10,"l"));
} else {
line.Append(TQStringUtils::fixedWidth(TQStringUtils::makeBoldWhite(name), 60, "l"));
line.Append(TQStringUtils::fixedWidth(errorMsg, 50, "l"));
line.Append(TQStringUtils::fixedWidth("--", 10,"c"));
}
std::cout << line << std::endl;
delete cnt;
delete sfList;
}
delete names;
f_Verbose = tmpVerbose;
}
TQSampleDataReader::~TQSampleDataReader() {
}
TFolder* TQSampleDataReader::exportHistograms(const TString& sfpath, const TString& tags){
TQTaggable taggable(tags);
return this->exportHistograms(sfpath,taggable);
}
TFolder* TQSampleDataReader::exportHistograms(const TString& sfpath, TQTaggable& tags){
TList* sflist = NULL;
TQSampleFolder* sf = this->f_baseSampleFolder->getSampleFolder(sfpath);
if(!sf){
ERRORclass("invalid path '%s'",sfpath.Data());
return NULL;
}
TQFolder* basesf = this->f_baseSampleFolder->findCommonBaseFolder(sflist);
TFolder* base = basesf ? new TFolder(basesf->GetName(),basesf->getTagStringDefault("style.default.title",basesf->GetTitle())) : new TFolder("histograms",sfpath);
bool includeObjects = tags.getTagBoolDefault("includeObjects",false);
if(includeObjects){
TQIterator itr(sf->GetListOfFolders());
while(itr.hasNext()){
TObject* obj = itr.readNext();
if(obj->InheritsFrom(TH1::Class())){
TH1* hist = TQHistogramUtils::copyHistogram((TH1*)obj);
base->Add(hist);
} else if(!obj->InheritsFrom(TQFolder::Class())){
TObject* clone = obj->Clone();
base->Add(clone);
}
}
}
TList* histnames = this->getListOfHistogramNames();
if(!histnames || histnames->GetEntries() < 1){
if(histnames) delete histnames;
ERRORclass("no histograms found in '%s'",sfpath.Data());
return NULL;
} else {
TQIterator histitr(histnames,true);
TString filter = tags.getTagStringDefault("filter","*");
while(histitr.hasNext()){
TFolder* current = base;
TObject* obj = histitr.readNext();
if(!obj) continue;
TString path(obj->GetName());
if(!TQStringUtils::matches(path,filter)) continue;
TH1* hist = this->getHistogram(sfpath,path,&tags);
if(!hist){
WARNclass("unable to retrieve histogram '%s'",path.Data());
continue;
}
TString name = TQFolder::getPathTail(path);
while(!path.IsNull()){
TString fname = TQFolder::getPathHead(path);
TFolder* newFolder = dynamic_cast<TFolder*>(current->FindObject(fname));
if(!newFolder){
newFolder = current->AddFolder(fname,fname);
}
current = newFolder;
}
current->Add(hist);
}
}
bool includeCounters = tags.getTagBoolDefault("includeCounters",false);
if(includeCounters){
TList* cntnames = this->getListOfCounterNames();
TQIterator cntitr(cntnames,true);
TString filter = tags.getTagStringDefault("filter","*");
while(cntitr.hasNext()){
TFolder* current = base;
TObject* obj = cntitr.readNext();
if(!obj) continue;
TString name(obj->GetName());
if(!TQStringUtils::matches(name,filter)) continue;
TQCounter* cnt = this->getCounter(sfpath,name,&tags);
if(!cnt){
WARNclass("unable to retrieve counter '%s'",name.Data());
continue;
}
TH1* hist = TQHistogramUtils::counterToHistogram(cnt);
current->Add(hist);
delete cnt;
}
}
delete sflist;
TString cutinfo;
if(tags.getTagString("cutdiagram",cutinfo)){
TQFolder* f = this->f_baseSampleFolder->getFolder(cutinfo);
if(!f){
WARNclass("unable to load cut hierarchy from folder '%s' - no such folder!",cutinfo.Data());
} else {
TQTaggable cutdiagramtags;
cutdiagramtags.importTagsWithoutPrefix(tags,"cutdiagram.");
TQCut* cut = TQCut::importFromFolder(f);
if(!cut){
WARNclass("unable to load cut hierarchy from folder '%s' - invalid folder structure!",cutinfo.Data());
} else {
TString diagram = cut->writeDiagramToString(cutdiagramtags);
TNamed* cutDiagram = new TNamed("cutdiagram.tex",diagram.Data());
base->Add(cutDiagram);
delete cut;
}
}
}
return base;
}
bool TQSampleDataReader::exportHistograms(TDirectory* d, const TString& sfpath, const TString& tags){
TQTaggable t(tags);
return exportHistograms(d,sfpath,t);
}
bool TQSampleDataReader::exportHistograms(TDirectory* d, const TString& sfpath, TQTaggable& tags){
TList* names = this->getListOfHistogramNames();
if(!names || names->GetEntries() < 1){
if(names) delete names;
ERRORclass("no histograms found in '%s'",sfpath.Data());
return false;
}
TQIterator itr(names,true);
TString filter = tags.getTagStringDefault("filter","*");
while(itr.hasNext()){
TObject* obj = itr.readNext();
if(!obj) continue;
TString path(obj->GetName());
if(!TQStringUtils::matches(path,filter)) continue;
TH1* hist = this->getHistogram(sfpath,path,&tags);
if(!hist){
WARNclass("unable to retrieve histogram '%s'",path.Data());
continue;
}
if (tags.getTagBoolDefault("useShortNames",false)) TQStringUtils::readPrefix(path,"/");
TString name = tags.getTagBoolDefault("useShortNames",false) ? path : TQFolder::makeValidIdentifier(path,"_");
hist->SetName(name);
d->Add(hist);
}
return true;
}
bool TQSampleDataReader::exportHistogramsToFile(const TString& fname, const TString& sfpath, const TString& tags){
TQTaggable taggable(tags);
return this->exportHistogramsToFile(fname,sfpath,taggable);
}
bool TQSampleDataReader::exportHistogramsToFile(const TString& fname, const TString& sfpath, TQTaggable& tags){
bool flat = tags.getTagBoolDefault("flat",false);
TFolder* result = flat ? NULL : this->exportHistograms(sfpath,tags);
if(result || flat){
if(tags.getTagBoolDefault("ensureDirectory",false)){
if(!TQUtils::ensureDirectoryForFile(fname)){
ERRORclass("unable to ensure directory for file '%s'!",fname.Data());
return false;
}
}
} else {
return false;
}
TFile* f = TFile::Open(fname,"RECREATE");
if(!f || !f->IsOpen()){
ERRORclass("unable to open file '%s' for writing",fname.Data());
if(f) delete f;
return false;
}
bool retval = true;
if(flat){
retval = this->exportHistograms(f,sfpath,tags);
} else {
f->Add(result);
}
f->Write();
f->Close();
return retval;
}
TQFolder* TQSampleDataReader::getCorrelationFolderByIdentifier(const TString& id, bool forceUpdate) {
TString path;
if ( !(f_identifierToFolderMap.count(id) > 0) || !f_identifierToFolderMap.count(id) || forceUpdate ) {
f_identifierToFolderMap[id] = this->f_baseSampleFolder->getFolder(TQFolder::concatPaths("*",".correlations",id));
DEBUGclass("Added folder with path '%s' to folder map (id: '%s')",f_identifierToFolderMap[id]->getPath().Data(), id.Data());
}
return f_identifierToFolderMap[id];
}
void TQSampleDataReader::copyData(const TString& source, const TString&target, const TString&options){
TQSampleFolder* targetFolder = this->f_baseSampleFolder->getSampleFolder(target+"+");
if(!targetFolder) return;
TQIterator itr(this->getListOfHistogramNames(),true);
while(itr.hasNext()){
TObject* histname = itr.readNext();
if(!histname) continue;
TString path(histname->GetName());
TH1* hist = this->getHistogram(source,path,options);
TString name(TQFolder::getPathTail(path));
TQFolder* histograms = targetFolder->getFolder(TQFolder::concatPaths(this->f_pathHistograms,path)+"+");
hist->SetName(name);
histograms->addObject(hist);
}
}
TQSampleDataReader.cxx:10 TQSampleDataReader.cxx:11 TQSampleDataReader.cxx:12 TQSampleDataReader.cxx:13 TQSampleDataReader.cxx:14 TQSampleDataReader.cxx:15 TQSampleDataReader.cxx:16 TQSampleDataReader.cxx:17 TQSampleDataReader.cxx:18 TQSampleDataReader.cxx:19 TQSampleDataReader.cxx:20 TQSampleDataReader.cxx:21 TQSampleDataReader.cxx:22 TQSampleDataReader.cxx:23 TQSampleDataReader.cxx:24 TQSampleDataReader.cxx:25 TQSampleDataReader.cxx:26 TQSampleDataReader.cxx:27 TQSampleDataReader.cxx:28 TQSampleDataReader.cxx:29 TQSampleDataReader.cxx:30 TQSampleDataReader.cxx:31 TQSampleDataReader.cxx:32 TQSampleDataReader.cxx:33 TQSampleDataReader.cxx:34 TQSampleDataReader.cxx:35 TQSampleDataReader.cxx:36 TQSampleDataReader.cxx:37 TQSampleDataReader.cxx:38 TQSampleDataReader.cxx:39 TQSampleDataReader.cxx:40 TQSampleDataReader.cxx:41 TQSampleDataReader.cxx:42 TQSampleDataReader.cxx:43 TQSampleDataReader.cxx:44 TQSampleDataReader.cxx:45 TQSampleDataReader.cxx:46 TQSampleDataReader.cxx:47 TQSampleDataReader.cxx:48 TQSampleDataReader.cxx:49 TQSampleDataReader.cxx:50 TQSampleDataReader.cxx:51 TQSampleDataReader.cxx:52 TQSampleDataReader.cxx:53 TQSampleDataReader.cxx:54 TQSampleDataReader.cxx:55 TQSampleDataReader.cxx:56 TQSampleDataReader.cxx:57 TQSampleDataReader.cxx:58 TQSampleDataReader.cxx:59 TQSampleDataReader.cxx:60 TQSampleDataReader.cxx:61 TQSampleDataReader.cxx:62 TQSampleDataReader.cxx:63 TQSampleDataReader.cxx:64 TQSampleDataReader.cxx:65 TQSampleDataReader.cxx:66 TQSampleDataReader.cxx:67 TQSampleDataReader.cxx:68 TQSampleDataReader.cxx:69 TQSampleDataReader.cxx:70 TQSampleDataReader.cxx:71 TQSampleDataReader.cxx:72 TQSampleDataReader.cxx:73 TQSampleDataReader.cxx:74 TQSampleDataReader.cxx:75 TQSampleDataReader.cxx:76 TQSampleDataReader.cxx:77 TQSampleDataReader.cxx:78 TQSampleDataReader.cxx:79 TQSampleDataReader.cxx:80 TQSampleDataReader.cxx:81 TQSampleDataReader.cxx:82 TQSampleDataReader.cxx:83 TQSampleDataReader.cxx:84 TQSampleDataReader.cxx:85 TQSampleDataReader.cxx:86 TQSampleDataReader.cxx:87 TQSampleDataReader.cxx:88 TQSampleDataReader.cxx:89 TQSampleDataReader.cxx:90 TQSampleDataReader.cxx:91 TQSampleDataReader.cxx:92 TQSampleDataReader.cxx:93 TQSampleDataReader.cxx:94 TQSampleDataReader.cxx:95 TQSampleDataReader.cxx:96 TQSampleDataReader.cxx:97 TQSampleDataReader.cxx:98 TQSampleDataReader.cxx:99 TQSampleDataReader.cxx:100 TQSampleDataReader.cxx:101 TQSampleDataReader.cxx:102 TQSampleDataReader.cxx:103 TQSampleDataReader.cxx:104 TQSampleDataReader.cxx:105 TQSampleDataReader.cxx:106 TQSampleDataReader.cxx:107 TQSampleDataReader.cxx:108 TQSampleDataReader.cxx:109 TQSampleDataReader.cxx:110 TQSampleDataReader.cxx:111 TQSampleDataReader.cxx:112 TQSampleDataReader.cxx:113 TQSampleDataReader.cxx:114 TQSampleDataReader.cxx:115 TQSampleDataReader.cxx:116 TQSampleDataReader.cxx:117 TQSampleDataReader.cxx:118 TQSampleDataReader.cxx:119 TQSampleDataReader.cxx:120 TQSampleDataReader.cxx:121 TQSampleDataReader.cxx:122 TQSampleDataReader.cxx:123 TQSampleDataReader.cxx:124 TQSampleDataReader.cxx:125 TQSampleDataReader.cxx:126 TQSampleDataReader.cxx:127 TQSampleDataReader.cxx:128 TQSampleDataReader.cxx:129 TQSampleDataReader.cxx:130 TQSampleDataReader.cxx:131 TQSampleDataReader.cxx:132 TQSampleDataReader.cxx:133 TQSampleDataReader.cxx:134 TQSampleDataReader.cxx:135 TQSampleDataReader.cxx:136 TQSampleDataReader.cxx:137 TQSampleDataReader.cxx:138 TQSampleDataReader.cxx:139 TQSampleDataReader.cxx:140 TQSampleDataReader.cxx:141 TQSampleDataReader.cxx:142 TQSampleDataReader.cxx:143 TQSampleDataReader.cxx:144 TQSampleDataReader.cxx:145 TQSampleDataReader.cxx:146 TQSampleDataReader.cxx:147 TQSampleDataReader.cxx:148 TQSampleDataReader.cxx:149 TQSampleDataReader.cxx:150 TQSampleDataReader.cxx:151 TQSampleDataReader.cxx:152 TQSampleDataReader.cxx:153 TQSampleDataReader.cxx:154 TQSampleDataReader.cxx:155 TQSampleDataReader.cxx:156 TQSampleDataReader.cxx:157 TQSampleDataReader.cxx:158 TQSampleDataReader.cxx:159 TQSampleDataReader.cxx:160 TQSampleDataReader.cxx:161 TQSampleDataReader.cxx:162 TQSampleDataReader.cxx:163 TQSampleDataReader.cxx:164 TQSampleDataReader.cxx:165 TQSampleDataReader.cxx:166 TQSampleDataReader.cxx:167 TQSampleDataReader.cxx:168 TQSampleDataReader.cxx:169 TQSampleDataReader.cxx:170 TQSampleDataReader.cxx:171 TQSampleDataReader.cxx:172 TQSampleDataReader.cxx:173 TQSampleDataReader.cxx:174 TQSampleDataReader.cxx:175 TQSampleDataReader.cxx:176 TQSampleDataReader.cxx:177 TQSampleDataReader.cxx:178 TQSampleDataReader.cxx:179 TQSampleDataReader.cxx:180 TQSampleDataReader.cxx:181 TQSampleDataReader.cxx:182 TQSampleDataReader.cxx:183 TQSampleDataReader.cxx:184 TQSampleDataReader.cxx:185 TQSampleDataReader.cxx:186 TQSampleDataReader.cxx:187 TQSampleDataReader.cxx:188 TQSampleDataReader.cxx:189 TQSampleDataReader.cxx:190 TQSampleDataReader.cxx:191 TQSampleDataReader.cxx:192 TQSampleDataReader.cxx:193 TQSampleDataReader.cxx:194 TQSampleDataReader.cxx:195 TQSampleDataReader.cxx:196 TQSampleDataReader.cxx:197 TQSampleDataReader.cxx:198 TQSampleDataReader.cxx:199 TQSampleDataReader.cxx:200 TQSampleDataReader.cxx:201 TQSampleDataReader.cxx:202 TQSampleDataReader.cxx:203 TQSampleDataReader.cxx:204 TQSampleDataReader.cxx:205 TQSampleDataReader.cxx:206 TQSampleDataReader.cxx:207 TQSampleDataReader.cxx:208 TQSampleDataReader.cxx:209 TQSampleDataReader.cxx:210 TQSampleDataReader.cxx:211 TQSampleDataReader.cxx:212 TQSampleDataReader.cxx:213 TQSampleDataReader.cxx:214 TQSampleDataReader.cxx:215 TQSampleDataReader.cxx:216 TQSampleDataReader.cxx:217 TQSampleDataReader.cxx:218 TQSampleDataReader.cxx:219 TQSampleDataReader.cxx:220 TQSampleDataReader.cxx:221 TQSampleDataReader.cxx:222 TQSampleDataReader.cxx:223 TQSampleDataReader.cxx:224 TQSampleDataReader.cxx:225 TQSampleDataReader.cxx:226 TQSampleDataReader.cxx:227 TQSampleDataReader.cxx:228 TQSampleDataReader.cxx:229 TQSampleDataReader.cxx:230 TQSampleDataReader.cxx:231 TQSampleDataReader.cxx:232 TQSampleDataReader.cxx:233 TQSampleDataReader.cxx:234 TQSampleDataReader.cxx:235 TQSampleDataReader.cxx:236 TQSampleDataReader.cxx:237 TQSampleDataReader.cxx:238 TQSampleDataReader.cxx:239 TQSampleDataReader.cxx:240 TQSampleDataReader.cxx:241 TQSampleDataReader.cxx:242 TQSampleDataReader.cxx:243 TQSampleDataReader.cxx:244 TQSampleDataReader.cxx:245 TQSampleDataReader.cxx:246 TQSampleDataReader.cxx:247 TQSampleDataReader.cxx:248 TQSampleDataReader.cxx:249 TQSampleDataReader.cxx:250 TQSampleDataReader.cxx:251 TQSampleDataReader.cxx:252 TQSampleDataReader.cxx:253 TQSampleDataReader.cxx:254 TQSampleDataReader.cxx:255 TQSampleDataReader.cxx:256 TQSampleDataReader.cxx:257 TQSampleDataReader.cxx:258 TQSampleDataReader.cxx:259 TQSampleDataReader.cxx:260 TQSampleDataReader.cxx:261 TQSampleDataReader.cxx:262 TQSampleDataReader.cxx:263 TQSampleDataReader.cxx:264 TQSampleDataReader.cxx:265 TQSampleDataReader.cxx:266 TQSampleDataReader.cxx:267 TQSampleDataReader.cxx:268 TQSampleDataReader.cxx:269 TQSampleDataReader.cxx:270 TQSampleDataReader.cxx:271 TQSampleDataReader.cxx:272 TQSampleDataReader.cxx:273 TQSampleDataReader.cxx:274 TQSampleDataReader.cxx:275 TQSampleDataReader.cxx:276 TQSampleDataReader.cxx:277 TQSampleDataReader.cxx:278 TQSampleDataReader.cxx:279 TQSampleDataReader.cxx:280 TQSampleDataReader.cxx:281 TQSampleDataReader.cxx:282 TQSampleDataReader.cxx:283 TQSampleDataReader.cxx:284 TQSampleDataReader.cxx:285 TQSampleDataReader.cxx:286 TQSampleDataReader.cxx:287 TQSampleDataReader.cxx:288 TQSampleDataReader.cxx:289 TQSampleDataReader.cxx:290 TQSampleDataReader.cxx:291 TQSampleDataReader.cxx:292 TQSampleDataReader.cxx:293 TQSampleDataReader.cxx:294 TQSampleDataReader.cxx:295 TQSampleDataReader.cxx:296 TQSampleDataReader.cxx:297 TQSampleDataReader.cxx:298 TQSampleDataReader.cxx:299 TQSampleDataReader.cxx:300 TQSampleDataReader.cxx:301 TQSampleDataReader.cxx:302 TQSampleDataReader.cxx:303 TQSampleDataReader.cxx:304 TQSampleDataReader.cxx:305 TQSampleDataReader.cxx:306 TQSampleDataReader.cxx:307 TQSampleDataReader.cxx:308 TQSampleDataReader.cxx:309 TQSampleDataReader.cxx:310 TQSampleDataReader.cxx:311 TQSampleDataReader.cxx:312 TQSampleDataReader.cxx:313 TQSampleDataReader.cxx:314 TQSampleDataReader.cxx:315 TQSampleDataReader.cxx:316 TQSampleDataReader.cxx:317 TQSampleDataReader.cxx:318 TQSampleDataReader.cxx:319 TQSampleDataReader.cxx:320 TQSampleDataReader.cxx:321 TQSampleDataReader.cxx:322 TQSampleDataReader.cxx:323 TQSampleDataReader.cxx:324 TQSampleDataReader.cxx:325 TQSampleDataReader.cxx:326 TQSampleDataReader.cxx:327 TQSampleDataReader.cxx:328 TQSampleDataReader.cxx:329 TQSampleDataReader.cxx:330 TQSampleDataReader.cxx:331 TQSampleDataReader.cxx:332 TQSampleDataReader.cxx:333 TQSampleDataReader.cxx:334 TQSampleDataReader.cxx:335 TQSampleDataReader.cxx:336 TQSampleDataReader.cxx:337 TQSampleDataReader.cxx:338 TQSampleDataReader.cxx:339 TQSampleDataReader.cxx:340 TQSampleDataReader.cxx:341 TQSampleDataReader.cxx:342 TQSampleDataReader.cxx:343 TQSampleDataReader.cxx:344 TQSampleDataReader.cxx:345 TQSampleDataReader.cxx:346 TQSampleDataReader.cxx:347 TQSampleDataReader.cxx:348 TQSampleDataReader.cxx:349 TQSampleDataReader.cxx:350 TQSampleDataReader.cxx:351 TQSampleDataReader.cxx:352 TQSampleDataReader.cxx:353 TQSampleDataReader.cxx:354 TQSampleDataReader.cxx:355 TQSampleDataReader.cxx:356 TQSampleDataReader.cxx:357 TQSampleDataReader.cxx:358 TQSampleDataReader.cxx:359 TQSampleDataReader.cxx:360 TQSampleDataReader.cxx:361 TQSampleDataReader.cxx:362 TQSampleDataReader.cxx:363 TQSampleDataReader.cxx:364 TQSampleDataReader.cxx:365 TQSampleDataReader.cxx:366 TQSampleDataReader.cxx:367 TQSampleDataReader.cxx:368 TQSampleDataReader.cxx:369 TQSampleDataReader.cxx:370 TQSampleDataReader.cxx:371 TQSampleDataReader.cxx:372 TQSampleDataReader.cxx:373 TQSampleDataReader.cxx:374 TQSampleDataReader.cxx:375 TQSampleDataReader.cxx:376 TQSampleDataReader.cxx:377 TQSampleDataReader.cxx:378 TQSampleDataReader.cxx:379 TQSampleDataReader.cxx:380 TQSampleDataReader.cxx:381 TQSampleDataReader.cxx:382 TQSampleDataReader.cxx:383 TQSampleDataReader.cxx:384 TQSampleDataReader.cxx:385 TQSampleDataReader.cxx:386 TQSampleDataReader.cxx:387 TQSampleDataReader.cxx:388 TQSampleDataReader.cxx:389 TQSampleDataReader.cxx:390 TQSampleDataReader.cxx:391 TQSampleDataReader.cxx:392 TQSampleDataReader.cxx:393 TQSampleDataReader.cxx:394 TQSampleDataReader.cxx:395 TQSampleDataReader.cxx:396 TQSampleDataReader.cxx:397 TQSampleDataReader.cxx:398 TQSampleDataReader.cxx:399 TQSampleDataReader.cxx:400 TQSampleDataReader.cxx:401 TQSampleDataReader.cxx:402 TQSampleDataReader.cxx:403 TQSampleDataReader.cxx:404 TQSampleDataReader.cxx:405 TQSampleDataReader.cxx:406 TQSampleDataReader.cxx:407 TQSampleDataReader.cxx:408 TQSampleDataReader.cxx:409 TQSampleDataReader.cxx:410 TQSampleDataReader.cxx:411 TQSampleDataReader.cxx:412 TQSampleDataReader.cxx:413 TQSampleDataReader.cxx:414 TQSampleDataReader.cxx:415 TQSampleDataReader.cxx:416 TQSampleDataReader.cxx:417 TQSampleDataReader.cxx:418 TQSampleDataReader.cxx:419 TQSampleDataReader.cxx:420 TQSampleDataReader.cxx:421 TQSampleDataReader.cxx:422 TQSampleDataReader.cxx:423 TQSampleDataReader.cxx:424 TQSampleDataReader.cxx:425 TQSampleDataReader.cxx:426 TQSampleDataReader.cxx:427 TQSampleDataReader.cxx:428 TQSampleDataReader.cxx:429 TQSampleDataReader.cxx:430 TQSampleDataReader.cxx:431 TQSampleDataReader.cxx:432 TQSampleDataReader.cxx:433 TQSampleDataReader.cxx:434 TQSampleDataReader.cxx:435 TQSampleDataReader.cxx:436 TQSampleDataReader.cxx:437 TQSampleDataReader.cxx:438 TQSampleDataReader.cxx:439 TQSampleDataReader.cxx:440 TQSampleDataReader.cxx:441 TQSampleDataReader.cxx:442 TQSampleDataReader.cxx:443 TQSampleDataReader.cxx:444 TQSampleDataReader.cxx:445 TQSampleDataReader.cxx:446 TQSampleDataReader.cxx:447 TQSampleDataReader.cxx:448 TQSampleDataReader.cxx:449 TQSampleDataReader.cxx:450 TQSampleDataReader.cxx:451 TQSampleDataReader.cxx:452 TQSampleDataReader.cxx:453 TQSampleDataReader.cxx:454 TQSampleDataReader.cxx:455 TQSampleDataReader.cxx:456 TQSampleDataReader.cxx:457 TQSampleDataReader.cxx:458 TQSampleDataReader.cxx:459 TQSampleDataReader.cxx:460 TQSampleDataReader.cxx:461 TQSampleDataReader.cxx:462 TQSampleDataReader.cxx:463 TQSampleDataReader.cxx:464 TQSampleDataReader.cxx:465 TQSampleDataReader.cxx:466 TQSampleDataReader.cxx:467 TQSampleDataReader.cxx:468 TQSampleDataReader.cxx:469 TQSampleDataReader.cxx:470 TQSampleDataReader.cxx:471 TQSampleDataReader.cxx:472 TQSampleDataReader.cxx:473 TQSampleDataReader.cxx:474 TQSampleDataReader.cxx:475 TQSampleDataReader.cxx:476 TQSampleDataReader.cxx:477 TQSampleDataReader.cxx:478 TQSampleDataReader.cxx:479 TQSampleDataReader.cxx:480 TQSampleDataReader.cxx:481 TQSampleDataReader.cxx:482 TQSampleDataReader.cxx:483 TQSampleDataReader.cxx:484 TQSampleDataReader.cxx:485 TQSampleDataReader.cxx:486 TQSampleDataReader.cxx:487 TQSampleDataReader.cxx:488 TQSampleDataReader.cxx:489 TQSampleDataReader.cxx:490 TQSampleDataReader.cxx:491 TQSampleDataReader.cxx:492 TQSampleDataReader.cxx:493 TQSampleDataReader.cxx:494 TQSampleDataReader.cxx:495 TQSampleDataReader.cxx:496 TQSampleDataReader.cxx:497 TQSampleDataReader.cxx:498 TQSampleDataReader.cxx:499 TQSampleDataReader.cxx:500 TQSampleDataReader.cxx:501 TQSampleDataReader.cxx:502 TQSampleDataReader.cxx:503 TQSampleDataReader.cxx:504 TQSampleDataReader.cxx:505 TQSampleDataReader.cxx:506 TQSampleDataReader.cxx:507 TQSampleDataReader.cxx:508 TQSampleDataReader.cxx:509 TQSampleDataReader.cxx:510 TQSampleDataReader.cxx:511 TQSampleDataReader.cxx:512 TQSampleDataReader.cxx:513 TQSampleDataReader.cxx:514 TQSampleDataReader.cxx:515 TQSampleDataReader.cxx:516 TQSampleDataReader.cxx:517 TQSampleDataReader.cxx:518 TQSampleDataReader.cxx:519 TQSampleDataReader.cxx:520 TQSampleDataReader.cxx:521 TQSampleDataReader.cxx:522 TQSampleDataReader.cxx:523 TQSampleDataReader.cxx:524 TQSampleDataReader.cxx:525 TQSampleDataReader.cxx:526 TQSampleDataReader.cxx:527 TQSampleDataReader.cxx:528 TQSampleDataReader.cxx:529 TQSampleDataReader.cxx:530 TQSampleDataReader.cxx:531 TQSampleDataReader.cxx:532 TQSampleDataReader.cxx:533 TQSampleDataReader.cxx:534 TQSampleDataReader.cxx:535 TQSampleDataReader.cxx:536 TQSampleDataReader.cxx:537 TQSampleDataReader.cxx:538 TQSampleDataReader.cxx:539 TQSampleDataReader.cxx:540 TQSampleDataReader.cxx:541 TQSampleDataReader.cxx:542 TQSampleDataReader.cxx:543 TQSampleDataReader.cxx:544 TQSampleDataReader.cxx:545 TQSampleDataReader.cxx:546 TQSampleDataReader.cxx:547 TQSampleDataReader.cxx:548 TQSampleDataReader.cxx:549 TQSampleDataReader.cxx:550 TQSampleDataReader.cxx:551 TQSampleDataReader.cxx:552 TQSampleDataReader.cxx:553 TQSampleDataReader.cxx:554 TQSampleDataReader.cxx:555 TQSampleDataReader.cxx:556 TQSampleDataReader.cxx:557 TQSampleDataReader.cxx:558 TQSampleDataReader.cxx:559 TQSampleDataReader.cxx:560 TQSampleDataReader.cxx:561 TQSampleDataReader.cxx:562 TQSampleDataReader.cxx:563 TQSampleDataReader.cxx:564 TQSampleDataReader.cxx:565 TQSampleDataReader.cxx:566 TQSampleDataReader.cxx:567 TQSampleDataReader.cxx:568 TQSampleDataReader.cxx:569 TQSampleDataReader.cxx:570 TQSampleDataReader.cxx:571 TQSampleDataReader.cxx:572 TQSampleDataReader.cxx:573 TQSampleDataReader.cxx:574 TQSampleDataReader.cxx:575 TQSampleDataReader.cxx:576 TQSampleDataReader.cxx:577 TQSampleDataReader.cxx:578 TQSampleDataReader.cxx:579 TQSampleDataReader.cxx:580 TQSampleDataReader.cxx:581 TQSampleDataReader.cxx:582 TQSampleDataReader.cxx:583 TQSampleDataReader.cxx:584 TQSampleDataReader.cxx:585 TQSampleDataReader.cxx:586 TQSampleDataReader.cxx:587 TQSampleDataReader.cxx:588 TQSampleDataReader.cxx:589 TQSampleDataReader.cxx:590 TQSampleDataReader.cxx:591 TQSampleDataReader.cxx:592 TQSampleDataReader.cxx:593 TQSampleDataReader.cxx:594 TQSampleDataReader.cxx:595 TQSampleDataReader.cxx:596 TQSampleDataReader.cxx:597 TQSampleDataReader.cxx:598 TQSampleDataReader.cxx:599 TQSampleDataReader.cxx:600 TQSampleDataReader.cxx:601 TQSampleDataReader.cxx:602 TQSampleDataReader.cxx:603 TQSampleDataReader.cxx:604 TQSampleDataReader.cxx:605 TQSampleDataReader.cxx:606 TQSampleDataReader.cxx:607 TQSampleDataReader.cxx:608 TQSampleDataReader.cxx:609 TQSampleDataReader.cxx:610 TQSampleDataReader.cxx:611 TQSampleDataReader.cxx:612 TQSampleDataReader.cxx:613 TQSampleDataReader.cxx:614 TQSampleDataReader.cxx:615 TQSampleDataReader.cxx:616 TQSampleDataReader.cxx:617 TQSampleDataReader.cxx:618 TQSampleDataReader.cxx:619 TQSampleDataReader.cxx:620 TQSampleDataReader.cxx:621 TQSampleDataReader.cxx:622 TQSampleDataReader.cxx:623 TQSampleDataReader.cxx:624 TQSampleDataReader.cxx:625 TQSampleDataReader.cxx:626 TQSampleDataReader.cxx:627 TQSampleDataReader.cxx:628 TQSampleDataReader.cxx:629 TQSampleDataReader.cxx:630 TQSampleDataReader.cxx:631 TQSampleDataReader.cxx:632 TQSampleDataReader.cxx:633 TQSampleDataReader.cxx:634 TQSampleDataReader.cxx:635 TQSampleDataReader.cxx:636 TQSampleDataReader.cxx:637 TQSampleDataReader.cxx:638 TQSampleDataReader.cxx:639 TQSampleDataReader.cxx:640 TQSampleDataReader.cxx:641 TQSampleDataReader.cxx:642 TQSampleDataReader.cxx:643 TQSampleDataReader.cxx:644 TQSampleDataReader.cxx:645 TQSampleDataReader.cxx:646 TQSampleDataReader.cxx:647 TQSampleDataReader.cxx:648 TQSampleDataReader.cxx:649 TQSampleDataReader.cxx:650 TQSampleDataReader.cxx:651 TQSampleDataReader.cxx:652 TQSampleDataReader.cxx:653 TQSampleDataReader.cxx:654 TQSampleDataReader.cxx:655 TQSampleDataReader.cxx:656 TQSampleDataReader.cxx:657 TQSampleDataReader.cxx:658 TQSampleDataReader.cxx:659 TQSampleDataReader.cxx:660 TQSampleDataReader.cxx:661 TQSampleDataReader.cxx:662 TQSampleDataReader.cxx:663 TQSampleDataReader.cxx:664 TQSampleDataReader.cxx:665 TQSampleDataReader.cxx:666 TQSampleDataReader.cxx:667 TQSampleDataReader.cxx:668 TQSampleDataReader.cxx:669 TQSampleDataReader.cxx:670 TQSampleDataReader.cxx:671 TQSampleDataReader.cxx:672 TQSampleDataReader.cxx:673 TQSampleDataReader.cxx:674 TQSampleDataReader.cxx:675 TQSampleDataReader.cxx:676 TQSampleDataReader.cxx:677 TQSampleDataReader.cxx:678 TQSampleDataReader.cxx:679 TQSampleDataReader.cxx:680 TQSampleDataReader.cxx:681 TQSampleDataReader.cxx:682 TQSampleDataReader.cxx:683 TQSampleDataReader.cxx:684 TQSampleDataReader.cxx:685 TQSampleDataReader.cxx:686 TQSampleDataReader.cxx:687 TQSampleDataReader.cxx:688 TQSampleDataReader.cxx:689 TQSampleDataReader.cxx:690 TQSampleDataReader.cxx:691 TQSampleDataReader.cxx:692 TQSampleDataReader.cxx:693 TQSampleDataReader.cxx:694 TQSampleDataReader.cxx:695 TQSampleDataReader.cxx:696 TQSampleDataReader.cxx:697 TQSampleDataReader.cxx:698 TQSampleDataReader.cxx:699 TQSampleDataReader.cxx:700 TQSampleDataReader.cxx:701 TQSampleDataReader.cxx:702 TQSampleDataReader.cxx:703 TQSampleDataReader.cxx:704 TQSampleDataReader.cxx:705 TQSampleDataReader.cxx:706 TQSampleDataReader.cxx:707 TQSampleDataReader.cxx:708 TQSampleDataReader.cxx:709 TQSampleDataReader.cxx:710 TQSampleDataReader.cxx:711 TQSampleDataReader.cxx:712 TQSampleDataReader.cxx:713 TQSampleDataReader.cxx:714 TQSampleDataReader.cxx:715 TQSampleDataReader.cxx:716 TQSampleDataReader.cxx:717 TQSampleDataReader.cxx:718 TQSampleDataReader.cxx:719 TQSampleDataReader.cxx:720 TQSampleDataReader.cxx:721 TQSampleDataReader.cxx:722 TQSampleDataReader.cxx:723 TQSampleDataReader.cxx:724 TQSampleDataReader.cxx:725 TQSampleDataReader.cxx:726 TQSampleDataReader.cxx:727 TQSampleDataReader.cxx:728 TQSampleDataReader.cxx:729 TQSampleDataReader.cxx:730 TQSampleDataReader.cxx:731 TQSampleDataReader.cxx:732 TQSampleDataReader.cxx:733 TQSampleDataReader.cxx:734 TQSampleDataReader.cxx:735 TQSampleDataReader.cxx:736 TQSampleDataReader.cxx:737 TQSampleDataReader.cxx:738 TQSampleDataReader.cxx:739 TQSampleDataReader.cxx:740 TQSampleDataReader.cxx:741 TQSampleDataReader.cxx:742 TQSampleDataReader.cxx:743 TQSampleDataReader.cxx:744 TQSampleDataReader.cxx:745 TQSampleDataReader.cxx:746 TQSampleDataReader.cxx:747 TQSampleDataReader.cxx:748 TQSampleDataReader.cxx:749 TQSampleDataReader.cxx:750 TQSampleDataReader.cxx:751 TQSampleDataReader.cxx:752 TQSampleDataReader.cxx:753 TQSampleDataReader.cxx:754 TQSampleDataReader.cxx:755 TQSampleDataReader.cxx:756 TQSampleDataReader.cxx:757 TQSampleDataReader.cxx:758 TQSampleDataReader.cxx:759 TQSampleDataReader.cxx:760 TQSampleDataReader.cxx:761 TQSampleDataReader.cxx:762 TQSampleDataReader.cxx:763 TQSampleDataReader.cxx:764 TQSampleDataReader.cxx:765 TQSampleDataReader.cxx:766 TQSampleDataReader.cxx:767 TQSampleDataReader.cxx:768 TQSampleDataReader.cxx:769 TQSampleDataReader.cxx:770 TQSampleDataReader.cxx:771 TQSampleDataReader.cxx:772 TQSampleDataReader.cxx:773 TQSampleDataReader.cxx:774 TQSampleDataReader.cxx:775 TQSampleDataReader.cxx:776 TQSampleDataReader.cxx:777 TQSampleDataReader.cxx:778 TQSampleDataReader.cxx:779 TQSampleDataReader.cxx:780 TQSampleDataReader.cxx:781 TQSampleDataReader.cxx:782 TQSampleDataReader.cxx:783 TQSampleDataReader.cxx:784 TQSampleDataReader.cxx:785 TQSampleDataReader.cxx:786 TQSampleDataReader.cxx:787 TQSampleDataReader.cxx:788 TQSampleDataReader.cxx:789 TQSampleDataReader.cxx:790 TQSampleDataReader.cxx:791 TQSampleDataReader.cxx:792 TQSampleDataReader.cxx:793 TQSampleDataReader.cxx:794 TQSampleDataReader.cxx:795 TQSampleDataReader.cxx:796 TQSampleDataReader.cxx:797 TQSampleDataReader.cxx:798 TQSampleDataReader.cxx:799 TQSampleDataReader.cxx:800 TQSampleDataReader.cxx:801 TQSampleDataReader.cxx:802 TQSampleDataReader.cxx:803 TQSampleDataReader.cxx:804 TQSampleDataReader.cxx:805 TQSampleDataReader.cxx:806 TQSampleDataReader.cxx:807 TQSampleDataReader.cxx:808 TQSampleDataReader.cxx:809 TQSampleDataReader.cxx:810 TQSampleDataReader.cxx:811 TQSampleDataReader.cxx:812 TQSampleDataReader.cxx:813 TQSampleDataReader.cxx:814 TQSampleDataReader.cxx:815 TQSampleDataReader.cxx:816 TQSampleDataReader.cxx:817 TQSampleDataReader.cxx:818 TQSampleDataReader.cxx:819 TQSampleDataReader.cxx:820 TQSampleDataReader.cxx:821 TQSampleDataReader.cxx:822 TQSampleDataReader.cxx:823 TQSampleDataReader.cxx:824 TQSampleDataReader.cxx:825 TQSampleDataReader.cxx:826 TQSampleDataReader.cxx:827 TQSampleDataReader.cxx:828 TQSampleDataReader.cxx:829 TQSampleDataReader.cxx:830 TQSampleDataReader.cxx:831 TQSampleDataReader.cxx:832 TQSampleDataReader.cxx:833 TQSampleDataReader.cxx:834 TQSampleDataReader.cxx:835 TQSampleDataReader.cxx:836 TQSampleDataReader.cxx:837 TQSampleDataReader.cxx:838 TQSampleDataReader.cxx:839 TQSampleDataReader.cxx:840 TQSampleDataReader.cxx:841 TQSampleDataReader.cxx:842 TQSampleDataReader.cxx:843 TQSampleDataReader.cxx:844 TQSampleDataReader.cxx:845 TQSampleDataReader.cxx:846 TQSampleDataReader.cxx:847 TQSampleDataReader.cxx:848 TQSampleDataReader.cxx:849 TQSampleDataReader.cxx:850 TQSampleDataReader.cxx:851 TQSampleDataReader.cxx:852 TQSampleDataReader.cxx:853 TQSampleDataReader.cxx:854 TQSampleDataReader.cxx:855 TQSampleDataReader.cxx:856 TQSampleDataReader.cxx:857 TQSampleDataReader.cxx:858 TQSampleDataReader.cxx:859 TQSampleDataReader.cxx:860 TQSampleDataReader.cxx:861 TQSampleDataReader.cxx:862 TQSampleDataReader.cxx:863 TQSampleDataReader.cxx:864 TQSampleDataReader.cxx:865 TQSampleDataReader.cxx:866 TQSampleDataReader.cxx:867 TQSampleDataReader.cxx:868 TQSampleDataReader.cxx:869 TQSampleDataReader.cxx:870 TQSampleDataReader.cxx:871 TQSampleDataReader.cxx:872 TQSampleDataReader.cxx:873 TQSampleDataReader.cxx:874 TQSampleDataReader.cxx:875 TQSampleDataReader.cxx:876 TQSampleDataReader.cxx:877 TQSampleDataReader.cxx:878 TQSampleDataReader.cxx:879 TQSampleDataReader.cxx:880 TQSampleDataReader.cxx:881 TQSampleDataReader.cxx:882 TQSampleDataReader.cxx:883 TQSampleDataReader.cxx:884 TQSampleDataReader.cxx:885 TQSampleDataReader.cxx:886 TQSampleDataReader.cxx:887 TQSampleDataReader.cxx:888 TQSampleDataReader.cxx:889 TQSampleDataReader.cxx:890 TQSampleDataReader.cxx:891 TQSampleDataReader.cxx:892 TQSampleDataReader.cxx:893 TQSampleDataReader.cxx:894 TQSampleDataReader.cxx:895 TQSampleDataReader.cxx:896 TQSampleDataReader.cxx:897 TQSampleDataReader.cxx:898 TQSampleDataReader.cxx:899 TQSampleDataReader.cxx:900 TQSampleDataReader.cxx:901 TQSampleDataReader.cxx:902 TQSampleDataReader.cxx:903 TQSampleDataReader.cxx:904 TQSampleDataReader.cxx:905 TQSampleDataReader.cxx:906 TQSampleDataReader.cxx:907 TQSampleDataReader.cxx:908 TQSampleDataReader.cxx:909 TQSampleDataReader.cxx:910 TQSampleDataReader.cxx:911 TQSampleDataReader.cxx:912 TQSampleDataReader.cxx:913 TQSampleDataReader.cxx:914 TQSampleDataReader.cxx:915 TQSampleDataReader.cxx:916 TQSampleDataReader.cxx:917 TQSampleDataReader.cxx:918 TQSampleDataReader.cxx:919 TQSampleDataReader.cxx:920 TQSampleDataReader.cxx:921 TQSampleDataReader.cxx:922 TQSampleDataReader.cxx:923 TQSampleDataReader.cxx:924 TQSampleDataReader.cxx:925 TQSampleDataReader.cxx:926 TQSampleDataReader.cxx:927 TQSampleDataReader.cxx:928 TQSampleDataReader.cxx:929 TQSampleDataReader.cxx:930 TQSampleDataReader.cxx:931 TQSampleDataReader.cxx:932 TQSampleDataReader.cxx:933 TQSampleDataReader.cxx:934 TQSampleDataReader.cxx:935 TQSampleDataReader.cxx:936 TQSampleDataReader.cxx:937 TQSampleDataReader.cxx:938 TQSampleDataReader.cxx:939 TQSampleDataReader.cxx:940 TQSampleDataReader.cxx:941 TQSampleDataReader.cxx:942 TQSampleDataReader.cxx:943 TQSampleDataReader.cxx:944 TQSampleDataReader.cxx:945 TQSampleDataReader.cxx:946 TQSampleDataReader.cxx:947 TQSampleDataReader.cxx:948 TQSampleDataReader.cxx:949 TQSampleDataReader.cxx:950 TQSampleDataReader.cxx:951 TQSampleDataReader.cxx:952 TQSampleDataReader.cxx:953 TQSampleDataReader.cxx:954 TQSampleDataReader.cxx:955 TQSampleDataReader.cxx:956 TQSampleDataReader.cxx:957 TQSampleDataReader.cxx:958 TQSampleDataReader.cxx:959 TQSampleDataReader.cxx:960 TQSampleDataReader.cxx:961 TQSampleDataReader.cxx:962 TQSampleDataReader.cxx:963 TQSampleDataReader.cxx:964 TQSampleDataReader.cxx:965 TQSampleDataReader.cxx:966 TQSampleDataReader.cxx:967 TQSampleDataReader.cxx:968 TQSampleDataReader.cxx:969 TQSampleDataReader.cxx:970 TQSampleDataReader.cxx:971 TQSampleDataReader.cxx:972 TQSampleDataReader.cxx:973 TQSampleDataReader.cxx:974 TQSampleDataReader.cxx:975 TQSampleDataReader.cxx:976 TQSampleDataReader.cxx:977 TQSampleDataReader.cxx:978 TQSampleDataReader.cxx:979 TQSampleDataReader.cxx:980 TQSampleDataReader.cxx:981 TQSampleDataReader.cxx:982 TQSampleDataReader.cxx:983 TQSampleDataReader.cxx:984 TQSampleDataReader.cxx:985 TQSampleDataReader.cxx:986 TQSampleDataReader.cxx:987 TQSampleDataReader.cxx:988 TQSampleDataReader.cxx:989 TQSampleDataReader.cxx:990 TQSampleDataReader.cxx:991 TQSampleDataReader.cxx:992 TQSampleDataReader.cxx:993 TQSampleDataReader.cxx:994 TQSampleDataReader.cxx:995 TQSampleDataReader.cxx:996 TQSampleDataReader.cxx:997 TQSampleDataReader.cxx:998 TQSampleDataReader.cxx:999 TQSampleDataReader.cxx:1000 TQSampleDataReader.cxx:1001 TQSampleDataReader.cxx:1002 TQSampleDataReader.cxx:1003 TQSampleDataReader.cxx:1004 TQSampleDataReader.cxx:1005 TQSampleDataReader.cxx:1006 TQSampleDataReader.cxx:1007 TQSampleDataReader.cxx:1008 TQSampleDataReader.cxx:1009 TQSampleDataReader.cxx:1010 TQSampleDataReader.cxx:1011 TQSampleDataReader.cxx:1012 TQSampleDataReader.cxx:1013 TQSampleDataReader.cxx:1014 TQSampleDataReader.cxx:1015 TQSampleDataReader.cxx:1016 TQSampleDataReader.cxx:1017 TQSampleDataReader.cxx:1018 TQSampleDataReader.cxx:1019 TQSampleDataReader.cxx:1020 TQSampleDataReader.cxx:1021 TQSampleDataReader.cxx:1022 TQSampleDataReader.cxx:1023 TQSampleDataReader.cxx:1024 TQSampleDataReader.cxx:1025 TQSampleDataReader.cxx:1026 TQSampleDataReader.cxx:1027 TQSampleDataReader.cxx:1028 TQSampleDataReader.cxx:1029 TQSampleDataReader.cxx:1030 TQSampleDataReader.cxx:1031 TQSampleDataReader.cxx:1032 TQSampleDataReader.cxx:1033 TQSampleDataReader.cxx:1034 TQSampleDataReader.cxx:1035 TQSampleDataReader.cxx:1036 TQSampleDataReader.cxx:1037 TQSampleDataReader.cxx:1038 TQSampleDataReader.cxx:1039 TQSampleDataReader.cxx:1040 TQSampleDataReader.cxx:1041 TQSampleDataReader.cxx:1042 TQSampleDataReader.cxx:1043 TQSampleDataReader.cxx:1044 TQSampleDataReader.cxx:1045 TQSampleDataReader.cxx:1046 TQSampleDataReader.cxx:1047 TQSampleDataReader.cxx:1048 TQSampleDataReader.cxx:1049 TQSampleDataReader.cxx:1050 TQSampleDataReader.cxx:1051 TQSampleDataReader.cxx:1052 TQSampleDataReader.cxx:1053 TQSampleDataReader.cxx:1054 TQSampleDataReader.cxx:1055 TQSampleDataReader.cxx:1056 TQSampleDataReader.cxx:1057 TQSampleDataReader.cxx:1058 TQSampleDataReader.cxx:1059 TQSampleDataReader.cxx:1060 TQSampleDataReader.cxx:1061 TQSampleDataReader.cxx:1062 TQSampleDataReader.cxx:1063 TQSampleDataReader.cxx:1064 TQSampleDataReader.cxx:1065 TQSampleDataReader.cxx:1066 TQSampleDataReader.cxx:1067 TQSampleDataReader.cxx:1068 TQSampleDataReader.cxx:1069 TQSampleDataReader.cxx:1070 TQSampleDataReader.cxx:1071 TQSampleDataReader.cxx:1072 TQSampleDataReader.cxx:1073 TQSampleDataReader.cxx:1074 TQSampleDataReader.cxx:1075 TQSampleDataReader.cxx:1076 TQSampleDataReader.cxx:1077 TQSampleDataReader.cxx:1078 TQSampleDataReader.cxx:1079 TQSampleDataReader.cxx:1080 TQSampleDataReader.cxx:1081 TQSampleDataReader.cxx:1082 TQSampleDataReader.cxx:1083 TQSampleDataReader.cxx:1084 TQSampleDataReader.cxx:1085 TQSampleDataReader.cxx:1086 TQSampleDataReader.cxx:1087 TQSampleDataReader.cxx:1088 TQSampleDataReader.cxx:1089 TQSampleDataReader.cxx:1090 TQSampleDataReader.cxx:1091 TQSampleDataReader.cxx:1092 TQSampleDataReader.cxx:1093 TQSampleDataReader.cxx:1094 TQSampleDataReader.cxx:1095 TQSampleDataReader.cxx:1096 TQSampleDataReader.cxx:1097 TQSampleDataReader.cxx:1098 TQSampleDataReader.cxx:1099 TQSampleDataReader.cxx:1100 TQSampleDataReader.cxx:1101 TQSampleDataReader.cxx:1102 TQSampleDataReader.cxx:1103 TQSampleDataReader.cxx:1104 TQSampleDataReader.cxx:1105 TQSampleDataReader.cxx:1106 TQSampleDataReader.cxx:1107 TQSampleDataReader.cxx:1108 TQSampleDataReader.cxx:1109 TQSampleDataReader.cxx:1110 TQSampleDataReader.cxx:1111 TQSampleDataReader.cxx:1112 TQSampleDataReader.cxx:1113 TQSampleDataReader.cxx:1114 TQSampleDataReader.cxx:1115 TQSampleDataReader.cxx:1116 TQSampleDataReader.cxx:1117 TQSampleDataReader.cxx:1118 TQSampleDataReader.cxx:1119 TQSampleDataReader.cxx:1120 TQSampleDataReader.cxx:1121 TQSampleDataReader.cxx:1122 TQSampleDataReader.cxx:1123 TQSampleDataReader.cxx:1124 TQSampleDataReader.cxx:1125 TQSampleDataReader.cxx:1126 TQSampleDataReader.cxx:1127 TQSampleDataReader.cxx:1128 TQSampleDataReader.cxx:1129 TQSampleDataReader.cxx:1130 TQSampleDataReader.cxx:1131 TQSampleDataReader.cxx:1132 TQSampleDataReader.cxx:1133 TQSampleDataReader.cxx:1134 TQSampleDataReader.cxx:1135 TQSampleDataReader.cxx:1136 TQSampleDataReader.cxx:1137 TQSampleDataReader.cxx:1138 TQSampleDataReader.cxx:1139 TQSampleDataReader.cxx:1140 TQSampleDataReader.cxx:1141 TQSampleDataReader.cxx:1142 TQSampleDataReader.cxx:1143 TQSampleDataReader.cxx:1144 TQSampleDataReader.cxx:1145 TQSampleDataReader.cxx:1146 TQSampleDataReader.cxx:1147 TQSampleDataReader.cxx:1148 TQSampleDataReader.cxx:1149 TQSampleDataReader.cxx:1150 TQSampleDataReader.cxx:1151 TQSampleDataReader.cxx:1152 TQSampleDataReader.cxx:1153 TQSampleDataReader.cxx:1154 TQSampleDataReader.cxx:1155 TQSampleDataReader.cxx:1156 TQSampleDataReader.cxx:1157 TQSampleDataReader.cxx:1158 TQSampleDataReader.cxx:1159 TQSampleDataReader.cxx:1160 TQSampleDataReader.cxx:1161 TQSampleDataReader.cxx:1162 TQSampleDataReader.cxx:1163 TQSampleDataReader.cxx:1164 TQSampleDataReader.cxx:1165 TQSampleDataReader.cxx:1166 TQSampleDataReader.cxx:1167 TQSampleDataReader.cxx:1168 TQSampleDataReader.cxx:1169 TQSampleDataReader.cxx:1170 TQSampleDataReader.cxx:1171 TQSampleDataReader.cxx:1172 TQSampleDataReader.cxx:1173 TQSampleDataReader.cxx:1174 TQSampleDataReader.cxx:1175 TQSampleDataReader.cxx:1176 TQSampleDataReader.cxx:1177 TQSampleDataReader.cxx:1178 TQSampleDataReader.cxx:1179 TQSampleDataReader.cxx:1180 TQSampleDataReader.cxx:1181 TQSampleDataReader.cxx:1182 TQSampleDataReader.cxx:1183 TQSampleDataReader.cxx:1184 TQSampleDataReader.cxx:1185 TQSampleDataReader.cxx:1186 TQSampleDataReader.cxx:1187 TQSampleDataReader.cxx:1188 TQSampleDataReader.cxx:1189 TQSampleDataReader.cxx:1190 TQSampleDataReader.cxx:1191 TQSampleDataReader.cxx:1192 TQSampleDataReader.cxx:1193 TQSampleDataReader.cxx:1194 TQSampleDataReader.cxx:1195 TQSampleDataReader.cxx:1196 TQSampleDataReader.cxx:1197 TQSampleDataReader.cxx:1198 TQSampleDataReader.cxx:1199 TQSampleDataReader.cxx:1200 TQSampleDataReader.cxx:1201 TQSampleDataReader.cxx:1202 TQSampleDataReader.cxx:1203 TQSampleDataReader.cxx:1204 TQSampleDataReader.cxx:1205 TQSampleDataReader.cxx:1206 TQSampleDataReader.cxx:1207 TQSampleDataReader.cxx:1208 TQSampleDataReader.cxx:1209 TQSampleDataReader.cxx:1210 TQSampleDataReader.cxx:1211 TQSampleDataReader.cxx:1212 TQSampleDataReader.cxx:1213 TQSampleDataReader.cxx:1214 TQSampleDataReader.cxx:1215 TQSampleDataReader.cxx:1216 TQSampleDataReader.cxx:1217 TQSampleDataReader.cxx:1218 TQSampleDataReader.cxx:1219 TQSampleDataReader.cxx:1220 TQSampleDataReader.cxx:1221 TQSampleDataReader.cxx:1222 TQSampleDataReader.cxx:1223 TQSampleDataReader.cxx:1224 TQSampleDataReader.cxx:1225 TQSampleDataReader.cxx:1226 TQSampleDataReader.cxx:1227 TQSampleDataReader.cxx:1228 TQSampleDataReader.cxx:1229 TQSampleDataReader.cxx:1230 TQSampleDataReader.cxx:1231 TQSampleDataReader.cxx:1232 TQSampleDataReader.cxx:1233 TQSampleDataReader.cxx:1234 TQSampleDataReader.cxx:1235 TQSampleDataReader.cxx:1236 TQSampleDataReader.cxx:1237 TQSampleDataReader.cxx:1238 TQSampleDataReader.cxx:1239 TQSampleDataReader.cxx:1240 TQSampleDataReader.cxx:1241 TQSampleDataReader.cxx:1242 TQSampleDataReader.cxx:1243 TQSampleDataReader.cxx:1244 TQSampleDataReader.cxx:1245 TQSampleDataReader.cxx:1246 TQSampleDataReader.cxx:1247 TQSampleDataReader.cxx:1248 TQSampleDataReader.cxx:1249 TQSampleDataReader.cxx:1250 TQSampleDataReader.cxx:1251 TQSampleDataReader.cxx:1252 TQSampleDataReader.cxx:1253 TQSampleDataReader.cxx:1254 TQSampleDataReader.cxx:1255 TQSampleDataReader.cxx:1256 TQSampleDataReader.cxx:1257 TQSampleDataReader.cxx:1258 TQSampleDataReader.cxx:1259 TQSampleDataReader.cxx:1260 TQSampleDataReader.cxx:1261 TQSampleDataReader.cxx:1262 TQSampleDataReader.cxx:1263 TQSampleDataReader.cxx:1264 TQSampleDataReader.cxx:1265 TQSampleDataReader.cxx:1266 TQSampleDataReader.cxx:1267 TQSampleDataReader.cxx:1268 TQSampleDataReader.cxx:1269 TQSampleDataReader.cxx:1270 TQSampleDataReader.cxx:1271 TQSampleDataReader.cxx:1272 TQSampleDataReader.cxx:1273 TQSampleDataReader.cxx:1274 TQSampleDataReader.cxx:1275 TQSampleDataReader.cxx:1276 TQSampleDataReader.cxx:1277 TQSampleDataReader.cxx:1278 TQSampleDataReader.cxx:1279 TQSampleDataReader.cxx:1280 TQSampleDataReader.cxx:1281 TQSampleDataReader.cxx:1282 TQSampleDataReader.cxx:1283 TQSampleDataReader.cxx:1284 TQSampleDataReader.cxx:1285 TQSampleDataReader.cxx:1286 TQSampleDataReader.cxx:1287 TQSampleDataReader.cxx:1288 TQSampleDataReader.cxx:1289 TQSampleDataReader.cxx:1290 TQSampleDataReader.cxx:1291 TQSampleDataReader.cxx:1292 TQSampleDataReader.cxx:1293 TQSampleDataReader.cxx:1294 TQSampleDataReader.cxx:1295 TQSampleDataReader.cxx:1296 TQSampleDataReader.cxx:1297 TQSampleDataReader.cxx:1298 TQSampleDataReader.cxx:1299 TQSampleDataReader.cxx:1300 TQSampleDataReader.cxx:1301 TQSampleDataReader.cxx:1302 TQSampleDataReader.cxx:1303 TQSampleDataReader.cxx:1304 TQSampleDataReader.cxx:1305 TQSampleDataReader.cxx:1306 TQSampleDataReader.cxx:1307 TQSampleDataReader.cxx:1308 TQSampleDataReader.cxx:1309 TQSampleDataReader.cxx:1310 TQSampleDataReader.cxx:1311 TQSampleDataReader.cxx:1312 TQSampleDataReader.cxx:1313 TQSampleDataReader.cxx:1314 TQSampleDataReader.cxx:1315 TQSampleDataReader.cxx:1316 TQSampleDataReader.cxx:1317 TQSampleDataReader.cxx:1318 TQSampleDataReader.cxx:1319 TQSampleDataReader.cxx:1320 TQSampleDataReader.cxx:1321 TQSampleDataReader.cxx:1322 TQSampleDataReader.cxx:1323 TQSampleDataReader.cxx:1324 TQSampleDataReader.cxx:1325 TQSampleDataReader.cxx:1326 TQSampleDataReader.cxx:1327 TQSampleDataReader.cxx:1328 TQSampleDataReader.cxx:1329 TQSampleDataReader.cxx:1330 TQSampleDataReader.cxx:1331 TQSampleDataReader.cxx:1332 TQSampleDataReader.cxx:1333 TQSampleDataReader.cxx:1334 TQSampleDataReader.cxx:1335 TQSampleDataReader.cxx:1336 TQSampleDataReader.cxx:1337 TQSampleDataReader.cxx:1338 TQSampleDataReader.cxx:1339 TQSampleDataReader.cxx:1340 TQSampleDataReader.cxx:1341 TQSampleDataReader.cxx:1342 TQSampleDataReader.cxx:1343 TQSampleDataReader.cxx:1344 TQSampleDataReader.cxx:1345 TQSampleDataReader.cxx:1346 TQSampleDataReader.cxx:1347 TQSampleDataReader.cxx:1348 TQSampleDataReader.cxx:1349 TQSampleDataReader.cxx:1350 TQSampleDataReader.cxx:1351 TQSampleDataReader.cxx:1352 TQSampleDataReader.cxx:1353 TQSampleDataReader.cxx:1354 TQSampleDataReader.cxx:1355 TQSampleDataReader.cxx:1356 TQSampleDataReader.cxx:1357 TQSampleDataReader.cxx:1358 TQSampleDataReader.cxx:1359 TQSampleDataReader.cxx:1360 TQSampleDataReader.cxx:1361 TQSampleDataReader.cxx:1362 TQSampleDataReader.cxx:1363 TQSampleDataReader.cxx:1364 TQSampleDataReader.cxx:1365 TQSampleDataReader.cxx:1366 TQSampleDataReader.cxx:1367 TQSampleDataReader.cxx:1368 TQSampleDataReader.cxx:1369 TQSampleDataReader.cxx:1370 TQSampleDataReader.cxx:1371 TQSampleDataReader.cxx:1372 TQSampleDataReader.cxx:1373 TQSampleDataReader.cxx:1374 TQSampleDataReader.cxx:1375 TQSampleDataReader.cxx:1376 TQSampleDataReader.cxx:1377 TQSampleDataReader.cxx:1378 TQSampleDataReader.cxx:1379 TQSampleDataReader.cxx:1380 TQSampleDataReader.cxx:1381 TQSampleDataReader.cxx:1382 TQSampleDataReader.cxx:1383 TQSampleDataReader.cxx:1384 TQSampleDataReader.cxx:1385 TQSampleDataReader.cxx:1386 TQSampleDataReader.cxx:1387 TQSampleDataReader.cxx:1388 TQSampleDataReader.cxx:1389 TQSampleDataReader.cxx:1390 TQSampleDataReader.cxx:1391 TQSampleDataReader.cxx:1392 TQSampleDataReader.cxx:1393 TQSampleDataReader.cxx:1394 TQSampleDataReader.cxx:1395 TQSampleDataReader.cxx:1396 TQSampleDataReader.cxx:1397 TQSampleDataReader.cxx:1398 TQSampleDataReader.cxx:1399 TQSampleDataReader.cxx:1400 TQSampleDataReader.cxx:1401 TQSampleDataReader.cxx:1402 TQSampleDataReader.cxx:1403 TQSampleDataReader.cxx:1404 TQSampleDataReader.cxx:1405 TQSampleDataReader.cxx:1406 TQSampleDataReader.cxx:1407 TQSampleDataReader.cxx:1408 TQSampleDataReader.cxx:1409 TQSampleDataReader.cxx:1410 TQSampleDataReader.cxx:1411 TQSampleDataReader.cxx:1412 TQSampleDataReader.cxx:1413 TQSampleDataReader.cxx:1414 TQSampleDataReader.cxx:1415 TQSampleDataReader.cxx:1416 TQSampleDataReader.cxx:1417 TQSampleDataReader.cxx:1418 TQSampleDataReader.cxx:1419 TQSampleDataReader.cxx:1420 TQSampleDataReader.cxx:1421 TQSampleDataReader.cxx:1422 TQSampleDataReader.cxx:1423 TQSampleDataReader.cxx:1424 TQSampleDataReader.cxx:1425 TQSampleDataReader.cxx:1426 TQSampleDataReader.cxx:1427 TQSampleDataReader.cxx:1428 TQSampleDataReader.cxx:1429 TQSampleDataReader.cxx:1430 TQSampleDataReader.cxx:1431 TQSampleDataReader.cxx:1432 TQSampleDataReader.cxx:1433 TQSampleDataReader.cxx:1434 TQSampleDataReader.cxx:1435 TQSampleDataReader.cxx:1436 TQSampleDataReader.cxx:1437 TQSampleDataReader.cxx:1438 TQSampleDataReader.cxx:1439 TQSampleDataReader.cxx:1440 TQSampleDataReader.cxx:1441 TQSampleDataReader.cxx:1442 TQSampleDataReader.cxx:1443 TQSampleDataReader.cxx:1444 TQSampleDataReader.cxx:1445 TQSampleDataReader.cxx:1446 TQSampleDataReader.cxx:1447 TQSampleDataReader.cxx:1448 TQSampleDataReader.cxx:1449 TQSampleDataReader.cxx:1450 TQSampleDataReader.cxx:1451 TQSampleDataReader.cxx:1452 TQSampleDataReader.cxx:1453 TQSampleDataReader.cxx:1454 TQSampleDataReader.cxx:1455 TQSampleDataReader.cxx:1456 TQSampleDataReader.cxx:1457 TQSampleDataReader.cxx:1458 TQSampleDataReader.cxx:1459 TQSampleDataReader.cxx:1460 TQSampleDataReader.cxx:1461 TQSampleDataReader.cxx:1462 TQSampleDataReader.cxx:1463 TQSampleDataReader.cxx:1464 TQSampleDataReader.cxx:1465 TQSampleDataReader.cxx:1466 TQSampleDataReader.cxx:1467 TQSampleDataReader.cxx:1468 TQSampleDataReader.cxx:1469 TQSampleDataReader.cxx:1470 TQSampleDataReader.cxx:1471 TQSampleDataReader.cxx:1472 TQSampleDataReader.cxx:1473 TQSampleDataReader.cxx:1474 TQSampleDataReader.cxx:1475 TQSampleDataReader.cxx:1476 TQSampleDataReader.cxx:1477 TQSampleDataReader.cxx:1478 TQSampleDataReader.cxx:1479 TQSampleDataReader.cxx:1480 TQSampleDataReader.cxx:1481 TQSampleDataReader.cxx:1482 TQSampleDataReader.cxx:1483 TQSampleDataReader.cxx:1484 TQSampleDataReader.cxx:1485 TQSampleDataReader.cxx:1486 TQSampleDataReader.cxx:1487 TQSampleDataReader.cxx:1488 TQSampleDataReader.cxx:1489 TQSampleDataReader.cxx:1490 TQSampleDataReader.cxx:1491 TQSampleDataReader.cxx:1492 TQSampleDataReader.cxx:1493 TQSampleDataReader.cxx:1494 TQSampleDataReader.cxx:1495 TQSampleDataReader.cxx:1496 TQSampleDataReader.cxx:1497 TQSampleDataReader.cxx:1498 TQSampleDataReader.cxx:1499 TQSampleDataReader.cxx:1500 TQSampleDataReader.cxx:1501 TQSampleDataReader.cxx:1502 TQSampleDataReader.cxx:1503 TQSampleDataReader.cxx:1504 TQSampleDataReader.cxx:1505 TQSampleDataReader.cxx:1506 TQSampleDataReader.cxx:1507 TQSampleDataReader.cxx:1508 TQSampleDataReader.cxx:1509 TQSampleDataReader.cxx:1510 TQSampleDataReader.cxx:1511 TQSampleDataReader.cxx:1512 TQSampleDataReader.cxx:1513 TQSampleDataReader.cxx:1514 TQSampleDataReader.cxx:1515 TQSampleDataReader.cxx:1516 TQSampleDataReader.cxx:1517 TQSampleDataReader.cxx:1518 TQSampleDataReader.cxx:1519 TQSampleDataReader.cxx:1520 TQSampleDataReader.cxx:1521 TQSampleDataReader.cxx:1522 TQSampleDataReader.cxx:1523 TQSampleDataReader.cxx:1524 TQSampleDataReader.cxx:1525 TQSampleDataReader.cxx:1526 TQSampleDataReader.cxx:1527 TQSampleDataReader.cxx:1528 TQSampleDataReader.cxx:1529 TQSampleDataReader.cxx:1530 TQSampleDataReader.cxx:1531 TQSampleDataReader.cxx:1532 TQSampleDataReader.cxx:1533 TQSampleDataReader.cxx:1534 TQSampleDataReader.cxx:1535 TQSampleDataReader.cxx:1536 TQSampleDataReader.cxx:1537 TQSampleDataReader.cxx:1538 TQSampleDataReader.cxx:1539 TQSampleDataReader.cxx:1540 TQSampleDataReader.cxx:1541 TQSampleDataReader.cxx:1542 TQSampleDataReader.cxx:1543 TQSampleDataReader.cxx:1544 TQSampleDataReader.cxx:1545 TQSampleDataReader.cxx:1546 TQSampleDataReader.cxx:1547 TQSampleDataReader.cxx:1548 TQSampleDataReader.cxx:1549 TQSampleDataReader.cxx:1550 TQSampleDataReader.cxx:1551 TQSampleDataReader.cxx:1552 TQSampleDataReader.cxx:1553 TQSampleDataReader.cxx:1554 TQSampleDataReader.cxx:1555 TQSampleDataReader.cxx:1556 TQSampleDataReader.cxx:1557 TQSampleDataReader.cxx:1558 TQSampleDataReader.cxx:1559 TQSampleDataReader.cxx:1560 TQSampleDataReader.cxx:1561 TQSampleDataReader.cxx:1562 TQSampleDataReader.cxx:1563 TQSampleDataReader.cxx:1564 TQSampleDataReader.cxx:1565 TQSampleDataReader.cxx:1566 TQSampleDataReader.cxx:1567 TQSampleDataReader.cxx:1568 TQSampleDataReader.cxx:1569 TQSampleDataReader.cxx:1570 TQSampleDataReader.cxx:1571 TQSampleDataReader.cxx:1572 TQSampleDataReader.cxx:1573 TQSampleDataReader.cxx:1574 TQSampleDataReader.cxx:1575 TQSampleDataReader.cxx:1576 TQSampleDataReader.cxx:1577 TQSampleDataReader.cxx:1578 TQSampleDataReader.cxx:1579 TQSampleDataReader.cxx:1580 TQSampleDataReader.cxx:1581 TQSampleDataReader.cxx:1582 TQSampleDataReader.cxx:1583 TQSampleDataReader.cxx:1584 TQSampleDataReader.cxx:1585 TQSampleDataReader.cxx:1586 TQSampleDataReader.cxx:1587 TQSampleDataReader.cxx:1588 TQSampleDataReader.cxx:1589 TQSampleDataReader.cxx:1590 TQSampleDataReader.cxx:1591 TQSampleDataReader.cxx:1592 TQSampleDataReader.cxx:1593 TQSampleDataReader.cxx:1594 TQSampleDataReader.cxx:1595 TQSampleDataReader.cxx:1596 TQSampleDataReader.cxx:1597 TQSampleDataReader.cxx:1598 TQSampleDataReader.cxx:1599 TQSampleDataReader.cxx:1600 TQSampleDataReader.cxx:1601 TQSampleDataReader.cxx:1602 TQSampleDataReader.cxx:1603 TQSampleDataReader.cxx:1604 TQSampleDataReader.cxx:1605 TQSampleDataReader.cxx:1606 TQSampleDataReader.cxx:1607 TQSampleDataReader.cxx:1608 TQSampleDataReader.cxx:1609 TQSampleDataReader.cxx:1610 TQSampleDataReader.cxx:1611 TQSampleDataReader.cxx:1612 TQSampleDataReader.cxx:1613 TQSampleDataReader.cxx:1614 TQSampleDataReader.cxx:1615 TQSampleDataReader.cxx:1616 TQSampleDataReader.cxx:1617 TQSampleDataReader.cxx:1618 TQSampleDataReader.cxx:1619 TQSampleDataReader.cxx:1620 TQSampleDataReader.cxx:1621 TQSampleDataReader.cxx:1622 TQSampleDataReader.cxx:1623 TQSampleDataReader.cxx:1624 TQSampleDataReader.cxx:1625 TQSampleDataReader.cxx:1626 TQSampleDataReader.cxx:1627 TQSampleDataReader.cxx:1628 TQSampleDataReader.cxx:1629 TQSampleDataReader.cxx:1630 TQSampleDataReader.cxx:1631 TQSampleDataReader.cxx:1632 TQSampleDataReader.cxx:1633 TQSampleDataReader.cxx:1634 TQSampleDataReader.cxx:1635 TQSampleDataReader.cxx:1636 TQSampleDataReader.cxx:1637 TQSampleDataReader.cxx:1638 TQSampleDataReader.cxx:1639 TQSampleDataReader.cxx:1640 TQSampleDataReader.cxx:1641 TQSampleDataReader.cxx:1642 TQSampleDataReader.cxx:1643 TQSampleDataReader.cxx:1644 TQSampleDataReader.cxx:1645 TQSampleDataReader.cxx:1646 TQSampleDataReader.cxx:1647 TQSampleDataReader.cxx:1648 TQSampleDataReader.cxx:1649 TQSampleDataReader.cxx:1650 TQSampleDataReader.cxx:1651 TQSampleDataReader.cxx:1652 TQSampleDataReader.cxx:1653 TQSampleDataReader.cxx:1654 TQSampleDataReader.cxx:1655 TQSampleDataReader.cxx:1656 TQSampleDataReader.cxx:1657 TQSampleDataReader.cxx:1658 TQSampleDataReader.cxx:1659 TQSampleDataReader.cxx:1660 TQSampleDataReader.cxx:1661 TQSampleDataReader.cxx:1662 TQSampleDataReader.cxx:1663 TQSampleDataReader.cxx:1664 TQSampleDataReader.cxx:1665 TQSampleDataReader.cxx:1666 TQSampleDataReader.cxx:1667 TQSampleDataReader.cxx:1668 TQSampleDataReader.cxx:1669 TQSampleDataReader.cxx:1670 TQSampleDataReader.cxx:1671 TQSampleDataReader.cxx:1672 TQSampleDataReader.cxx:1673 TQSampleDataReader.cxx:1674 TQSampleDataReader.cxx:1675 TQSampleDataReader.cxx:1676 TQSampleDataReader.cxx:1677 TQSampleDataReader.cxx:1678 TQSampleDataReader.cxx:1679 TQSampleDataReader.cxx:1680 TQSampleDataReader.cxx:1681 TQSampleDataReader.cxx:1682 TQSampleDataReader.cxx:1683 TQSampleDataReader.cxx:1684 TQSampleDataReader.cxx:1685 TQSampleDataReader.cxx:1686 TQSampleDataReader.cxx:1687 TQSampleDataReader.cxx:1688 TQSampleDataReader.cxx:1689 TQSampleDataReader.cxx:1690 TQSampleDataReader.cxx:1691 TQSampleDataReader.cxx:1692 TQSampleDataReader.cxx:1693 TQSampleDataReader.cxx:1694 TQSampleDataReader.cxx:1695 TQSampleDataReader.cxx:1696 TQSampleDataReader.cxx:1697 TQSampleDataReader.cxx:1698 TQSampleDataReader.cxx:1699 TQSampleDataReader.cxx:1700 TQSampleDataReader.cxx:1701 TQSampleDataReader.cxx:1702 TQSampleDataReader.cxx:1703 TQSampleDataReader.cxx:1704 TQSampleDataReader.cxx:1705 TQSampleDataReader.cxx:1706 TQSampleDataReader.cxx:1707 TQSampleDataReader.cxx:1708 TQSampleDataReader.cxx:1709 TQSampleDataReader.cxx:1710 TQSampleDataReader.cxx:1711 TQSampleDataReader.cxx:1712 TQSampleDataReader.cxx:1713 TQSampleDataReader.cxx:1714 TQSampleDataReader.cxx:1715 TQSampleDataReader.cxx:1716 TQSampleDataReader.cxx:1717 TQSampleDataReader.cxx:1718 TQSampleDataReader.cxx:1719 TQSampleDataReader.cxx:1720 TQSampleDataReader.cxx:1721 TQSampleDataReader.cxx:1722 TQSampleDataReader.cxx:1723 TQSampleDataReader.cxx:1724 TQSampleDataReader.cxx:1725 TQSampleDataReader.cxx:1726 TQSampleDataReader.cxx:1727 TQSampleDataReader.cxx:1728 TQSampleDataReader.cxx:1729 TQSampleDataReader.cxx:1730 TQSampleDataReader.cxx:1731 TQSampleDataReader.cxx:1732 TQSampleDataReader.cxx:1733 TQSampleDataReader.cxx:1734 TQSampleDataReader.cxx:1735 TQSampleDataReader.cxx:1736 TQSampleDataReader.cxx:1737 TQSampleDataReader.cxx:1738 TQSampleDataReader.cxx:1739 TQSampleDataReader.cxx:1740 TQSampleDataReader.cxx:1741 TQSampleDataReader.cxx:1742 TQSampleDataReader.cxx:1743 TQSampleDataReader.cxx:1744 TQSampleDataReader.cxx:1745 TQSampleDataReader.cxx:1746 TQSampleDataReader.cxx:1747 TQSampleDataReader.cxx:1748 TQSampleDataReader.cxx:1749 TQSampleDataReader.cxx:1750 TQSampleDataReader.cxx:1751 TQSampleDataReader.cxx:1752 TQSampleDataReader.cxx:1753 TQSampleDataReader.cxx:1754 TQSampleDataReader.cxx:1755 TQSampleDataReader.cxx:1756 TQSampleDataReader.cxx:1757 TQSampleDataReader.cxx:1758 TQSampleDataReader.cxx:1759 TQSampleDataReader.cxx:1760 TQSampleDataReader.cxx:1761 TQSampleDataReader.cxx:1762 TQSampleDataReader.cxx:1763 TQSampleDataReader.cxx:1764 TQSampleDataReader.cxx:1765 TQSampleDataReader.cxx:1766 TQSampleDataReader.cxx:1767 TQSampleDataReader.cxx:1768 TQSampleDataReader.cxx:1769 TQSampleDataReader.cxx:1770 TQSampleDataReader.cxx:1771 TQSampleDataReader.cxx:1772 TQSampleDataReader.cxx:1773 TQSampleDataReader.cxx:1774 TQSampleDataReader.cxx:1775 TQSampleDataReader.cxx:1776 TQSampleDataReader.cxx:1777 TQSampleDataReader.cxx:1778 TQSampleDataReader.cxx:1779 TQSampleDataReader.cxx:1780 TQSampleDataReader.cxx:1781 TQSampleDataReader.cxx:1782 TQSampleDataReader.cxx:1783 TQSampleDataReader.cxx:1784 TQSampleDataReader.cxx:1785 TQSampleDataReader.cxx:1786 TQSampleDataReader.cxx:1787 TQSampleDataReader.cxx:1788 TQSampleDataReader.cxx:1789 TQSampleDataReader.cxx:1790 TQSampleDataReader.cxx:1791 TQSampleDataReader.cxx:1792 TQSampleDataReader.cxx:1793 TQSampleDataReader.cxx:1794 TQSampleDataReader.cxx:1795 TQSampleDataReader.cxx:1796 TQSampleDataReader.cxx:1797 TQSampleDataReader.cxx:1798 TQSampleDataReader.cxx:1799 TQSampleDataReader.cxx:1800 TQSampleDataReader.cxx:1801 TQSampleDataReader.cxx:1802 TQSampleDataReader.cxx:1803 TQSampleDataReader.cxx:1804 TQSampleDataReader.cxx:1805 TQSampleDataReader.cxx:1806 TQSampleDataReader.cxx:1807 TQSampleDataReader.cxx:1808 TQSampleDataReader.cxx:1809 TQSampleDataReader.cxx:1810 TQSampleDataReader.cxx:1811 TQSampleDataReader.cxx:1812 TQSampleDataReader.cxx:1813 TQSampleDataReader.cxx:1814 TQSampleDataReader.cxx:1815 TQSampleDataReader.cxx:1816 TQSampleDataReader.cxx:1817 TQSampleDataReader.cxx:1818 TQSampleDataReader.cxx:1819 TQSampleDataReader.cxx:1820 TQSampleDataReader.cxx:1821 TQSampleDataReader.cxx:1822 TQSampleDataReader.cxx:1823 TQSampleDataReader.cxx:1824 TQSampleDataReader.cxx:1825 TQSampleDataReader.cxx:1826 TQSampleDataReader.cxx:1827 TQSampleDataReader.cxx:1828 TQSampleDataReader.cxx:1829 TQSampleDataReader.cxx:1830 TQSampleDataReader.cxx:1831 TQSampleDataReader.cxx:1832 TQSampleDataReader.cxx:1833 TQSampleDataReader.cxx:1834 TQSampleDataReader.cxx:1835 TQSampleDataReader.cxx:1836 TQSampleDataReader.cxx:1837 TQSampleDataReader.cxx:1838 TQSampleDataReader.cxx:1839 TQSampleDataReader.cxx:1840 TQSampleDataReader.cxx:1841 TQSampleDataReader.cxx:1842 TQSampleDataReader.cxx:1843 TQSampleDataReader.cxx:1844 TQSampleDataReader.cxx:1845 TQSampleDataReader.cxx:1846 TQSampleDataReader.cxx:1847 TQSampleDataReader.cxx:1848 TQSampleDataReader.cxx:1849 TQSampleDataReader.cxx:1850 TQSampleDataReader.cxx:1851 TQSampleDataReader.cxx:1852 TQSampleDataReader.cxx:1853 TQSampleDataReader.cxx:1854 TQSampleDataReader.cxx:1855 TQSampleDataReader.cxx:1856 TQSampleDataReader.cxx:1857 TQSampleDataReader.cxx:1858 TQSampleDataReader.cxx:1859 TQSampleDataReader.cxx:1860 TQSampleDataReader.cxx:1861 TQSampleDataReader.cxx:1862 TQSampleDataReader.cxx:1863 TQSampleDataReader.cxx:1864 TQSampleDataReader.cxx:1865 TQSampleDataReader.cxx:1866 TQSampleDataReader.cxx:1867 TQSampleDataReader.cxx:1868 TQSampleDataReader.cxx:1869 TQSampleDataReader.cxx:1870 TQSampleDataReader.cxx:1871 TQSampleDataReader.cxx:1872 TQSampleDataReader.cxx:1873 TQSampleDataReader.cxx:1874 TQSampleDataReader.cxx:1875 TQSampleDataReader.cxx:1876 TQSampleDataReader.cxx:1877 TQSampleDataReader.cxx:1878 TQSampleDataReader.cxx:1879 TQSampleDataReader.cxx:1880 TQSampleDataReader.cxx:1881 TQSampleDataReader.cxx:1882 TQSampleDataReader.cxx:1883 TQSampleDataReader.cxx:1884 TQSampleDataReader.cxx:1885 TQSampleDataReader.cxx:1886 TQSampleDataReader.cxx:1887 TQSampleDataReader.cxx:1888 TQSampleDataReader.cxx:1889 TQSampleDataReader.cxx:1890 TQSampleDataReader.cxx:1891 TQSampleDataReader.cxx:1892 TQSampleDataReader.cxx:1893 TQSampleDataReader.cxx:1894 TQSampleDataReader.cxx:1895 TQSampleDataReader.cxx:1896 TQSampleDataReader.cxx:1897 TQSampleDataReader.cxx:1898 TQSampleDataReader.cxx:1899 TQSampleDataReader.cxx:1900 TQSampleDataReader.cxx:1901 TQSampleDataReader.cxx:1902 TQSampleDataReader.cxx:1903 TQSampleDataReader.cxx:1904 TQSampleDataReader.cxx:1905 TQSampleDataReader.cxx:1906 TQSampleDataReader.cxx:1907 TQSampleDataReader.cxx:1908 TQSampleDataReader.cxx:1909 TQSampleDataReader.cxx:1910 TQSampleDataReader.cxx:1911 TQSampleDataReader.cxx:1912 TQSampleDataReader.cxx:1913 TQSampleDataReader.cxx:1914 TQSampleDataReader.cxx:1915 TQSampleDataReader.cxx:1916 TQSampleDataReader.cxx:1917 TQSampleDataReader.cxx:1918 TQSampleDataReader.cxx:1919 TQSampleDataReader.cxx:1920 TQSampleDataReader.cxx:1921 TQSampleDataReader.cxx:1922 TQSampleDataReader.cxx:1923 TQSampleDataReader.cxx:1924 TQSampleDataReader.cxx:1925 TQSampleDataReader.cxx:1926 TQSampleDataReader.cxx:1927 TQSampleDataReader.cxx:1928 TQSampleDataReader.cxx:1929 TQSampleDataReader.cxx:1930 TQSampleDataReader.cxx:1931 TQSampleDataReader.cxx:1932 TQSampleDataReader.cxx:1933 TQSampleDataReader.cxx:1934 TQSampleDataReader.cxx:1935 TQSampleDataReader.cxx:1936 TQSampleDataReader.cxx:1937 TQSampleDataReader.cxx:1938 TQSampleDataReader.cxx:1939 TQSampleDataReader.cxx:1940 TQSampleDataReader.cxx:1941 TQSampleDataReader.cxx:1942 TQSampleDataReader.cxx:1943 TQSampleDataReader.cxx:1944 TQSampleDataReader.cxx:1945 TQSampleDataReader.cxx:1946 TQSampleDataReader.cxx:1947 TQSampleDataReader.cxx:1948 TQSampleDataReader.cxx:1949 TQSampleDataReader.cxx:1950 TQSampleDataReader.cxx:1951 TQSampleDataReader.cxx:1952 TQSampleDataReader.cxx:1953 TQSampleDataReader.cxx:1954 TQSampleDataReader.cxx:1955 TQSampleDataReader.cxx:1956 TQSampleDataReader.cxx:1957 TQSampleDataReader.cxx:1958 TQSampleDataReader.cxx:1959 TQSampleDataReader.cxx:1960 TQSampleDataReader.cxx:1961 TQSampleDataReader.cxx:1962 TQSampleDataReader.cxx:1963 TQSampleDataReader.cxx:1964 TQSampleDataReader.cxx:1965 TQSampleDataReader.cxx:1966 TQSampleDataReader.cxx:1967 TQSampleDataReader.cxx:1968 TQSampleDataReader.cxx:1969 TQSampleDataReader.cxx:1970 TQSampleDataReader.cxx:1971 TQSampleDataReader.cxx:1972 TQSampleDataReader.cxx:1973 TQSampleDataReader.cxx:1974 TQSampleDataReader.cxx:1975 TQSampleDataReader.cxx:1976 TQSampleDataReader.cxx:1977 TQSampleDataReader.cxx:1978 TQSampleDataReader.cxx:1979 TQSampleDataReader.cxx:1980 TQSampleDataReader.cxx:1981 TQSampleDataReader.cxx:1982 TQSampleDataReader.cxx:1983 TQSampleDataReader.cxx:1984 TQSampleDataReader.cxx:1985 TQSampleDataReader.cxx:1986 TQSampleDataReader.cxx:1987 TQSampleDataReader.cxx:1988 TQSampleDataReader.cxx:1989 TQSampleDataReader.cxx:1990 TQSampleDataReader.cxx:1991 TQSampleDataReader.cxx:1992 TQSampleDataReader.cxx:1993 TQSampleDataReader.cxx:1994 TQSampleDataReader.cxx:1995 TQSampleDataReader.cxx:1996 TQSampleDataReader.cxx:1997 TQSampleDataReader.cxx:1998 TQSampleDataReader.cxx:1999 TQSampleDataReader.cxx:2000 TQSampleDataReader.cxx:2001 TQSampleDataReader.cxx:2002 TQSampleDataReader.cxx:2003 TQSampleDataReader.cxx:2004 TQSampleDataReader.cxx:2005 TQSampleDataReader.cxx:2006 TQSampleDataReader.cxx:2007 TQSampleDataReader.cxx:2008 TQSampleDataReader.cxx:2009 TQSampleDataReader.cxx:2010 TQSampleDataReader.cxx:2011 TQSampleDataReader.cxx:2012 TQSampleDataReader.cxx:2013 TQSampleDataReader.cxx:2014 TQSampleDataReader.cxx:2015 TQSampleDataReader.cxx:2016 TQSampleDataReader.cxx:2017 TQSampleDataReader.cxx:2018 TQSampleDataReader.cxx:2019 TQSampleDataReader.cxx:2020 TQSampleDataReader.cxx:2021 TQSampleDataReader.cxx:2022 TQSampleDataReader.cxx:2023 TQSampleDataReader.cxx:2024 TQSampleDataReader.cxx:2025 TQSampleDataReader.cxx:2026 TQSampleDataReader.cxx:2027 TQSampleDataReader.cxx:2028 TQSampleDataReader.cxx:2029 TQSampleDataReader.cxx:2030 TQSampleDataReader.cxx:2031 TQSampleDataReader.cxx:2032 TQSampleDataReader.cxx:2033 TQSampleDataReader.cxx:2034 TQSampleDataReader.cxx:2035 TQSampleDataReader.cxx:2036 TQSampleDataReader.cxx:2037 TQSampleDataReader.cxx:2038 TQSampleDataReader.cxx:2039 TQSampleDataReader.cxx:2040 TQSampleDataReader.cxx:2041 TQSampleDataReader.cxx:2042 TQSampleDataReader.cxx:2043 TQSampleDataReader.cxx:2044 TQSampleDataReader.cxx:2045 TQSampleDataReader.cxx:2046 TQSampleDataReader.cxx:2047 TQSampleDataReader.cxx:2048 TQSampleDataReader.cxx:2049 TQSampleDataReader.cxx:2050 TQSampleDataReader.cxx:2051 TQSampleDataReader.cxx:2052 TQSampleDataReader.cxx:2053 TQSampleDataReader.cxx:2054 TQSampleDataReader.cxx:2055 TQSampleDataReader.cxx:2056 TQSampleDataReader.cxx:2057 TQSampleDataReader.cxx:2058 TQSampleDataReader.cxx:2059 TQSampleDataReader.cxx:2060 TQSampleDataReader.cxx:2061 TQSampleDataReader.cxx:2062 TQSampleDataReader.cxx:2063 TQSampleDataReader.cxx:2064 TQSampleDataReader.cxx:2065 TQSampleDataReader.cxx:2066 TQSampleDataReader.cxx:2067 TQSampleDataReader.cxx:2068 TQSampleDataReader.cxx:2069 TQSampleDataReader.cxx:2070 TQSampleDataReader.cxx:2071 TQSampleDataReader.cxx:2072 TQSampleDataReader.cxx:2073 TQSampleDataReader.cxx:2074 TQSampleDataReader.cxx:2075 TQSampleDataReader.cxx:2076 TQSampleDataReader.cxx:2077 TQSampleDataReader.cxx:2078 TQSampleDataReader.cxx:2079 TQSampleDataReader.cxx:2080 TQSampleDataReader.cxx:2081 TQSampleDataReader.cxx:2082 TQSampleDataReader.cxx:2083 TQSampleDataReader.cxx:2084 TQSampleDataReader.cxx:2085 TQSampleDataReader.cxx:2086 TQSampleDataReader.cxx:2087 TQSampleDataReader.cxx:2088 TQSampleDataReader.cxx:2089 TQSampleDataReader.cxx:2090 TQSampleDataReader.cxx:2091 TQSampleDataReader.cxx:2092 TQSampleDataReader.cxx:2093 TQSampleDataReader.cxx:2094 TQSampleDataReader.cxx:2095 TQSampleDataReader.cxx:2096 TQSampleDataReader.cxx:2097 TQSampleDataReader.cxx:2098 TQSampleDataReader.cxx:2099 TQSampleDataReader.cxx:2100 TQSampleDataReader.cxx:2101 TQSampleDataReader.cxx:2102 TQSampleDataReader.cxx:2103 TQSampleDataReader.cxx:2104 TQSampleDataReader.cxx:2105 TQSampleDataReader.cxx:2106 TQSampleDataReader.cxx:2107 TQSampleDataReader.cxx:2108 TQSampleDataReader.cxx:2109 TQSampleDataReader.cxx:2110 TQSampleDataReader.cxx:2111 TQSampleDataReader.cxx:2112 TQSampleDataReader.cxx:2113 TQSampleDataReader.cxx:2114 TQSampleDataReader.cxx:2115 TQSampleDataReader.cxx:2116 TQSampleDataReader.cxx:2117 TQSampleDataReader.cxx:2118 TQSampleDataReader.cxx:2119 TQSampleDataReader.cxx:2120 TQSampleDataReader.cxx:2121 TQSampleDataReader.cxx:2122 TQSampleDataReader.cxx:2123 TQSampleDataReader.cxx:2124 TQSampleDataReader.cxx:2125 TQSampleDataReader.cxx:2126 TQSampleDataReader.cxx:2127 TQSampleDataReader.cxx:2128 TQSampleDataReader.cxx:2129 TQSampleDataReader.cxx:2130 TQSampleDataReader.cxx:2131 TQSampleDataReader.cxx:2132 TQSampleDataReader.cxx:2133 TQSampleDataReader.cxx:2134 TQSampleDataReader.cxx:2135 TQSampleDataReader.cxx:2136 TQSampleDataReader.cxx:2137 TQSampleDataReader.cxx:2138 TQSampleDataReader.cxx:2139 TQSampleDataReader.cxx:2140 TQSampleDataReader.cxx:2141 TQSampleDataReader.cxx:2142 TQSampleDataReader.cxx:2143 TQSampleDataReader.cxx:2144 TQSampleDataReader.cxx:2145 TQSampleDataReader.cxx:2146 TQSampleDataReader.cxx:2147 TQSampleDataReader.cxx:2148 TQSampleDataReader.cxx:2149 TQSampleDataReader.cxx:2150 TQSampleDataReader.cxx:2151 TQSampleDataReader.cxx:2152 TQSampleDataReader.cxx:2153 TQSampleDataReader.cxx:2154 TQSampleDataReader.cxx:2155 TQSampleDataReader.cxx:2156 TQSampleDataReader.cxx:2157 TQSampleDataReader.cxx:2158 TQSampleDataReader.cxx:2159 TQSampleDataReader.cxx:2160 TQSampleDataReader.cxx:2161 TQSampleDataReader.cxx:2162 TQSampleDataReader.cxx:2163 TQSampleDataReader.cxx:2164 TQSampleDataReader.cxx:2165 TQSampleDataReader.cxx:2166 TQSampleDataReader.cxx:2167 TQSampleDataReader.cxx:2168 TQSampleDataReader.cxx:2169 TQSampleDataReader.cxx:2170 TQSampleDataReader.cxx:2171 TQSampleDataReader.cxx:2172 TQSampleDataReader.cxx:2173 TQSampleDataReader.cxx:2174 TQSampleDataReader.cxx:2175 TQSampleDataReader.cxx:2176 TQSampleDataReader.cxx:2177 TQSampleDataReader.cxx:2178 TQSampleDataReader.cxx:2179 TQSampleDataReader.cxx:2180 TQSampleDataReader.cxx:2181 TQSampleDataReader.cxx:2182 TQSampleDataReader.cxx:2183 TQSampleDataReader.cxx:2184 TQSampleDataReader.cxx:2185 TQSampleDataReader.cxx:2186 TQSampleDataReader.cxx:2187 TQSampleDataReader.cxx:2188 TQSampleDataReader.cxx:2189 TQSampleDataReader.cxx:2190 TQSampleDataReader.cxx:2191 TQSampleDataReader.cxx:2192 TQSampleDataReader.cxx:2193 TQSampleDataReader.cxx:2194 TQSampleDataReader.cxx:2195 TQSampleDataReader.cxx:2196 TQSampleDataReader.cxx:2197 TQSampleDataReader.cxx:2198 TQSampleDataReader.cxx:2199 TQSampleDataReader.cxx:2200 TQSampleDataReader.cxx:2201 TQSampleDataReader.cxx:2202 TQSampleDataReader.cxx:2203 TQSampleDataReader.cxx:2204 TQSampleDataReader.cxx:2205 TQSampleDataReader.cxx:2206 TQSampleDataReader.cxx:2207 TQSampleDataReader.cxx:2208 TQSampleDataReader.cxx:2209 TQSampleDataReader.cxx:2210 TQSampleDataReader.cxx:2211 TQSampleDataReader.cxx:2212 TQSampleDataReader.cxx:2213 TQSampleDataReader.cxx:2214 TQSampleDataReader.cxx:2215 TQSampleDataReader.cxx:2216 TQSampleDataReader.cxx:2217 TQSampleDataReader.cxx:2218 TQSampleDataReader.cxx:2219 TQSampleDataReader.cxx:2220 TQSampleDataReader.cxx:2221 TQSampleDataReader.cxx:2222 TQSampleDataReader.cxx:2223 TQSampleDataReader.cxx:2224 TQSampleDataReader.cxx:2225 TQSampleDataReader.cxx:2226 TQSampleDataReader.cxx:2227 TQSampleDataReader.cxx:2228 TQSampleDataReader.cxx:2229 TQSampleDataReader.cxx:2230 TQSampleDataReader.cxx:2231 TQSampleDataReader.cxx:2232 TQSampleDataReader.cxx:2233 TQSampleDataReader.cxx:2234 TQSampleDataReader.cxx:2235 TQSampleDataReader.cxx:2236 TQSampleDataReader.cxx:2237 TQSampleDataReader.cxx:2238 TQSampleDataReader.cxx:2239 TQSampleDataReader.cxx:2240 TQSampleDataReader.cxx:2241 TQSampleDataReader.cxx:2242 TQSampleDataReader.cxx:2243 TQSampleDataReader.cxx:2244 TQSampleDataReader.cxx:2245 TQSampleDataReader.cxx:2246 TQSampleDataReader.cxx:2247 TQSampleDataReader.cxx:2248 TQSampleDataReader.cxx:2249 TQSampleDataReader.cxx:2250 TQSampleDataReader.cxx:2251 TQSampleDataReader.cxx:2252 TQSampleDataReader.cxx:2253 TQSampleDataReader.cxx:2254 TQSampleDataReader.cxx:2255 TQSampleDataReader.cxx:2256 TQSampleDataReader.cxx:2257 TQSampleDataReader.cxx:2258 TQSampleDataReader.cxx:2259 TQSampleDataReader.cxx:2260 TQSampleDataReader.cxx:2261 TQSampleDataReader.cxx:2262 TQSampleDataReader.cxx:2263 TQSampleDataReader.cxx:2264 TQSampleDataReader.cxx:2265 TQSampleDataReader.cxx:2266 TQSampleDataReader.cxx:2267 TQSampleDataReader.cxx:2268 TQSampleDataReader.cxx:2269 TQSampleDataReader.cxx:2270 TQSampleDataReader.cxx:2271 TQSampleDataReader.cxx:2272 TQSampleDataReader.cxx:2273 TQSampleDataReader.cxx:2274 TQSampleDataReader.cxx:2275 TQSampleDataReader.cxx:2276 TQSampleDataReader.cxx:2277 TQSampleDataReader.cxx:2278 TQSampleDataReader.cxx:2279 TQSampleDataReader.cxx:2280 TQSampleDataReader.cxx:2281 TQSampleDataReader.cxx:2282 TQSampleDataReader.cxx:2283 TQSampleDataReader.cxx:2284 TQSampleDataReader.cxx:2285 TQSampleDataReader.cxx:2286 TQSampleDataReader.cxx:2287 TQSampleDataReader.cxx:2288 TQSampleDataReader.cxx:2289 TQSampleDataReader.cxx:2290 TQSampleDataReader.cxx:2291 TQSampleDataReader.cxx:2292 TQSampleDataReader.cxx:2293 TQSampleDataReader.cxx:2294 TQSampleDataReader.cxx:2295 TQSampleDataReader.cxx:2296 TQSampleDataReader.cxx:2297 TQSampleDataReader.cxx:2298 TQSampleDataReader.cxx:2299 TQSampleDataReader.cxx:2300 TQSampleDataReader.cxx:2301 TQSampleDataReader.cxx:2302 TQSampleDataReader.cxx:2303 TQSampleDataReader.cxx:2304 TQSampleDataReader.cxx:2305 TQSampleDataReader.cxx:2306 TQSampleDataReader.cxx:2307 TQSampleDataReader.cxx:2308 TQSampleDataReader.cxx:2309 TQSampleDataReader.cxx:2310 TQSampleDataReader.cxx:2311 TQSampleDataReader.cxx:2312 TQSampleDataReader.cxx:2313 TQSampleDataReader.cxx:2314 TQSampleDataReader.cxx:2315 TQSampleDataReader.cxx:2316 TQSampleDataReader.cxx:2317 TQSampleDataReader.cxx:2318 TQSampleDataReader.cxx:2319 TQSampleDataReader.cxx:2320 TQSampleDataReader.cxx:2321 TQSampleDataReader.cxx:2322 TQSampleDataReader.cxx:2323 TQSampleDataReader.cxx:2324 TQSampleDataReader.cxx:2325 TQSampleDataReader.cxx:2326 TQSampleDataReader.cxx:2327 TQSampleDataReader.cxx:2328 TQSampleDataReader.cxx:2329 TQSampleDataReader.cxx:2330 TQSampleDataReader.cxx:2331 TQSampleDataReader.cxx:2332 TQSampleDataReader.cxx:2333 TQSampleDataReader.cxx:2334 TQSampleDataReader.cxx:2335 TQSampleDataReader.cxx:2336 TQSampleDataReader.cxx:2337 TQSampleDataReader.cxx:2338 TQSampleDataReader.cxx:2339 TQSampleDataReader.cxx:2340 TQSampleDataReader.cxx:2341 TQSampleDataReader.cxx:2342 TQSampleDataReader.cxx:2343 TQSampleDataReader.cxx:2344 TQSampleDataReader.cxx:2345 TQSampleDataReader.cxx:2346 TQSampleDataReader.cxx:2347 TQSampleDataReader.cxx:2348 TQSampleDataReader.cxx:2349 TQSampleDataReader.cxx:2350 TQSampleDataReader.cxx:2351 TQSampleDataReader.cxx:2352 TQSampleDataReader.cxx:2353 TQSampleDataReader.cxx:2354 TQSampleDataReader.cxx:2355 TQSampleDataReader.cxx:2356 TQSampleDataReader.cxx:2357 TQSampleDataReader.cxx:2358 TQSampleDataReader.cxx:2359 TQSampleDataReader.cxx:2360 TQSampleDataReader.cxx:2361 TQSampleDataReader.cxx:2362 TQSampleDataReader.cxx:2363 TQSampleDataReader.cxx:2364 TQSampleDataReader.cxx:2365 TQSampleDataReader.cxx:2366 TQSampleDataReader.cxx:2367 TQSampleDataReader.cxx:2368 TQSampleDataReader.cxx:2369 TQSampleDataReader.cxx:2370 TQSampleDataReader.cxx:2371 TQSampleDataReader.cxx:2372 TQSampleDataReader.cxx:2373 TQSampleDataReader.cxx:2374 TQSampleDataReader.cxx:2375 TQSampleDataReader.cxx:2376 TQSampleDataReader.cxx:2377 TQSampleDataReader.cxx:2378 TQSampleDataReader.cxx:2379 TQSampleDataReader.cxx:2380 TQSampleDataReader.cxx:2381 TQSampleDataReader.cxx:2382 TQSampleDataReader.cxx:2383 TQSampleDataReader.cxx:2384 TQSampleDataReader.cxx:2385 TQSampleDataReader.cxx:2386 TQSampleDataReader.cxx:2387 TQSampleDataReader.cxx:2388 TQSampleDataReader.cxx:2389 TQSampleDataReader.cxx:2390 TQSampleDataReader.cxx:2391 TQSampleDataReader.cxx:2392 TQSampleDataReader.cxx:2393 TQSampleDataReader.cxx:2394 TQSampleDataReader.cxx:2395 TQSampleDataReader.cxx:2396 TQSampleDataReader.cxx:2397 TQSampleDataReader.cxx:2398 TQSampleDataReader.cxx:2399 TQSampleDataReader.cxx:2400 TQSampleDataReader.cxx:2401 TQSampleDataReader.cxx:2402 TQSampleDataReader.cxx:2403 TQSampleDataReader.cxx:2404 TQSampleDataReader.cxx:2405 TQSampleDataReader.cxx:2406 TQSampleDataReader.cxx:2407 TQSampleDataReader.cxx:2408 TQSampleDataReader.cxx:2409 TQSampleDataReader.cxx:2410 TQSampleDataReader.cxx:2411 TQSampleDataReader.cxx:2412 TQSampleDataReader.cxx:2413 TQSampleDataReader.cxx:2414 TQSampleDataReader.cxx:2415 TQSampleDataReader.cxx:2416 TQSampleDataReader.cxx:2417 TQSampleDataReader.cxx:2418 TQSampleDataReader.cxx:2419 TQSampleDataReader.cxx:2420 TQSampleDataReader.cxx:2421 TQSampleDataReader.cxx:2422 TQSampleDataReader.cxx:2423 TQSampleDataReader.cxx:2424 TQSampleDataReader.cxx:2425 TQSampleDataReader.cxx:2426 TQSampleDataReader.cxx:2427 TQSampleDataReader.cxx:2428 TQSampleDataReader.cxx:2429 TQSampleDataReader.cxx:2430 TQSampleDataReader.cxx:2431 TQSampleDataReader.cxx:2432 TQSampleDataReader.cxx:2433 TQSampleDataReader.cxx:2434 TQSampleDataReader.cxx:2435 TQSampleDataReader.cxx:2436 TQSampleDataReader.cxx:2437 TQSampleDataReader.cxx:2438 TQSampleDataReader.cxx:2439 TQSampleDataReader.cxx:2440 TQSampleDataReader.cxx:2441 TQSampleDataReader.cxx:2442 TQSampleDataReader.cxx:2443 TQSampleDataReader.cxx:2444 TQSampleDataReader.cxx:2445 TQSampleDataReader.cxx:2446 TQSampleDataReader.cxx:2447 TQSampleDataReader.cxx:2448 TQSampleDataReader.cxx:2449 TQSampleDataReader.cxx:2450 TQSampleDataReader.cxx:2451 TQSampleDataReader.cxx:2452 TQSampleDataReader.cxx:2453 TQSampleDataReader.cxx:2454 TQSampleDataReader.cxx:2455 TQSampleDataReader.cxx:2456 TQSampleDataReader.cxx:2457 TQSampleDataReader.cxx:2458 TQSampleDataReader.cxx:2459 TQSampleDataReader.cxx:2460 TQSampleDataReader.cxx:2461 TQSampleDataReader.cxx:2462 TQSampleDataReader.cxx:2463 TQSampleDataReader.cxx:2464 TQSampleDataReader.cxx:2465 TQSampleDataReader.cxx:2466 TQSampleDataReader.cxx:2467 TQSampleDataReader.cxx:2468 TQSampleDataReader.cxx:2469 TQSampleDataReader.cxx:2470 TQSampleDataReader.cxx:2471 TQSampleDataReader.cxx:2472 TQSampleDataReader.cxx:2473 TQSampleDataReader.cxx:2474 TQSampleDataReader.cxx:2475 TQSampleDataReader.cxx:2476 TQSampleDataReader.cxx:2477 TQSampleDataReader.cxx:2478 TQSampleDataReader.cxx:2479 TQSampleDataReader.cxx:2480 TQSampleDataReader.cxx:2481 TQSampleDataReader.cxx:2482 TQSampleDataReader.cxx:2483 TQSampleDataReader.cxx:2484 TQSampleDataReader.cxx:2485 TQSampleDataReader.cxx:2486 TQSampleDataReader.cxx:2487 TQSampleDataReader.cxx:2488 TQSampleDataReader.cxx:2489 TQSampleDataReader.cxx:2490 TQSampleDataReader.cxx:2491 TQSampleDataReader.cxx:2492 TQSampleDataReader.cxx:2493 TQSampleDataReader.cxx:2494 TQSampleDataReader.cxx:2495 TQSampleDataReader.cxx:2496 TQSampleDataReader.cxx:2497 TQSampleDataReader.cxx:2498 TQSampleDataReader.cxx:2499 TQSampleDataReader.cxx:2500 TQSampleDataReader.cxx:2501 TQSampleDataReader.cxx:2502 TQSampleDataReader.cxx:2503 TQSampleDataReader.cxx:2504 TQSampleDataReader.cxx:2505 TQSampleDataReader.cxx:2506 TQSampleDataReader.cxx:2507 TQSampleDataReader.cxx:2508 TQSampleDataReader.cxx:2509 TQSampleDataReader.cxx:2510 TQSampleDataReader.cxx:2511 TQSampleDataReader.cxx:2512 TQSampleDataReader.cxx:2513 TQSampleDataReader.cxx:2514 TQSampleDataReader.cxx:2515 TQSampleDataReader.cxx:2516 TQSampleDataReader.cxx:2517 TQSampleDataReader.cxx:2518 TQSampleDataReader.cxx:2519 TQSampleDataReader.cxx:2520 TQSampleDataReader.cxx:2521 TQSampleDataReader.cxx:2522 TQSampleDataReader.cxx:2523 TQSampleDataReader.cxx:2524 TQSampleDataReader.cxx:2525 TQSampleDataReader.cxx:2526 TQSampleDataReader.cxx:2527 TQSampleDataReader.cxx:2528 TQSampleDataReader.cxx:2529 TQSampleDataReader.cxx:2530 TQSampleDataReader.cxx:2531 TQSampleDataReader.cxx:2532 TQSampleDataReader.cxx:2533 TQSampleDataReader.cxx:2534 TQSampleDataReader.cxx:2535 TQSampleDataReader.cxx:2536 TQSampleDataReader.cxx:2537 TQSampleDataReader.cxx:2538 TQSampleDataReader.cxx:2539 TQSampleDataReader.cxx:2540 TQSampleDataReader.cxx:2541 TQSampleDataReader.cxx:2542 TQSampleDataReader.cxx:2543 TQSampleDataReader.cxx:2544 TQSampleDataReader.cxx:2545 TQSampleDataReader.cxx:2546 TQSampleDataReader.cxx:2547 TQSampleDataReader.cxx:2548 TQSampleDataReader.cxx:2549 TQSampleDataReader.cxx:2550 TQSampleDataReader.cxx:2551 TQSampleDataReader.cxx:2552 TQSampleDataReader.cxx:2553 TQSampleDataReader.cxx:2554 TQSampleDataReader.cxx:2555 TQSampleDataReader.cxx:2556 TQSampleDataReader.cxx:2557 TQSampleDataReader.cxx:2558 TQSampleDataReader.cxx:2559 TQSampleDataReader.cxx:2560 TQSampleDataReader.cxx:2561 TQSampleDataReader.cxx:2562 TQSampleDataReader.cxx:2563 TQSampleDataReader.cxx:2564 TQSampleDataReader.cxx:2565 TQSampleDataReader.cxx:2566 TQSampleDataReader.cxx:2567 TQSampleDataReader.cxx:2568 TQSampleDataReader.cxx:2569 TQSampleDataReader.cxx:2570 TQSampleDataReader.cxx:2571 TQSampleDataReader.cxx:2572 TQSampleDataReader.cxx:2573 TQSampleDataReader.cxx:2574 TQSampleDataReader.cxx:2575 TQSampleDataReader.cxx:2576 TQSampleDataReader.cxx:2577 TQSampleDataReader.cxx:2578 TQSampleDataReader.cxx:2579 TQSampleDataReader.cxx:2580 TQSampleDataReader.cxx:2581 TQSampleDataReader.cxx:2582 TQSampleDataReader.cxx:2583 TQSampleDataReader.cxx:2584 TQSampleDataReader.cxx:2585 TQSampleDataReader.cxx:2586 TQSampleDataReader.cxx:2587 TQSampleDataReader.cxx:2588 TQSampleDataReader.cxx:2589 TQSampleDataReader.cxx:2590 TQSampleDataReader.cxx:2591 TQSampleDataReader.cxx:2592 TQSampleDataReader.cxx:2593 TQSampleDataReader.cxx:2594 TQSampleDataReader.cxx:2595 TQSampleDataReader.cxx:2596 TQSampleDataReader.cxx:2597 TQSampleDataReader.cxx:2598 TQSampleDataReader.cxx:2599 TQSampleDataReader.cxx:2600 TQSampleDataReader.cxx:2601 TQSampleDataReader.cxx:2602 TQSampleDataReader.cxx:2603 TQSampleDataReader.cxx:2604 TQSampleDataReader.cxx:2605 TQSampleDataReader.cxx:2606 TQSampleDataReader.cxx:2607 TQSampleDataReader.cxx:2608 TQSampleDataReader.cxx:2609 TQSampleDataReader.cxx:2610 TQSampleDataReader.cxx:2611 TQSampleDataReader.cxx:2612 TQSampleDataReader.cxx:2613 TQSampleDataReader.cxx:2614 TQSampleDataReader.cxx:2615 TQSampleDataReader.cxx:2616 TQSampleDataReader.cxx:2617 TQSampleDataReader.cxx:2618 TQSampleDataReader.cxx:2619 TQSampleDataReader.cxx:2620 TQSampleDataReader.cxx:2621 TQSampleDataReader.cxx:2622 TQSampleDataReader.cxx:2623 TQSampleDataReader.cxx:2624 TQSampleDataReader.cxx:2625 TQSampleDataReader.cxx:2626 TQSampleDataReader.cxx:2627 TQSampleDataReader.cxx:2628 TQSampleDataReader.cxx:2629 TQSampleDataReader.cxx:2630 TQSampleDataReader.cxx:2631 TQSampleDataReader.cxx:2632 TQSampleDataReader.cxx:2633 TQSampleDataReader.cxx:2634 TQSampleDataReader.cxx:2635 TQSampleDataReader.cxx:2636 TQSampleDataReader.cxx:2637 TQSampleDataReader.cxx:2638 TQSampleDataReader.cxx:2639 TQSampleDataReader.cxx:2640 TQSampleDataReader.cxx:2641 TQSampleDataReader.cxx:2642 TQSampleDataReader.cxx:2643 TQSampleDataReader.cxx:2644 TQSampleDataReader.cxx:2645 TQSampleDataReader.cxx:2646 TQSampleDataReader.cxx:2647 TQSampleDataReader.cxx:2648 TQSampleDataReader.cxx:2649 TQSampleDataReader.cxx:2650 TQSampleDataReader.cxx:2651 TQSampleDataReader.cxx:2652 TQSampleDataReader.cxx:2653 TQSampleDataReader.cxx:2654 TQSampleDataReader.cxx:2655 TQSampleDataReader.cxx:2656 TQSampleDataReader.cxx:2657 TQSampleDataReader.cxx:2658 TQSampleDataReader.cxx:2659 TQSampleDataReader.cxx:2660 TQSampleDataReader.cxx:2661 TQSampleDataReader.cxx:2662 TQSampleDataReader.cxx:2663 TQSampleDataReader.cxx:2664 TQSampleDataReader.cxx:2665 TQSampleDataReader.cxx:2666 TQSampleDataReader.cxx:2667 TQSampleDataReader.cxx:2668 TQSampleDataReader.cxx:2669 TQSampleDataReader.cxx:2670 TQSampleDataReader.cxx:2671 TQSampleDataReader.cxx:2672 TQSampleDataReader.cxx:2673 TQSampleDataReader.cxx:2674 TQSampleDataReader.cxx:2675 TQSampleDataReader.cxx:2676 TQSampleDataReader.cxx:2677 TQSampleDataReader.cxx:2678 TQSampleDataReader.cxx:2679 TQSampleDataReader.cxx:2680 TQSampleDataReader.cxx:2681 TQSampleDataReader.cxx:2682 TQSampleDataReader.cxx:2683 TQSampleDataReader.cxx:2684 TQSampleDataReader.cxx:2685 TQSampleDataReader.cxx:2686 TQSampleDataReader.cxx:2687 TQSampleDataReader.cxx:2688 TQSampleDataReader.cxx:2689 TQSampleDataReader.cxx:2690 TQSampleDataReader.cxx:2691 TQSampleDataReader.cxx:2692 TQSampleDataReader.cxx:2693 TQSampleDataReader.cxx:2694 TQSampleDataReader.cxx:2695 TQSampleDataReader.cxx:2696 TQSampleDataReader.cxx:2697 TQSampleDataReader.cxx:2698 TQSampleDataReader.cxx:2699 TQSampleDataReader.cxx:2700 TQSampleDataReader.cxx:2701 TQSampleDataReader.cxx:2702 TQSampleDataReader.cxx:2703 TQSampleDataReader.cxx:2704 TQSampleDataReader.cxx:2705 TQSampleDataReader.cxx:2706 TQSampleDataReader.cxx:2707 TQSampleDataReader.cxx:2708 TQSampleDataReader.cxx:2709 TQSampleDataReader.cxx:2710 TQSampleDataReader.cxx:2711 TQSampleDataReader.cxx:2712 TQSampleDataReader.cxx:2713 TQSampleDataReader.cxx:2714 TQSampleDataReader.cxx:2715 TQSampleDataReader.cxx:2716 TQSampleDataReader.cxx:2717 TQSampleDataReader.cxx:2718 TQSampleDataReader.cxx:2719 TQSampleDataReader.cxx:2720 TQSampleDataReader.cxx:2721 TQSampleDataReader.cxx:2722 TQSampleDataReader.cxx:2723 TQSampleDataReader.cxx:2724 TQSampleDataReader.cxx:2725 TQSampleDataReader.cxx:2726 TQSampleDataReader.cxx:2727 TQSampleDataReader.cxx:2728 TQSampleDataReader.cxx:2729 TQSampleDataReader.cxx:2730 TQSampleDataReader.cxx:2731 TQSampleDataReader.cxx:2732 TQSampleDataReader.cxx:2733 TQSampleDataReader.cxx:2734 TQSampleDataReader.cxx:2735 TQSampleDataReader.cxx:2736 TQSampleDataReader.cxx:2737 TQSampleDataReader.cxx:2738 TQSampleDataReader.cxx:2739 TQSampleDataReader.cxx:2740 TQSampleDataReader.cxx:2741 TQSampleDataReader.cxx:2742 TQSampleDataReader.cxx:2743 TQSampleDataReader.cxx:2744 TQSampleDataReader.cxx:2745 TQSampleDataReader.cxx:2746 TQSampleDataReader.cxx:2747 TQSampleDataReader.cxx:2748 TQSampleDataReader.cxx:2749 TQSampleDataReader.cxx:2750 TQSampleDataReader.cxx:2751 TQSampleDataReader.cxx:2752 TQSampleDataReader.cxx:2753 TQSampleDataReader.cxx:2754 TQSampleDataReader.cxx:2755 TQSampleDataReader.cxx:2756 TQSampleDataReader.cxx:2757 TQSampleDataReader.cxx:2758 TQSampleDataReader.cxx:2759 TQSampleDataReader.cxx:2760 TQSampleDataReader.cxx:2761 TQSampleDataReader.cxx:2762 TQSampleDataReader.cxx:2763 TQSampleDataReader.cxx:2764 TQSampleDataReader.cxx:2765 TQSampleDataReader.cxx:2766 TQSampleDataReader.cxx:2767 TQSampleDataReader.cxx:2768 TQSampleDataReader.cxx:2769 TQSampleDataReader.cxx:2770 TQSampleDataReader.cxx:2771 TQSampleDataReader.cxx:2772 TQSampleDataReader.cxx:2773 TQSampleDataReader.cxx:2774 TQSampleDataReader.cxx:2775 TQSampleDataReader.cxx:2776 TQSampleDataReader.cxx:2777 TQSampleDataReader.cxx:2778 TQSampleDataReader.cxx:2779 TQSampleDataReader.cxx:2780 TQSampleDataReader.cxx:2781 TQSampleDataReader.cxx:2782 TQSampleDataReader.cxx:2783 TQSampleDataReader.cxx:2784 TQSampleDataReader.cxx:2785 TQSampleDataReader.cxx:2786 TQSampleDataReader.cxx:2787 TQSampleDataReader.cxx:2788 TQSampleDataReader.cxx:2789 TQSampleDataReader.cxx:2790 TQSampleDataReader.cxx:2791 TQSampleDataReader.cxx:2792 TQSampleDataReader.cxx:2793 TQSampleDataReader.cxx:2794 TQSampleDataReader.cxx:2795 TQSampleDataReader.cxx:2796 TQSampleDataReader.cxx:2797 TQSampleDataReader.cxx:2798 TQSampleDataReader.cxx:2799 TQSampleDataReader.cxx:2800 TQSampleDataReader.cxx:2801 TQSampleDataReader.cxx:2802 TQSampleDataReader.cxx:2803 TQSampleDataReader.cxx:2804 TQSampleDataReader.cxx:2805 TQSampleDataReader.cxx:2806 TQSampleDataReader.cxx:2807 TQSampleDataReader.cxx:2808 TQSampleDataReader.cxx:2809 TQSampleDataReader.cxx:2810 TQSampleDataReader.cxx:2811 TQSampleDataReader.cxx:2812 TQSampleDataReader.cxx:2813 TQSampleDataReader.cxx:2814 TQSampleDataReader.cxx:2815 TQSampleDataReader.cxx:2816 TQSampleDataReader.cxx:2817 TQSampleDataReader.cxx:2818 TQSampleDataReader.cxx:2819 TQSampleDataReader.cxx:2820 TQSampleDataReader.cxx:2821 TQSampleDataReader.cxx:2822 TQSampleDataReader.cxx:2823 TQSampleDataReader.cxx:2824 TQSampleDataReader.cxx:2825 TQSampleDataReader.cxx:2826 TQSampleDataReader.cxx:2827 TQSampleDataReader.cxx:2828 TQSampleDataReader.cxx:2829 TQSampleDataReader.cxx:2830 TQSampleDataReader.cxx:2831 TQSampleDataReader.cxx:2832 TQSampleDataReader.cxx:2833 TQSampleDataReader.cxx:2834 TQSampleDataReader.cxx:2835 TQSampleDataReader.cxx:2836 TQSampleDataReader.cxx:2837 TQSampleDataReader.cxx:2838 TQSampleDataReader.cxx:2839 TQSampleDataReader.cxx:2840 TQSampleDataReader.cxx:2841 TQSampleDataReader.cxx:2842 TQSampleDataReader.cxx:2843 TQSampleDataReader.cxx:2844 TQSampleDataReader.cxx:2845 TQSampleDataReader.cxx:2846 TQSampleDataReader.cxx:2847 TQSampleDataReader.cxx:2848 TQSampleDataReader.cxx:2849 TQSampleDataReader.cxx:2850 TQSampleDataReader.cxx:2851 TQSampleDataReader.cxx:2852 TQSampleDataReader.cxx:2853 TQSampleDataReader.cxx:2854 TQSampleDataReader.cxx:2855 TQSampleDataReader.cxx:2856 TQSampleDataReader.cxx:2857 TQSampleDataReader.cxx:2858 TQSampleDataReader.cxx:2859 TQSampleDataReader.cxx:2860 TQSampleDataReader.cxx:2861 TQSampleDataReader.cxx:2862 TQSampleDataReader.cxx:2863 TQSampleDataReader.cxx:2864 TQSampleDataReader.cxx:2865 TQSampleDataReader.cxx:2866 TQSampleDataReader.cxx:2867 TQSampleDataReader.cxx:2868 TQSampleDataReader.cxx:2869 TQSampleDataReader.cxx:2870 TQSampleDataReader.cxx:2871 TQSampleDataReader.cxx:2872 TQSampleDataReader.cxx:2873 TQSampleDataReader.cxx:2874 TQSampleDataReader.cxx:2875 TQSampleDataReader.cxx:2876 TQSampleDataReader.cxx:2877 TQSampleDataReader.cxx:2878 TQSampleDataReader.cxx:2879 TQSampleDataReader.cxx:2880 TQSampleDataReader.cxx:2881 TQSampleDataReader.cxx:2882 TQSampleDataReader.cxx:2883 TQSampleDataReader.cxx:2884 TQSampleDataReader.cxx:2885 TQSampleDataReader.cxx:2886 TQSampleDataReader.cxx:2887 TQSampleDataReader.cxx:2888 TQSampleDataReader.cxx:2889 TQSampleDataReader.cxx:2890 TQSampleDataReader.cxx:2891 TQSampleDataReader.cxx:2892 TQSampleDataReader.cxx:2893 TQSampleDataReader.cxx:2894 TQSampleDataReader.cxx:2895 TQSampleDataReader.cxx:2896 TQSampleDataReader.cxx:2897 TQSampleDataReader.cxx:2898 TQSampleDataReader.cxx:2899 TQSampleDataReader.cxx:2900 TQSampleDataReader.cxx:2901 TQSampleDataReader.cxx:2902 TQSampleDataReader.cxx:2903 TQSampleDataReader.cxx:2904 TQSampleDataReader.cxx:2905 TQSampleDataReader.cxx:2906 TQSampleDataReader.cxx:2907 TQSampleDataReader.cxx:2908 TQSampleDataReader.cxx:2909 TQSampleDataReader.cxx:2910 TQSampleDataReader.cxx:2911 TQSampleDataReader.cxx:2912 TQSampleDataReader.cxx:2913 TQSampleDataReader.cxx:2914 TQSampleDataReader.cxx:2915 TQSampleDataReader.cxx:2916 TQSampleDataReader.cxx:2917 TQSampleDataReader.cxx:2918 TQSampleDataReader.cxx:2919 TQSampleDataReader.cxx:2920 TQSampleDataReader.cxx:2921 TQSampleDataReader.cxx:2922 TQSampleDataReader.cxx:2923 TQSampleDataReader.cxx:2924 TQSampleDataReader.cxx:2925 TQSampleDataReader.cxx:2926 TQSampleDataReader.cxx:2927 TQSampleDataReader.cxx:2928 TQSampleDataReader.cxx:2929 TQSampleDataReader.cxx:2930 TQSampleDataReader.cxx:2931 TQSampleDataReader.cxx:2932 TQSampleDataReader.cxx:2933 TQSampleDataReader.cxx:2934 TQSampleDataReader.cxx:2935 TQSampleDataReader.cxx:2936 TQSampleDataReader.cxx:2937 TQSampleDataReader.cxx:2938 TQSampleDataReader.cxx:2939 TQSampleDataReader.cxx:2940 TQSampleDataReader.cxx:2941 TQSampleDataReader.cxx:2942 TQSampleDataReader.cxx:2943 TQSampleDataReader.cxx:2944 TQSampleDataReader.cxx:2945 TQSampleDataReader.cxx:2946 TQSampleDataReader.cxx:2947 TQSampleDataReader.cxx:2948 TQSampleDataReader.cxx:2949 TQSampleDataReader.cxx:2950 TQSampleDataReader.cxx:2951 TQSampleDataReader.cxx:2952 TQSampleDataReader.cxx:2953 TQSampleDataReader.cxx:2954 TQSampleDataReader.cxx:2955 TQSampleDataReader.cxx:2956 TQSampleDataReader.cxx:2957 TQSampleDataReader.cxx:2958 TQSampleDataReader.cxx:2959 TQSampleDataReader.cxx:2960 TQSampleDataReader.cxx:2961 TQSampleDataReader.cxx:2962 TQSampleDataReader.cxx:2963 TQSampleDataReader.cxx:2964 TQSampleDataReader.cxx:2965 TQSampleDataReader.cxx:2966 TQSampleDataReader.cxx:2967 TQSampleDataReader.cxx:2968 TQSampleDataReader.cxx:2969 TQSampleDataReader.cxx:2970 TQSampleDataReader.cxx:2971 TQSampleDataReader.cxx:2972 TQSampleDataReader.cxx:2973 TQSampleDataReader.cxx:2974 TQSampleDataReader.cxx:2975 TQSampleDataReader.cxx:2976 TQSampleDataReader.cxx:2977 TQSampleDataReader.cxx:2978 TQSampleDataReader.cxx:2979 TQSampleDataReader.cxx:2980 TQSampleDataReader.cxx:2981 TQSampleDataReader.cxx:2982 TQSampleDataReader.cxx:2983 TQSampleDataReader.cxx:2984 TQSampleDataReader.cxx:2985 TQSampleDataReader.cxx:2986 TQSampleDataReader.cxx:2987 TQSampleDataReader.cxx:2988 TQSampleDataReader.cxx:2989 TQSampleDataReader.cxx:2990 TQSampleDataReader.cxx:2991 TQSampleDataReader.cxx:2992 TQSampleDataReader.cxx:2993 TQSampleDataReader.cxx:2994 TQSampleDataReader.cxx:2995 TQSampleDataReader.cxx:2996 TQSampleDataReader.cxx:2997 TQSampleDataReader.cxx:2998 TQSampleDataReader.cxx:2999 TQSampleDataReader.cxx:3000 TQSampleDataReader.cxx:3001 TQSampleDataReader.cxx:3002 TQSampleDataReader.cxx:3003 TQSampleDataReader.cxx:3004 TQSampleDataReader.cxx:3005 TQSampleDataReader.cxx:3006 TQSampleDataReader.cxx:3007 TQSampleDataReader.cxx:3008 TQSampleDataReader.cxx:3009 TQSampleDataReader.cxx:3010 TQSampleDataReader.cxx:3011 TQSampleDataReader.cxx:3012 TQSampleDataReader.cxx:3013 TQSampleDataReader.cxx:3014 TQSampleDataReader.cxx:3015 TQSampleDataReader.cxx:3016 TQSampleDataReader.cxx:3017 TQSampleDataReader.cxx:3018 TQSampleDataReader.cxx:3019 TQSampleDataReader.cxx:3020 TQSampleDataReader.cxx:3021 TQSampleDataReader.cxx:3022 TQSampleDataReader.cxx:3023 TQSampleDataReader.cxx:3024 TQSampleDataReader.cxx:3025 TQSampleDataReader.cxx:3026 TQSampleDataReader.cxx:3027 TQSampleDataReader.cxx:3028 TQSampleDataReader.cxx:3029 TQSampleDataReader.cxx:3030 TQSampleDataReader.cxx:3031 TQSampleDataReader.cxx:3032 TQSampleDataReader.cxx:3033 TQSampleDataReader.cxx:3034 TQSampleDataReader.cxx:3035 TQSampleDataReader.cxx:3036 TQSampleDataReader.cxx:3037 TQSampleDataReader.cxx:3038 TQSampleDataReader.cxx:3039 TQSampleDataReader.cxx:3040 TQSampleDataReader.cxx:3041 TQSampleDataReader.cxx:3042 TQSampleDataReader.cxx:3043 TQSampleDataReader.cxx:3044 TQSampleDataReader.cxx:3045 TQSampleDataReader.cxx:3046 TQSampleDataReader.cxx:3047 TQSampleDataReader.cxx:3048 TQSampleDataReader.cxx:3049 TQSampleDataReader.cxx:3050 TQSampleDataReader.cxx:3051 TQSampleDataReader.cxx:3052 TQSampleDataReader.cxx:3053 TQSampleDataReader.cxx:3054 TQSampleDataReader.cxx:3055 TQSampleDataReader.cxx:3056 TQSampleDataReader.cxx:3057 TQSampleDataReader.cxx:3058 TQSampleDataReader.cxx:3059 TQSampleDataReader.cxx:3060 TQSampleDataReader.cxx:3061 TQSampleDataReader.cxx:3062 TQSampleDataReader.cxx:3063 TQSampleDataReader.cxx:3064 TQSampleDataReader.cxx:3065 TQSampleDataReader.cxx:3066 TQSampleDataReader.cxx:3067 TQSampleDataReader.cxx:3068 TQSampleDataReader.cxx:3069 TQSampleDataReader.cxx:3070 TQSampleDataReader.cxx:3071 TQSampleDataReader.cxx:3072 TQSampleDataReader.cxx:3073 TQSampleDataReader.cxx:3074 TQSampleDataReader.cxx:3075 TQSampleDataReader.cxx:3076 TQSampleDataReader.cxx:3077 TQSampleDataReader.cxx:3078 TQSampleDataReader.cxx:3079 TQSampleDataReader.cxx:3080 TQSampleDataReader.cxx:3081 TQSampleDataReader.cxx:3082 TQSampleDataReader.cxx:3083 TQSampleDataReader.cxx:3084 TQSampleDataReader.cxx:3085 TQSampleDataReader.cxx:3086 TQSampleDataReader.cxx:3087 TQSampleDataReader.cxx:3088 TQSampleDataReader.cxx:3089 TQSampleDataReader.cxx:3090 TQSampleDataReader.cxx:3091 TQSampleDataReader.cxx:3092 TQSampleDataReader.cxx:3093 TQSampleDataReader.cxx:3094 TQSampleDataReader.cxx:3095 TQSampleDataReader.cxx:3096 TQSampleDataReader.cxx:3097 TQSampleDataReader.cxx:3098 TQSampleDataReader.cxx:3099 TQSampleDataReader.cxx:3100 TQSampleDataReader.cxx:3101 TQSampleDataReader.cxx:3102 TQSampleDataReader.cxx:3103 TQSampleDataReader.cxx:3104 TQSampleDataReader.cxx:3105 TQSampleDataReader.cxx:3106 TQSampleDataReader.cxx:3107 TQSampleDataReader.cxx:3108 TQSampleDataReader.cxx:3109 TQSampleDataReader.cxx:3110 TQSampleDataReader.cxx:3111 TQSampleDataReader.cxx:3112 TQSampleDataReader.cxx:3113 TQSampleDataReader.cxx:3114 TQSampleDataReader.cxx:3115 TQSampleDataReader.cxx:3116 TQSampleDataReader.cxx:3117 TQSampleDataReader.cxx:3118 TQSampleDataReader.cxx:3119 TQSampleDataReader.cxx:3120 TQSampleDataReader.cxx:3121 TQSampleDataReader.cxx:3122 TQSampleDataReader.cxx:3123 TQSampleDataReader.cxx:3124 TQSampleDataReader.cxx:3125 TQSampleDataReader.cxx:3126 TQSampleDataReader.cxx:3127 TQSampleDataReader.cxx:3128 TQSampleDataReader.cxx:3129 TQSampleDataReader.cxx:3130 TQSampleDataReader.cxx:3131 TQSampleDataReader.cxx:3132 TQSampleDataReader.cxx:3133 TQSampleDataReader.cxx:3134 TQSampleDataReader.cxx:3135 TQSampleDataReader.cxx:3136 TQSampleDataReader.cxx:3137 TQSampleDataReader.cxx:3138 TQSampleDataReader.cxx:3139 TQSampleDataReader.cxx:3140 TQSampleDataReader.cxx:3141 TQSampleDataReader.cxx:3142 TQSampleDataReader.cxx:3143 TQSampleDataReader.cxx:3144 TQSampleDataReader.cxx:3145 TQSampleDataReader.cxx:3146 TQSampleDataReader.cxx:3147 TQSampleDataReader.cxx:3148 TQSampleDataReader.cxx:3149 TQSampleDataReader.cxx:3150 TQSampleDataReader.cxx:3151 TQSampleDataReader.cxx:3152 TQSampleDataReader.cxx:3153 TQSampleDataReader.cxx:3154 TQSampleDataReader.cxx:3155 TQSampleDataReader.cxx:3156 TQSampleDataReader.cxx:3157 TQSampleDataReader.cxx:3158 TQSampleDataReader.cxx:3159 TQSampleDataReader.cxx:3160 TQSampleDataReader.cxx:3161 TQSampleDataReader.cxx:3162 TQSampleDataReader.cxx:3163 TQSampleDataReader.cxx:3164 TQSampleDataReader.cxx:3165 TQSampleDataReader.cxx:3166 TQSampleDataReader.cxx:3167 TQSampleDataReader.cxx:3168 TQSampleDataReader.cxx:3169 TQSampleDataReader.cxx:3170 TQSampleDataReader.cxx:3171 TQSampleDataReader.cxx:3172 TQSampleDataReader.cxx:3173 TQSampleDataReader.cxx:3174 TQSampleDataReader.cxx:3175 TQSampleDataReader.cxx:3176 TQSampleDataReader.cxx:3177 TQSampleDataReader.cxx:3178 TQSampleDataReader.cxx:3179 TQSampleDataReader.cxx:3180 TQSampleDataReader.cxx:3181 TQSampleDataReader.cxx:3182 TQSampleDataReader.cxx:3183 TQSampleDataReader.cxx:3184 TQSampleDataReader.cxx:3185 TQSampleDataReader.cxx:3186 TQSampleDataReader.cxx:3187 TQSampleDataReader.cxx:3188 TQSampleDataReader.cxx:3189 TQSampleDataReader.cxx:3190 TQSampleDataReader.cxx:3191 TQSampleDataReader.cxx:3192 TQSampleDataReader.cxx:3193 TQSampleDataReader.cxx:3194 TQSampleDataReader.cxx:3195 TQSampleDataReader.cxx:3196 TQSampleDataReader.cxx:3197 TQSampleDataReader.cxx:3198 TQSampleDataReader.cxx:3199 TQSampleDataReader.cxx:3200 TQSampleDataReader.cxx:3201 TQSampleDataReader.cxx:3202 TQSampleDataReader.cxx:3203 TQSampleDataReader.cxx:3204 TQSampleDataReader.cxx:3205 TQSampleDataReader.cxx:3206 TQSampleDataReader.cxx:3207 TQSampleDataReader.cxx:3208 TQSampleDataReader.cxx:3209 TQSampleDataReader.cxx:3210 TQSampleDataReader.cxx:3211 TQSampleDataReader.cxx:3212 TQSampleDataReader.cxx:3213 TQSampleDataReader.cxx:3214 TQSampleDataReader.cxx:3215 TQSampleDataReader.cxx:3216 TQSampleDataReader.cxx:3217 TQSampleDataReader.cxx:3218 TQSampleDataReader.cxx:3219 TQSampleDataReader.cxx:3220 TQSampleDataReader.cxx:3221 TQSampleDataReader.cxx:3222 TQSampleDataReader.cxx:3223 TQSampleDataReader.cxx:3224 TQSampleDataReader.cxx:3225 TQSampleDataReader.cxx:3226 TQSampleDataReader.cxx:3227 TQSampleDataReader.cxx:3228 TQSampleDataReader.cxx:3229 TQSampleDataReader.cxx:3230 TQSampleDataReader.cxx:3231 TQSampleDataReader.cxx:3232 TQSampleDataReader.cxx:3233 TQSampleDataReader.cxx:3234 TQSampleDataReader.cxx:3235 TQSampleDataReader.cxx:3236 TQSampleDataReader.cxx:3237 TQSampleDataReader.cxx:3238 TQSampleDataReader.cxx:3239 TQSampleDataReader.cxx:3240 TQSampleDataReader.cxx:3241 TQSampleDataReader.cxx:3242 TQSampleDataReader.cxx:3243 TQSampleDataReader.cxx:3244 TQSampleDataReader.cxx:3245 TQSampleDataReader.cxx:3246 TQSampleDataReader.cxx:3247 TQSampleDataReader.cxx:3248 TQSampleDataReader.cxx:3249 TQSampleDataReader.cxx:3250 TQSampleDataReader.cxx:3251 TQSampleDataReader.cxx:3252 TQSampleDataReader.cxx:3253 TQSampleDataReader.cxx:3254 TQSampleDataReader.cxx:3255 TQSampleDataReader.cxx:3256 TQSampleDataReader.cxx:3257 TQSampleDataReader.cxx:3258 TQSampleDataReader.cxx:3259 TQSampleDataReader.cxx:3260 TQSampleDataReader.cxx:3261 TQSampleDataReader.cxx:3262 TQSampleDataReader.cxx:3263 TQSampleDataReader.cxx:3264 TQSampleDataReader.cxx:3265 TQSampleDataReader.cxx:3266 TQSampleDataReader.cxx:3267 TQSampleDataReader.cxx:3268 TQSampleDataReader.cxx:3269 TQSampleDataReader.cxx:3270 TQSampleDataReader.cxx:3271 TQSampleDataReader.cxx:3272 TQSampleDataReader.cxx:3273 TQSampleDataReader.cxx:3274 TQSampleDataReader.cxx:3275 TQSampleDataReader.cxx:3276 TQSampleDataReader.cxx:3277 TQSampleDataReader.cxx:3278 TQSampleDataReader.cxx:3279 TQSampleDataReader.cxx:3280 TQSampleDataReader.cxx:3281 TQSampleDataReader.cxx:3282 TQSampleDataReader.cxx:3283 TQSampleDataReader.cxx:3284 TQSampleDataReader.cxx:3285 TQSampleDataReader.cxx:3286 TQSampleDataReader.cxx:3287 TQSampleDataReader.cxx:3288 TQSampleDataReader.cxx:3289 TQSampleDataReader.cxx:3290 TQSampleDataReader.cxx:3291 TQSampleDataReader.cxx:3292 TQSampleDataReader.cxx:3293 TQSampleDataReader.cxx:3294 TQSampleDataReader.cxx:3295 TQSampleDataReader.cxx:3296 TQSampleDataReader.cxx:3297 TQSampleDataReader.cxx:3298 TQSampleDataReader.cxx:3299 TQSampleDataReader.cxx:3300 TQSampleDataReader.cxx:3301 TQSampleDataReader.cxx:3302 TQSampleDataReader.cxx:3303 TQSampleDataReader.cxx:3304 TQSampleDataReader.cxx:3305 TQSampleDataReader.cxx:3306 TQSampleDataReader.cxx:3307 TQSampleDataReader.cxx:3308 TQSampleDataReader.cxx:3309 TQSampleDataReader.cxx:3310 TQSampleDataReader.cxx:3311 TQSampleDataReader.cxx:3312 TQSampleDataReader.cxx:3313 TQSampleDataReader.cxx:3314 TQSampleDataReader.cxx:3315 TQSampleDataReader.cxx:3316 TQSampleDataReader.cxx:3317 TQSampleDataReader.cxx:3318 TQSampleDataReader.cxx:3319 TQSampleDataReader.cxx:3320 TQSampleDataReader.cxx:3321 TQSampleDataReader.cxx:3322 TQSampleDataReader.cxx:3323 TQSampleDataReader.cxx:3324 TQSampleDataReader.cxx:3325 TQSampleDataReader.cxx:3326 TQSampleDataReader.cxx:3327 TQSampleDataReader.cxx:3328 TQSampleDataReader.cxx:3329 TQSampleDataReader.cxx:3330 TQSampleDataReader.cxx:3331 TQSampleDataReader.cxx:3332 TQSampleDataReader.cxx:3333 TQSampleDataReader.cxx:3334 TQSampleDataReader.cxx:3335 TQSampleDataReader.cxx:3336 TQSampleDataReader.cxx:3337 TQSampleDataReader.cxx:3338 TQSampleDataReader.cxx:3339 TQSampleDataReader.cxx:3340 TQSampleDataReader.cxx:3341 TQSampleDataReader.cxx:3342 TQSampleDataReader.cxx:3343 TQSampleDataReader.cxx:3344 TQSampleDataReader.cxx:3345 TQSampleDataReader.cxx:3346 TQSampleDataReader.cxx:3347 TQSampleDataReader.cxx:3348 TQSampleDataReader.cxx:3349 TQSampleDataReader.cxx:3350