#include "QFramework/TQMultiChannelAnalysisSampleVisitor.h"
#include "QFramework/TQCounter.h"
#include "QFramework/TQUtils.h"
#include "QFramework/TQSample.h"
#include "QFramework/TQCut.h"
#include "QFramework/TQStringUtils.h"
#include "QFramework/TQIterator.h"
#include "QFramework/TQToken.h"
#include "TList.h"
#include "TObjString.h"
#include "TStopwatch.h"
#ifdef HAS_XAOD
#include "xAODRootAccess/TActiveStore.h"
#include "xAODRootAccess/TStore.h"
#endif
#include "QFramework/TQLibrary.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <stdexcept>
#include <cstdlib>
ClassImp(TQMultiChannelAnalysisSampleVisitor)
TQMultiChannelAnalysisSampleVisitor::TQMultiChannelAnalysisSampleVisitor() :
TQAnalysisSampleVisitorBase("mcasv",false)
{
this->setVisitTraceID("analysis");
this->setTagString("tagKey","~.mcasv.channel");
}
TQMultiChannelAnalysisSampleVisitor::~TQMultiChannelAnalysisSampleVisitor(){
}
int TQMultiChannelAnalysisSampleVisitor::visitFolder(TQSampleFolder * sampleFolder, TString&) {
if(!sampleFolder) return visitFAILED;
DEBUGclass("visiting '%s'",sampleFolder->getPath().Data());
if (this->checkVisitFriends(sampleFolder)){
DEBUGclass("folder '%s' and all of its friends have been visited before...",sampleFolder->getPath().Data());
return visitIGNORE;
}
std::vector<TQSampleFolder*> sampleFolders;
const bool requireRestrictionTag = TQSampleVisitor::checkRestrictionTag(sampleFolder);
const TString tagKey = this->getTagStringDefault("tagKey","~.mcasv.channel");
updateFriends(sampleFolder);
std::set<TString> foundChannels;
std::shared_ptr<std::set<TQSampleFolder*>> friends = sampleFolder->getFriends();
for (auto sf : (*friends)) {
if(!sf) continue;
DEBUGclass("checking if '%s' has been visited before...",sf->getPath().Data());
if(this->checkVisit(sf)){
DEBUGclass("skipping - has been visited before!");
continue;
}
if (requireRestrictionTag && !TQSampleVisitor::checkRestrictionTag(sf)) continue;
TString channel = "";
if (!sf->getTagString(tagKey,channel) ) {
DEBUGclass("skipping '%s' due to missing channel tag (might not be a channel specific folder)",sf->getPath().Data());
continue;
}
if(foundChannels.find(channel) != foundChannels.end()){
DEBUGclass("skipping '%s' due to channel conflict in channel '%s'...",sf->getPath().Data(),channel.Data());
continue;
}
TQCut* cut = this->fChannels[channel];
if(!cut){
DEBUGclass("no cut avialable for channel '%s' required by '%s'- skipping",channel.Data(),sf->getPath().Data());
return visitFAILED;
}
sampleFolders.push_back(sf);
if (!cut->canInitialize(sf)) continue;
DEBUGclass("trying to initialize SampleFolder with path '%s'",sf->getPath().Data());
if(!cut->initializeSampleFolder(sf)) return visitFAILED;
foundChannels.insert(channel);
}
this->initializeClonedAlgorithms(sampleFolders,tagKey);
return visitLISTONLY;
}
int TQMultiChannelAnalysisSampleVisitor::revisitSample(TQSample *, TString&) {
return visitIGNORE;
}
int TQMultiChannelAnalysisSampleVisitor::revisitFolder(TQSampleFolder * sampleFolder, TString&) {
if (!sampleFolder) return visitFAILED;
DEBUGclass("revisiting '%s'",sampleFolder->getPath().Data());
std::vector<TQSampleFolder*> sampleFolders;
const TString tagKey = this->getTagStringDefault("tagKey","~.mcasv.channel");
bool finalized = true;
const bool requireRestrictionTag = TQSampleVisitor::checkRestrictionTag(sampleFolder);
std::shared_ptr<std::set<TQSampleFolder*>> friends = sampleFolder->getFriends();
for (auto sf : (*friends) ) {
TString channel = sf->getTagStringDefault(tagKey,"");
TQCut* cut = this->fChannels[channel];
if(!cut) continue;
if (!cut->canFinalize(sf)) continue;
sampleFolders.push_back(sf);
DEBUGclass("finalizing '%s'",sf->getPath().Data());
bool thisFinalized = cut->finalizeSampleFolder(sf);
std::vector<TQSampleFolder*> variantSubs;
if ( thisFinalized ) {
TQSampleFolderIterator itr(sf->getListOfSampleFolders("?"), true);
while (itr.hasNext()) {
TQSampleFolder* sub = itr.readNext();
if (sub->isVariant(false)) {
variantSubs.push_back(sub);
}
bool subFinalized = ( this->checkVisit(sub) || (requireRestrictionTag && !TQSampleVisitor::checkRestrictionTag(sub)) || sub->isVariant(false) ) ;
if (!subFinalized) WARNclass("This sample(folder) '%s' was apparently not visited despite being scheduled. Please verify that it was processed at a later point!",sub->getPath().Data());
thisFinalized = thisFinalized && subFinalized;
}
if ( thisFinalized ) {
DEBUGclass("stamping '%s' on revisit",sf->getPath().Data());
this->stamp(sf);
for (TQSampleFolder* varSub : variantSubs) {
DEBUGclass("stamping variant '%s' on revisit",varSub->getPath().Data());
this->stamp(varSub);
auto subfolders = varSub->getListOfFolders("*");
for(auto* sf:*subfolders){
TQSampleFolder* f = static_cast<TQSampleFolder*>(sf);
this->stamp(f);
}
delete subfolders;
}
}
}
finalized = finalized && thisFinalized;
}
finalized = this->finalizeClonedAlgorithms(sampleFolders,tagKey) && finalized;
if (finalized) {
std::vector<TQSampleFolder*> toRemove;
for (auto sf : (*friends) ) {
TQSampleFolderIterator itr(sf->getListOfSampleFolders(),true);
while (itr.hasNext()) {
TQSampleFolder* subSF = itr.readNext();
if (subSF->getTagBoolDefault(".asv.revisit.purge",false)) {
toRemove.push_back(subSF);
}
}
}
for (TQSampleFolder* subSF : toRemove) {
subSF->detachFromBase();
delete subSF;
}
}
return finalized ? visitLISTONLY : visitWARN;
}
int TQMultiChannelAnalysisSampleVisitor::visitSample(TQSample * sample, TString& message) {
if(!sample) return visitFAILED;
if(this->checkVisitFriends(sample)){
std::shared_ptr<std::set<TQSampleFolder*> > friends = sample->getFriends();
for (auto fr: *friends.get()){
int status = this->getStatusID(fr, ".sv.visit.");
if (status == visitSTATUS::visitFAILED){
message.Append("A friend sample failed earlier (");
message.Append(fr->getPath());
message.Append(")");
return visitSKIPPED;
}
}
return visitSKIPPEDOK;
}
TStopwatch * timer = new TStopwatch();
TString analysisMessage;
DEBUGclass("analysing tree");
int nEntries = this->analyseTree(sample, analysisMessage);
timer->Stop();
message.Append(" ");
sample->setTagInteger(TString::Format(".%s.analysis.nentries",this->GetName()),nEntries);
if (nEntries >= 0) {
message.Append(TQStringUtils::fixedWidth(TQStringUtils::getThousandsSeparators(nEntries), 12,"r"));
} else {
message.Append(TQStringUtils::fixedWidth("--", 12,"r"));
}
message.Append(TQStringUtils::fixedWidth(TString::Format("%.2f", timer->RealTime()), 12,"r"));
message.Append(" ");
message.Append(TQStringUtils::fixedWidth(analysisMessage, 40, "l"));
delete timer;
if(nEntries > 0){
return visitOK;
}
else if (nEntries == 0)
return visitWARN;
return visitFAILED;
}
bool TQMultiChannelAnalysisSampleVisitor::checkCut(TQCut * baseCut) {
for (auto it=this->fChannels.begin(); it!=this->fChannels.end(); ++it){
if(it->second == baseCut) return true;
}
return false;
}
bool TQMultiChannelAnalysisSampleVisitor::checkChannel(const TString& channelName) {
auto it= this->fChannels.find(channelName);
if(it==this->fChannels.end()){
return false;
}
return true;
}
void TQMultiChannelAnalysisSampleVisitor::printChannels() {
for (auto it=this->fChannels.begin(); it!=this->fChannels.end(); ++it){
std::cout << TQStringUtils::fixedWidth(it->first,40) << " " << TQStringUtils::fixedWidth(it->second->GetName(),20) << " @" << it->second << std::endl;
}
}
void TQMultiChannelAnalysisSampleVisitor::addChannel(const TString& channelName, TQCut * baseCut) {
if(channelName.IsNull()){
ERRORclass("unable to use empty channel name");
return;
}
if(baseCut){
if(this->checkCut(baseCut)){
ERRORclass("not adding basecut '%s' -- this cut was already scheduled for another channel!",baseCut->GetName());
return;
}
if(this->checkChannel(channelName)){
WARNclass("channel '%s' already added to this visitor! Not adding channel.",channelName.Data());
return;
}
this->fChannels[channelName] = baseCut;
} else {
if(this->checkChannel(channelName)){
this->fChannels.erase(channelName);
return;
} else {
WARNclass("attempt to add new channel '%s' with baseCut=NULL",channelName.Data());
return;
}
}
}
TQCut * TQMultiChannelAnalysisSampleVisitor::getBaseCut(const TString& channelName) {
if(this->checkChannel(channelName)){
return this->fChannels[channelName];
} else {
return NULL;
}
}
bool TQMultiChannelAnalysisSampleVisitor::stampAllFriends(TQSample* sample) const {
if (!sample) return false;
if(!sample->hasFriends()){
sample->findFriends();
}
if(!sample->hasFriends()){
return false;
}
WARNclass("No events could be read for the sample with path '%s'. All samples using the same data source (same input file and tree) will be ignored!",sample->getPath().Data());
std::shared_ptr<std::set<TQSampleFolder*>> friends = sample->getFriends();
if (!friends) return false;
for (auto fr : (*friends)) {
if (!fr) continue;
DEBUGclass("stamping friend '%s' of '%s'",fr->getPath().Data(),sample->getPath().Data());
this->stamp(fr);
}
return true;
}
int TQMultiChannelAnalysisSampleVisitor::analyseTree(TQSample * sample, TString& message) {
DEBUGclass("entering function");
DEBUGclass("testing sample");
if (!sample) {
message = "sample is NULL";
DEBUGclass(message);
return -1;
}
if(!sample->hasFriends()){
sample->findFriends();
}
if(!sample->hasFriends()){
message = "no friends found";
WARN("Sample '%s' has no friends. Please check for problems in your setup!",sample->getPath().Data());
}
TQToken* tok = sample->getTreeToken();
TQToken* fileTok = sample->getFileToken();
if(!tok && !fileTok){
if( sample->hasTagString(".xsp.filepath") || sample->hasTagString(".init.filepath") ) {
throw std::runtime_error(TString::Format("Sample '%s' has a .filepath, but file and tree tokens can't be read!",sample->getPath().Data()).Data());
}
message="failed to obtain tree and file token, probably because file was never found for the sample";
this->stampAllFriends(sample);
return -1;
}
TTree* tree = nullptr;
if (tok) tree = static_cast<TTree*>(tok->getContent());
if(!tree){
message="failed to retrieve shared tree but sample is readable (it might just be empty)";
}
#ifdef HAS_XAOD
bool isxAOD = sample->getTagBoolDefault("isxAOD",false);
#endif
const bool requireRestrictionTag = TQSampleVisitor::checkRestrictionTag(sample);
std::shared_ptr<std::set<TQSampleFolder*>> friends = sample->getFriends();
DEBUGclass("retrieving number of entries");
const Long64_t nEntries = std::min(tree?tree->GetEntries():0,this->fSkipEvents + this->fMaxEvents);
const TString tagKey = this->getTagStringDefault("tagKey","~.mcasv.channel");
if (tree && nEntries>0) tree->SetBranchStatus("*", 1);
for (auto sf : (*friends)) {
if (!sf || !sf->InheritsFrom(TQSample::Class()) ) continue;
TQSample* s = static_cast<TQSample*>(sf);
if(requireRestrictionTag && !TQSampleVisitor::checkRestrictionTag(s)) continue;
TString channel;
if(!s->getTagString(tagKey,channel)){
message = TString::Format("sample '%s' has no channel set as tag with key '%s'.",s->getPath().Data(),tagKey.Data());
throw std::runtime_error(message.Data());
return -1;
}
if(!this->checkChannel(channel)){
message = TString::Format("channel '%s' is unknown from %s:%s",channel.Data(),s->getPath().Data(),tagKey.Data());
throw std::runtime_error(message.Data());
return -1;
}
if(this->fUseObservableSets){
if(!TQObservable::manager.setActiveSet(channel)){
TQObservable::manager.cloneActiveSet(channel);
}
}
}
std::vector<bool> useMCweights;
std::vector<TQCut*> cuts;
std::set<TString> foundChannels;
std::vector<TQSample*> runningSamples;
for (auto sf : (*friends)) {
if (!sf || !sf->InheritsFrom(TQSample::Class()) ) continue;
TQSample* s = static_cast<TQSample*>(sf);
if (this->checkVisit(s)) continue;
if(requireRestrictionTag && !TQSampleVisitor::checkRestrictionTag(s)) continue;
TString channel;
if(!s->getTagString(tagKey,channel)){
throw std::runtime_error(TString::Format("no channel information set on sample '%s'",s->getPath().Data()).Data());
}
if(foundChannels.find(channel)!=foundChannels.end()){
continue;
}
TQObservable::manager.setActiveSet(channel);
TQCut* basecut = this->fChannels[channel];
if (!basecut->canInitialize(s)) continue;
DEBUGclass("initializing sample '%s' with basecut '%p' for channel '%s'",s->getPath().Data(),basecut,channel.Data());
if (tree && nEntries>0 && !basecut->initialize(s)) {
throw std::runtime_error(TString::Format("failed to initialize cuts for channel '%s' on sample '%s'",channel.Data(),s->getPath().Data()).Data());
}
DEBUGclass("testing for usemcweights tag");
bool useWeights = false;
s->getTagBool("usemcweights", useWeights, true);
DEBUGclass("retrieving number of entries");
if (tree && fDebugMode && useWeights){
Long64_t nEntriesOrig = tree->GetEntries();
double norm = double(nEntriesOrig)/double(nEntries);
s->setNormalisation(s->getNormalisation() * norm);
}
useMCweights.push_back(useWeights);
cuts.push_back(basecut);
runningSamples.push_back(s);
foundChannels.insert(channel);
}
DEBUGclass("entering event loop");
#ifdef _DEBUG_
std::cout<<"Tree adress: "<<tree<<std::endl;
#endif
const size_t n = cuts.size();
if (n==0) {
ERRORclass("No cuts were activated for processing sample '%s'",sample->getPath().Data());
sample->returnToken(tok);
sample->returnToken(fileTok);
return -1;
}
if (! this->initializeClonedAlgorithms(runningSamples,tagKey, true)) {
ERRORclass("Failed to initialize algorithms for processing sample '%s'",sample->getPath().Data());
sample->returnToken(tok);
sample->returnToken(fileTok);
return -1;
}
if (tree && nEntries>0) {
tree->SetBranchStatus("*", 0);
for(size_t i=0; i<cuts.size(); ++i){
TCollection* bnames = cuts[i]->getListOfBranches();
if(!this->setupBranches(tree,bnames)){
throw std::runtime_error(TString::Format("failed to setup branches for sample '%s'",cuts[i]->getSample()->getPath().Data()).Data());
}
bnames->SetOwner(true);
delete bnames;
}
for (TQAlgorithm* const & alg : gActiveAlgorithms) {
TCollection* bnames = alg->getListOfBranches();
if (!bnames) continue;
if(!this->setupBranches(tree,bnames)){
throw std::runtime_error(TString::Format("failed to setup branches for algorithm '%s'",alg->GetName()).Data());
}
bnames->SetOwner(true);
delete bnames;
}
}
if (tree && nEntries>0) {
const Long64_t nEventsPerPercent = ceil(nEntries/100.);
const Long64_t progressInterval = ceil(nEventsPerPercent*this->getTagDoubleDefault("progressInterval",0.));
sample->setTagInteger(".analyze.firstEvent",this->fSkipEvents);
sample->setTagInteger(".analyze.lastEvent",nEntries);
for (Long64_t i = this->fSkipEvents; i < nEntries; ++i) {
DEBUGclass("visiting entry %d/%d",i,nEntries);
tree->GetEntry(i);
this->executeClonedAlgorithms();
for(size_t j=0; j<n; ++j){
DEBUGclass(" friend %d",j);
TRY(
cuts[j]->analyse(1., useMCweights[j]);
,TString::Format("An error occured while evaluating entry %lld of sample '%s'.",i,(cuts[j]->getSample()!=0?cuts[j]->getSample()->getPath().Data():"<undefined>"))
)
DEBUGclass(" friend %d done",j);
}
this->cleanupClonedAlgorithms();
#ifdef HAS_XAOD
if (isxAOD) xAOD::TActiveStore::store()->clear();
#endif
DEBUGclass(" done visiting entry %d/%d",i,nEntries);
if ( progressInterval>0 && (i%progressInterval == 0) ) {
this->updateLine(fStatusLine,message,visitPROGRESS,progressInterval<=0,((double)i)/std::max(nEntries,(Long64_t)1) );
}
}
}
if (!this->finalizeClonedAlgorithms(runningSamples, tagKey)) {
ERRORclass("failed to finalize algorithms after processing sample '%s'",sample->getPath().Data());
sample->returnToken(tok);
sample->returnToken(fileTok);
return -1;
}
for(size_t j=0; j<n; ++j){
TQSampleFolder* sf = cuts[j]->getSample();
bool fromCut = sf;
if (!sf && runningSamples.size()>j) sf = runningSamples[j];
if (!sf) {
throw std::runtime_error("The internal logic of TQMultiChannelAnalysisSampleVisitor seems to be broken. Please inform the CAFCore developers and try to provide a test case reproducing this error message!");
return -1;
}
DEBUGclass("stamping '%s' after finishing analysis",sf->getPath().Data());
this->stamp(sf);
if (fromCut) cuts[j]->finalize();
}
sample->returnToken(tok);
sample->returnToken(fileTok);
DEBUGclass("finished analyzing sample '%s'",sample->GetName());
if (sample->getNTreeTokens() > 0) {
std::cout << std::endl;
message="sample left with # tree tokens > 0";
sample->printTreeTokens();
std::cout << std::endl;
std::cout << "Message: " <<message<<std::endl;
}
return nEntries;
}
void TQMultiChannelAnalysisSampleVisitor::useObservableSets(bool useSets){
this->fUseObservableSets = useSets;
}
TQMultiChannelAnalysisSampleVisitor.cxx:1 TQMultiChannelAnalysisSampleVisitor.cxx:2 TQMultiChannelAnalysisSampleVisitor.cxx:3 TQMultiChannelAnalysisSampleVisitor.cxx:4 TQMultiChannelAnalysisSampleVisitor.cxx:5 TQMultiChannelAnalysisSampleVisitor.cxx:6 TQMultiChannelAnalysisSampleVisitor.cxx:7 TQMultiChannelAnalysisSampleVisitor.cxx:8 TQMultiChannelAnalysisSampleVisitor.cxx:9 TQMultiChannelAnalysisSampleVisitor.cxx:10 TQMultiChannelAnalysisSampleVisitor.cxx:11 TQMultiChannelAnalysisSampleVisitor.cxx:12 TQMultiChannelAnalysisSampleVisitor.cxx:13 TQMultiChannelAnalysisSampleVisitor.cxx:14 TQMultiChannelAnalysisSampleVisitor.cxx:15 TQMultiChannelAnalysisSampleVisitor.cxx:16 TQMultiChannelAnalysisSampleVisitor.cxx:17 TQMultiChannelAnalysisSampleVisitor.cxx:18 TQMultiChannelAnalysisSampleVisitor.cxx:19 TQMultiChannelAnalysisSampleVisitor.cxx:20 TQMultiChannelAnalysisSampleVisitor.cxx:21 TQMultiChannelAnalysisSampleVisitor.cxx:22 TQMultiChannelAnalysisSampleVisitor.cxx:23 TQMultiChannelAnalysisSampleVisitor.cxx:24 TQMultiChannelAnalysisSampleVisitor.cxx:25 TQMultiChannelAnalysisSampleVisitor.cxx:26 TQMultiChannelAnalysisSampleVisitor.cxx:27 TQMultiChannelAnalysisSampleVisitor.cxx:28 TQMultiChannelAnalysisSampleVisitor.cxx:29 TQMultiChannelAnalysisSampleVisitor.cxx:30 TQMultiChannelAnalysisSampleVisitor.cxx:31 TQMultiChannelAnalysisSampleVisitor.cxx:32 TQMultiChannelAnalysisSampleVisitor.cxx:33 TQMultiChannelAnalysisSampleVisitor.cxx:34 TQMultiChannelAnalysisSampleVisitor.cxx:35 TQMultiChannelAnalysisSampleVisitor.cxx:36 TQMultiChannelAnalysisSampleVisitor.cxx:37 TQMultiChannelAnalysisSampleVisitor.cxx:38 TQMultiChannelAnalysisSampleVisitor.cxx:39 TQMultiChannelAnalysisSampleVisitor.cxx:40 TQMultiChannelAnalysisSampleVisitor.cxx:41 TQMultiChannelAnalysisSampleVisitor.cxx:42 TQMultiChannelAnalysisSampleVisitor.cxx:43 TQMultiChannelAnalysisSampleVisitor.cxx:44 TQMultiChannelAnalysisSampleVisitor.cxx:45 TQMultiChannelAnalysisSampleVisitor.cxx:46 TQMultiChannelAnalysisSampleVisitor.cxx:47 TQMultiChannelAnalysisSampleVisitor.cxx:48 TQMultiChannelAnalysisSampleVisitor.cxx:49 TQMultiChannelAnalysisSampleVisitor.cxx:50 TQMultiChannelAnalysisSampleVisitor.cxx:51 TQMultiChannelAnalysisSampleVisitor.cxx:52 TQMultiChannelAnalysisSampleVisitor.cxx:53 TQMultiChannelAnalysisSampleVisitor.cxx:54 TQMultiChannelAnalysisSampleVisitor.cxx:55 TQMultiChannelAnalysisSampleVisitor.cxx:56 TQMultiChannelAnalysisSampleVisitor.cxx:57 TQMultiChannelAnalysisSampleVisitor.cxx:58 TQMultiChannelAnalysisSampleVisitor.cxx:59 TQMultiChannelAnalysisSampleVisitor.cxx:60 TQMultiChannelAnalysisSampleVisitor.cxx:61 TQMultiChannelAnalysisSampleVisitor.cxx:62 TQMultiChannelAnalysisSampleVisitor.cxx:63 TQMultiChannelAnalysisSampleVisitor.cxx:64 TQMultiChannelAnalysisSampleVisitor.cxx:65 TQMultiChannelAnalysisSampleVisitor.cxx:66 TQMultiChannelAnalysisSampleVisitor.cxx:67 TQMultiChannelAnalysisSampleVisitor.cxx:68 TQMultiChannelAnalysisSampleVisitor.cxx:69 TQMultiChannelAnalysisSampleVisitor.cxx:70 TQMultiChannelAnalysisSampleVisitor.cxx:71 TQMultiChannelAnalysisSampleVisitor.cxx:72 TQMultiChannelAnalysisSampleVisitor.cxx:73 TQMultiChannelAnalysisSampleVisitor.cxx:74 TQMultiChannelAnalysisSampleVisitor.cxx:75 TQMultiChannelAnalysisSampleVisitor.cxx:76 TQMultiChannelAnalysisSampleVisitor.cxx:77 TQMultiChannelAnalysisSampleVisitor.cxx:78 TQMultiChannelAnalysisSampleVisitor.cxx:79 TQMultiChannelAnalysisSampleVisitor.cxx:80 TQMultiChannelAnalysisSampleVisitor.cxx:81 TQMultiChannelAnalysisSampleVisitor.cxx:82 TQMultiChannelAnalysisSampleVisitor.cxx:83 TQMultiChannelAnalysisSampleVisitor.cxx:84 TQMultiChannelAnalysisSampleVisitor.cxx:85 TQMultiChannelAnalysisSampleVisitor.cxx:86 TQMultiChannelAnalysisSampleVisitor.cxx:87 TQMultiChannelAnalysisSampleVisitor.cxx:88 TQMultiChannelAnalysisSampleVisitor.cxx:89 TQMultiChannelAnalysisSampleVisitor.cxx:90 TQMultiChannelAnalysisSampleVisitor.cxx:91 TQMultiChannelAnalysisSampleVisitor.cxx:92 TQMultiChannelAnalysisSampleVisitor.cxx:93 TQMultiChannelAnalysisSampleVisitor.cxx:94 TQMultiChannelAnalysisSampleVisitor.cxx:95 TQMultiChannelAnalysisSampleVisitor.cxx:96 TQMultiChannelAnalysisSampleVisitor.cxx:97 TQMultiChannelAnalysisSampleVisitor.cxx:98 TQMultiChannelAnalysisSampleVisitor.cxx:99 TQMultiChannelAnalysisSampleVisitor.cxx:100 TQMultiChannelAnalysisSampleVisitor.cxx:101 TQMultiChannelAnalysisSampleVisitor.cxx:102 TQMultiChannelAnalysisSampleVisitor.cxx:103 TQMultiChannelAnalysisSampleVisitor.cxx:104 TQMultiChannelAnalysisSampleVisitor.cxx:105 TQMultiChannelAnalysisSampleVisitor.cxx:106 TQMultiChannelAnalysisSampleVisitor.cxx:107 TQMultiChannelAnalysisSampleVisitor.cxx:108 TQMultiChannelAnalysisSampleVisitor.cxx:109 TQMultiChannelAnalysisSampleVisitor.cxx:110 TQMultiChannelAnalysisSampleVisitor.cxx:111 TQMultiChannelAnalysisSampleVisitor.cxx:112 TQMultiChannelAnalysisSampleVisitor.cxx:113 TQMultiChannelAnalysisSampleVisitor.cxx:114 TQMultiChannelAnalysisSampleVisitor.cxx:115 TQMultiChannelAnalysisSampleVisitor.cxx:116 TQMultiChannelAnalysisSampleVisitor.cxx:117 TQMultiChannelAnalysisSampleVisitor.cxx:118 TQMultiChannelAnalysisSampleVisitor.cxx:119 TQMultiChannelAnalysisSampleVisitor.cxx:120 TQMultiChannelAnalysisSampleVisitor.cxx:121 TQMultiChannelAnalysisSampleVisitor.cxx:122 TQMultiChannelAnalysisSampleVisitor.cxx:123 TQMultiChannelAnalysisSampleVisitor.cxx:124 TQMultiChannelAnalysisSampleVisitor.cxx:125 TQMultiChannelAnalysisSampleVisitor.cxx:126 TQMultiChannelAnalysisSampleVisitor.cxx:127 TQMultiChannelAnalysisSampleVisitor.cxx:128 TQMultiChannelAnalysisSampleVisitor.cxx:129 TQMultiChannelAnalysisSampleVisitor.cxx:130 TQMultiChannelAnalysisSampleVisitor.cxx:131 TQMultiChannelAnalysisSampleVisitor.cxx:132 TQMultiChannelAnalysisSampleVisitor.cxx:133 TQMultiChannelAnalysisSampleVisitor.cxx:134 TQMultiChannelAnalysisSampleVisitor.cxx:135 TQMultiChannelAnalysisSampleVisitor.cxx:136 TQMultiChannelAnalysisSampleVisitor.cxx:137 TQMultiChannelAnalysisSampleVisitor.cxx:138 TQMultiChannelAnalysisSampleVisitor.cxx:139 TQMultiChannelAnalysisSampleVisitor.cxx:140 TQMultiChannelAnalysisSampleVisitor.cxx:141 TQMultiChannelAnalysisSampleVisitor.cxx:142 TQMultiChannelAnalysisSampleVisitor.cxx:143 TQMultiChannelAnalysisSampleVisitor.cxx:144 TQMultiChannelAnalysisSampleVisitor.cxx:145 TQMultiChannelAnalysisSampleVisitor.cxx:146 TQMultiChannelAnalysisSampleVisitor.cxx:147 TQMultiChannelAnalysisSampleVisitor.cxx:148 TQMultiChannelAnalysisSampleVisitor.cxx:149 TQMultiChannelAnalysisSampleVisitor.cxx:150 TQMultiChannelAnalysisSampleVisitor.cxx:151 TQMultiChannelAnalysisSampleVisitor.cxx:152 TQMultiChannelAnalysisSampleVisitor.cxx:153 TQMultiChannelAnalysisSampleVisitor.cxx:154 TQMultiChannelAnalysisSampleVisitor.cxx:155 TQMultiChannelAnalysisSampleVisitor.cxx:156 TQMultiChannelAnalysisSampleVisitor.cxx:157 TQMultiChannelAnalysisSampleVisitor.cxx:158 TQMultiChannelAnalysisSampleVisitor.cxx:159 TQMultiChannelAnalysisSampleVisitor.cxx:160 TQMultiChannelAnalysisSampleVisitor.cxx:161 TQMultiChannelAnalysisSampleVisitor.cxx:162 TQMultiChannelAnalysisSampleVisitor.cxx:163 TQMultiChannelAnalysisSampleVisitor.cxx:164 TQMultiChannelAnalysisSampleVisitor.cxx:165 TQMultiChannelAnalysisSampleVisitor.cxx:166 TQMultiChannelAnalysisSampleVisitor.cxx:167 TQMultiChannelAnalysisSampleVisitor.cxx:168 TQMultiChannelAnalysisSampleVisitor.cxx:169 TQMultiChannelAnalysisSampleVisitor.cxx:170 TQMultiChannelAnalysisSampleVisitor.cxx:171 TQMultiChannelAnalysisSampleVisitor.cxx:172 TQMultiChannelAnalysisSampleVisitor.cxx:173 TQMultiChannelAnalysisSampleVisitor.cxx:174 TQMultiChannelAnalysisSampleVisitor.cxx:175 TQMultiChannelAnalysisSampleVisitor.cxx:176 TQMultiChannelAnalysisSampleVisitor.cxx:177 TQMultiChannelAnalysisSampleVisitor.cxx:178 TQMultiChannelAnalysisSampleVisitor.cxx:179 TQMultiChannelAnalysisSampleVisitor.cxx:180 TQMultiChannelAnalysisSampleVisitor.cxx:181 TQMultiChannelAnalysisSampleVisitor.cxx:182 TQMultiChannelAnalysisSampleVisitor.cxx:183 TQMultiChannelAnalysisSampleVisitor.cxx:184 TQMultiChannelAnalysisSampleVisitor.cxx:185 TQMultiChannelAnalysisSampleVisitor.cxx:186 TQMultiChannelAnalysisSampleVisitor.cxx:187 TQMultiChannelAnalysisSampleVisitor.cxx:188 TQMultiChannelAnalysisSampleVisitor.cxx:189 TQMultiChannelAnalysisSampleVisitor.cxx:190 TQMultiChannelAnalysisSampleVisitor.cxx:191 TQMultiChannelAnalysisSampleVisitor.cxx:192 TQMultiChannelAnalysisSampleVisitor.cxx:193 TQMultiChannelAnalysisSampleVisitor.cxx:194 TQMultiChannelAnalysisSampleVisitor.cxx:195 TQMultiChannelAnalysisSampleVisitor.cxx:196 TQMultiChannelAnalysisSampleVisitor.cxx:197 TQMultiChannelAnalysisSampleVisitor.cxx:198 TQMultiChannelAnalysisSampleVisitor.cxx:199 TQMultiChannelAnalysisSampleVisitor.cxx:200 TQMultiChannelAnalysisSampleVisitor.cxx:201 TQMultiChannelAnalysisSampleVisitor.cxx:202 TQMultiChannelAnalysisSampleVisitor.cxx:203 TQMultiChannelAnalysisSampleVisitor.cxx:204 TQMultiChannelAnalysisSampleVisitor.cxx:205 TQMultiChannelAnalysisSampleVisitor.cxx:206 TQMultiChannelAnalysisSampleVisitor.cxx:207 TQMultiChannelAnalysisSampleVisitor.cxx:208 TQMultiChannelAnalysisSampleVisitor.cxx:209 TQMultiChannelAnalysisSampleVisitor.cxx:210 TQMultiChannelAnalysisSampleVisitor.cxx:211 TQMultiChannelAnalysisSampleVisitor.cxx:212 TQMultiChannelAnalysisSampleVisitor.cxx:213 TQMultiChannelAnalysisSampleVisitor.cxx:214 TQMultiChannelAnalysisSampleVisitor.cxx:215 TQMultiChannelAnalysisSampleVisitor.cxx:216 TQMultiChannelAnalysisSampleVisitor.cxx:217 TQMultiChannelAnalysisSampleVisitor.cxx:218 TQMultiChannelAnalysisSampleVisitor.cxx:219 TQMultiChannelAnalysisSampleVisitor.cxx:220 TQMultiChannelAnalysisSampleVisitor.cxx:221 TQMultiChannelAnalysisSampleVisitor.cxx:222 TQMultiChannelAnalysisSampleVisitor.cxx:223 TQMultiChannelAnalysisSampleVisitor.cxx:224 TQMultiChannelAnalysisSampleVisitor.cxx:225 TQMultiChannelAnalysisSampleVisitor.cxx:226 TQMultiChannelAnalysisSampleVisitor.cxx:227 TQMultiChannelAnalysisSampleVisitor.cxx:228 TQMultiChannelAnalysisSampleVisitor.cxx:229 TQMultiChannelAnalysisSampleVisitor.cxx:230 TQMultiChannelAnalysisSampleVisitor.cxx:231 TQMultiChannelAnalysisSampleVisitor.cxx:232 TQMultiChannelAnalysisSampleVisitor.cxx:233 TQMultiChannelAnalysisSampleVisitor.cxx:234 TQMultiChannelAnalysisSampleVisitor.cxx:235 TQMultiChannelAnalysisSampleVisitor.cxx:236 TQMultiChannelAnalysisSampleVisitor.cxx:237 TQMultiChannelAnalysisSampleVisitor.cxx:238 TQMultiChannelAnalysisSampleVisitor.cxx:239 TQMultiChannelAnalysisSampleVisitor.cxx:240 TQMultiChannelAnalysisSampleVisitor.cxx:241 TQMultiChannelAnalysisSampleVisitor.cxx:242 TQMultiChannelAnalysisSampleVisitor.cxx:243 TQMultiChannelAnalysisSampleVisitor.cxx:244 TQMultiChannelAnalysisSampleVisitor.cxx:245 TQMultiChannelAnalysisSampleVisitor.cxx:246 TQMultiChannelAnalysisSampleVisitor.cxx:247 TQMultiChannelAnalysisSampleVisitor.cxx:248 TQMultiChannelAnalysisSampleVisitor.cxx:249 TQMultiChannelAnalysisSampleVisitor.cxx:250 TQMultiChannelAnalysisSampleVisitor.cxx:251 TQMultiChannelAnalysisSampleVisitor.cxx:252 TQMultiChannelAnalysisSampleVisitor.cxx:253 TQMultiChannelAnalysisSampleVisitor.cxx:254 TQMultiChannelAnalysisSampleVisitor.cxx:255 TQMultiChannelAnalysisSampleVisitor.cxx:256 TQMultiChannelAnalysisSampleVisitor.cxx:257 TQMultiChannelAnalysisSampleVisitor.cxx:258 TQMultiChannelAnalysisSampleVisitor.cxx:259 TQMultiChannelAnalysisSampleVisitor.cxx:260 TQMultiChannelAnalysisSampleVisitor.cxx:261 TQMultiChannelAnalysisSampleVisitor.cxx:262 TQMultiChannelAnalysisSampleVisitor.cxx:263 TQMultiChannelAnalysisSampleVisitor.cxx:264 TQMultiChannelAnalysisSampleVisitor.cxx:265 TQMultiChannelAnalysisSampleVisitor.cxx:266 TQMultiChannelAnalysisSampleVisitor.cxx:267 TQMultiChannelAnalysisSampleVisitor.cxx:268 TQMultiChannelAnalysisSampleVisitor.cxx:269 TQMultiChannelAnalysisSampleVisitor.cxx:270 TQMultiChannelAnalysisSampleVisitor.cxx:271 TQMultiChannelAnalysisSampleVisitor.cxx:272 TQMultiChannelAnalysisSampleVisitor.cxx:273 TQMultiChannelAnalysisSampleVisitor.cxx:274 TQMultiChannelAnalysisSampleVisitor.cxx:275 TQMultiChannelAnalysisSampleVisitor.cxx:276 TQMultiChannelAnalysisSampleVisitor.cxx:277 TQMultiChannelAnalysisSampleVisitor.cxx:278 TQMultiChannelAnalysisSampleVisitor.cxx:279 TQMultiChannelAnalysisSampleVisitor.cxx:280 TQMultiChannelAnalysisSampleVisitor.cxx:281 TQMultiChannelAnalysisSampleVisitor.cxx:282 TQMultiChannelAnalysisSampleVisitor.cxx:283 TQMultiChannelAnalysisSampleVisitor.cxx:284 TQMultiChannelAnalysisSampleVisitor.cxx:285 TQMultiChannelAnalysisSampleVisitor.cxx:286 TQMultiChannelAnalysisSampleVisitor.cxx:287 TQMultiChannelAnalysisSampleVisitor.cxx:288 TQMultiChannelAnalysisSampleVisitor.cxx:289 TQMultiChannelAnalysisSampleVisitor.cxx:290 TQMultiChannelAnalysisSampleVisitor.cxx:291 TQMultiChannelAnalysisSampleVisitor.cxx:292 TQMultiChannelAnalysisSampleVisitor.cxx:293 TQMultiChannelAnalysisSampleVisitor.cxx:294 TQMultiChannelAnalysisSampleVisitor.cxx:295 TQMultiChannelAnalysisSampleVisitor.cxx:296 TQMultiChannelAnalysisSampleVisitor.cxx:297 TQMultiChannelAnalysisSampleVisitor.cxx:298 TQMultiChannelAnalysisSampleVisitor.cxx:299 TQMultiChannelAnalysisSampleVisitor.cxx:300 TQMultiChannelAnalysisSampleVisitor.cxx:301 TQMultiChannelAnalysisSampleVisitor.cxx:302 TQMultiChannelAnalysisSampleVisitor.cxx:303 TQMultiChannelAnalysisSampleVisitor.cxx:304 TQMultiChannelAnalysisSampleVisitor.cxx:305 TQMultiChannelAnalysisSampleVisitor.cxx:306 TQMultiChannelAnalysisSampleVisitor.cxx:307 TQMultiChannelAnalysisSampleVisitor.cxx:308 TQMultiChannelAnalysisSampleVisitor.cxx:309 TQMultiChannelAnalysisSampleVisitor.cxx:310 TQMultiChannelAnalysisSampleVisitor.cxx:311 TQMultiChannelAnalysisSampleVisitor.cxx:312 TQMultiChannelAnalysisSampleVisitor.cxx:313 TQMultiChannelAnalysisSampleVisitor.cxx:314 TQMultiChannelAnalysisSampleVisitor.cxx:315 TQMultiChannelAnalysisSampleVisitor.cxx:316 TQMultiChannelAnalysisSampleVisitor.cxx:317 TQMultiChannelAnalysisSampleVisitor.cxx:318 TQMultiChannelAnalysisSampleVisitor.cxx:319 TQMultiChannelAnalysisSampleVisitor.cxx:320 TQMultiChannelAnalysisSampleVisitor.cxx:321 TQMultiChannelAnalysisSampleVisitor.cxx:322 TQMultiChannelAnalysisSampleVisitor.cxx:323 TQMultiChannelAnalysisSampleVisitor.cxx:324 TQMultiChannelAnalysisSampleVisitor.cxx:325 TQMultiChannelAnalysisSampleVisitor.cxx:326 TQMultiChannelAnalysisSampleVisitor.cxx:327 TQMultiChannelAnalysisSampleVisitor.cxx:328 TQMultiChannelAnalysisSampleVisitor.cxx:329 TQMultiChannelAnalysisSampleVisitor.cxx:330 TQMultiChannelAnalysisSampleVisitor.cxx:331 TQMultiChannelAnalysisSampleVisitor.cxx:332 TQMultiChannelAnalysisSampleVisitor.cxx:333 TQMultiChannelAnalysisSampleVisitor.cxx:334 TQMultiChannelAnalysisSampleVisitor.cxx:335 TQMultiChannelAnalysisSampleVisitor.cxx:336 TQMultiChannelAnalysisSampleVisitor.cxx:337 TQMultiChannelAnalysisSampleVisitor.cxx:338 TQMultiChannelAnalysisSampleVisitor.cxx:339 TQMultiChannelAnalysisSampleVisitor.cxx:340 TQMultiChannelAnalysisSampleVisitor.cxx:341 TQMultiChannelAnalysisSampleVisitor.cxx:342 TQMultiChannelAnalysisSampleVisitor.cxx:343 TQMultiChannelAnalysisSampleVisitor.cxx:344 TQMultiChannelAnalysisSampleVisitor.cxx:345 TQMultiChannelAnalysisSampleVisitor.cxx:346 TQMultiChannelAnalysisSampleVisitor.cxx:347 TQMultiChannelAnalysisSampleVisitor.cxx:348 TQMultiChannelAnalysisSampleVisitor.cxx:349 TQMultiChannelAnalysisSampleVisitor.cxx:350 TQMultiChannelAnalysisSampleVisitor.cxx:351 TQMultiChannelAnalysisSampleVisitor.cxx:352 TQMultiChannelAnalysisSampleVisitor.cxx:353 TQMultiChannelAnalysisSampleVisitor.cxx:354 TQMultiChannelAnalysisSampleVisitor.cxx:355 TQMultiChannelAnalysisSampleVisitor.cxx:356 TQMultiChannelAnalysisSampleVisitor.cxx:357 TQMultiChannelAnalysisSampleVisitor.cxx:358 TQMultiChannelAnalysisSampleVisitor.cxx:359 TQMultiChannelAnalysisSampleVisitor.cxx:360 TQMultiChannelAnalysisSampleVisitor.cxx:361 TQMultiChannelAnalysisSampleVisitor.cxx:362 TQMultiChannelAnalysisSampleVisitor.cxx:363 TQMultiChannelAnalysisSampleVisitor.cxx:364 TQMultiChannelAnalysisSampleVisitor.cxx:365 TQMultiChannelAnalysisSampleVisitor.cxx:366 TQMultiChannelAnalysisSampleVisitor.cxx:367 TQMultiChannelAnalysisSampleVisitor.cxx:368 TQMultiChannelAnalysisSampleVisitor.cxx:369 TQMultiChannelAnalysisSampleVisitor.cxx:370 TQMultiChannelAnalysisSampleVisitor.cxx:371 TQMultiChannelAnalysisSampleVisitor.cxx:372 TQMultiChannelAnalysisSampleVisitor.cxx:373 TQMultiChannelAnalysisSampleVisitor.cxx:374 TQMultiChannelAnalysisSampleVisitor.cxx:375 TQMultiChannelAnalysisSampleVisitor.cxx:376 TQMultiChannelAnalysisSampleVisitor.cxx:377 TQMultiChannelAnalysisSampleVisitor.cxx:378 TQMultiChannelAnalysisSampleVisitor.cxx:379 TQMultiChannelAnalysisSampleVisitor.cxx:380 TQMultiChannelAnalysisSampleVisitor.cxx:381 TQMultiChannelAnalysisSampleVisitor.cxx:382 TQMultiChannelAnalysisSampleVisitor.cxx:383 TQMultiChannelAnalysisSampleVisitor.cxx:384 TQMultiChannelAnalysisSampleVisitor.cxx:385 TQMultiChannelAnalysisSampleVisitor.cxx:386 TQMultiChannelAnalysisSampleVisitor.cxx:387 TQMultiChannelAnalysisSampleVisitor.cxx:388 TQMultiChannelAnalysisSampleVisitor.cxx:389 TQMultiChannelAnalysisSampleVisitor.cxx:390 TQMultiChannelAnalysisSampleVisitor.cxx:391 TQMultiChannelAnalysisSampleVisitor.cxx:392 TQMultiChannelAnalysisSampleVisitor.cxx:393 TQMultiChannelAnalysisSampleVisitor.cxx:394 TQMultiChannelAnalysisSampleVisitor.cxx:395 TQMultiChannelAnalysisSampleVisitor.cxx:396 TQMultiChannelAnalysisSampleVisitor.cxx:397 TQMultiChannelAnalysisSampleVisitor.cxx:398 TQMultiChannelAnalysisSampleVisitor.cxx:399 TQMultiChannelAnalysisSampleVisitor.cxx:400 TQMultiChannelAnalysisSampleVisitor.cxx:401 TQMultiChannelAnalysisSampleVisitor.cxx:402 TQMultiChannelAnalysisSampleVisitor.cxx:403 TQMultiChannelAnalysisSampleVisitor.cxx:404 TQMultiChannelAnalysisSampleVisitor.cxx:405 TQMultiChannelAnalysisSampleVisitor.cxx:406 TQMultiChannelAnalysisSampleVisitor.cxx:407 TQMultiChannelAnalysisSampleVisitor.cxx:408 TQMultiChannelAnalysisSampleVisitor.cxx:409 TQMultiChannelAnalysisSampleVisitor.cxx:410 TQMultiChannelAnalysisSampleVisitor.cxx:411 TQMultiChannelAnalysisSampleVisitor.cxx:412 TQMultiChannelAnalysisSampleVisitor.cxx:413 TQMultiChannelAnalysisSampleVisitor.cxx:414 TQMultiChannelAnalysisSampleVisitor.cxx:415 TQMultiChannelAnalysisSampleVisitor.cxx:416 TQMultiChannelAnalysisSampleVisitor.cxx:417 TQMultiChannelAnalysisSampleVisitor.cxx:418 TQMultiChannelAnalysisSampleVisitor.cxx:419 TQMultiChannelAnalysisSampleVisitor.cxx:420 TQMultiChannelAnalysisSampleVisitor.cxx:421 TQMultiChannelAnalysisSampleVisitor.cxx:422 TQMultiChannelAnalysisSampleVisitor.cxx:423 TQMultiChannelAnalysisSampleVisitor.cxx:424 TQMultiChannelAnalysisSampleVisitor.cxx:425 TQMultiChannelAnalysisSampleVisitor.cxx:426 TQMultiChannelAnalysisSampleVisitor.cxx:427 TQMultiChannelAnalysisSampleVisitor.cxx:428 TQMultiChannelAnalysisSampleVisitor.cxx:429 TQMultiChannelAnalysisSampleVisitor.cxx:430 TQMultiChannelAnalysisSampleVisitor.cxx:431 TQMultiChannelAnalysisSampleVisitor.cxx:432 TQMultiChannelAnalysisSampleVisitor.cxx:433 TQMultiChannelAnalysisSampleVisitor.cxx:434 TQMultiChannelAnalysisSampleVisitor.cxx:435 TQMultiChannelAnalysisSampleVisitor.cxx:436 TQMultiChannelAnalysisSampleVisitor.cxx:437 TQMultiChannelAnalysisSampleVisitor.cxx:438 TQMultiChannelAnalysisSampleVisitor.cxx:439 TQMultiChannelAnalysisSampleVisitor.cxx:440 TQMultiChannelAnalysisSampleVisitor.cxx:441 TQMultiChannelAnalysisSampleVisitor.cxx:442 TQMultiChannelAnalysisSampleVisitor.cxx:443 TQMultiChannelAnalysisSampleVisitor.cxx:444 TQMultiChannelAnalysisSampleVisitor.cxx:445 TQMultiChannelAnalysisSampleVisitor.cxx:446 TQMultiChannelAnalysisSampleVisitor.cxx:447 TQMultiChannelAnalysisSampleVisitor.cxx:448 TQMultiChannelAnalysisSampleVisitor.cxx:449 TQMultiChannelAnalysisSampleVisitor.cxx:450 TQMultiChannelAnalysisSampleVisitor.cxx:451 TQMultiChannelAnalysisSampleVisitor.cxx:452 TQMultiChannelAnalysisSampleVisitor.cxx:453 TQMultiChannelAnalysisSampleVisitor.cxx:454 TQMultiChannelAnalysisSampleVisitor.cxx:455 TQMultiChannelAnalysisSampleVisitor.cxx:456 TQMultiChannelAnalysisSampleVisitor.cxx:457 TQMultiChannelAnalysisSampleVisitor.cxx:458 TQMultiChannelAnalysisSampleVisitor.cxx:459 TQMultiChannelAnalysisSampleVisitor.cxx:460 TQMultiChannelAnalysisSampleVisitor.cxx:461 TQMultiChannelAnalysisSampleVisitor.cxx:462 TQMultiChannelAnalysisSampleVisitor.cxx:463 TQMultiChannelAnalysisSampleVisitor.cxx:464 TQMultiChannelAnalysisSampleVisitor.cxx:465 TQMultiChannelAnalysisSampleVisitor.cxx:466 TQMultiChannelAnalysisSampleVisitor.cxx:467 TQMultiChannelAnalysisSampleVisitor.cxx:468 TQMultiChannelAnalysisSampleVisitor.cxx:469 TQMultiChannelAnalysisSampleVisitor.cxx:470 TQMultiChannelAnalysisSampleVisitor.cxx:471 TQMultiChannelAnalysisSampleVisitor.cxx:472 TQMultiChannelAnalysisSampleVisitor.cxx:473 TQMultiChannelAnalysisSampleVisitor.cxx:474 TQMultiChannelAnalysisSampleVisitor.cxx:475 TQMultiChannelAnalysisSampleVisitor.cxx:476 TQMultiChannelAnalysisSampleVisitor.cxx:477 TQMultiChannelAnalysisSampleVisitor.cxx:478 TQMultiChannelAnalysisSampleVisitor.cxx:479 TQMultiChannelAnalysisSampleVisitor.cxx:480 TQMultiChannelAnalysisSampleVisitor.cxx:481 TQMultiChannelAnalysisSampleVisitor.cxx:482 TQMultiChannelAnalysisSampleVisitor.cxx:483 TQMultiChannelAnalysisSampleVisitor.cxx:484 TQMultiChannelAnalysisSampleVisitor.cxx:485 TQMultiChannelAnalysisSampleVisitor.cxx:486 TQMultiChannelAnalysisSampleVisitor.cxx:487 TQMultiChannelAnalysisSampleVisitor.cxx:488 TQMultiChannelAnalysisSampleVisitor.cxx:489 TQMultiChannelAnalysisSampleVisitor.cxx:490 TQMultiChannelAnalysisSampleVisitor.cxx:491 TQMultiChannelAnalysisSampleVisitor.cxx:492 TQMultiChannelAnalysisSampleVisitor.cxx:493 TQMultiChannelAnalysisSampleVisitor.cxx:494 TQMultiChannelAnalysisSampleVisitor.cxx:495 TQMultiChannelAnalysisSampleVisitor.cxx:496 TQMultiChannelAnalysisSampleVisitor.cxx:497 TQMultiChannelAnalysisSampleVisitor.cxx:498 TQMultiChannelAnalysisSampleVisitor.cxx:499 TQMultiChannelAnalysisSampleVisitor.cxx:500 TQMultiChannelAnalysisSampleVisitor.cxx:501 TQMultiChannelAnalysisSampleVisitor.cxx:502 TQMultiChannelAnalysisSampleVisitor.cxx:503 TQMultiChannelAnalysisSampleVisitor.cxx:504 TQMultiChannelAnalysisSampleVisitor.cxx:505 TQMultiChannelAnalysisSampleVisitor.cxx:506 TQMultiChannelAnalysisSampleVisitor.cxx:507 TQMultiChannelAnalysisSampleVisitor.cxx:508 TQMultiChannelAnalysisSampleVisitor.cxx:509 TQMultiChannelAnalysisSampleVisitor.cxx:510 TQMultiChannelAnalysisSampleVisitor.cxx:511 TQMultiChannelAnalysisSampleVisitor.cxx:512 TQMultiChannelAnalysisSampleVisitor.cxx:513 TQMultiChannelAnalysisSampleVisitor.cxx:514 TQMultiChannelAnalysisSampleVisitor.cxx:515 TQMultiChannelAnalysisSampleVisitor.cxx:516 TQMultiChannelAnalysisSampleVisitor.cxx:517 TQMultiChannelAnalysisSampleVisitor.cxx:518 TQMultiChannelAnalysisSampleVisitor.cxx:519 TQMultiChannelAnalysisSampleVisitor.cxx:520 TQMultiChannelAnalysisSampleVisitor.cxx:521 TQMultiChannelAnalysisSampleVisitor.cxx:522 TQMultiChannelAnalysisSampleVisitor.cxx:523 TQMultiChannelAnalysisSampleVisitor.cxx:524 TQMultiChannelAnalysisSampleVisitor.cxx:525 TQMultiChannelAnalysisSampleVisitor.cxx:526 TQMultiChannelAnalysisSampleVisitor.cxx:527 TQMultiChannelAnalysisSampleVisitor.cxx:528 TQMultiChannelAnalysisSampleVisitor.cxx:529 TQMultiChannelAnalysisSampleVisitor.cxx:530 TQMultiChannelAnalysisSampleVisitor.cxx:531 TQMultiChannelAnalysisSampleVisitor.cxx:532 TQMultiChannelAnalysisSampleVisitor.cxx:533 TQMultiChannelAnalysisSampleVisitor.cxx:534 TQMultiChannelAnalysisSampleVisitor.cxx:535 TQMultiChannelAnalysisSampleVisitor.cxx:536 TQMultiChannelAnalysisSampleVisitor.cxx:537 TQMultiChannelAnalysisSampleVisitor.cxx:538 TQMultiChannelAnalysisSampleVisitor.cxx:539 TQMultiChannelAnalysisSampleVisitor.cxx:540 TQMultiChannelAnalysisSampleVisitor.cxx:541 TQMultiChannelAnalysisSampleVisitor.cxx:542 TQMultiChannelAnalysisSampleVisitor.cxx:543 TQMultiChannelAnalysisSampleVisitor.cxx:544 TQMultiChannelAnalysisSampleVisitor.cxx:545 TQMultiChannelAnalysisSampleVisitor.cxx:546 TQMultiChannelAnalysisSampleVisitor.cxx:547 TQMultiChannelAnalysisSampleVisitor.cxx:548 TQMultiChannelAnalysisSampleVisitor.cxx:549 TQMultiChannelAnalysisSampleVisitor.cxx:550 TQMultiChannelAnalysisSampleVisitor.cxx:551 TQMultiChannelAnalysisSampleVisitor.cxx:552 TQMultiChannelAnalysisSampleVisitor.cxx:553 TQMultiChannelAnalysisSampleVisitor.cxx:554 TQMultiChannelAnalysisSampleVisitor.cxx:555 TQMultiChannelAnalysisSampleVisitor.cxx:556 TQMultiChannelAnalysisSampleVisitor.cxx:557 TQMultiChannelAnalysisSampleVisitor.cxx:558 TQMultiChannelAnalysisSampleVisitor.cxx:559 TQMultiChannelAnalysisSampleVisitor.cxx:560 TQMultiChannelAnalysisSampleVisitor.cxx:561 TQMultiChannelAnalysisSampleVisitor.cxx:562 TQMultiChannelAnalysisSampleVisitor.cxx:563 TQMultiChannelAnalysisSampleVisitor.cxx:564 TQMultiChannelAnalysisSampleVisitor.cxx:565 TQMultiChannelAnalysisSampleVisitor.cxx:566 TQMultiChannelAnalysisSampleVisitor.cxx:567 TQMultiChannelAnalysisSampleVisitor.cxx:568 TQMultiChannelAnalysisSampleVisitor.cxx:569 TQMultiChannelAnalysisSampleVisitor.cxx:570 TQMultiChannelAnalysisSampleVisitor.cxx:571 TQMultiChannelAnalysisSampleVisitor.cxx:572 TQMultiChannelAnalysisSampleVisitor.cxx:573 TQMultiChannelAnalysisSampleVisitor.cxx:574 TQMultiChannelAnalysisSampleVisitor.cxx:575 TQMultiChannelAnalysisSampleVisitor.cxx:576 TQMultiChannelAnalysisSampleVisitor.cxx:577 TQMultiChannelAnalysisSampleVisitor.cxx:578 TQMultiChannelAnalysisSampleVisitor.cxx:579 TQMultiChannelAnalysisSampleVisitor.cxx:580 TQMultiChannelAnalysisSampleVisitor.cxx:581 TQMultiChannelAnalysisSampleVisitor.cxx:582 TQMultiChannelAnalysisSampleVisitor.cxx:583 TQMultiChannelAnalysisSampleVisitor.cxx:584 TQMultiChannelAnalysisSampleVisitor.cxx:585 TQMultiChannelAnalysisSampleVisitor.cxx:586 TQMultiChannelAnalysisSampleVisitor.cxx:587 TQMultiChannelAnalysisSampleVisitor.cxx:588 TQMultiChannelAnalysisSampleVisitor.cxx:589 TQMultiChannelAnalysisSampleVisitor.cxx:590 TQMultiChannelAnalysisSampleVisitor.cxx:591 TQMultiChannelAnalysisSampleVisitor.cxx:592 TQMultiChannelAnalysisSampleVisitor.cxx:593 TQMultiChannelAnalysisSampleVisitor.cxx:594 TQMultiChannelAnalysisSampleVisitor.cxx:595 TQMultiChannelAnalysisSampleVisitor.cxx:596 TQMultiChannelAnalysisSampleVisitor.cxx:597 TQMultiChannelAnalysisSampleVisitor.cxx:598 TQMultiChannelAnalysisSampleVisitor.cxx:599 TQMultiChannelAnalysisSampleVisitor.cxx:600 TQMultiChannelAnalysisSampleVisitor.cxx:601 TQMultiChannelAnalysisSampleVisitor.cxx:602 TQMultiChannelAnalysisSampleVisitor.cxx:603 TQMultiChannelAnalysisSampleVisitor.cxx:604 TQMultiChannelAnalysisSampleVisitor.cxx:605 TQMultiChannelAnalysisSampleVisitor.cxx:606 TQMultiChannelAnalysisSampleVisitor.cxx:607 TQMultiChannelAnalysisSampleVisitor.cxx:608 TQMultiChannelAnalysisSampleVisitor.cxx:609 TQMultiChannelAnalysisSampleVisitor.cxx:610 TQMultiChannelAnalysisSampleVisitor.cxx:611 TQMultiChannelAnalysisSampleVisitor.cxx:612 TQMultiChannelAnalysisSampleVisitor.cxx:613 TQMultiChannelAnalysisSampleVisitor.cxx:614 TQMultiChannelAnalysisSampleVisitor.cxx:615 TQMultiChannelAnalysisSampleVisitor.cxx:616 TQMultiChannelAnalysisSampleVisitor.cxx:617 TQMultiChannelAnalysisSampleVisitor.cxx:618 TQMultiChannelAnalysisSampleVisitor.cxx:619 TQMultiChannelAnalysisSampleVisitor.cxx:620 TQMultiChannelAnalysisSampleVisitor.cxx:621 TQMultiChannelAnalysisSampleVisitor.cxx:622 TQMultiChannelAnalysisSampleVisitor.cxx:623 TQMultiChannelAnalysisSampleVisitor.cxx:624 TQMultiChannelAnalysisSampleVisitor.cxx:625 TQMultiChannelAnalysisSampleVisitor.cxx:626