#include "SFramework/TSCLSignificanceEvaluator.h"
#include "QFramework/TQIterator.h"
#include "TSystem.h"
#include "QFramework/TQSampleDataReader.h"
#include "QFramework/TQSampleFolder.h"
#include "TStopwatch.h"
#include "QFramework/TQHistogramUtils.h"
#include "QFramework/TQTHnBaseUtils.h"
#include "QFramework/TQGridScanBound.h"
#include "QFramework/TQStringUtils.h"
#include "QFramework/TQLibrary.h"
#include "QFramework/TQUtils.h"
#include "QFramework/TQPathManager.h"
#include "TFile.h"
#include "TMath.h"

#include <iostream>
#include <fstream>

ClassImp(TSCLSignificanceEvaluator)

//___________________________________________________________________________________________

double TSCLSignificanceEvaluator::getLuminosity(TString folderName, TString tagName){
	// retrieve the luminosity value from the given location (default info/luminosity)
	// within the sample folder structure (and save it internally)
	folderName = TQFolder::concatPaths(variations[0],folderName);
	if(this->baseFolder && this->baseFolder->getFolder(folderName))
		this->baseFolder->getFolder(folderName)->getTagDouble(tagName,this->luminosity);
	return this->luminosity;
}

//___________________________________________________________________________________________

TSCLSignificanceEvaluator::TSCLSignificanceEvaluator(TQSampleFolder* sf, TString discVariable, TString name) : 
	TQSignificanceEvaluator(name,NULL),
	baseFolder(TQSampleFolder::newSampleFolder("base")),
	workingFolder(TQSampleFolder::newSampleFolder(name)),
	m_config(new TQFolder("config")),
	tmpFileName("histograms_tmp.root"),
	tmpFileNameBase(""),
	outputdir(""),
	modelName(name),
	discriminantVariable(discVariable),
	engine(NULL),
	sampleFolderFileName("samples.root"),
	significanceFileName("significance.txt"),
	evaluationCommand(""),
	internalEvaluation(true),
	recyclingAllowed(false),
	supportRegionSetHandling(false),
	debug(false), // Add tag to control this!
	nPreparedRegionSets(0),
	sampleFolderMode(NONE),
	significanceMode(NONE)
{
  // specialized constructor taking the target sample folder
  // the discriminant variable (histogram variable)
  // and the name of the desired working folder
  // if(sf){
  // 	this->baseFolder->addObject(sf,"::Nominal");
  // 	this->variations.push_back("Nominal");
  // }
  // this->reader = new TQSampleDataReader(this->baseFolder);
  if (sf) {
    this->reader = new TQSampleDataReader(sf);
  }
  isSimpleEvaluator = false;
}

//___________________________________________________________________________________________

TSCLSignificanceEvaluator::TSCLSignificanceEvaluator(TList* folders, TString discVariable, TString name, TString folderKeyTag) : 
	TQSignificanceEvaluator(name,NULL),
	baseFolder(TQSampleFolder::newSampleFolder("base")),
	workingFolder(TQSampleFolder::newSampleFolder(name)),
	m_config(new TQFolder("config")),
	tmpFileName("histograms_tmp.root"),
	tmpFileNameBase(""),
	outputdir(""),
	modelName(name),
	discriminantVariable(discVariable),
	engine(NULL),
	sampleFolderFileName("samples.root"),
	significanceFileName("significance.txt"),
	evaluationCommand(""),
	internalEvaluation(true),
	recyclingAllowed(false),
	supportRegionSetHandling(false),
	debug(false),
	nPreparedRegionSets(0),
	sampleFolderMode(NONE),
	significanceMode(NONE)
{
  isSimpleEvaluator = false;
	// specialized constructor taking the list of target sample folders
	// the discriminant variable (histogram variable)
	// and the name of the desired working folder
	this->reader = new TQSampleDataReader(this->baseFolder);
	if(!folders || folders->GetEntries() < 1) return;
	if(folders->GetEntries() == 1){
		TQSampleFolder* sf = dynamic_cast<TQSampleFolder*>(folders->First());
		this->baseFolder->addObject(sf,"::Nominal");
		this->variations.push_back("Nominal");
		return;
	}
	TQIterator itr(folders);
	while(itr.hasNext()){
		TQSampleFolder* sf = dynamic_cast<TQSampleFolder*>(itr.readNext());
		if(!sf) continue;
		TString sfname = sf->getName();
		if(!folderKeyTag.IsNull()) sf->getTagString(folderKeyTag,sfname);
		this->baseFolder->addObject(sf,"::"+sfname);
		if(TQStringUtils::matches(sfname,"*Nominal*"))
			this->variations.insert(this->variations.begin(),sfname);
		else
			this->variations.push_back(sfname);
	}
}

//___________________________________________________________________________________________

TSCLSignificanceEvaluator::TSCLSignificanceEvaluator(TString discVariable, TString name) : 
	TQSignificanceEvaluator(name,NULL),
	baseFolder(TQSampleFolder::newSampleFolder("base")),
	workingFolder(TQSampleFolder::newSampleFolder(name)),
	m_config(new TQFolder("config")),
	tmpFileName("histograms_tmp.root"),
	tmpFileNameBase(""),
	outputdir(""),
	modelName(name),
	discriminantVariable(discVariable),
	engine(NULL),
	sampleFolderFileName("samples.root"),
	significanceFileName("significance.txt"),
	evaluationCommand(""),
	internalEvaluation(true),
	recyclingAllowed(false),
	supportRegionSetHandling(false),
	debug(false),
	nPreparedRegionSets(0),
	sampleFolderMode(NONE),
	significanceMode(NONE)
{
  isSimpleEvaluator = false;
	// default constructor 
	// taking the discriminant variable (histogram variable)
	// and the name of the desired working folder
	this->reader = new TQSampleDataReader(this->baseFolder);
}

void TSCLSignificanceEvaluator::setDebugOutputdir(TString outdir){

	this->outputdir = outdir;	
}


//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::deactivate(){
	// deactivate the evaluator, disabling all evaluation capabilities
	this->sampleFolderMode = NONE;
	this->significanceMode = NONE;
	this->internalEvaluation = false;
	this->evaluationCommand = "";
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::exportSampleFolder(bool doexport){
	// trigger exporting of the sample folder
	if(doexport)
		this->sampleFolderMode = EXPORT;
	else
		this->sampleFolderMode = NONE;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::importSampleFolder(bool doimport){
	// trigger importing of the sample folder
	if(doimport){
		this->sampleFolderMode = IMPORT;
		this->setInternalEvaluation(true);
	} else
		this->sampleFolderMode = NONE;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::exportSignificance(bool doexport){
	// trigger exporting of evaluation results
	if(doexport)
		this->significanceMode = EXPORT;
	else
		this->significanceMode = NONE;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::importSignificance(bool doimport){
	// trigger importing of evaluation results
	if(doimport){
		this->significanceMode = IMPORT;
		this->setInternalEvaluation(false);
	} else 
		this->significanceMode = NONE;
}

void TSCLSignificanceEvaluator::setInternalEvaluation(bool eval){
	// set the evaluation to "internal" mode
	// currently not advised due to a rampant memory leak in HistFactory
	// https://sft.its.cern.ch/jira/browse/ROOT-5236
	this->internalEvaluation = eval;
	if(eval && this->significanceMode == IMPORT)
		this->significanceMode = NONE;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::setExternalEvaluation(const TString& command, bool allowRecycling){
	// set the evaluation to "external" mode 
	// using the given command to be submitted to a console
	// currently the preferred way of evaluation
	if(command.IsNull()){
		this->internalEvaluation = true;
		return;
	}
	this->internalEvaluation = false;
	this->evaluationCommand = command;
	this->significanceMode = IMPORT;
	this->sampleFolderMode = EXPORT;
	this->recyclingAllowed = allowRecycling;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::setSampleFolderFile(const TString& filename){
	// set the filename of the sample folder for import/export
	if(filename.IsNull())
		return;
	this->sampleFolderFileName = filename;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::setRegionSetHandling(bool val){
	this->supportRegionSetHandling = val;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::setSignificanceFile(const TString& filename){
	// set the filename for the import/export of results
	if(filename.IsNull())
		return;
	this->significanceFileName = filename;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::keepTMP(TString tmpfilenamebase){
	// avoid deletion of the temporary files
	// instead, move them to a location specified by the given base name
	this->tmpFileNameBase = tmpfilenamebase;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::addVariation(TQSampleFolder* sf, TString varname){
	// add a systematic variation to the evaluation
	this->reader->getSampleFolder()->addObject(sf,"::"+varname);
	this->variations.push_back(varname);
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::setInitialization(TClass* initClass){
	this->initialization = initClass;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::configure(const TString& configfilename, const TString& modelname){
	// configure the evaluator using the given stats configuration and model name
	// this function should be called only AFTER all other settings have been adjusted

	m_config->importFromTextFile(configfilename);
	m_config->importFromTextFile(TQPathManager::getPathManager()->getTargetPath(configfilename).c_str());
	this->evaluationCommand.ReplaceAll("$(CONFIG)",configfilename);
	if(modelname.Length() > 0)
		this->modelName = modelname;
	TQFolder* createmodels = m_config->getFolder("CreateModels."+this->modelName);
	if(!createmodels){
		m_config->deleteAll();
		return false;
	}
	createmodels->getTagString("name",this->modelName);
	TQFolder* createworkspaces = m_config->getFolder("CreateWorkspaces");
	if(!createworkspaces){
		m_config->deleteAll();
		return false;
	}
	createworkspaces->getTagString("histogramsFile",tmpFileName);
	// remove variations folder for which there is no sample folder present
	TQIterator vitr(m_config->getListOfFolders("?/ModelConfiguration/Variations/?"),true);
	while (vitr.hasNext()){
	    TQFolder* var = (TQFolder*)vitr.readNext();
		var->setTagString(".Variation",var->getName());
	    TString varsfname = var->replaceInText(var->getTagStringDefault("~SampleFolder",var->getName()));
		if(TQStringUtils::removeLeading(varsfname,":") != 1) continue;
	    bool found = false;
	    for(size_t i=0; i<this->variations.size(); i++){
			if(this->variations[i] == varsfname){
				found = true;
				break;
			}
	    }
	    if(!found){ 
              m_config->removeObject(var->getPath());
		}
	}
	// remove systematics folder for variations that are not present
	TQIterator sysitr(m_config->getListOfFolders("?/ModelConfiguration/Systematics/?"),true);
	TQIterator sysvaritr(m_config->getListOfFolders("?/ModelConfiguration/Variations/?"),true);
	while(sysitr.hasNext()){
		TQFolder* f = dynamic_cast<TQFolder*>(sysitr.readNext());
		TString up = f->getTagStringDefault("Up","");
		TString down = f->getTagStringDefault("Down","");
		sysvaritr.reset();
		int found = 0;
		while(vitr.hasNext()){
			TQFolder* var = (TQFolder*)sysvaritr.readNext();
			if(var->getNameConst() == up || var->getNameConst() == down) found++;
			if(found > 1) break;
		}
		if(found < 2) m_config->removeObject(f->getPath());
	}

	// create a list of all locations and histogram names
	if(!this->baseFolder){
		std::cout << "ERROR in TSCLSignificanceEvaluator(" << this->GetName() << ")::configure(...) : base sample folder is NULL, terminating now!" << std::endl;
		return false;
	}
	if(this->variations.size() < 1){
		std::cout << "ERROR in TSCLSignificanceEvaluator(" << this->GetName() << ")::configure(...) : no variations scheduled - not even 'Nominal'!" << std::endl;
		return false;
	}
	TQSampleFolder* nomfolder = this->baseFolder->getSampleFolder(this->variations[0]);
	if(!nomfolder){
		std::cout << "ERROR in TSCLSignificanceEvaluator(" << this->GetName() << ")::configure(...) : base sample folder does not contain '" << this->variations[0] << "' subfolder, terminating now!" << std::endl;
		return false;
	}
	TQSampleDataReader* nomreader = new TQSampleDataReader(nomfolder);
	// loop over all samples listed in the configuration file
	TQFolder* parameters = m_config->getFolder("?/ModelConfiguration/Parameters/");
	if(parameters)
		parameters->setTagDouble("lumi",this->luminosityScale);
	TQIterator sitr(m_config->getListOfFolders("?/ModelConfiguration/Samples/?"),true);
	TQIterator chitr(m_config->getListOfFolders("?/ModelConfiguration/Channels/?"),true);
	while (sitr.hasNext()) { 
		chitr.reset();
		// obtain the sample path
		TQFolder * f = (TQFolder*)sitr.readNext();
		TString pathorig; 
		f->getTagString("Path", pathorig);
		while (chitr.hasNext()) { 
			// loop over all channels listed in the configuration file
			// fill the channel information into the sample path string
			TQTaggable tags((TQFolder*)(chitr.readNext()));
			TString hName = tags.getTagStringDefault("Histogram",this->discriminantVariable);
			if(this->initialization == TQGridScanner::Class()){
				tags.getTagString("CounterGrid",hName);
			}
			bool foundHistogram = false;
			for(size_t k=0; k<m_histNames.size(); k++){
				if(m_histNames[k] == hName)
					foundHistogram = true;
			}
			if(!foundHistogram)
				this->m_histNames.push_back(hName);
			TString pathreplaced = tags.replaceInText(pathorig);
			TQIterator fitr(nomreader->getListOfSampleFolders(pathreplaced),true);
			// expand the corresponding sample folder paths and loop over them
			while (fitr.hasNext()){
				TQSampleFolder* sf = (TQSampleFolder*)(fitr.readNext());
				if(!sf)
					continue;
				// get a full variant (starting with "Nominal")
				// and a bare variant (without the head)
				TString pathfull = sf->getPath();
				TString pathbare = TQFolder::getPathWithoutHead(pathfull);
				// check if the corresponding folder already exists
				TQSampleFolder* newsf = this->workingFolder->getSampleFolder(pathfull);
				// if not, we create it
				// and save the location
				if(!newsf){
					newsf = this->workingFolder->getSampleFolder(pathfull+"+");
					this->locations.push_back(pathbare);
				}
			}
		}
	}
	delete nomreader;
	for(size_t i=1; i<variations.size(); i++){
		for(size_t j=0; j<locations.size(); j++){
			this->workingFolder->getSampleFolder(TQFolder::concatPaths(this->variations[i],this->locations[j])+"+");
		}
	}
	return true;
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::printMode(){
	// print the current evaluation mode/settings
	std::cout << TQStringUtils::makeBoldWhite("== Configuration for Significance Evaluator ");
	std::cout << TQStringUtils::makeBoldRed(this->GetName());
	std::cout << TQStringUtils::makeBoldWhite(" ==") << std::endl;
	if(this->sampleFolderMode == EXPORT){
		std::cout << "export sample folder to " << this->sampleFolderFileName << " (compression:" << this->getTagIntegerDefault("tmpFileCompression",0) << ")" << std::endl;
	} else if(this->sampleFolderMode == IMPORT){
		std::cout << "import sample folder from " << this->sampleFolderFileName << std::endl;
	}
	if(this->internalEvaluation){
		std::cout << "evaluate internally" << std::endl;
	} else if(!this->evaluationCommand.IsNull()){
		std::cout << "evaluate externally using '" << this->evaluationCommand << "' (recycle: " << (this->recyclingAllowed ? "yes" : "no") << ")" << std::endl;
	} else {
		std::cout << "do not perform evaluation" << std::endl;
	}
	if(this->initialization){
		std::cout << "initialized with '" << this->initialization->GetName() << "'" << std::endl;
	} else {
		std::cout << "not (yet) initialized" << std::endl;
	}
	if(this->supportRegionSetHandling){
		std::cout << "using combined fit for region-splitting" << std::endl;
	} else {
		std::cout << "using separate fits for split regions" << std::endl;
	}
	if(this->significanceMode == EXPORT){
		std::cout << "export results to " << this->significanceFileName << std::endl;
	} else if(this->significanceMode == IMPORT){
		std::cout << "import results from " << this->significanceFileName << std::endl;
	}
	std::cout << TQStringUtils::makeBoldWhite("-------------------------------------------------") << std::endl;
}

//___________________________________________________________________________________________

int TSCLSignificanceEvaluator::exportWorkspace(const TString& outFileName) {
  // Function to export a statistics model for the current cut configuration

  // Add ExportModel action to statistics configuration!
  TQFolder *runFolder = m_config->copy("exportModel");
  
  TQFolder *f1 = runFolder->getFolder("ExportWorkspaces+");
  TQFolder *f2 = f1->getFolder(this->modelName+"+");
  bool ok = f2->setTagString("outputFile", outFileName);
  
  // delete CalculateSignificance action if present
  TQFolder* cs = runFolder->getFolder("CalculateSignificance");
  if (cs) {
    cs->deleteAll();
    runFolder->deleteObject("CalculateSignificance");
  }
  
  if(!this->isPrepared()){
    if(!this->prepareNextRegionSet("")){ // prepareFromGridScanner is executed in here
      ERRORclass("Unable to prepare region!");
      return 0;
    }
  }
  
  // run the statistics code
  INFOclass("Running the statistics code and exporting model!");
  this->engine->setDefaultSampleFolder(this->workingFolder);
  this->engine->reset();
  this->engine->run(runFolder);

  delete runFolder;
  return ok;
}

std::vector<double> TSCLSignificanceEvaluator::evaluateMultiple(){

	// run the evaluation 
	TString sfname = this->sampleFolderFileName;
	sfname.ReplaceAll("$(ID)",this->fileIdentifier);
	TString sigfname = this->significanceFileName;
	sigfname.ReplaceAll("$(ID)",this->fileIdentifier);
	// clean up the tmp space
	TQSampleFolder* wf = NULL;
	gSystem->Exec("rm -f "+this->tmpFileName);
	bool canRecycle = this->recyclingAllowed && !this->internalEvaluation && TQUtils::fileExists(sfname) && TQUtils::fileExists(sigfname);

        // Import and Export needed for grid running! Ignore this for now and try internal evaluation mode!
	if(this->sampleFolderMode == IMPORT){
		// if we are in in IMPORT sampleFolder (i.e. IMPORT and INTERNAL) mode, we need to import it
		wf = TQSampleFolder::loadSampleFolder(sfname+":"+this->GetName());
		if(wf){
			std::cout << "ERROR in TSCLSignificanceEvaluator('" << this->GetName() << "')::evaluate() : error importing sample folder from " << sfname << ":" << this->GetName() << "!" << std::endl;
			return {};
		}
	}
        else if(!canRecycle){
            // check for a valid initialization
            if(!this->isPrepared()){
                if(!this->prepareNextRegionSet("")){ // prepareFromGridScanner is executed in here
                  ERRORclass("Unable to prepare region!");
                }
            }
            // We are in internal mode and use this->workingFolder
            wf = this->workingFolder;
	}
	this->nPreparedRegionSets = 0; // reset prepared regions 

        // TODO: Implement check cutoffs!
	// if(!canRecycle){
	// 	bool cutoffsPassed = this->checkCutoffs();
	// 	if(!cutoffsPassed){
	// 		this->cleanWorkingFolder();
	// 		return {};
	// 	}
	// }
        
	// if(this->sampleFolderMode == EXPORT && !(this->recyclingAllowed && TQUtils::fileExists(sfname))){
	// 	// if we are in in EXPORT sampleFolder (i.e. EXPORT or EXTERNAL) mode, we need to export it
	// 	if(!wf){
	// 		std::cout << "ERROR in TSCLSignificanceEvaluator('" << this->GetName() << "')::evaluate() : cannot export, invalid working folder!" << std::endl;
	// 		return {};
	// 	}
	// 	TFile* f = new TFile(sfname,"RECREATE",sfname,this->engine->getHistogramsFileCompression());
	// 	if(!f || !f->IsOpen()){
	// 		std::cout << "ERROR in TSCLSignificanceEvaluator('" << this->GetName() << "')::evaluate() : cannot export, unable to open file " << sfname  << "!" << std::endl;
	// 		return {};
	// 	}
	// 	f->Add(wf->copy());
	// 	f->Write();
	// 	f->Close();
	// 	delete f;
	// }

	// we initialize the significance to zero
	double fom = 0;
	TQFolder* results = NULL;
	TString evalcmd(this->evaluationCommand);
	evalcmd.ReplaceAll("$(ID)",this->fileIdentifier);
	if(this->internalEvaluation){
		// if we are in INTERNAL mode, we need to
		// reset the engine
          
		if(!this->engine){
                    std::cout << "ERROR in TSCLSignificanceEvaluator('" << this->GetName() << "')::evaluate() : cannot export, no statistics manager given! " << sfname  << "!" << std::endl;
                    if(wf != this->workingFolder) delete wf;
                    return {};
		}
		this->engine->setDefaultSampleFolder(wf);
		this->engine->reset();
		// apply verbosity
		if(!this->verbose) TQLibrary::redirect("/dev/null");
		// run the statistics code
                INFOclass("Running the statistics code");
                TQFolder *runFolder = m_config->copy("runConfig");
		this->engine->run(runFolder);
                delete runFolder;
		// restore verbosity
		if(!this->verbose) TQLibrary::restore();
		// obtain the results
                INFOclass("Getting the results");
		results = this->engine->getResults();
		// clean up the mess afterwards 
		// but only if the user didn't request to be left with the tmp file
		TString cmd;
		if(this->tmpFileNameBase.Length() > 0){
			cmd = "mv "+this->tmpFileName+" "+this->tmpFileNameBase+this->fileIdentifier+".root";
		} else {
			cmd = "rm -f "+this->tmpFileName;
		}
		gSystem->Exec(cmd);
        }
        // else if(!evalcmd.IsNull()){
	// 	if(canRecycle){
	// 		this->info += " recycled results";
	// 	} else {
	// 		// if we are in EXTERNAL mode, we just need to execute whatsoever
	// 		// external command was given to us
	// 		TStopwatch s;
	// 		s.Start();
	// 		if(gSystem->Exec(evalcmd.Data()) > 0){
	// 			std::cout << "ERROR in TSCLSignificanEvaluator::evaluate() : gSystem->Exec() reported an error on the following command:" << std::endl << evalcmd << std::endl;
	// 			return {};
	// 		} 
	// 		this->info += TString::Format(" (~%.2fs)",s.RealTime());
	// 	}
	// }
	// if(this->significanceMode == IMPORT){
	// 	// if we are in IMPORT significance (i.e. IMPORT or EXTERNAL) mode
	// 	// we need to read in the results afterwards
	// 	if(results) delete results;
	// 	results = new TQFolder("results");
	// 	results->importFromTextFile(sigfname);
	// } else if(this->significanceMode == EXPORT){
	// 	// if we are in EXPORT significance (i.e. EXPORT and INTERNAL) mode
	// 	// we need to write the results to a file
	// 	if(!results){
	// 		std::cout << "ERROR in TSCLSignificanceEvaluator::evaluate() : results pointer is NULL in EXPORT significance mode - this should never happen!" << this->modelName << "!" << std::endl;
	// 		if(wf != this->workingFolder) delete wf;
	// 		return {};
	// 	}
	// 	if(canRecycle) results->exportToTextFile(sigfname);
	// }
        m_nPointsProcessed++;
        
	if(!results){
		if(wf != this->workingFolder) delete wf;
		return {};
	}

        // for debugging save out intermediate result
        if (this->debug) {
        //   if (m_nPointsProcessed == 1) {
            
            TString baseFilePath = this->outputdir;
            TQUtils::ensureDirectory(TQPathManager::getPathManager()->getTargetPath(baseFilePath).c_str());
            results->SaveAs(TQPathManager::getPathManager()->getTargetPath(baseFilePath+"/resultsFit_" + std::to_string(m_nPointsProcessed) +".root").c_str());
        //   }
        }

        // --------------------------------------------------------------------
        // Extract desired results from fit here
        // Steered by tags (path.Z0_asimov, tagname.Z0_asimov, ...)
        // in model config to find desired results!
        
        bool foundResult = false;
        std::vector<double> foms;

        for (auto name : m_FOMNames) {
          fom = -999;
          TString fomPath;
          TString fomTag;
          TQFolder *significanceFolder = m_config->getFolder("CalculateSignificance/?/");
          significanceFolder->getTagString(TString::Format("path.%s", name.Data()), fomPath);
          if (fomPath.IsNull()) {
            WARNclass("Path of figure of merit with name '%s' not found in results folder! Check your model configuration e.g. for 'path.Z0_asimov' or 'tagname.Z0_asimov'!", name.Data());
          }
          TQFolder* resultFolder = results->getFolder(TQFolder::concatPaths(this->modelName, fomPath));
          if(resultFolder) {
            foundResult = true;
            
            significanceFolder->getTagString(TString::Format("tagname.%s", name.Data()), fomTag);
            // when uncertainty on mu should be extracted check if fit ran with Minos!
            if (fomTag.Contains("err") || name.Contains("Err")) {
              bool runMinos = false;
              m_config->getTagBool("fit.runMinos~", runMinos);
              if (runMinos) {
                double tmpErr = -1;
                resultFolder->getTagDouble("errHigh", tmpErr);
                if (tmpErr > 0) {
                  fom = std::abs(tmpErr);
                  resultFolder->getTagDouble("errLow", tmpErr);
                  fom += std::abs(tmpErr);
                  fom /= 2;
                } else { // try to fall back to err!
                  resultFolder->getTagDouble("err", fom);
                }
              } else {
                resultFolder->getTagDouble("err", fom);
              }
            } else {
              if (fomTag.IsNull()) {
                WARNclass("Tag name for figure of merit with name '%s' not found in results folder! Check your model configuration e.g. for 'path.Z0_asimov' or 'tagname.Z0_asimov'!", name.Data());
              }
              resultFolder->getTagDouble(fomTag, fom);
            }
            this->info += TString::Format("%s = %g, ", name.Data(), fom);
          }
          foms.push_back(fom);
        }
        this->info.Resize( this->info.Length()-2); // remove ', ' at end of string
        
        if (!foundResult) {
          ERRORclass("Unable to obtain results from %s", this->modelName.Data());
          if(!this->internalEvaluation && !evalcmd.IsNull()) INFOclass("tried to evaluate externally using '%s' ...", evalcmd.Data());
          INFOclass("Results folder content was:");
          results->print("rdt");
          if(this->significanceMode == IMPORT) delete results;
          if(wf != this->workingFolder) delete wf;
          return {};
        }

	// if everything went well, we can return
	if(this->significanceMode == IMPORT) delete results;
	if(wf != this->workingFolder) delete wf;

        return foms;
}

//___________________________________________________________________________________________

int TSCLSignificanceEvaluator::cleanWorkingFolder(){
  // Clean working folder from all TH1s
  
  int nCleaned = 0;
  for (auto ipath : m_samplePaths) {
    for (auto iregion : m_histRegionsInInput) {
      TString pathExtended = TQFolder::concatPaths(ipath, ".histograms", iregion);
      if (this->debug) {INFOclass("Looping over histogram folder: '%s'", pathExtended.Data());}
      TQFolder* f = this->workingFolder->getFolder(pathExtended);
      if (!f) {
        WARNclass("Sample folder with path '%s' not found in working folder! Skipping", pathExtended.Data());
        continue;
      }
      f->deleteAll();
      nCleaned++;
    }
  }
  
  return nCleaned;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::checkCutoffs(){
  // TODO: Reintroduce!
	if(!this->workingFolder) return false;
	TQSampleDataReader rd(this->workingFolder);
	TList* l = rd.getListOfHistogramNames();
	if(!l) return false;
	if(l->GetEntries() < 1) { delete l; return false; };
	l->SetOwner(true);
	TQIterator itr(l,true);
	for(size_t ivar=0; ivar<this->variations.size(); ivar++){
		double sum = 0;
		double sumError2 = 0;
		while(itr.hasNext()){
			TObject* name = itr.readNext();
			if(!name) continue;
			for(size_t iloc=0; iloc<this->locations.size(); iloc++){
				TH1F* h = dynamic_cast<TH1F*>(this->workingFolder->getObject(name->GetName(),TQFolder::concatPaths(this->variations[ivar],this->locations[iloc],".histograms")));
				Double_t err = 0;
				Double_t val = TQHistogramUtils::getIntegralAndError(h,err);
				sum += val;
				sumError2 += err*err;
				if(this->verbose) this->info += TString::Format(" %s:%s:%s = %.2f +/- %.2f     ", variations[ivar].Data(),locations[iloc].Data(),name->GetName(),val,err);
			}
		}
		itr.reset();
		double error = sqrt(sumError2);
		this->info += TString::Format(" %s: %.3f +/- %.3f ",variations[ivar].Data(),sum,error);
		if(sum < this->getTagDoubleDefault("cutoff",0)){
			this->info += " - evaluation skipped, absolute cutoff underrun";
			return false;
		}
		if(error/sum > this->getTagDoubleDefault("relErrCutoff",1.0)){
			this->info += " - evaluation skipped, rel. err. cutoff underrun";
			return false;
		}
	}
	return true;
}

//___________________________________________________________________________________________


int TSCLSignificanceEvaluator::configureBoundRegions() {
  // There is at least one region specified that has a bound range with a variable in the n-dim histogram.
  // Here, the axis of the n-dim histogram is added to the location in the working folder of this region
  // in order to retrieve the range settings later on in the prepare step!
   for (auto ipath : m_samplePaths) {
    for (auto iregion : m_histRegionsInInput) {
      TString pathExtended = TQFolder::concatPaths(ipath, ".histograms", iregion);
      TQFolder* f = this->workingFolder->getFolder(pathExtended);
      if (!f) {
        WARNclass("Sample folder with path '%s' not found in working folder! Skipping", pathExtended.Data());
        continue;
      }
      int index_Hist;
      if (f->getTagInteger("index_Hist", index_Hist)) {
        TString boundVariable;
        if (f->getTagString("BoundToVariable", boundVariable)) {
           // find correct axis of multidim hist! 
          // it does not matter which n-dim hist is checked, they all have the same axes ranges!
          TH1F *h = m_Hists[index_Hist];
          TAxis *OneDAxis = h->GetXaxis();
          THnBase *ndimHist = m_multiDimHists[0];
          TAxis * multiDimAxis = TQTHnBaseUtils::getAxis(ndimHist, boundVariable);
          if (!multiDimAxis) {
            BREAKclass("Histogram with name '%s' in region '%s' is configured to be bound to axis of n-dim histogram with name '%s' BUT axis in question cannot be found in n-dim histogram! Exiting now ...", h->GetName(), pathExtended.Data(), boundVariable.Data());
          }
          TString binningOneD = TQHistogramUtils::getBinningDefinition(OneDAxis);
          TString binningMultiDim = TQHistogramUtils::getBinningDefinition(multiDimAxis);
          if (!binningOneD.EqualTo(binningMultiDim)) {
            BREAKclass("Histogram with name '%s' in region '%s' is configured to be bound to axis of n-dim histogram with name '%s' BUT there is no matching binning definition! The 1-d histogram has a binning of '%s', the axis in the n-dim histogram of '%s'! Make sure the binnings are the same, otherwise you cannot use this feature! Exiting now ...", h->GetName(), pathExtended.Data(), boundVariable.Data(), binningOneD.Data(), binningMultiDim.Data());
          }
          m_boundMultiDimAxis[TString::Format("%i", index_Hist)] = multiDimAxis;
        }
      }
    }
   }
   return true;
}


int TSCLSignificanceEvaluator::prepareFromGridScanner(const TString& /*suffix*/){
  // Prepare the working folder from a TQGridScanner object.
  // should be called automatically on evaluation 
  // if initialized with a TQGridScanner
  // Extracts TH1Fs from the multiDim hists and adds to working folder
  // to prepare for the model building and the further statistical analysis!

  if (this->debug) {INFOclass("=> Prepare working folder!");}
  if (!this->isPrepared()) {
    if (this->debug) {INFOclass("clean working folder!");}
    this->cleanWorkingFolder();
    this->info = ""; 
  }
  
  if (this->debug) {
    this->info += TString::Format("\n ********************************* DEBUG OUTPUT *******************************");
  }
  
  int nHistograms = 0;
  for (auto ipath : m_samplePaths) {
    for (auto iregion : m_histRegionsInInput) {
      TString pathExtended = TQFolder::concatPaths(ipath, ".histograms", iregion);
      TQFolder* f = this->workingFolder->getFolder(pathExtended);
      if (!f) {
        WARNclass("Sample folder with path '%s' not found in working folder! Skipping", pathExtended.Data());
        continue;
      }
      
      int index_multiDimHist;
      int index_Hist;
      TH1F *h = new TH1F();
      h->Sumw2();
      if (f->getTagInteger("index_multiDimHist", index_multiDimHist)) {
        h = (TH1F*)(m_multiDimHists[index_multiDimHist]->Projection(m_discriminantVariableIndex));
        h->SetName(TString::Format("MTfit"));
        if (!h) {ERRORclass("Projecting multidimensional histogram failed!");}
        else {
          h->SetName(this->discriminantVariable);
          f->addObject(h);
          nHistograms++;
          if (this->debug) {
            if (!TQStringUtils::split(pathExtended, "/")[1].Contains("up") &&
                !TQStringUtils::split(pathExtended, "/")[1].Contains("down")) {// only print nominal
              this->info += TString::Format("\n * Location = %s: nevents=%g ", pathExtended.Data(), h->Integral(0, TQGridScanBound::BinExtrema::max));}
          }
        }
      } else if (f->getTagInteger("index_Hist", index_Hist)) { // usually CR histograms
        TH1F *h = m_Hists[index_Hist];
        TH1F *cuttedHist = NULL;
        TString boundVariable;
        if (f->getTagString("BoundToVariable", boundVariable)) {
          // in region which is bound to scan variable. This was already configured before so
          // simply retrieve the multidim axis to which we are bound.
          TAxis *multiDimAxis = m_boundMultiDimAxis[TString::Format("%i", index_Hist)];
          // cut histogram according to current range in multidim hist and consider specified flank!
          if (f->getTagBoolDefault("ConsiderUpperPart", false)) {
            int bin = multiDimAxis->GetLast()+1;
            cuttedHist = (TH1F*)TQHistogramUtils::cutHistogram(h, bin, h->GetXaxis()->GetNbins()+1);
          } else if (f->getTagBoolDefault("ConsiderLowerPart", false)) {
            int bin = multiDimAxis->GetFirst()-1;
            cuttedHist = (TH1F*)TQHistogramUtils::cutHistogram(h, 0, bin);
          } else {
            WARNclass("Histogram bound to variable '%s'  has no specification of flank! This will probably cause undesired behavior!", boundVariable.Data());
          }
        } else {
          cuttedHist = h;
        }        
        if (!cuttedHist) {ERRORclass("Preparing histogram failed!");}
        else {
          f->addObject((TH1F*)cuttedHist);
          nHistograms++;
          if (this->debug) {
            if (!TQStringUtils::split(pathExtended, "/")[1].Contains("up") &&
                !TQStringUtils::split(pathExtended, "/")[1].Contains("down")) {// only print nominal
              this->info += TString::Format("\n Location = %s: nevents=%g ", pathExtended.Data(), cuttedHist->Integral(0, TQGridScanBound::BinExtrema::max));}
          }
        }
      }
    }
  }
  if (this->debug) {
    this->info += TString::Format("\n");
  }
  
  // for debugging save out example of prepared sample folder
  if (this->debug) {
    // if (m_nPointsProcessed < 2) {
      TString baseFilePath = this->outputdir;
      TQUtils::ensureDirectory(TQPathManager::getPathManager()->getTargetPath(baseFilePath).c_str());
      this->workingFolder->SaveAs(TQPathManager::getPathManager()->getTargetPath(baseFilePath+TString::Format("/workingFolderPrepared_%i.root", m_nPointsProcessed)).c_str());
    // }
  }

  if (this->debug) {INFOclass("Working folder prepared!");}
  if(nHistograms > 0) this->nPreparedRegionSets++;
  return nHistograms;
}

//___________________________________________________________________________________________

TQSampleFolder* TSCLSignificanceEvaluator::getWorkingFolder(TString path){
	// return a pointer to the current working folder
	if(!this->workingFolder)
		return NULL;
	if(path.IsNull())
		return this->workingFolder;
	return this->workingFolder->getSampleFolder(path);
}

//___________________________________________________________________________________________

TQSampleFolder* TSCLSignificanceEvaluator::getBaseFolder(TString path){
	// return a pointer to the current base folder
	if(!this->baseFolder)
		return NULL;
	if(path.IsNull())
		return this->baseFolder;
	return this->baseFolder->getSampleFolder(path);
}

//___________________________________________________________________________________________

TQFolder* TSCLSignificanceEvaluator::getConfigFolder(TString path){
	// return a pointer to the configuration folder
	if(!m_config)
		return NULL;
	if(path.IsNull())
		return m_config;
	return m_config->getFolder(path);
}

//___________________________________________________________________________________________

void TSCLSignificanceEvaluator::printPaths(){
	// print the paths of all registered histograms
	std::cout << this->GetName() << " INFO: the following histograms have been booked" << std::endl;
	for(size_t i=0; i<variations.size(); i++){
		for(size_t j=0; j<locations.size(); j++){
			for(size_t k=0; k<m_histNames.size(); k++){
				std::cout << TQFolder::concatPaths(variations[i],locations[j]) << "\t" << m_histNames[k] << std::endl;
			}
		}
	}
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::addFOM(const TString& fomName) {
  INFOclass("Adding FOM with name '%s'", fomName.Data());
  m_FOMNames.push_back(fomName);
  return true;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::initialize(const TString& /*importfilename*/, const TString& /*exportfilename*/){

	// initialize the evaluator for import/export only
	// CURRENTLY NOT IMPLEMENTED
	return true;
}


//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::initialize(TQGridScanner* scanner ){
  // Initialize the evaluator for use with a TQGridScanner
  // The model configuration is used to build the folder structure of the 'workingFolder'.
  // There are no input histograms added to the working folder at this stage, but
  // the used multidimensional histograms are read and saved in a vector only.
  // The relevant TH1Fs (which are projections of the n-dim histograms)
  // will be added (and cleanup up afterwards) to the working folder in each 'evaluate'
  // call, i.e. for each cut configuration (which is set on the n-dim hists
  // in the TQGridScanner), before the statistics code is run.
  
  if(!scanner){
    ERRORclass("no TQGridScanner appointed to initialization!");
    return false;
  }
  if(!reader){
    ERRORclass("no TQSampleDataReader available!");
    return false;
  }
  // regions equivalent to variations!
  // if(m_regions.size() < 1){
  //   ERRORclass("No regions set!");
  //   return false;
  // }
  this->initialization = scanner->Class();
  this->scanner = scanner;

  if(this->verbose) VERBOSEclass("Initializing likelihood fit evaluator");
  // set debug mode
  this->getTagBool("debug", debug);

  double luminosity;
  this->reader->getSampleFolder()->getTagDouble("luminosity", luminosity);
  this->workingFolder->setTagDouble("luminosity", luminosity);

  // check if it is possible to extract multiple FOMs 
  this->getTagBool("multipleFOMsCompatible", m_multipleFOMsCompatible);
  m_multipleFOMsCompatible = true;
  
  // ------------------------------------------------------------------------
  // Read in model configuration
  // TString modelConfigPath = scanner->getTagStringDefault("cl.modelConfig", "config/gridscanner/statistics/runChain.txt");
  TString modelConfigPath;
  this->getTagString("modelConfig", modelConfigPath);
  m_config->importFromTextFile(TQPathManager::getPathManager()->findConfigPath(modelConfigPath));
  
  TQFolder *modelFolder = m_config->getFolder("CreateModels/?");
  if (modelFolder) {this->modelName = modelFolder->GetName();} 
  else {WARNclass("No model folder name was found in the config, using the default name '%s'.", this->modelName.Data());}
  this->workingFolder->SetName(this->modelName); 
  
  // TODO: Tags for followings paths to Samples and Channels (?)
  // R: Seems to be set in stone from SFramework for now. Leave hardcoded
  TQIterator sitr(m_config->getListOfFolders("CreateModels/?/Samples/?"),true);
  TQIterator chitr(m_config->getListOfFolders("CreateModels/?/Channels/?"),true);
  TQIterator vitr(m_config->getListOfFolders("CreateModels/?/Variations/?"),true);

  // Read model configuration
  INFOclass("Reading model configuration!");
  
  //---------------------------------------------------------------------------------------------
  // First, fill member vectors to store locations and names of later on added TH1Fs:
  while (chitr.hasNext()) {
    TQFolder* channelFolder = (TQFolder*)chitr.readNext();
    TString regionAndHistName;    // example: 'CutGGF_0jet/MT'
    channelFolder->getTagString("Histogram", regionAndHistName);
    if (!regionAndHistName.IsNull()) { // if histogram specified (exclude Counter here!)
      TString regionInSF = TQFolder::getPathWithoutTail(regionAndHistName); // example: 'CutGGF_0jet'
      INFOclass("region in sf added: %s", regionInSF.Data());
      m_histRegionsInInput.push_back(regionInSF);
      m_histRegionsInModel.push_back(channelFolder->getName());  // example: 'SR_0j_DF_all'
    }
  }
  while (sitr.hasNext()) { // example: 'bkg/[em$(Variation)+me$(Variation)]/top/'
    vitr.reset();
    TQFolder * f = (TQFolder*)sitr.readNext();
    TString samplePathOrig;
    f->getTagString("Path", samplePathOrig);
    while (vitr.hasNext()) { // example: '__FT_EFF_Eigen_B_0__1up'
      TQTaggable vtags((TQFolder*)vitr.readNext());
      TString samplePathReplaced = vtags.replaceInText(samplePathOrig.Data()); // example: '/bkg/[em+me]/top/'
      // expand ([em+me] will become separated to em and me)
      TQIterator fitr(this->reader->getListOfSampleFolders(samplePathReplaced),true);
      while (fitr.hasNext()){
        TQSampleFolder* sf = (TQSampleFolder*)(fitr.readNext());
        if(!sf) continue;
        TString pathFull = sf->getPath(); // example:  '/bkg/me_FT_EFF_Eigen_B_0__1up/top/'
        m_samplePaths.push_back(pathFull);
      }
    }
  }
  
  chitr.reset();
  sitr.reset();
  
  // some basic checks
  if (m_samplePaths.empty() || m_histRegionsInInput.empty()) {
    ERRORclass("No sample paths or regions found! Please check your configuration and try again!");
    return false;
  }

  bool useBoundRegions = false;
  
  // //---------------------------------------------------------------------------------------------
  // // Now, add multi dim hists to list and add counters (if present) to the working folder
  TString nDimHistName;
  this->getTagString("nDimHistName", nDimHistName);
  m_discriminantVariableIndex = -1; // this is set when the first n-dim hist is loaded
  for (auto ipath: m_samplePaths) {
    if (this->debug) {INFOclass("Looping over sample with path: '%s'", ipath.Data());}
    
    // add folder with sample path if it not already exists!
    TQSampleFolder* newsf = this->workingFolder->getSampleFolder(ipath);
    if (!newsf) {newsf = this->workingFolder->getSampleFolder(ipath+"+");}
    
    // add .histogram folder if it not already exists
    TQFolder* folderHistograms = newsf->getFolder(".histograms");
    if (!folderHistograms) {folderHistograms = newsf->getFolder(".histograms+");}
    
    //-----------------------------------------
    // add histograms
    for (unsigned int i=0; i < m_histRegionsInInput.size(); i++) {
      
      if (this->debug) {INFOclass("Looping over channel/region (name in input): '%s' ", m_histRegionsInInput[i].Data());}

      // create folder for region
      TQFolder *folderRegion = folderHistograms->getFolder(m_histRegionsInInput[i]+"+");
      
      // get folder for channel definitions from config to read tags!
      TString channelConfigPath = TQFolder::concatPaths("CreateModels/?/Channels", m_histRegionsInModel[i]);
      TQFolder *channelConfigFolder = m_config->getFolder(channelConfigPath);
      if (!channelConfigFolder) {BREAKclass("Folder '%s' not found in statistics configuration. Please check and try again! Code is exiting now...", channelConfigPath.Data());}
      
      // -----------------------------------
      // Import n-dim histogram (usually used for SRs)
      if (channelConfigFolder->getTagBoolDefault("fromMultiDimHist", false)) {
        if (this->debug) {INFOclass("Adding Multidimensional histogram to list!");}
      
        // check if input exists for requested sample path and import multidimensional histogram
        TString regionAndMultiDimHistName = TQFolder::concatPaths(m_histRegionsInInput[i], nDimHistName);
        THnBase* orig_h = this->reader->getTHnBase(ipath.Data(), regionAndMultiDimHistName.Data());
        if (!orig_h) {
          ERRORclass("N-dimensional histogram not found when calling: 'reader->getTHnBase(%s, %s)'!", ipath.Data(), regionAndMultiDimHistName.Data());
        }
        // Process multidimensional histograms to only regard dimensions that are actually used in gridscan
        THnBase* h = TQTHnBaseUtils::projectionND(orig_h, scanner->obsNamesToScan());      
        // delete the original object
        delete orig_h;
        if (h) {
          if (this->debug) {INFOclass("Found N-dimensional histogram when calling: 'reader->getTHnBase(%s, %s)'!", ipath.Data(), regionAndMultiDimHistName.Data());}
          m_multiDimHists.push_back(h); // add multi dim hist
          // add region to working folder with region name from model AND (important!)
          // with index of multidim hist in vector
          folderRegion->setTagInteger("index_multiDimHist", m_multiDimHists.size()-1);
          // ---------------------------------------------------
          // get index of discriminant variable in multidimensional histogram if not already set
          if (m_discriminantVariableIndex < 0) {
            // get axis index
            if (!TQTHnBaseUtils::getAxisIndex(h, this->discriminantVariable, m_discriminantVariableIndex)) {
              BREAKclass("Discriminant variable '%s' could not be found in input n-dim histogram! Please check your input configuration and try again!", this->discriminantVariable.Data());
            }
          }
        }
        else {
          ERRORclass("Unable to project N-dimensional histogram when calling 'reader->getTHnBase(%s, %s)'!", ipath.Data(), regionAndMultiDimHistName.Data());
        }
      }
      else { // if no n-dim histogram is used in this region but a standard TH1F! (e.g. for CRs)

        if (this->debug) {INFOclass("Adding histogram to working folder!");}
        TString histName; // only used when counters are present
        if (channelConfigFolder->getTagString("Histogram", histName)) {
          TH1F* h = (TH1F*)this->reader->getHistogram(ipath.Data(), histName.Data());
          if (!h) {
            ERRORclass("Histogram not found when calling: 'reader->getHistogram(%s, %s)'!", ipath.Data(), histName.Data());
          } else {
            if (this->debug) {INFOclass("Found histogram when calling: 'reader->getHistogram(%s, %s)'!", ipath.Data(), histName.Data());}
            
            m_Hists.push_back(h); // add 1d hist
            // add region to working folder with region name from model AND (important!)
            // with index of multidim hist in vector
            folderRegion->setTagInteger("index_Hist", m_Hists.size()-1);

            TString boundVariable;
            if (channelConfigFolder->getTagString("BoundToVariable", boundVariable)) {
              // set necessary tags and enable configuration of bound variables later on
              useBoundRegions = true;
              folderRegion->setTagString("BoundToVariable", boundVariable);
              bool considerUpperPart = channelConfigFolder->getTagBoolDefault("ConsiderUpperPart", false);
              bool considerLowerPart = channelConfigFolder->getTagBoolDefault("ConsiderLowerPart", false);
              if ((!considerUpperPart && !considerLowerPart) || (considerUpperPart && considerLowerPart))  {
                BREAKclass("Histogram called with reader->getHistogram('%s', '%s') bound to variable but no flank to consider specified! Please set either tag 'ConsiderUpperPart' or 'ConsiderLowerPart' to true in your channel configuration. Exiting now ...", ipath.Data(), histName.Data());
              }
              folderRegion->setTagBool("ConsiderUpperPart", considerUpperPart);
              folderRegion->setTagBool("ConsiderLowerPart", considerLowerPart);
            }
              
          }
        }
      }
      
    }
    //-----------------------------------------
    // add counters if present
    chitr.reset(); // loop over all channels again and only check for counters!
    while (chitr.hasNext()) { 
      // check if counters are configured and direclty add them to working folder
      // Since counters are not (cannot be) modified in the scan they can be 
      // added already in the initialize step.
      // They are also not removed in cleanWorkingFolder()
      TQFolder* channelFolder = (TQFolder*)chitr.readNext();
      TString counterName; // only used when counters are present
      if (channelFolder->getTagString("Counter", counterName)) {
        // create cutflows folder
        TQFolder *folderCounters = this->workingFolder->getFolder(TQFolder::concatPaths(ipath, ".cutflow"));
        if (!folderCounters) {folderCounters = this->workingFolder->getFolder(TQFolder::concatPaths(ipath, ".cutflow+"));}
        TQCounter* counter = (TQCounter*)this->reader->getCounter(ipath.Data(), counterName);
        if (counter) {
          if (this->debug) {INFOclass("Found Counter when calling: 'reader->getCounter(%s, %s)'!", ipath.Data(), counterName.Data());}
          folderCounters->addObject(counter);
        } else {
          ERRORclass("Counter not found when calling: 'reader->getCounter(%s, %s)'!", ipath.Data(), counterName.Data());
        }
      } else {
        if (this->debug) {INFOclass("No counter specified in channel path '%s'!", channelFolder->getPath().Data());}
      }
    }
  }

  if (useBoundRegions) configureBoundRegions();

  if (this->debug) {
    TString baseFilePath = this->outputdir;
    TQUtils::ensureDirectory(TQPathManager::getPathManager()->getTargetPath(baseFilePath).c_str());
    this->workingFolder->SaveAs(TQPathManager::getPathManager()->getTargetPath(baseFilePath+"/workingFolderTemplate.root").c_str());
  }
  
  // TString pathreplaced = tags.replaceInText(samplePathOrig);
      
  // TQIterator fitr(nomreader->getListOfSampleFolders(pathreplaced),true);
  // // expand the corresponding sample folder paths and loop over them
  // while (fitr.hasNext()){
  //   TQSampleFolder* sf = (TQSampleFolder*)(fitr.readNext());
  //   if(!sf)
  //     continue;
  //   // get a full variant (starting with "Nominal")
  //   // and a bare variant (without the head)
  //   TString pathfull = sf->getPath();
  //   TString pathbare = TQFolder::getPathWithoutHead(pathfull);
  //   // check if the corresponding folder already exists
  //   TQSampleFolder* newsf = this->workingFolder->getSampleFolder(pathfull);
  //   // if not, we create it
  //   // and save the location
  //   if(!newsf){
  //     newsf = this->workingFolder->getSampleFolder(pathfull+"+");
  //     this->locations.push_back(pathbare);
  //   }

  // Not entirely sure what this next code does.
  // Except adding grids to the GridScanner...this is not needed anymore in the new implemenation
  // What is it with the getSampleFolder()->collapse() command?
  
        // for(size_t j=0; j<this->variations.size(); j++){
        // 	for(size_t i=0; i<this->locations.size(); i++){
        // 		TString path = TQFolder::concatPaths(variations[j],locations[i]);
        // 		for(size_t k=0; k<this->m_histNames.size(); k++){
        // 			TString histname = TQFolder::concatPaths(this->m_histNames[k],scanner->GetName());
        // 			TQCounterGrid* g = reader->getCounterGrid(path,histname);
        // 			if(!g){
        // 				std::cout << "ERROR in TSCLSignificanceEvaluator::initialize() : unable to retrieve TQCounterGrid " << histname << " from " << path << " in " << variations[i] << "!" << std::endl;
        // 				return false;
        // 			}
        // 			scanner->addGrid(g);
        // 			g->scale(this->luminosityScale);
        // 			g->compactify();
        // 		}
        // 	}
        // 	if(reader->getSampleFolder()->isLazy()){
        // 		TQFolder* f = reader->getSampleFolder()->getFolder(variations[j]);
        // 		if(f){
        // 			f->setExportName(f->getName());
        // 			reader->getSampleFolder()->collapse();
        // 		}
        // 	}
        // }

  m_nPointsProcessed = 0;
  this->engine = new TSStatisticsManager();
  this->engine->setHistogramsFileCompression(this->getTagIntegerDefault("tmpFileCompression",0));
  return true;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::hasNativeRegionSetHandling(){
	return this->supportRegionSetHandling;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::prepareNextRegionSet(const TString& suffix){
	if(0 == TQStringUtils::compare(this->initialization->GetName(),TQGridScanner::Class()->GetName())){
		if(this->prepareFromGridScanner(suffix) < 1){
			std::cout << "ERROR in TSCLSignificanceEvaluator('" << this->GetName() << "')::prepareNextRegionSet() : error preparing working folder from GridScanner!" << std::endl;
			return false;
		} 
		return true;
	} 
	std::cout<< "WARNING: TSCLSignificanceEvaluator('" << this->GetName() << "')::prepareNextRegionSet('" << suffix << "') : reached end of function without having found a matching initialization scheme. The initialization encountered was " << (this->initialization ? this->initialization->GetName() : "NULL") << std::endl;
	return false;
}

//___________________________________________________________________________________________

bool TSCLSignificanceEvaluator::isPrepared(){
  if(this->nPreparedRegionSets > 0){
    return true;
  } 
  return false;
}

void TSCLSignificanceEvaluator::setVerbose(bool v){
  // toggle verbosity
  this->verbose = v;
}

//___________________________________________________________________________________________

//-----------------------------------------------------------
// Dummy functions that shouldn't be used
double TSCLSignificanceEvaluator::getSignificance(size_t /*iregion*/) {
  return 0;
}

double TSCLSignificanceEvaluator::getSignificance2(size_t /*iregion*/) {
  return 0;
}

double TSCLSignificanceEvaluator::evaluate() {
  return {};
}
//-----------------------------------------------------------
 TSCLSignificanceEvaluator.cxx:1
 TSCLSignificanceEvaluator.cxx:2
 TSCLSignificanceEvaluator.cxx:3
 TSCLSignificanceEvaluator.cxx:4
 TSCLSignificanceEvaluator.cxx:5
 TSCLSignificanceEvaluator.cxx:6
 TSCLSignificanceEvaluator.cxx:7
 TSCLSignificanceEvaluator.cxx:8
 TSCLSignificanceEvaluator.cxx:9
 TSCLSignificanceEvaluator.cxx:10
 TSCLSignificanceEvaluator.cxx:11
 TSCLSignificanceEvaluator.cxx:12
 TSCLSignificanceEvaluator.cxx:13
 TSCLSignificanceEvaluator.cxx:14
 TSCLSignificanceEvaluator.cxx:15
 TSCLSignificanceEvaluator.cxx:16
 TSCLSignificanceEvaluator.cxx:17
 TSCLSignificanceEvaluator.cxx:18
 TSCLSignificanceEvaluator.cxx:19
 TSCLSignificanceEvaluator.cxx:20
 TSCLSignificanceEvaluator.cxx:21
 TSCLSignificanceEvaluator.cxx:22
 TSCLSignificanceEvaluator.cxx:23
 TSCLSignificanceEvaluator.cxx:24
 TSCLSignificanceEvaluator.cxx:25
 TSCLSignificanceEvaluator.cxx:26
 TSCLSignificanceEvaluator.cxx:27
 TSCLSignificanceEvaluator.cxx:28
 TSCLSignificanceEvaluator.cxx:29
 TSCLSignificanceEvaluator.cxx:30
 TSCLSignificanceEvaluator.cxx:31
 TSCLSignificanceEvaluator.cxx:32
 TSCLSignificanceEvaluator.cxx:33
 TSCLSignificanceEvaluator.cxx:34
 TSCLSignificanceEvaluator.cxx:35
 TSCLSignificanceEvaluator.cxx:36
 TSCLSignificanceEvaluator.cxx:37
 TSCLSignificanceEvaluator.cxx:38
 TSCLSignificanceEvaluator.cxx:39
 TSCLSignificanceEvaluator.cxx:40
 TSCLSignificanceEvaluator.cxx:41
 TSCLSignificanceEvaluator.cxx:42
 TSCLSignificanceEvaluator.cxx:43
 TSCLSignificanceEvaluator.cxx:44
 TSCLSignificanceEvaluator.cxx:45
 TSCLSignificanceEvaluator.cxx:46
 TSCLSignificanceEvaluator.cxx:47
 TSCLSignificanceEvaluator.cxx:48
 TSCLSignificanceEvaluator.cxx:49
 TSCLSignificanceEvaluator.cxx:50
 TSCLSignificanceEvaluator.cxx:51
 TSCLSignificanceEvaluator.cxx:52
 TSCLSignificanceEvaluator.cxx:53
 TSCLSignificanceEvaluator.cxx:54
 TSCLSignificanceEvaluator.cxx:55
 TSCLSignificanceEvaluator.cxx:56
 TSCLSignificanceEvaluator.cxx:57
 TSCLSignificanceEvaluator.cxx:58
 TSCLSignificanceEvaluator.cxx:59
 TSCLSignificanceEvaluator.cxx:60
 TSCLSignificanceEvaluator.cxx:61
 TSCLSignificanceEvaluator.cxx:62
 TSCLSignificanceEvaluator.cxx:63
 TSCLSignificanceEvaluator.cxx:64
 TSCLSignificanceEvaluator.cxx:65
 TSCLSignificanceEvaluator.cxx:66
 TSCLSignificanceEvaluator.cxx:67
 TSCLSignificanceEvaluator.cxx:68
 TSCLSignificanceEvaluator.cxx:69
 TSCLSignificanceEvaluator.cxx:70
 TSCLSignificanceEvaluator.cxx:71
 TSCLSignificanceEvaluator.cxx:72
 TSCLSignificanceEvaluator.cxx:73
 TSCLSignificanceEvaluator.cxx:74
 TSCLSignificanceEvaluator.cxx:75
 TSCLSignificanceEvaluator.cxx:76
 TSCLSignificanceEvaluator.cxx:77
 TSCLSignificanceEvaluator.cxx:78
 TSCLSignificanceEvaluator.cxx:79
 TSCLSignificanceEvaluator.cxx:80
 TSCLSignificanceEvaluator.cxx:81
 TSCLSignificanceEvaluator.cxx:82
 TSCLSignificanceEvaluator.cxx:83
 TSCLSignificanceEvaluator.cxx:84
 TSCLSignificanceEvaluator.cxx:85
 TSCLSignificanceEvaluator.cxx:86
 TSCLSignificanceEvaluator.cxx:87
 TSCLSignificanceEvaluator.cxx:88
 TSCLSignificanceEvaluator.cxx:89
 TSCLSignificanceEvaluator.cxx:90
 TSCLSignificanceEvaluator.cxx:91
 TSCLSignificanceEvaluator.cxx:92
 TSCLSignificanceEvaluator.cxx:93
 TSCLSignificanceEvaluator.cxx:94
 TSCLSignificanceEvaluator.cxx:95
 TSCLSignificanceEvaluator.cxx:96
 TSCLSignificanceEvaluator.cxx:97
 TSCLSignificanceEvaluator.cxx:98
 TSCLSignificanceEvaluator.cxx:99
 TSCLSignificanceEvaluator.cxx:100
 TSCLSignificanceEvaluator.cxx:101
 TSCLSignificanceEvaluator.cxx:102
 TSCLSignificanceEvaluator.cxx:103
 TSCLSignificanceEvaluator.cxx:104
 TSCLSignificanceEvaluator.cxx:105
 TSCLSignificanceEvaluator.cxx:106
 TSCLSignificanceEvaluator.cxx:107
 TSCLSignificanceEvaluator.cxx:108
 TSCLSignificanceEvaluator.cxx:109
 TSCLSignificanceEvaluator.cxx:110
 TSCLSignificanceEvaluator.cxx:111
 TSCLSignificanceEvaluator.cxx:112
 TSCLSignificanceEvaluator.cxx:113
 TSCLSignificanceEvaluator.cxx:114
 TSCLSignificanceEvaluator.cxx:115
 TSCLSignificanceEvaluator.cxx:116
 TSCLSignificanceEvaluator.cxx:117
 TSCLSignificanceEvaluator.cxx:118
 TSCLSignificanceEvaluator.cxx:119
 TSCLSignificanceEvaluator.cxx:120
 TSCLSignificanceEvaluator.cxx:121
 TSCLSignificanceEvaluator.cxx:122
 TSCLSignificanceEvaluator.cxx:123
 TSCLSignificanceEvaluator.cxx:124
 TSCLSignificanceEvaluator.cxx:125
 TSCLSignificanceEvaluator.cxx:126
 TSCLSignificanceEvaluator.cxx:127
 TSCLSignificanceEvaluator.cxx:128
 TSCLSignificanceEvaluator.cxx:129
 TSCLSignificanceEvaluator.cxx:130
 TSCLSignificanceEvaluator.cxx:131
 TSCLSignificanceEvaluator.cxx:132
 TSCLSignificanceEvaluator.cxx:133
 TSCLSignificanceEvaluator.cxx:134
 TSCLSignificanceEvaluator.cxx:135
 TSCLSignificanceEvaluator.cxx:136
 TSCLSignificanceEvaluator.cxx:137
 TSCLSignificanceEvaluator.cxx:138
 TSCLSignificanceEvaluator.cxx:139
 TSCLSignificanceEvaluator.cxx:140
 TSCLSignificanceEvaluator.cxx:141
 TSCLSignificanceEvaluator.cxx:142
 TSCLSignificanceEvaluator.cxx:143
 TSCLSignificanceEvaluator.cxx:144
 TSCLSignificanceEvaluator.cxx:145
 TSCLSignificanceEvaluator.cxx:146
 TSCLSignificanceEvaluator.cxx:147
 TSCLSignificanceEvaluator.cxx:148
 TSCLSignificanceEvaluator.cxx:149
 TSCLSignificanceEvaluator.cxx:150
 TSCLSignificanceEvaluator.cxx:151
 TSCLSignificanceEvaluator.cxx:152
 TSCLSignificanceEvaluator.cxx:153
 TSCLSignificanceEvaluator.cxx:154
 TSCLSignificanceEvaluator.cxx:155
 TSCLSignificanceEvaluator.cxx:156
 TSCLSignificanceEvaluator.cxx:157
 TSCLSignificanceEvaluator.cxx:158
 TSCLSignificanceEvaluator.cxx:159
 TSCLSignificanceEvaluator.cxx:160
 TSCLSignificanceEvaluator.cxx:161
 TSCLSignificanceEvaluator.cxx:162
 TSCLSignificanceEvaluator.cxx:163
 TSCLSignificanceEvaluator.cxx:164
 TSCLSignificanceEvaluator.cxx:165
 TSCLSignificanceEvaluator.cxx:166
 TSCLSignificanceEvaluator.cxx:167
 TSCLSignificanceEvaluator.cxx:168
 TSCLSignificanceEvaluator.cxx:169
 TSCLSignificanceEvaluator.cxx:170
 TSCLSignificanceEvaluator.cxx:171
 TSCLSignificanceEvaluator.cxx:172
 TSCLSignificanceEvaluator.cxx:173
 TSCLSignificanceEvaluator.cxx:174
 TSCLSignificanceEvaluator.cxx:175
 TSCLSignificanceEvaluator.cxx:176
 TSCLSignificanceEvaluator.cxx:177
 TSCLSignificanceEvaluator.cxx:178
 TSCLSignificanceEvaluator.cxx:179
 TSCLSignificanceEvaluator.cxx:180
 TSCLSignificanceEvaluator.cxx:181
 TSCLSignificanceEvaluator.cxx:182
 TSCLSignificanceEvaluator.cxx:183
 TSCLSignificanceEvaluator.cxx:184
 TSCLSignificanceEvaluator.cxx:185
 TSCLSignificanceEvaluator.cxx:186
 TSCLSignificanceEvaluator.cxx:187
 TSCLSignificanceEvaluator.cxx:188
 TSCLSignificanceEvaluator.cxx:189
 TSCLSignificanceEvaluator.cxx:190
 TSCLSignificanceEvaluator.cxx:191
 TSCLSignificanceEvaluator.cxx:192
 TSCLSignificanceEvaluator.cxx:193
 TSCLSignificanceEvaluator.cxx:194
 TSCLSignificanceEvaluator.cxx:195
 TSCLSignificanceEvaluator.cxx:196
 TSCLSignificanceEvaluator.cxx:197
 TSCLSignificanceEvaluator.cxx:198
 TSCLSignificanceEvaluator.cxx:199
 TSCLSignificanceEvaluator.cxx:200
 TSCLSignificanceEvaluator.cxx:201
 TSCLSignificanceEvaluator.cxx:202
 TSCLSignificanceEvaluator.cxx:203
 TSCLSignificanceEvaluator.cxx:204
 TSCLSignificanceEvaluator.cxx:205
 TSCLSignificanceEvaluator.cxx:206
 TSCLSignificanceEvaluator.cxx:207
 TSCLSignificanceEvaluator.cxx:208
 TSCLSignificanceEvaluator.cxx:209
 TSCLSignificanceEvaluator.cxx:210
 TSCLSignificanceEvaluator.cxx:211
 TSCLSignificanceEvaluator.cxx:212
 TSCLSignificanceEvaluator.cxx:213
 TSCLSignificanceEvaluator.cxx:214
 TSCLSignificanceEvaluator.cxx:215
 TSCLSignificanceEvaluator.cxx:216
 TSCLSignificanceEvaluator.cxx:217
 TSCLSignificanceEvaluator.cxx:218
 TSCLSignificanceEvaluator.cxx:219
 TSCLSignificanceEvaluator.cxx:220
 TSCLSignificanceEvaluator.cxx:221
 TSCLSignificanceEvaluator.cxx:222
 TSCLSignificanceEvaluator.cxx:223
 TSCLSignificanceEvaluator.cxx:224
 TSCLSignificanceEvaluator.cxx:225
 TSCLSignificanceEvaluator.cxx:226
 TSCLSignificanceEvaluator.cxx:227
 TSCLSignificanceEvaluator.cxx:228
 TSCLSignificanceEvaluator.cxx:229
 TSCLSignificanceEvaluator.cxx:230
 TSCLSignificanceEvaluator.cxx:231
 TSCLSignificanceEvaluator.cxx:232
 TSCLSignificanceEvaluator.cxx:233
 TSCLSignificanceEvaluator.cxx:234
 TSCLSignificanceEvaluator.cxx:235
 TSCLSignificanceEvaluator.cxx:236
 TSCLSignificanceEvaluator.cxx:237
 TSCLSignificanceEvaluator.cxx:238
 TSCLSignificanceEvaluator.cxx:239
 TSCLSignificanceEvaluator.cxx:240
 TSCLSignificanceEvaluator.cxx:241
 TSCLSignificanceEvaluator.cxx:242
 TSCLSignificanceEvaluator.cxx:243
 TSCLSignificanceEvaluator.cxx:244
 TSCLSignificanceEvaluator.cxx:245
 TSCLSignificanceEvaluator.cxx:246
 TSCLSignificanceEvaluator.cxx:247
 TSCLSignificanceEvaluator.cxx:248
 TSCLSignificanceEvaluator.cxx:249
 TSCLSignificanceEvaluator.cxx:250
 TSCLSignificanceEvaluator.cxx:251
 TSCLSignificanceEvaluator.cxx:252
 TSCLSignificanceEvaluator.cxx:253
 TSCLSignificanceEvaluator.cxx:254
 TSCLSignificanceEvaluator.cxx:255
 TSCLSignificanceEvaluator.cxx:256
 TSCLSignificanceEvaluator.cxx:257
 TSCLSignificanceEvaluator.cxx:258
 TSCLSignificanceEvaluator.cxx:259
 TSCLSignificanceEvaluator.cxx:260
 TSCLSignificanceEvaluator.cxx:261
 TSCLSignificanceEvaluator.cxx:262
 TSCLSignificanceEvaluator.cxx:263
 TSCLSignificanceEvaluator.cxx:264
 TSCLSignificanceEvaluator.cxx:265
 TSCLSignificanceEvaluator.cxx:266
 TSCLSignificanceEvaluator.cxx:267
 TSCLSignificanceEvaluator.cxx:268
 TSCLSignificanceEvaluator.cxx:269
 TSCLSignificanceEvaluator.cxx:270
 TSCLSignificanceEvaluator.cxx:271
 TSCLSignificanceEvaluator.cxx:272
 TSCLSignificanceEvaluator.cxx:273
 TSCLSignificanceEvaluator.cxx:274
 TSCLSignificanceEvaluator.cxx:275
 TSCLSignificanceEvaluator.cxx:276
 TSCLSignificanceEvaluator.cxx:277
 TSCLSignificanceEvaluator.cxx:278
 TSCLSignificanceEvaluator.cxx:279
 TSCLSignificanceEvaluator.cxx:280
 TSCLSignificanceEvaluator.cxx:281
 TSCLSignificanceEvaluator.cxx:282
 TSCLSignificanceEvaluator.cxx:283
 TSCLSignificanceEvaluator.cxx:284
 TSCLSignificanceEvaluator.cxx:285
 TSCLSignificanceEvaluator.cxx:286
 TSCLSignificanceEvaluator.cxx:287
 TSCLSignificanceEvaluator.cxx:288
 TSCLSignificanceEvaluator.cxx:289
 TSCLSignificanceEvaluator.cxx:290
 TSCLSignificanceEvaluator.cxx:291
 TSCLSignificanceEvaluator.cxx:292
 TSCLSignificanceEvaluator.cxx:293
 TSCLSignificanceEvaluator.cxx:294
 TSCLSignificanceEvaluator.cxx:295
 TSCLSignificanceEvaluator.cxx:296
 TSCLSignificanceEvaluator.cxx:297
 TSCLSignificanceEvaluator.cxx:298
 TSCLSignificanceEvaluator.cxx:299
 TSCLSignificanceEvaluator.cxx:300
 TSCLSignificanceEvaluator.cxx:301
 TSCLSignificanceEvaluator.cxx:302
 TSCLSignificanceEvaluator.cxx:303
 TSCLSignificanceEvaluator.cxx:304
 TSCLSignificanceEvaluator.cxx:305
 TSCLSignificanceEvaluator.cxx:306
 TSCLSignificanceEvaluator.cxx:307
 TSCLSignificanceEvaluator.cxx:308
 TSCLSignificanceEvaluator.cxx:309
 TSCLSignificanceEvaluator.cxx:310
 TSCLSignificanceEvaluator.cxx:311
 TSCLSignificanceEvaluator.cxx:312
 TSCLSignificanceEvaluator.cxx:313
 TSCLSignificanceEvaluator.cxx:314
 TSCLSignificanceEvaluator.cxx:315
 TSCLSignificanceEvaluator.cxx:316
 TSCLSignificanceEvaluator.cxx:317
 TSCLSignificanceEvaluator.cxx:318
 TSCLSignificanceEvaluator.cxx:319
 TSCLSignificanceEvaluator.cxx:320
 TSCLSignificanceEvaluator.cxx:321
 TSCLSignificanceEvaluator.cxx:322
 TSCLSignificanceEvaluator.cxx:323
 TSCLSignificanceEvaluator.cxx:324
 TSCLSignificanceEvaluator.cxx:325
 TSCLSignificanceEvaluator.cxx:326
 TSCLSignificanceEvaluator.cxx:327
 TSCLSignificanceEvaluator.cxx:328
 TSCLSignificanceEvaluator.cxx:329
 TSCLSignificanceEvaluator.cxx:330
 TSCLSignificanceEvaluator.cxx:331
 TSCLSignificanceEvaluator.cxx:332
 TSCLSignificanceEvaluator.cxx:333
 TSCLSignificanceEvaluator.cxx:334
 TSCLSignificanceEvaluator.cxx:335
 TSCLSignificanceEvaluator.cxx:336
 TSCLSignificanceEvaluator.cxx:337
 TSCLSignificanceEvaluator.cxx:338
 TSCLSignificanceEvaluator.cxx:339
 TSCLSignificanceEvaluator.cxx:340
 TSCLSignificanceEvaluator.cxx:341
 TSCLSignificanceEvaluator.cxx:342
 TSCLSignificanceEvaluator.cxx:343
 TSCLSignificanceEvaluator.cxx:344
 TSCLSignificanceEvaluator.cxx:345
 TSCLSignificanceEvaluator.cxx:346
 TSCLSignificanceEvaluator.cxx:347
 TSCLSignificanceEvaluator.cxx:348
 TSCLSignificanceEvaluator.cxx:349
 TSCLSignificanceEvaluator.cxx:350
 TSCLSignificanceEvaluator.cxx:351
 TSCLSignificanceEvaluator.cxx:352
 TSCLSignificanceEvaluator.cxx:353
 TSCLSignificanceEvaluator.cxx:354
 TSCLSignificanceEvaluator.cxx:355
 TSCLSignificanceEvaluator.cxx:356
 TSCLSignificanceEvaluator.cxx:357
 TSCLSignificanceEvaluator.cxx:358
 TSCLSignificanceEvaluator.cxx:359
 TSCLSignificanceEvaluator.cxx:360
 TSCLSignificanceEvaluator.cxx:361
 TSCLSignificanceEvaluator.cxx:362
 TSCLSignificanceEvaluator.cxx:363
 TSCLSignificanceEvaluator.cxx:364
 TSCLSignificanceEvaluator.cxx:365
 TSCLSignificanceEvaluator.cxx:366
 TSCLSignificanceEvaluator.cxx:367
 TSCLSignificanceEvaluator.cxx:368
 TSCLSignificanceEvaluator.cxx:369
 TSCLSignificanceEvaluator.cxx:370
 TSCLSignificanceEvaluator.cxx:371
 TSCLSignificanceEvaluator.cxx:372
 TSCLSignificanceEvaluator.cxx:373
 TSCLSignificanceEvaluator.cxx:374
 TSCLSignificanceEvaluator.cxx:375
 TSCLSignificanceEvaluator.cxx:376
 TSCLSignificanceEvaluator.cxx:377
 TSCLSignificanceEvaluator.cxx:378
 TSCLSignificanceEvaluator.cxx:379
 TSCLSignificanceEvaluator.cxx:380
 TSCLSignificanceEvaluator.cxx:381
 TSCLSignificanceEvaluator.cxx:382
 TSCLSignificanceEvaluator.cxx:383
 TSCLSignificanceEvaluator.cxx:384
 TSCLSignificanceEvaluator.cxx:385
 TSCLSignificanceEvaluator.cxx:386
 TSCLSignificanceEvaluator.cxx:387
 TSCLSignificanceEvaluator.cxx:388
 TSCLSignificanceEvaluator.cxx:389
 TSCLSignificanceEvaluator.cxx:390
 TSCLSignificanceEvaluator.cxx:391
 TSCLSignificanceEvaluator.cxx:392
 TSCLSignificanceEvaluator.cxx:393
 TSCLSignificanceEvaluator.cxx:394
 TSCLSignificanceEvaluator.cxx:395
 TSCLSignificanceEvaluator.cxx:396
 TSCLSignificanceEvaluator.cxx:397
 TSCLSignificanceEvaluator.cxx:398
 TSCLSignificanceEvaluator.cxx:399
 TSCLSignificanceEvaluator.cxx:400
 TSCLSignificanceEvaluator.cxx:401
 TSCLSignificanceEvaluator.cxx:402
 TSCLSignificanceEvaluator.cxx:403
 TSCLSignificanceEvaluator.cxx:404
 TSCLSignificanceEvaluator.cxx:405
 TSCLSignificanceEvaluator.cxx:406
 TSCLSignificanceEvaluator.cxx:407
 TSCLSignificanceEvaluator.cxx:408
 TSCLSignificanceEvaluator.cxx:409
 TSCLSignificanceEvaluator.cxx:410
 TSCLSignificanceEvaluator.cxx:411
 TSCLSignificanceEvaluator.cxx:412
 TSCLSignificanceEvaluator.cxx:413
 TSCLSignificanceEvaluator.cxx:414
 TSCLSignificanceEvaluator.cxx:415
 TSCLSignificanceEvaluator.cxx:416
 TSCLSignificanceEvaluator.cxx:417
 TSCLSignificanceEvaluator.cxx:418
 TSCLSignificanceEvaluator.cxx:419
 TSCLSignificanceEvaluator.cxx:420
 TSCLSignificanceEvaluator.cxx:421
 TSCLSignificanceEvaluator.cxx:422
 TSCLSignificanceEvaluator.cxx:423
 TSCLSignificanceEvaluator.cxx:424
 TSCLSignificanceEvaluator.cxx:425
 TSCLSignificanceEvaluator.cxx:426
 TSCLSignificanceEvaluator.cxx:427
 TSCLSignificanceEvaluator.cxx:428
 TSCLSignificanceEvaluator.cxx:429
 TSCLSignificanceEvaluator.cxx:430
 TSCLSignificanceEvaluator.cxx:431
 TSCLSignificanceEvaluator.cxx:432
 TSCLSignificanceEvaluator.cxx:433
 TSCLSignificanceEvaluator.cxx:434
 TSCLSignificanceEvaluator.cxx:435
 TSCLSignificanceEvaluator.cxx:436
 TSCLSignificanceEvaluator.cxx:437
 TSCLSignificanceEvaluator.cxx:438
 TSCLSignificanceEvaluator.cxx:439
 TSCLSignificanceEvaluator.cxx:440
 TSCLSignificanceEvaluator.cxx:441
 TSCLSignificanceEvaluator.cxx:442
 TSCLSignificanceEvaluator.cxx:443
 TSCLSignificanceEvaluator.cxx:444
 TSCLSignificanceEvaluator.cxx:445
 TSCLSignificanceEvaluator.cxx:446
 TSCLSignificanceEvaluator.cxx:447
 TSCLSignificanceEvaluator.cxx:448
 TSCLSignificanceEvaluator.cxx:449
 TSCLSignificanceEvaluator.cxx:450
 TSCLSignificanceEvaluator.cxx:451
 TSCLSignificanceEvaluator.cxx:452
 TSCLSignificanceEvaluator.cxx:453
 TSCLSignificanceEvaluator.cxx:454
 TSCLSignificanceEvaluator.cxx:455
 TSCLSignificanceEvaluator.cxx:456
 TSCLSignificanceEvaluator.cxx:457
 TSCLSignificanceEvaluator.cxx:458
 TSCLSignificanceEvaluator.cxx:459
 TSCLSignificanceEvaluator.cxx:460
 TSCLSignificanceEvaluator.cxx:461
 TSCLSignificanceEvaluator.cxx:462
 TSCLSignificanceEvaluator.cxx:463
 TSCLSignificanceEvaluator.cxx:464
 TSCLSignificanceEvaluator.cxx:465
 TSCLSignificanceEvaluator.cxx:466
 TSCLSignificanceEvaluator.cxx:467
 TSCLSignificanceEvaluator.cxx:468
 TSCLSignificanceEvaluator.cxx:469
 TSCLSignificanceEvaluator.cxx:470
 TSCLSignificanceEvaluator.cxx:471
 TSCLSignificanceEvaluator.cxx:472
 TSCLSignificanceEvaluator.cxx:473
 TSCLSignificanceEvaluator.cxx:474
 TSCLSignificanceEvaluator.cxx:475
 TSCLSignificanceEvaluator.cxx:476
 TSCLSignificanceEvaluator.cxx:477
 TSCLSignificanceEvaluator.cxx:478
 TSCLSignificanceEvaluator.cxx:479
 TSCLSignificanceEvaluator.cxx:480
 TSCLSignificanceEvaluator.cxx:481
 TSCLSignificanceEvaluator.cxx:482
 TSCLSignificanceEvaluator.cxx:483
 TSCLSignificanceEvaluator.cxx:484
 TSCLSignificanceEvaluator.cxx:485
 TSCLSignificanceEvaluator.cxx:486
 TSCLSignificanceEvaluator.cxx:487
 TSCLSignificanceEvaluator.cxx:488
 TSCLSignificanceEvaluator.cxx:489
 TSCLSignificanceEvaluator.cxx:490
 TSCLSignificanceEvaluator.cxx:491
 TSCLSignificanceEvaluator.cxx:492
 TSCLSignificanceEvaluator.cxx:493
 TSCLSignificanceEvaluator.cxx:494
 TSCLSignificanceEvaluator.cxx:495
 TSCLSignificanceEvaluator.cxx:496
 TSCLSignificanceEvaluator.cxx:497
 TSCLSignificanceEvaluator.cxx:498
 TSCLSignificanceEvaluator.cxx:499
 TSCLSignificanceEvaluator.cxx:500
 TSCLSignificanceEvaluator.cxx:501
 TSCLSignificanceEvaluator.cxx:502
 TSCLSignificanceEvaluator.cxx:503
 TSCLSignificanceEvaluator.cxx:504
 TSCLSignificanceEvaluator.cxx:505
 TSCLSignificanceEvaluator.cxx:506
 TSCLSignificanceEvaluator.cxx:507
 TSCLSignificanceEvaluator.cxx:508
 TSCLSignificanceEvaluator.cxx:509
 TSCLSignificanceEvaluator.cxx:510
 TSCLSignificanceEvaluator.cxx:511
 TSCLSignificanceEvaluator.cxx:512
 TSCLSignificanceEvaluator.cxx:513
 TSCLSignificanceEvaluator.cxx:514
 TSCLSignificanceEvaluator.cxx:515
 TSCLSignificanceEvaluator.cxx:516
 TSCLSignificanceEvaluator.cxx:517
 TSCLSignificanceEvaluator.cxx:518
 TSCLSignificanceEvaluator.cxx:519
 TSCLSignificanceEvaluator.cxx:520
 TSCLSignificanceEvaluator.cxx:521
 TSCLSignificanceEvaluator.cxx:522
 TSCLSignificanceEvaluator.cxx:523
 TSCLSignificanceEvaluator.cxx:524
 TSCLSignificanceEvaluator.cxx:525
 TSCLSignificanceEvaluator.cxx:526
 TSCLSignificanceEvaluator.cxx:527
 TSCLSignificanceEvaluator.cxx:528
 TSCLSignificanceEvaluator.cxx:529
 TSCLSignificanceEvaluator.cxx:530
 TSCLSignificanceEvaluator.cxx:531
 TSCLSignificanceEvaluator.cxx:532
 TSCLSignificanceEvaluator.cxx:533
 TSCLSignificanceEvaluator.cxx:534
 TSCLSignificanceEvaluator.cxx:535
 TSCLSignificanceEvaluator.cxx:536
 TSCLSignificanceEvaluator.cxx:537
 TSCLSignificanceEvaluator.cxx:538
 TSCLSignificanceEvaluator.cxx:539
 TSCLSignificanceEvaluator.cxx:540
 TSCLSignificanceEvaluator.cxx:541
 TSCLSignificanceEvaluator.cxx:542
 TSCLSignificanceEvaluator.cxx:543
 TSCLSignificanceEvaluator.cxx:544
 TSCLSignificanceEvaluator.cxx:545
 TSCLSignificanceEvaluator.cxx:546
 TSCLSignificanceEvaluator.cxx:547
 TSCLSignificanceEvaluator.cxx:548
 TSCLSignificanceEvaluator.cxx:549
 TSCLSignificanceEvaluator.cxx:550
 TSCLSignificanceEvaluator.cxx:551
 TSCLSignificanceEvaluator.cxx:552
 TSCLSignificanceEvaluator.cxx:553
 TSCLSignificanceEvaluator.cxx:554
 TSCLSignificanceEvaluator.cxx:555
 TSCLSignificanceEvaluator.cxx:556
 TSCLSignificanceEvaluator.cxx:557
 TSCLSignificanceEvaluator.cxx:558
 TSCLSignificanceEvaluator.cxx:559
 TSCLSignificanceEvaluator.cxx:560
 TSCLSignificanceEvaluator.cxx:561
 TSCLSignificanceEvaluator.cxx:562
 TSCLSignificanceEvaluator.cxx:563
 TSCLSignificanceEvaluator.cxx:564
 TSCLSignificanceEvaluator.cxx:565
 TSCLSignificanceEvaluator.cxx:566
 TSCLSignificanceEvaluator.cxx:567
 TSCLSignificanceEvaluator.cxx:568
 TSCLSignificanceEvaluator.cxx:569
 TSCLSignificanceEvaluator.cxx:570
 TSCLSignificanceEvaluator.cxx:571
 TSCLSignificanceEvaluator.cxx:572
 TSCLSignificanceEvaluator.cxx:573
 TSCLSignificanceEvaluator.cxx:574
 TSCLSignificanceEvaluator.cxx:575
 TSCLSignificanceEvaluator.cxx:576
 TSCLSignificanceEvaluator.cxx:577
 TSCLSignificanceEvaluator.cxx:578
 TSCLSignificanceEvaluator.cxx:579
 TSCLSignificanceEvaluator.cxx:580
 TSCLSignificanceEvaluator.cxx:581
 TSCLSignificanceEvaluator.cxx:582
 TSCLSignificanceEvaluator.cxx:583
 TSCLSignificanceEvaluator.cxx:584
 TSCLSignificanceEvaluator.cxx:585
 TSCLSignificanceEvaluator.cxx:586
 TSCLSignificanceEvaluator.cxx:587
 TSCLSignificanceEvaluator.cxx:588
 TSCLSignificanceEvaluator.cxx:589
 TSCLSignificanceEvaluator.cxx:590
 TSCLSignificanceEvaluator.cxx:591
 TSCLSignificanceEvaluator.cxx:592
 TSCLSignificanceEvaluator.cxx:593
 TSCLSignificanceEvaluator.cxx:594
 TSCLSignificanceEvaluator.cxx:595
 TSCLSignificanceEvaluator.cxx:596
 TSCLSignificanceEvaluator.cxx:597
 TSCLSignificanceEvaluator.cxx:598
 TSCLSignificanceEvaluator.cxx:599
 TSCLSignificanceEvaluator.cxx:600
 TSCLSignificanceEvaluator.cxx:601
 TSCLSignificanceEvaluator.cxx:602
 TSCLSignificanceEvaluator.cxx:603
 TSCLSignificanceEvaluator.cxx:604
 TSCLSignificanceEvaluator.cxx:605
 TSCLSignificanceEvaluator.cxx:606
 TSCLSignificanceEvaluator.cxx:607
 TSCLSignificanceEvaluator.cxx:608
 TSCLSignificanceEvaluator.cxx:609
 TSCLSignificanceEvaluator.cxx:610
 TSCLSignificanceEvaluator.cxx:611
 TSCLSignificanceEvaluator.cxx:612
 TSCLSignificanceEvaluator.cxx:613
 TSCLSignificanceEvaluator.cxx:614
 TSCLSignificanceEvaluator.cxx:615
 TSCLSignificanceEvaluator.cxx:616
 TSCLSignificanceEvaluator.cxx:617
 TSCLSignificanceEvaluator.cxx:618
 TSCLSignificanceEvaluator.cxx:619
 TSCLSignificanceEvaluator.cxx:620
 TSCLSignificanceEvaluator.cxx:621
 TSCLSignificanceEvaluator.cxx:622
 TSCLSignificanceEvaluator.cxx:623
 TSCLSignificanceEvaluator.cxx:624
 TSCLSignificanceEvaluator.cxx:625
 TSCLSignificanceEvaluator.cxx:626
 TSCLSignificanceEvaluator.cxx:627
 TSCLSignificanceEvaluator.cxx:628
 TSCLSignificanceEvaluator.cxx:629
 TSCLSignificanceEvaluator.cxx:630
 TSCLSignificanceEvaluator.cxx:631
 TSCLSignificanceEvaluator.cxx:632
 TSCLSignificanceEvaluator.cxx:633
 TSCLSignificanceEvaluator.cxx:634
 TSCLSignificanceEvaluator.cxx:635
 TSCLSignificanceEvaluator.cxx:636
 TSCLSignificanceEvaluator.cxx:637
 TSCLSignificanceEvaluator.cxx:638
 TSCLSignificanceEvaluator.cxx:639
 TSCLSignificanceEvaluator.cxx:640
 TSCLSignificanceEvaluator.cxx:641
 TSCLSignificanceEvaluator.cxx:642
 TSCLSignificanceEvaluator.cxx:643
 TSCLSignificanceEvaluator.cxx:644
 TSCLSignificanceEvaluator.cxx:645
 TSCLSignificanceEvaluator.cxx:646
 TSCLSignificanceEvaluator.cxx:647
 TSCLSignificanceEvaluator.cxx:648
 TSCLSignificanceEvaluator.cxx:649
 TSCLSignificanceEvaluator.cxx:650
 TSCLSignificanceEvaluator.cxx:651
 TSCLSignificanceEvaluator.cxx:652
 TSCLSignificanceEvaluator.cxx:653
 TSCLSignificanceEvaluator.cxx:654
 TSCLSignificanceEvaluator.cxx:655
 TSCLSignificanceEvaluator.cxx:656
 TSCLSignificanceEvaluator.cxx:657
 TSCLSignificanceEvaluator.cxx:658
 TSCLSignificanceEvaluator.cxx:659
 TSCLSignificanceEvaluator.cxx:660
 TSCLSignificanceEvaluator.cxx:661
 TSCLSignificanceEvaluator.cxx:662
 TSCLSignificanceEvaluator.cxx:663
 TSCLSignificanceEvaluator.cxx:664
 TSCLSignificanceEvaluator.cxx:665
 TSCLSignificanceEvaluator.cxx:666
 TSCLSignificanceEvaluator.cxx:667
 TSCLSignificanceEvaluator.cxx:668
 TSCLSignificanceEvaluator.cxx:669
 TSCLSignificanceEvaluator.cxx:670
 TSCLSignificanceEvaluator.cxx:671
 TSCLSignificanceEvaluator.cxx:672
 TSCLSignificanceEvaluator.cxx:673
 TSCLSignificanceEvaluator.cxx:674
 TSCLSignificanceEvaluator.cxx:675
 TSCLSignificanceEvaluator.cxx:676
 TSCLSignificanceEvaluator.cxx:677
 TSCLSignificanceEvaluator.cxx:678
 TSCLSignificanceEvaluator.cxx:679
 TSCLSignificanceEvaluator.cxx:680
 TSCLSignificanceEvaluator.cxx:681
 TSCLSignificanceEvaluator.cxx:682
 TSCLSignificanceEvaluator.cxx:683
 TSCLSignificanceEvaluator.cxx:684
 TSCLSignificanceEvaluator.cxx:685
 TSCLSignificanceEvaluator.cxx:686
 TSCLSignificanceEvaluator.cxx:687
 TSCLSignificanceEvaluator.cxx:688
 TSCLSignificanceEvaluator.cxx:689
 TSCLSignificanceEvaluator.cxx:690
 TSCLSignificanceEvaluator.cxx:691
 TSCLSignificanceEvaluator.cxx:692
 TSCLSignificanceEvaluator.cxx:693
 TSCLSignificanceEvaluator.cxx:694
 TSCLSignificanceEvaluator.cxx:695
 TSCLSignificanceEvaluator.cxx:696
 TSCLSignificanceEvaluator.cxx:697
 TSCLSignificanceEvaluator.cxx:698
 TSCLSignificanceEvaluator.cxx:699
 TSCLSignificanceEvaluator.cxx:700
 TSCLSignificanceEvaluator.cxx:701
 TSCLSignificanceEvaluator.cxx:702
 TSCLSignificanceEvaluator.cxx:703
 TSCLSignificanceEvaluator.cxx:704
 TSCLSignificanceEvaluator.cxx:705
 TSCLSignificanceEvaluator.cxx:706
 TSCLSignificanceEvaluator.cxx:707
 TSCLSignificanceEvaluator.cxx:708
 TSCLSignificanceEvaluator.cxx:709
 TSCLSignificanceEvaluator.cxx:710
 TSCLSignificanceEvaluator.cxx:711
 TSCLSignificanceEvaluator.cxx:712
 TSCLSignificanceEvaluator.cxx:713
 TSCLSignificanceEvaluator.cxx:714
 TSCLSignificanceEvaluator.cxx:715
 TSCLSignificanceEvaluator.cxx:716
 TSCLSignificanceEvaluator.cxx:717
 TSCLSignificanceEvaluator.cxx:718
 TSCLSignificanceEvaluator.cxx:719
 TSCLSignificanceEvaluator.cxx:720
 TSCLSignificanceEvaluator.cxx:721
 TSCLSignificanceEvaluator.cxx:722
 TSCLSignificanceEvaluator.cxx:723
 TSCLSignificanceEvaluator.cxx:724
 TSCLSignificanceEvaluator.cxx:725
 TSCLSignificanceEvaluator.cxx:726
 TSCLSignificanceEvaluator.cxx:727
 TSCLSignificanceEvaluator.cxx:728
 TSCLSignificanceEvaluator.cxx:729
 TSCLSignificanceEvaluator.cxx:730
 TSCLSignificanceEvaluator.cxx:731
 TSCLSignificanceEvaluator.cxx:732
 TSCLSignificanceEvaluator.cxx:733
 TSCLSignificanceEvaluator.cxx:734
 TSCLSignificanceEvaluator.cxx:735
 TSCLSignificanceEvaluator.cxx:736
 TSCLSignificanceEvaluator.cxx:737
 TSCLSignificanceEvaluator.cxx:738
 TSCLSignificanceEvaluator.cxx:739
 TSCLSignificanceEvaluator.cxx:740
 TSCLSignificanceEvaluator.cxx:741
 TSCLSignificanceEvaluator.cxx:742
 TSCLSignificanceEvaluator.cxx:743
 TSCLSignificanceEvaluator.cxx:744
 TSCLSignificanceEvaluator.cxx:745
 TSCLSignificanceEvaluator.cxx:746
 TSCLSignificanceEvaluator.cxx:747
 TSCLSignificanceEvaluator.cxx:748
 TSCLSignificanceEvaluator.cxx:749
 TSCLSignificanceEvaluator.cxx:750
 TSCLSignificanceEvaluator.cxx:751
 TSCLSignificanceEvaluator.cxx:752
 TSCLSignificanceEvaluator.cxx:753
 TSCLSignificanceEvaluator.cxx:754
 TSCLSignificanceEvaluator.cxx:755
 TSCLSignificanceEvaluator.cxx:756
 TSCLSignificanceEvaluator.cxx:757
 TSCLSignificanceEvaluator.cxx:758
 TSCLSignificanceEvaluator.cxx:759
 TSCLSignificanceEvaluator.cxx:760
 TSCLSignificanceEvaluator.cxx:761
 TSCLSignificanceEvaluator.cxx:762
 TSCLSignificanceEvaluator.cxx:763
 TSCLSignificanceEvaluator.cxx:764
 TSCLSignificanceEvaluator.cxx:765
 TSCLSignificanceEvaluator.cxx:766
 TSCLSignificanceEvaluator.cxx:767
 TSCLSignificanceEvaluator.cxx:768
 TSCLSignificanceEvaluator.cxx:769
 TSCLSignificanceEvaluator.cxx:770
 TSCLSignificanceEvaluator.cxx:771
 TSCLSignificanceEvaluator.cxx:772
 TSCLSignificanceEvaluator.cxx:773
 TSCLSignificanceEvaluator.cxx:774
 TSCLSignificanceEvaluator.cxx:775
 TSCLSignificanceEvaluator.cxx:776
 TSCLSignificanceEvaluator.cxx:777
 TSCLSignificanceEvaluator.cxx:778
 TSCLSignificanceEvaluator.cxx:779
 TSCLSignificanceEvaluator.cxx:780
 TSCLSignificanceEvaluator.cxx:781
 TSCLSignificanceEvaluator.cxx:782
 TSCLSignificanceEvaluator.cxx:783
 TSCLSignificanceEvaluator.cxx:784
 TSCLSignificanceEvaluator.cxx:785
 TSCLSignificanceEvaluator.cxx:786
 TSCLSignificanceEvaluator.cxx:787
 TSCLSignificanceEvaluator.cxx:788
 TSCLSignificanceEvaluator.cxx:789
 TSCLSignificanceEvaluator.cxx:790
 TSCLSignificanceEvaluator.cxx:791
 TSCLSignificanceEvaluator.cxx:792
 TSCLSignificanceEvaluator.cxx:793
 TSCLSignificanceEvaluator.cxx:794
 TSCLSignificanceEvaluator.cxx:795
 TSCLSignificanceEvaluator.cxx:796
 TSCLSignificanceEvaluator.cxx:797
 TSCLSignificanceEvaluator.cxx:798
 TSCLSignificanceEvaluator.cxx:799
 TSCLSignificanceEvaluator.cxx:800
 TSCLSignificanceEvaluator.cxx:801
 TSCLSignificanceEvaluator.cxx:802
 TSCLSignificanceEvaluator.cxx:803
 TSCLSignificanceEvaluator.cxx:804
 TSCLSignificanceEvaluator.cxx:805
 TSCLSignificanceEvaluator.cxx:806
 TSCLSignificanceEvaluator.cxx:807
 TSCLSignificanceEvaluator.cxx:808
 TSCLSignificanceEvaluator.cxx:809
 TSCLSignificanceEvaluator.cxx:810
 TSCLSignificanceEvaluator.cxx:811
 TSCLSignificanceEvaluator.cxx:812
 TSCLSignificanceEvaluator.cxx:813
 TSCLSignificanceEvaluator.cxx:814
 TSCLSignificanceEvaluator.cxx:815
 TSCLSignificanceEvaluator.cxx:816
 TSCLSignificanceEvaluator.cxx:817
 TSCLSignificanceEvaluator.cxx:818
 TSCLSignificanceEvaluator.cxx:819
 TSCLSignificanceEvaluator.cxx:820
 TSCLSignificanceEvaluator.cxx:821
 TSCLSignificanceEvaluator.cxx:822
 TSCLSignificanceEvaluator.cxx:823
 TSCLSignificanceEvaluator.cxx:824
 TSCLSignificanceEvaluator.cxx:825
 TSCLSignificanceEvaluator.cxx:826
 TSCLSignificanceEvaluator.cxx:827
 TSCLSignificanceEvaluator.cxx:828
 TSCLSignificanceEvaluator.cxx:829
 TSCLSignificanceEvaluator.cxx:830
 TSCLSignificanceEvaluator.cxx:831
 TSCLSignificanceEvaluator.cxx:832
 TSCLSignificanceEvaluator.cxx:833
 TSCLSignificanceEvaluator.cxx:834
 TSCLSignificanceEvaluator.cxx:835
 TSCLSignificanceEvaluator.cxx:836
 TSCLSignificanceEvaluator.cxx:837
 TSCLSignificanceEvaluator.cxx:838
 TSCLSignificanceEvaluator.cxx:839
 TSCLSignificanceEvaluator.cxx:840
 TSCLSignificanceEvaluator.cxx:841
 TSCLSignificanceEvaluator.cxx:842
 TSCLSignificanceEvaluator.cxx:843
 TSCLSignificanceEvaluator.cxx:844
 TSCLSignificanceEvaluator.cxx:845
 TSCLSignificanceEvaluator.cxx:846
 TSCLSignificanceEvaluator.cxx:847
 TSCLSignificanceEvaluator.cxx:848
 TSCLSignificanceEvaluator.cxx:849
 TSCLSignificanceEvaluator.cxx:850
 TSCLSignificanceEvaluator.cxx:851
 TSCLSignificanceEvaluator.cxx:852
 TSCLSignificanceEvaluator.cxx:853
 TSCLSignificanceEvaluator.cxx:854
 TSCLSignificanceEvaluator.cxx:855
 TSCLSignificanceEvaluator.cxx:856
 TSCLSignificanceEvaluator.cxx:857
 TSCLSignificanceEvaluator.cxx:858
 TSCLSignificanceEvaluator.cxx:859
 TSCLSignificanceEvaluator.cxx:860
 TSCLSignificanceEvaluator.cxx:861
 TSCLSignificanceEvaluator.cxx:862
 TSCLSignificanceEvaluator.cxx:863
 TSCLSignificanceEvaluator.cxx:864
 TSCLSignificanceEvaluator.cxx:865
 TSCLSignificanceEvaluator.cxx:866
 TSCLSignificanceEvaluator.cxx:867
 TSCLSignificanceEvaluator.cxx:868
 TSCLSignificanceEvaluator.cxx:869
 TSCLSignificanceEvaluator.cxx:870
 TSCLSignificanceEvaluator.cxx:871
 TSCLSignificanceEvaluator.cxx:872
 TSCLSignificanceEvaluator.cxx:873
 TSCLSignificanceEvaluator.cxx:874
 TSCLSignificanceEvaluator.cxx:875
 TSCLSignificanceEvaluator.cxx:876
 TSCLSignificanceEvaluator.cxx:877
 TSCLSignificanceEvaluator.cxx:878
 TSCLSignificanceEvaluator.cxx:879
 TSCLSignificanceEvaluator.cxx:880
 TSCLSignificanceEvaluator.cxx:881
 TSCLSignificanceEvaluator.cxx:882
 TSCLSignificanceEvaluator.cxx:883
 TSCLSignificanceEvaluator.cxx:884
 TSCLSignificanceEvaluator.cxx:885
 TSCLSignificanceEvaluator.cxx:886
 TSCLSignificanceEvaluator.cxx:887
 TSCLSignificanceEvaluator.cxx:888
 TSCLSignificanceEvaluator.cxx:889
 TSCLSignificanceEvaluator.cxx:890
 TSCLSignificanceEvaluator.cxx:891
 TSCLSignificanceEvaluator.cxx:892
 TSCLSignificanceEvaluator.cxx:893
 TSCLSignificanceEvaluator.cxx:894
 TSCLSignificanceEvaluator.cxx:895
 TSCLSignificanceEvaluator.cxx:896
 TSCLSignificanceEvaluator.cxx:897
 TSCLSignificanceEvaluator.cxx:898
 TSCLSignificanceEvaluator.cxx:899
 TSCLSignificanceEvaluator.cxx:900
 TSCLSignificanceEvaluator.cxx:901
 TSCLSignificanceEvaluator.cxx:902
 TSCLSignificanceEvaluator.cxx:903
 TSCLSignificanceEvaluator.cxx:904
 TSCLSignificanceEvaluator.cxx:905
 TSCLSignificanceEvaluator.cxx:906
 TSCLSignificanceEvaluator.cxx:907
 TSCLSignificanceEvaluator.cxx:908
 TSCLSignificanceEvaluator.cxx:909
 TSCLSignificanceEvaluator.cxx:910
 TSCLSignificanceEvaluator.cxx:911
 TSCLSignificanceEvaluator.cxx:912
 TSCLSignificanceEvaluator.cxx:913
 TSCLSignificanceEvaluator.cxx:914
 TSCLSignificanceEvaluator.cxx:915
 TSCLSignificanceEvaluator.cxx:916
 TSCLSignificanceEvaluator.cxx:917
 TSCLSignificanceEvaluator.cxx:918
 TSCLSignificanceEvaluator.cxx:919
 TSCLSignificanceEvaluator.cxx:920
 TSCLSignificanceEvaluator.cxx:921
 TSCLSignificanceEvaluator.cxx:922
 TSCLSignificanceEvaluator.cxx:923
 TSCLSignificanceEvaluator.cxx:924
 TSCLSignificanceEvaluator.cxx:925
 TSCLSignificanceEvaluator.cxx:926
 TSCLSignificanceEvaluator.cxx:927
 TSCLSignificanceEvaluator.cxx:928
 TSCLSignificanceEvaluator.cxx:929
 TSCLSignificanceEvaluator.cxx:930
 TSCLSignificanceEvaluator.cxx:931
 TSCLSignificanceEvaluator.cxx:932
 TSCLSignificanceEvaluator.cxx:933
 TSCLSignificanceEvaluator.cxx:934
 TSCLSignificanceEvaluator.cxx:935
 TSCLSignificanceEvaluator.cxx:936
 TSCLSignificanceEvaluator.cxx:937
 TSCLSignificanceEvaluator.cxx:938
 TSCLSignificanceEvaluator.cxx:939
 TSCLSignificanceEvaluator.cxx:940
 TSCLSignificanceEvaluator.cxx:941
 TSCLSignificanceEvaluator.cxx:942
 TSCLSignificanceEvaluator.cxx:943
 TSCLSignificanceEvaluator.cxx:944
 TSCLSignificanceEvaluator.cxx:945
 TSCLSignificanceEvaluator.cxx:946
 TSCLSignificanceEvaluator.cxx:947
 TSCLSignificanceEvaluator.cxx:948
 TSCLSignificanceEvaluator.cxx:949
 TSCLSignificanceEvaluator.cxx:950
 TSCLSignificanceEvaluator.cxx:951
 TSCLSignificanceEvaluator.cxx:952
 TSCLSignificanceEvaluator.cxx:953
 TSCLSignificanceEvaluator.cxx:954
 TSCLSignificanceEvaluator.cxx:955
 TSCLSignificanceEvaluator.cxx:956
 TSCLSignificanceEvaluator.cxx:957
 TSCLSignificanceEvaluator.cxx:958
 TSCLSignificanceEvaluator.cxx:959
 TSCLSignificanceEvaluator.cxx:960
 TSCLSignificanceEvaluator.cxx:961
 TSCLSignificanceEvaluator.cxx:962
 TSCLSignificanceEvaluator.cxx:963
 TSCLSignificanceEvaluator.cxx:964
 TSCLSignificanceEvaluator.cxx:965
 TSCLSignificanceEvaluator.cxx:966
 TSCLSignificanceEvaluator.cxx:967
 TSCLSignificanceEvaluator.cxx:968
 TSCLSignificanceEvaluator.cxx:969
 TSCLSignificanceEvaluator.cxx:970
 TSCLSignificanceEvaluator.cxx:971
 TSCLSignificanceEvaluator.cxx:972
 TSCLSignificanceEvaluator.cxx:973
 TSCLSignificanceEvaluator.cxx:974
 TSCLSignificanceEvaluator.cxx:975
 TSCLSignificanceEvaluator.cxx:976
 TSCLSignificanceEvaluator.cxx:977
 TSCLSignificanceEvaluator.cxx:978
 TSCLSignificanceEvaluator.cxx:979
 TSCLSignificanceEvaluator.cxx:980
 TSCLSignificanceEvaluator.cxx:981
 TSCLSignificanceEvaluator.cxx:982
 TSCLSignificanceEvaluator.cxx:983
 TSCLSignificanceEvaluator.cxx:984
 TSCLSignificanceEvaluator.cxx:985
 TSCLSignificanceEvaluator.cxx:986
 TSCLSignificanceEvaluator.cxx:987
 TSCLSignificanceEvaluator.cxx:988
 TSCLSignificanceEvaluator.cxx:989
 TSCLSignificanceEvaluator.cxx:990
 TSCLSignificanceEvaluator.cxx:991
 TSCLSignificanceEvaluator.cxx:992
 TSCLSignificanceEvaluator.cxx:993
 TSCLSignificanceEvaluator.cxx:994
 TSCLSignificanceEvaluator.cxx:995
 TSCLSignificanceEvaluator.cxx:996
 TSCLSignificanceEvaluator.cxx:997
 TSCLSignificanceEvaluator.cxx:998
 TSCLSignificanceEvaluator.cxx:999
 TSCLSignificanceEvaluator.cxx:1000
 TSCLSignificanceEvaluator.cxx:1001
 TSCLSignificanceEvaluator.cxx:1002
 TSCLSignificanceEvaluator.cxx:1003
 TSCLSignificanceEvaluator.cxx:1004
 TSCLSignificanceEvaluator.cxx:1005
 TSCLSignificanceEvaluator.cxx:1006
 TSCLSignificanceEvaluator.cxx:1007
 TSCLSignificanceEvaluator.cxx:1008
 TSCLSignificanceEvaluator.cxx:1009
 TSCLSignificanceEvaluator.cxx:1010
 TSCLSignificanceEvaluator.cxx:1011
 TSCLSignificanceEvaluator.cxx:1012
 TSCLSignificanceEvaluator.cxx:1013
 TSCLSignificanceEvaluator.cxx:1014
 TSCLSignificanceEvaluator.cxx:1015
 TSCLSignificanceEvaluator.cxx:1016
 TSCLSignificanceEvaluator.cxx:1017
 TSCLSignificanceEvaluator.cxx:1018
 TSCLSignificanceEvaluator.cxx:1019
 TSCLSignificanceEvaluator.cxx:1020
 TSCLSignificanceEvaluator.cxx:1021
 TSCLSignificanceEvaluator.cxx:1022
 TSCLSignificanceEvaluator.cxx:1023
 TSCLSignificanceEvaluator.cxx:1024
 TSCLSignificanceEvaluator.cxx:1025
 TSCLSignificanceEvaluator.cxx:1026
 TSCLSignificanceEvaluator.cxx:1027
 TSCLSignificanceEvaluator.cxx:1028
 TSCLSignificanceEvaluator.cxx:1029
 TSCLSignificanceEvaluator.cxx:1030
 TSCLSignificanceEvaluator.cxx:1031
 TSCLSignificanceEvaluator.cxx:1032
 TSCLSignificanceEvaluator.cxx:1033
 TSCLSignificanceEvaluator.cxx:1034
 TSCLSignificanceEvaluator.cxx:1035
 TSCLSignificanceEvaluator.cxx:1036
 TSCLSignificanceEvaluator.cxx:1037
 TSCLSignificanceEvaluator.cxx:1038
 TSCLSignificanceEvaluator.cxx:1039
 TSCLSignificanceEvaluator.cxx:1040
 TSCLSignificanceEvaluator.cxx:1041
 TSCLSignificanceEvaluator.cxx:1042
 TSCLSignificanceEvaluator.cxx:1043
 TSCLSignificanceEvaluator.cxx:1044
 TSCLSignificanceEvaluator.cxx:1045
 TSCLSignificanceEvaluator.cxx:1046
 TSCLSignificanceEvaluator.cxx:1047
 TSCLSignificanceEvaluator.cxx:1048
 TSCLSignificanceEvaluator.cxx:1049
 TSCLSignificanceEvaluator.cxx:1050
 TSCLSignificanceEvaluator.cxx:1051
 TSCLSignificanceEvaluator.cxx:1052
 TSCLSignificanceEvaluator.cxx:1053
 TSCLSignificanceEvaluator.cxx:1054
 TSCLSignificanceEvaluator.cxx:1055
 TSCLSignificanceEvaluator.cxx:1056
 TSCLSignificanceEvaluator.cxx:1057
 TSCLSignificanceEvaluator.cxx:1058
 TSCLSignificanceEvaluator.cxx:1059
 TSCLSignificanceEvaluator.cxx:1060
 TSCLSignificanceEvaluator.cxx:1061
 TSCLSignificanceEvaluator.cxx:1062
 TSCLSignificanceEvaluator.cxx:1063
 TSCLSignificanceEvaluator.cxx:1064
 TSCLSignificanceEvaluator.cxx:1065
 TSCLSignificanceEvaluator.cxx:1066
 TSCLSignificanceEvaluator.cxx:1067
 TSCLSignificanceEvaluator.cxx:1068
 TSCLSignificanceEvaluator.cxx:1069
 TSCLSignificanceEvaluator.cxx:1070
 TSCLSignificanceEvaluator.cxx:1071
 TSCLSignificanceEvaluator.cxx:1072
 TSCLSignificanceEvaluator.cxx:1073
 TSCLSignificanceEvaluator.cxx:1074
 TSCLSignificanceEvaluator.cxx:1075
 TSCLSignificanceEvaluator.cxx:1076
 TSCLSignificanceEvaluator.cxx:1077
 TSCLSignificanceEvaluator.cxx:1078
 TSCLSignificanceEvaluator.cxx:1079
 TSCLSignificanceEvaluator.cxx:1080
 TSCLSignificanceEvaluator.cxx:1081
 TSCLSignificanceEvaluator.cxx:1082
 TSCLSignificanceEvaluator.cxx:1083
 TSCLSignificanceEvaluator.cxx:1084
 TSCLSignificanceEvaluator.cxx:1085
 TSCLSignificanceEvaluator.cxx:1086
 TSCLSignificanceEvaluator.cxx:1087
 TSCLSignificanceEvaluator.cxx:1088
 TSCLSignificanceEvaluator.cxx:1089
 TSCLSignificanceEvaluator.cxx:1090
 TSCLSignificanceEvaluator.cxx:1091
 TSCLSignificanceEvaluator.cxx:1092
 TSCLSignificanceEvaluator.cxx:1093
 TSCLSignificanceEvaluator.cxx:1094
 TSCLSignificanceEvaluator.cxx:1095
 TSCLSignificanceEvaluator.cxx:1096
 TSCLSignificanceEvaluator.cxx:1097
 TSCLSignificanceEvaluator.cxx:1098
 TSCLSignificanceEvaluator.cxx:1099
 TSCLSignificanceEvaluator.cxx:1100
 TSCLSignificanceEvaluator.cxx:1101
 TSCLSignificanceEvaluator.cxx:1102
 TSCLSignificanceEvaluator.cxx:1103
 TSCLSignificanceEvaluator.cxx:1104
 TSCLSignificanceEvaluator.cxx:1105
 TSCLSignificanceEvaluator.cxx:1106
 TSCLSignificanceEvaluator.cxx:1107
 TSCLSignificanceEvaluator.cxx:1108
 TSCLSignificanceEvaluator.cxx:1109
 TSCLSignificanceEvaluator.cxx:1110
 TSCLSignificanceEvaluator.cxx:1111
 TSCLSignificanceEvaluator.cxx:1112
 TSCLSignificanceEvaluator.cxx:1113
 TSCLSignificanceEvaluator.cxx:1114
 TSCLSignificanceEvaluator.cxx:1115
 TSCLSignificanceEvaluator.cxx:1116
 TSCLSignificanceEvaluator.cxx:1117
 TSCLSignificanceEvaluator.cxx:1118
 TSCLSignificanceEvaluator.cxx:1119
 TSCLSignificanceEvaluator.cxx:1120
 TSCLSignificanceEvaluator.cxx:1121
 TSCLSignificanceEvaluator.cxx:1122
 TSCLSignificanceEvaluator.cxx:1123
 TSCLSignificanceEvaluator.cxx:1124
 TSCLSignificanceEvaluator.cxx:1125
 TSCLSignificanceEvaluator.cxx:1126
 TSCLSignificanceEvaluator.cxx:1127
 TSCLSignificanceEvaluator.cxx:1128
 TSCLSignificanceEvaluator.cxx:1129
 TSCLSignificanceEvaluator.cxx:1130
 TSCLSignificanceEvaluator.cxx:1131
 TSCLSignificanceEvaluator.cxx:1132
 TSCLSignificanceEvaluator.cxx:1133
 TSCLSignificanceEvaluator.cxx:1134
 TSCLSignificanceEvaluator.cxx:1135
 TSCLSignificanceEvaluator.cxx:1136
 TSCLSignificanceEvaluator.cxx:1137
 TSCLSignificanceEvaluator.cxx:1138
 TSCLSignificanceEvaluator.cxx:1139
 TSCLSignificanceEvaluator.cxx:1140
 TSCLSignificanceEvaluator.cxx:1141
 TSCLSignificanceEvaluator.cxx:1142
 TSCLSignificanceEvaluator.cxx:1143
 TSCLSignificanceEvaluator.cxx:1144
 TSCLSignificanceEvaluator.cxx:1145
 TSCLSignificanceEvaluator.cxx:1146
 TSCLSignificanceEvaluator.cxx:1147
 TSCLSignificanceEvaluator.cxx:1148
 TSCLSignificanceEvaluator.cxx:1149
 TSCLSignificanceEvaluator.cxx:1150
 TSCLSignificanceEvaluator.cxx:1151
 TSCLSignificanceEvaluator.cxx:1152
 TSCLSignificanceEvaluator.cxx:1153
 TSCLSignificanceEvaluator.cxx:1154
 TSCLSignificanceEvaluator.cxx:1155
 TSCLSignificanceEvaluator.cxx:1156
 TSCLSignificanceEvaluator.cxx:1157
 TSCLSignificanceEvaluator.cxx:1158
 TSCLSignificanceEvaluator.cxx:1159
 TSCLSignificanceEvaluator.cxx:1160
 TSCLSignificanceEvaluator.cxx:1161
 TSCLSignificanceEvaluator.cxx:1162
 TSCLSignificanceEvaluator.cxx:1163
 TSCLSignificanceEvaluator.cxx:1164
 TSCLSignificanceEvaluator.cxx:1165
 TSCLSignificanceEvaluator.cxx:1166
 TSCLSignificanceEvaluator.cxx:1167
 TSCLSignificanceEvaluator.cxx:1168
 TSCLSignificanceEvaluator.cxx:1169
 TSCLSignificanceEvaluator.cxx:1170
 TSCLSignificanceEvaluator.cxx:1171
 TSCLSignificanceEvaluator.cxx:1172
 TSCLSignificanceEvaluator.cxx:1173
 TSCLSignificanceEvaluator.cxx:1174
 TSCLSignificanceEvaluator.cxx:1175
 TSCLSignificanceEvaluator.cxx:1176
 TSCLSignificanceEvaluator.cxx:1177
 TSCLSignificanceEvaluator.cxx:1178
 TSCLSignificanceEvaluator.cxx:1179
 TSCLSignificanceEvaluator.cxx:1180
 TSCLSignificanceEvaluator.cxx:1181
 TSCLSignificanceEvaluator.cxx:1182
 TSCLSignificanceEvaluator.cxx:1183
 TSCLSignificanceEvaluator.cxx:1184
 TSCLSignificanceEvaluator.cxx:1185
 TSCLSignificanceEvaluator.cxx:1186
 TSCLSignificanceEvaluator.cxx:1187
 TSCLSignificanceEvaluator.cxx:1188
 TSCLSignificanceEvaluator.cxx:1189
 TSCLSignificanceEvaluator.cxx:1190
 TSCLSignificanceEvaluator.cxx:1191
 TSCLSignificanceEvaluator.cxx:1192
 TSCLSignificanceEvaluator.cxx:1193
 TSCLSignificanceEvaluator.cxx:1194
 TSCLSignificanceEvaluator.cxx:1195
 TSCLSignificanceEvaluator.cxx:1196
 TSCLSignificanceEvaluator.cxx:1197
 TSCLSignificanceEvaluator.cxx:1198
 TSCLSignificanceEvaluator.cxx:1199
 TSCLSignificanceEvaluator.cxx:1200
 TSCLSignificanceEvaluator.cxx:1201
 TSCLSignificanceEvaluator.cxx:1202
 TSCLSignificanceEvaluator.cxx:1203
 TSCLSignificanceEvaluator.cxx:1204
 TSCLSignificanceEvaluator.cxx:1205
 TSCLSignificanceEvaluator.cxx:1206
 TSCLSignificanceEvaluator.cxx:1207
 TSCLSignificanceEvaluator.cxx:1208
 TSCLSignificanceEvaluator.cxx:1209
 TSCLSignificanceEvaluator.cxx:1210
 TSCLSignificanceEvaluator.cxx:1211
 TSCLSignificanceEvaluator.cxx:1212
 TSCLSignificanceEvaluator.cxx:1213
 TSCLSignificanceEvaluator.cxx:1214
 TSCLSignificanceEvaluator.cxx:1215
 TSCLSignificanceEvaluator.cxx:1216
 TSCLSignificanceEvaluator.cxx:1217
 TSCLSignificanceEvaluator.cxx:1218
 TSCLSignificanceEvaluator.cxx:1219
 TSCLSignificanceEvaluator.cxx:1220
 TSCLSignificanceEvaluator.cxx:1221
 TSCLSignificanceEvaluator.cxx:1222
 TSCLSignificanceEvaluator.cxx:1223
 TSCLSignificanceEvaluator.cxx:1224
 TSCLSignificanceEvaluator.cxx:1225
 TSCLSignificanceEvaluator.cxx:1226
 TSCLSignificanceEvaluator.cxx:1227
 TSCLSignificanceEvaluator.cxx:1228
 TSCLSignificanceEvaluator.cxx:1229
 TSCLSignificanceEvaluator.cxx:1230
 TSCLSignificanceEvaluator.cxx:1231
 TSCLSignificanceEvaluator.cxx:1232
 TSCLSignificanceEvaluator.cxx:1233
 TSCLSignificanceEvaluator.cxx:1234
 TSCLSignificanceEvaluator.cxx:1235
 TSCLSignificanceEvaluator.cxx:1236
 TSCLSignificanceEvaluator.cxx:1237
 TSCLSignificanceEvaluator.cxx:1238
 TSCLSignificanceEvaluator.cxx:1239
 TSCLSignificanceEvaluator.cxx:1240
 TSCLSignificanceEvaluator.cxx:1241
 TSCLSignificanceEvaluator.cxx:1242
 TSCLSignificanceEvaluator.cxx:1243
 TSCLSignificanceEvaluator.cxx:1244
 TSCLSignificanceEvaluator.cxx:1245
 TSCLSignificanceEvaluator.cxx:1246
 TSCLSignificanceEvaluator.cxx:1247
 TSCLSignificanceEvaluator.cxx:1248
 TSCLSignificanceEvaluator.cxx:1249
 TSCLSignificanceEvaluator.cxx:1250
 TSCLSignificanceEvaluator.cxx:1251
 TSCLSignificanceEvaluator.cxx:1252
 TSCLSignificanceEvaluator.cxx:1253
 TSCLSignificanceEvaluator.cxx:1254
 TSCLSignificanceEvaluator.cxx:1255
 TSCLSignificanceEvaluator.cxx:1256
 TSCLSignificanceEvaluator.cxx:1257
 TSCLSignificanceEvaluator.cxx:1258
 TSCLSignificanceEvaluator.cxx:1259
 TSCLSignificanceEvaluator.cxx:1260
 TSCLSignificanceEvaluator.cxx:1261
 TSCLSignificanceEvaluator.cxx:1262
 TSCLSignificanceEvaluator.cxx:1263
 TSCLSignificanceEvaluator.cxx:1264
 TSCLSignificanceEvaluator.cxx:1265
 TSCLSignificanceEvaluator.cxx:1266
 TSCLSignificanceEvaluator.cxx:1267
 TSCLSignificanceEvaluator.cxx:1268
 TSCLSignificanceEvaluator.cxx:1269
 TSCLSignificanceEvaluator.cxx:1270
 TSCLSignificanceEvaluator.cxx:1271
 TSCLSignificanceEvaluator.cxx:1272
 TSCLSignificanceEvaluator.cxx:1273
 TSCLSignificanceEvaluator.cxx:1274
 TSCLSignificanceEvaluator.cxx:1275
 TSCLSignificanceEvaluator.cxx:1276
 TSCLSignificanceEvaluator.cxx:1277
 TSCLSignificanceEvaluator.cxx:1278
 TSCLSignificanceEvaluator.cxx:1279
 TSCLSignificanceEvaluator.cxx:1280
 TSCLSignificanceEvaluator.cxx:1281
 TSCLSignificanceEvaluator.cxx:1282
 TSCLSignificanceEvaluator.cxx:1283
 TSCLSignificanceEvaluator.cxx:1284
 TSCLSignificanceEvaluator.cxx:1285
 TSCLSignificanceEvaluator.cxx:1286
 TSCLSignificanceEvaluator.cxx:1287
 TSCLSignificanceEvaluator.cxx:1288
 TSCLSignificanceEvaluator.cxx:1289
 TSCLSignificanceEvaluator.cxx:1290
 TSCLSignificanceEvaluator.cxx:1291
 TSCLSignificanceEvaluator.cxx:1292
 TSCLSignificanceEvaluator.cxx:1293
 TSCLSignificanceEvaluator.cxx:1294
 TSCLSignificanceEvaluator.cxx:1295
 TSCLSignificanceEvaluator.cxx:1296
 TSCLSignificanceEvaluator.cxx:1297
 TSCLSignificanceEvaluator.cxx:1298
 TSCLSignificanceEvaluator.cxx:1299
 TSCLSignificanceEvaluator.cxx:1300
 TSCLSignificanceEvaluator.cxx:1301
 TSCLSignificanceEvaluator.cxx:1302
 TSCLSignificanceEvaluator.cxx:1303
 TSCLSignificanceEvaluator.cxx:1304
 TSCLSignificanceEvaluator.cxx:1305
 TSCLSignificanceEvaluator.cxx:1306
 TSCLSignificanceEvaluator.cxx:1307
 TSCLSignificanceEvaluator.cxx:1308
 TSCLSignificanceEvaluator.cxx:1309
 TSCLSignificanceEvaluator.cxx:1310
 TSCLSignificanceEvaluator.cxx:1311