// @(#)root/roostats:$Id:  cranmer $
// Author: Kyle Cranmer, Akira Shibata
/*************************************************************************
 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//_________________________________________________
/*
BEGIN_HTML
<p>
</p>
END_HTML
*/
//


#ifndef __CINT__
#include "RooGlobalFunc.h"
#endif

#include "RooDataSet.h"
#include "RooRealVar.h"
#include "RooConstVar.h"
#include "RooAddition.h"
#include "RooProduct.h"
#include "RooProdPdf.h"
#include "RooAddPdf.h"
#include "RooGaussian.h"
#include "RooPoisson.h"
#include "RooExponential.h"
#include "RooRandom.h"
#include "RooCategory.h"
#include "RooSimultaneous.h"
#include "RooMultiVarGaussian.h"
#include "RooNumIntConfig.h"
#include "RooMinuit.h"
#include "RooNLLVar.h"
#include "RooProfileLL.h"
#include "RooFitResult.h"
#include "RooDataHist.h"
#include "RooHistFunc.h"
#include "RooHistPdf.h"
#include "RooRealSumPdf.h"
#include "RooProduct.h"
#include "RooWorkspace.h"
#include "RooCustomizer.h"
#include "RooPlot.h"
#include "RooMsgService.h"
#include "RooStats/RooStatsUtils.h"
#include "RooStats/ModelConfig.h"
#include "RooStats/HistFactory/PiecewiseInterpolation.h"
#include "RooStats/HistFactory/ParamHistFunc.h"
#include "RooStats/AsymptoticCalculator.h"

#include "TH2F.h"
#include "TH3F.h"
#include "TFile.h"
#include "TCanvas.h"
#include "TH1.h"
#include "TLine.h"
#include "TTree.h"
#include "TMarker.h"
#include "TStopwatch.h"
#include "TROOT.h"
#include "TStyle.h"
#include "TVectorD.h"
#include "TMatrixDSym.h"

// specific to this package
#include "RooStats/HistFactory/LinInterpVar.h"
#include "RooStats/HistFactory/FlexibleInterpVar.h"
#include "RooStats/HistFactory/HistoToWorkspaceFactoryFast.h"
#include "RooStats/HistFactory/Measurement.h"
#include "Helper.h"

#include <algorithm>

#define VERBOSE

#define alpha_Low "-5"
#define alpha_High "5"
#define NoHistConst_Low "0"
#define NoHistConst_High "2000"

// use this order for safety on library loading
using namespace RooFit ;
using namespace RooStats ;
using namespace std ;

ClassImp(RooStats::HistFactory::HistoToWorkspaceFactoryFast)

namespace RooStats{
namespace HistFactory{

  HistoToWorkspaceFactoryFast::HistoToWorkspaceFactoryFast() : 
       fNomLumi(1.0), fLumiError(0),   
       fLowBin(0), fHighBin(0)  
  {}

  HistoToWorkspaceFactoryFast::~HistoToWorkspaceFactoryFast(){
  }

  HistoToWorkspaceFactoryFast::HistoToWorkspaceFactoryFast(RooStats::HistFactory::Measurement& measurement ) :
    fSystToFix( measurement.GetConstantParams() ),
    fParamValues( measurement.GetParamValues() ),
    fNomLumi( measurement.GetLumi() ),
    fLumiError( measurement.GetLumi()*measurement.GetLumiRelErr() ),
    fLowBin( measurement.GetBinLow() ),
    fHighBin( measurement.GetBinHigh() ) {

    // Set Preprocess functions
    SetFunctionsToPreprocess( measurement.GetPreprocessFunctions() );

  }

  void HistoToWorkspaceFactoryFast::ConfigureWorkspaceForMeasurement( const std::string& ModelName, RooWorkspace* ws_single, Measurement& measurement ) {

    // Configure a workspace by doing any
    // necessary post-processing and by
    // creating a ModelConfig

    // Make a ModelConfig and configure it
    ModelConfig * proto_config = (ModelConfig *) ws_single->obj("ModelConfig");
    if( proto_config == NULL ) {
      std::cout << "Error: Did not find 'ModelConfig' object in file: " << ws_single->GetName() 
		<< std::endl;
      throw hf_exc();
    }

    std::vector<std::string> poi_list = measurement.GetPOIList();
    if( poi_list.size()==0 ) {
      std::cout << "Warining: No Parametetrs of interest are set" << std::endl;
    }

    cout << "Setting Parameter(s) of Interest as: ";
    for(unsigned int i = 0; i < poi_list.size(); ++i) {
      cout << poi_list.at(i) << " ";
    }
    cout << endl;

    RooArgSet * params= new RooArgSet;
    for( unsigned int i = 0; i < poi_list.size(); ++i ) {
      std::string poi_name = poi_list.at(i);
      RooRealVar* poi = (RooRealVar*) ws_single->var( poi_name.c_str() );
      if(poi){
	params->add(*poi);
      }
      else {
	std::cout << "WARNING: Can't find parameter of interest: " << poi_name 
		  << " in Workspace. Not setting in ModelConfig." << std::endl;
	//throw hf_exc();
      }
    }
    proto_config->SetParametersOfInterest(*params);

    // Name of an 'edited' model, if necessary
    std::string NewModelName = "newSimPdf"; // <- This name is hard-coded in HistoToWorkspaceFactoryFast::EditSyt.  Probably should be changed to : std::string("new") + ModelName;

    // Activate Additional Constraint Terms
    if(    measurement.GetGammaSyst().size() > 0 
	|| measurement.GetUniformSyst().size() > 0 
	|| measurement.GetLogNormSyst().size() > 0 
	|| measurement.GetNoSyst().size() > 0) {
      HistoToWorkspaceFactoryFast::EditSyst( ws_single, (ModelName).c_str(), 
					     measurement.GetGammaSyst(), 
					     measurement.GetUniformSyst(), 
					     measurement.GetLogNormSyst(), 
					     measurement.GetNoSyst());

      proto_config->SetPdf( *ws_single->pdf( "newSimPdf" ) );
    }
  
    // Set the ModelConfig's Params of Interest
    RooAbsData* expData = ws_single->data("asimovData");
    if( !expData ) {
      std::cout << "Error: Failed to find dataset: " << expData
		<< " in workspace" << std::endl;
      throw hf_exc();
    }
    if(poi_list.size()!=0){
      proto_config->GuessObsAndNuisance(*expData);
    }

    // Now, let's loop over any additional asimov datasets
    // that we need to make

    // Get the pdf
    // Notice that we get the "new" pdf, this is the one that is
    // used in the creation of these asimov datasets since they
    // are fitted (or may be, at least).
    RooAbsPdf* pdf = ws_single->pdf(NewModelName.c_str());
    if( !pdf ) pdf = ws_single->pdf( ModelName.c_str() );
    const RooArgSet* observables = ws_single->set("observables");

    // Create a SnapShot of the nominal values 
    std::string SnapShotName = "NominalParamValues";
    ws_single->saveSnapshot(SnapShotName.c_str(), ws_single->allVars());

    for( unsigned int i=0; i<measurement.GetAsimovDatasets().size(); ++i) {

      // Set the variable values and "const" ness with the workspace
      RooStats::HistFactory::Asimov& asimov = measurement.GetAsimovDatasets().at(i);
      std::string AsimovName = asimov.GetName();

      std::cout << "Generating additional Asimov Dataset: " << AsimovName << std::endl;
      asimov.ConfigureWorkspace(ws_single);
      RooDataSet* asimov_dataset = 
	(RooDataSet*) AsymptoticCalculator::GenerateAsimovData(*pdf, *observables);

      std::cout << "Importing Asimov dataset" << std::endl;
      double failure = ws_single->import(*asimov_dataset, Rename(AsimovName.c_str()));
      if( failure ) {
	std::cout << "Error: Failed to import Asimov dataset: " << AsimovName
		  << std::endl;
	throw hf_exc();
      }

      // Load the snapshot at the end of every loop iteration
      // so we start each loop with a "clean" snapshot
      ws_single->loadSnapshot(SnapShotName.c_str());

    }

    // Cool, we're done
    return; // ws_single;
  }


  // We want to eliminate this interface and use the measurment directly
  RooWorkspace* HistoToWorkspaceFactoryFast::MakeSingleChannelModel( Measurement& measurement, Channel& channel ) {

    // This is a pretty light-weight wrapper function
    //
    // Take a fully configured measurement as well as
    // one of its channels
    //
    // Return a workspace representing that channel
    // Do this by first creating a vector of EstimateSummary's
    // and this by configuring the workspace with any post-processing

    // Get the channel's name
    string ch_name = channel.GetName();

    // Create a workspace for a SingleChannel from the Measurement Object
    RooWorkspace* ws_single = this->MakeSingleChannelWorkspace(measurement, channel);
    if( ws_single == NULL ) {
      std::cout << "Error: Failed to make Single-Channel workspace for channel: " << ch_name
		<< " and measurement: " << measurement.GetName() << std::endl;
      throw hf_exc();
    }

    // Finally, configure that workspace based on
    // properties of the measurement
    HistoToWorkspaceFactoryFast::ConfigureWorkspaceForMeasurement( "model_"+ch_name, ws_single, measurement );

    return ws_single;

  }

  RooWorkspace* HistoToWorkspaceFactoryFast::MakeCombinedModel( Measurement& measurement ) {

    // This function takes a fully configured measurement
    // which may contain several channels and returns
    // a workspace holding the combined model
    //
    // This can be used, for example, within a script to produce 
    // a combined workspace on-the-fly
    //
    // This is a static function (for now) to make
    // it a one-liner

    // First, we create an instance of a HistFactory 
    HistoToWorkspaceFactoryFast factory( measurement );

    // Loop over the channels and create the individual workspaces
    vector<RooWorkspace*> channel_workspaces;
    vector<string>        channel_names;
    
    for( unsigned int chanItr = 0; chanItr < measurement.GetChannels().size(); ++chanItr ) {
    
      HistFactory::Channel& channel = measurement.GetChannels().at( chanItr );

      if( ! channel.CheckHistograms() ) {
	std::cout << "MakeModelAndMeasurementsFast: Channel: " << channel.GetName()
		  << " has uninitialized histogram pointers" << std::endl;
	throw hf_exc();
      }

      string ch_name = channel.GetName();
      channel_names.push_back(ch_name);

      // GHL: Renaming to 'MakeSingleChannelWorkspace'
      RooWorkspace* ws_single = factory.MakeSingleChannelModel( measurement, channel );
      
      channel_workspaces.push_back(ws_single);

    }

    
    // Now, combine the individual channel workspaces to
    // form the combined workspace
    RooWorkspace* ws = factory.MakeCombinedModel( channel_names, channel_workspaces );


    // Configure the workspace
    HistoToWorkspaceFactoryFast::ConfigureWorkspaceForMeasurement( "simPdf", ws, measurement );

    // Delete channel workspaces
    for (vector<RooWorkspace*>::iterator iter = channel_workspaces.begin() ; iter != channel_workspaces.end() ; ++iter) {
      delete *iter ;
    }

    // Done.  Return the pointer
    return ws;

  }

  void HistoToWorkspaceFactoryFast::ProcessExpectedHisto(TH1* hist,RooWorkspace* proto, 
							 string prefix, string productPrefix, 
							 string systTerm ) {
    if(hist) {
      cout << "processing hist " << hist->GetName() << endl;
    } else {
      cout << "hist is empty" << endl;
      R__ASSERT(hist != 0); 
      return;                  
    }

    /// require dimension >=1 or <=3
    if (fObsNameVec.empty() && !fObsName.empty()) { fObsNameVec.push_back(fObsName); }    
    R__ASSERT( fObsNameVec.size()>=1 && fObsNameVec.size()<=3 );

    /// determine histogram dimensionality 
    unsigned int histndim(1);
    std::string classname = hist->ClassName();
    if      (classname.find("TH1")==0) { histndim=1; }
    else if (classname.find("TH2")==0) { histndim=2; }
    else if (classname.find("TH3")==0) { histndim=3; }
    R__ASSERT( histndim==fObsNameVec.size() );

    /// create roorealvar observables
    RooArgList observables;
    std::vector<std::string>::iterator itr = fObsNameVec.begin();
    for (int idx=0; itr!=fObsNameVec.end(); ++itr, ++idx ) {
      if ( !proto->var(itr->c_str()) ) {
	TAxis* axis(0);
	if (idx==0) { axis = hist->GetXaxis(); }
	if (idx==1) { axis = hist->GetYaxis(); }
	if (idx==2) { axis = hist->GetZaxis(); }
	Int_t nbins = axis->GetNbins();	
	Double_t xmin = axis->GetXmin();
	Double_t xmax = axis->GetXmax(); 	
	// create observable
	proto->factory(Form("%s[%f,%f]",itr->c_str(),xmin,xmax));
	proto->var(itr->c_str())->setBins(nbins);
      }
      observables.add( *proto->var(itr->c_str()) );
    }

    RooDataHist* histDHist = new RooDataHist((prefix+"nominalDHist").c_str(),"",observables,hist);
    RooHistFunc* histFunc = new RooHistFunc((prefix+"_nominal").c_str(),"",observables,*histDHist,0) ;

    proto->import(*histFunc);

    /// now create the product of the overall efficiency times the sigma(params) for this estimate
    proto->factory(("prod:"+productPrefix+"("+prefix+"_nominal,"+systTerm+")").c_str() );    

  }

  void HistoToWorkspaceFactoryFast::AddMultiVarGaussConstraint(RooWorkspace* proto, string prefix,int lowBin, int highBin, vector<string>& constraintTermNames){
    // these are the nominal predictions: eg. the mean of some space of variations
    // later fill these in a loop over histogram bins

    TVectorD mean(highBin); //-lowBin); // MB: fix range
    cout << "a" << endl;
    for(Int_t i=lowBin; i<highBin; ++i){
      std::stringstream str;
      str<<"_"<<i;
      RooRealVar* temp = proto->var((prefix+str.str()).c_str());
      mean(i) = temp->getVal();
    }

    TMatrixDSym Cov(highBin-lowBin);
    for(int i=lowBin; i<highBin; ++i){
      for(int j=0; j<highBin-lowBin; ++j){
        if(i==j) { Cov(i,j) = sqrt(mean(i)); } // MB : this doesn't make sense to me if lowBin!=0 (?)
	else { Cov(i,j) = 0; } 
      }
    }

    // can't make MultiVarGaussian with factory yet, do it by hand
    RooArgList floating( *(proto->set(prefix.c_str() ) ) );
    RooMultiVarGaussian constraint((prefix+"Constraint").c_str(),"",
             floating, mean, Cov);
             
    proto->import(constraint);

    constraintTermNames.push_back(constraint.GetName());
  }

  void HistoToWorkspaceFactoryFast::LinInterpWithConstraint(RooWorkspace* proto, TH1* nominal, 
							    std::vector<HistoSys> histoSysList,
							    string prefix, string productPrefix, 
							    string systTerm, 
							    vector<string>& constraintTermNames){

    // these are the nominal predictions: eg. the mean of some space of variations
    // later fill these in a loop over histogram bins

    // require dimension >=1 or <=3
    if (fObsNameVec.empty() && !fObsName.empty()) { fObsNameVec.push_back(fObsName); }    
    R__ASSERT( fObsNameVec.size()>=1 && fObsNameVec.size()<=3 );

    // determine histogram dimensionality 
    unsigned int histndim(1);
    std::string classname = nominal->ClassName();
    if      (classname.find("TH1")==0) { histndim=1; }
    else if (classname.find("TH2")==0) { histndim=2; }
    else if (classname.find("TH3")==0) { histndim=3; }
    R__ASSERT( histndim==fObsNameVec.size() );
    //    cout <<"In LinInterpWithConstriants and histndim = " << histndim <<endl;

    // create roorealvar observables
    RooArgList observables;
    std::vector<std::string>::iterator itr = fObsNameVec.begin();
    for (int idx=0; itr!=fObsNameVec.end(); ++itr, ++idx ) {
      if ( !proto->var(itr->c_str()) ) {
	TAxis* axis(NULL);
	if (idx==0) { axis = nominal->GetXaxis(); }
	else if (idx==1) { axis = nominal->GetYaxis(); }
	else if (idx==2) { axis = nominal->GetZaxis(); }
	else {
	  std::cout << "Error: Too many observables.  "
		    << "HistFactory only accepts up to 3 observables (3d) "
		    << std::endl;
	  throw hf_exc();
	}
	Int_t nbins = axis->GetNbins();	
	Double_t xmin = axis->GetXmin();
	Double_t xmax = axis->GetXmax(); 	
	// create observable
	proto->factory(Form("%s[%f,%f]",itr->c_str(),xmin,xmax));
	proto->var(itr->c_str())->setBins(nbins);
      }
      observables.add( *proto->var(itr->c_str()) );
    }

    RooDataHist* nominalDHist = new RooDataHist((prefix+"nominalDHist").c_str(),"",observables,nominal);
    RooHistFunc* nominalFunc = new RooHistFunc((prefix+"nominal").c_str(),"",observables,*nominalDHist,0) ;

    // make list of abstract parameters that interpolate in space of variations
    RooArgList params( ("alpha_Hist") );
    // range is set using defined macro (see top of the page)
    string range=string("[")+alpha_Low+","+alpha_High+"]";

    // Loop over the HistoSys list 
    for(unsigned int j=0; j<histoSysList.size(); ++j){
      std::stringstream str;
      str<<"_"<<j;

      HistoSys& histoSys = histoSysList.at(j);
      string histoSysName = histoSys.GetName();

      RooRealVar* temp = (RooRealVar*) proto->var(("alpha_" + histoSysName).c_str());
      if(!temp){

	temp = (RooRealVar*) proto->factory(("alpha_" + histoSysName + range).c_str());

        // now add a constraint term for these parameters
        string command=("Gaussian::alpha_"+histoSysName+"Constraint(alpha_"+histoSysName+",nom_alpha_"+histoSysName+"[0.,-10,10],1.)");
        cout << command << endl;
        constraintTermNames.push_back(  proto->factory( command.c_str() )->GetName() );
	proto->var(("nom_alpha_"+histoSysName).c_str())->setConstant();
	const_cast<RooArgSet*>(proto->set("globalObservables"))->add(*proto->var(("nom_alpha_"+histoSysName).c_str()));
      } 
      params.add(* temp );
    }

    // now make function that linearly interpolates expectation between variations
    // get low/high variations to interpolate between
    vector<double> low, high;
    RooArgSet lowSet, highSet;
    //ES// for(unsigned int j=0; j<lowHist.size(); ++j){
    for(unsigned int j=0; j<histoSysList.size(); ++j){
      std::stringstream str;
      str<<"_"<<j;

      HistoSys& histoSys = histoSysList.at(j);
      RooDataHist* lowDHist = new RooDataHist((prefix+str.str()+"lowDHist").c_str(),"",observables, histoSys.GetHistoLow());
      RooDataHist* highDHist = new RooDataHist((prefix+str.str()+"highDHist").c_str(),"",observables, histoSys.GetHistoHigh());
      RooHistFunc* lowFunc = new RooHistFunc((prefix+str.str()+"low").c_str(),"",observables,*lowDHist,0) ;
      RooHistFunc* highFunc = new RooHistFunc((prefix+str.str()+"high").c_str(),"",observables,*highDHist,0) ;
      lowSet.add(*lowFunc);
      highSet.add(*highFunc);
    }
    
    // this is sigma(params), a piece-wise linear interpolation
    PiecewiseInterpolation interp(prefix.c_str(),"",*nominalFunc,lowSet,highSet,params);
    interp.setPositiveDefinite();
    interp.setAllInterpCodes(4); // LM: change to 4 (piece-wise linear to 6th order polynomial interpolation + linear extrapolation )
    // KC: interpo codes 1 etc. don't have proper analytic integral.
    RooArgSet observableSet(observables);
    interp.setBinIntegrator(observableSet);
    interp.forceNumInt();

    proto->import(interp); // individual params have already been imported in first loop of this function
    
    // now create the product of the overall efficiency times the sigma(params) for this estimate
    proto->factory(("prod:"+productPrefix+"("+prefix+","+systTerm+")").c_str() );    

  }

  // GHL: Consider passing the NormFactor list instead of the entire sample
  string HistoToWorkspaceFactoryFast::AddNormFactor(RooWorkspace* proto, string& channel, string& sigmaEpsilon, Sample& sample, bool doRatio){
    string overallNorm_times_sigmaEpsilon ;
    string prodNames;

    vector<NormFactor> normList = sample.GetNormFactorList();
    vector<string> normFactorNames, rangeNames;

    if(normList.size() > 0){

      for(vector<NormFactor>::iterator itr = normList.begin(); itr != normList.end(); ++itr){

	NormFactor& norm = *itr;

        string varname;
        if(!prodNames.empty()) prodNames += ",";
        if(doRatio) {
          varname = norm.GetName() + "_" + channel;
        }
        else {
          varname=norm.GetName();
        }

	// GHL: Check that the NormFactor doesn't already exist
	//      (it may have been created as a function expression
	//       during preprocessing)
	std::stringstream range;
	range << "[" << norm.GetVal() << "," << norm.GetLow() << "," << norm.GetHigh() << "]";

	if( proto->obj(varname.c_str()) == NULL) {
	  cout << "making normFactor: " << norm.GetName() << endl;
	  // remove "doRatio" and name can be changed when ws gets imported to the combined model.
	  proto->factory((varname + range.str()).c_str());
	}

	if(norm.GetConst()) {
	  //	  proto->var(varname.c_str())->setConstant();
	  //	  cout <<"setting " << varname << " constant"<<endl;
	  cout << "WARNING: Const attribute to <NormFactor> tag is deprecated, will ignore." <<
	    " Instead, add \n\t<ParamSetting Const=\"True\">" << varname << "</ParamSetting>\n" <<
	    " to your top-level XML's <Measurment> entry" << endl;
	}
        prodNames+=varname;
        rangeNames.push_back(range.str());
	normFactorNames.push_back(varname);
      }

      overallNorm_times_sigmaEpsilon = sample.GetName() + "_" + channel + "_overallNorm_x_sigma_epsilon";
      proto->factory(("prod::" + overallNorm_times_sigmaEpsilon + "(" + prodNames + "," + sigmaEpsilon + ")").c_str());
    }

    unsigned int rangeIndex=0;
    for( vector<string>::iterator nit = normFactorNames.begin(); nit!=normFactorNames.end(); ++nit){
        if( count (normFactorNames.begin(), normFactorNames.end(), *nit) > 1 ){
	  cout <<"WARNING: <NormFactor Name =\""<<*nit<<"\"> is duplicated for <Sample Name=\"" 
	       << sample.GetName() << "\">, but only one factor will be included.  \n Instead, define something like" 
	       << "\n\t<Function Name=\""<<*nit<<"Squared\" Expresion=\""<<*nit<<"*"<<*nit<<"\" Var=\""<<*nit<<rangeNames.at(rangeIndex)
	       << "\"> \nin your top-level XML's <Measurment> entry and use <NormFactor Name=\""<<*nit<<"Squared\" in your channel XML file."<< endl;
	}
	++rangeIndex;
    }

    if(!overallNorm_times_sigmaEpsilon.empty())
      return overallNorm_times_sigmaEpsilon;
    else
      return sigmaEpsilon;
  }        

  void HistoToWorkspaceFactoryFast::AddEfficiencyTerms(RooWorkspace* proto, string prefix, 
						       string interpName,
						       std::vector<OverallSys>& systList, 
						       vector<string>& constraintTermNames, 
						       vector<string>& totSystTermNames) {

    // add variables for all the relative overall uncertainties we expect
    // range is set using defined macro (see top of the page)

    string range=string("[0,")+alpha_Low+","+alpha_High+"]";
    totSystTermNames.push_back(prefix);

    RooArgSet params(prefix.c_str());
    vector<double> lowVec, highVec;

    for(unsigned int i = 0; i < systList.size(); ++i) {

      OverallSys& sys = systList.at(i); 

      // add efficiency term
      RooRealVar* temp = (RooRealVar*) proto->var((prefix + sys.GetName()).c_str());
      if(!temp) {

	temp = (RooRealVar*) proto->factory((prefix + sys.GetName() + range).c_str());
	string command=("Gaussian::" + prefix + sys.GetName() + 
			"Constraint(" + prefix + sys.GetName() +
			",nom_" + prefix + sys.GetName() + "[0.,-10,10],1.)");

        cout << command << endl;
        constraintTermNames.push_back( proto->factory( command.c_str() )->GetName() );
	proto->var(("nom_" + prefix + sys.GetName()).c_str())->setConstant();
	const_cast<RooArgSet*>(proto->set("globalObservables"))->add(*proto->var(("nom_" + prefix + sys.GetName()).c_str()));	
      } 

      params.add(*temp);

      // add constraint in terms of bifrucated gauss with low/high as sigmas
      std::stringstream lowhigh;
      double low = sys.GetLow();
      double high = sys.GetHigh();
      lowVec.push_back(low);
      highVec.push_back(high);
      
    }

    if(systList.size() > 0){
      // this is epsilon(alpha_j), a piece-wise linear interpolation
      //      LinInterpVar interp( (interpName).c_str(), "", params, 1., lowVec, highVec);
      FlexibleInterpVar interp( (interpName).c_str(), "", params, 1., lowVec, highVec);      
      interp.setAllInterpCodes(4); // LM: change to 4 (piece-wise linear to 6th order polynomial interpolation + linear extrapolation )
      proto->import(interp); // params have already been imported in first loop of this function
    } else{
      // some strange behavior if params,lowVec,highVec are empty.  
      //cout << "WARNING: No OverallSyst terms" << endl;
      RooConstVar interp( (interpName).c_str(), "", 1.);
      proto->import(interp); // params have already been imported in first loop of this function
    }
    
  }


  void  HistoToWorkspaceFactoryFast::MakeTotalExpected(RooWorkspace* proto, string totName, 
						       vector<string>& syst_x_expectedPrefixNames, 
                                                       vector<string>& normByNames){

    // for ith bin calculate totN_i =  lumi * sum_j expected_j * syst_j 
    string command;
    string coeffList="";
    string shapeList="";
    string prepend="";

    if (fObsNameVec.empty() && !fObsName.empty()) { fObsNameVec.push_back(fObsName); } 

    double binWidth(1.0);
    std::string obsNameVecStr;
    std::vector<std::string>::iterator itr = fObsNameVec.begin();
    for (; itr!=fObsNameVec.end(); ++itr) {
      std::string obsName = *itr;
      binWidth *= proto->var(obsName.c_str())->numBins()/(proto->var(obsName.c_str())->getMax() - proto->var(obsName.c_str())->getMin()) ; // MB: Note: requires fixed bin sizes
      if (obsNameVecStr.size()>0) { obsNameVecStr += "_"; }
      obsNameVecStr += obsName;
    }

    //vector<string>::iterator it=syst_x_expectedPrefixNames.begin();
    for(unsigned int j=0; j<syst_x_expectedPrefixNames.size();++j){
      std::stringstream str;
      str<<"_"<<j;
      // repatative, but we need one coeff for each term in the sum
      // maybe can be avoided if we don't use bin width as coefficient
      command=string(Form("binWidth_%s_%d[%e]",obsNameVecStr.c_str(),j,binWidth));     
      proto->factory(command.c_str());
      proto->var(Form("binWidth_%s_%d",obsNameVecStr.c_str(),j))->setConstant();
      coeffList+=prepend+"binWidth_"+obsNameVecStr+str.str();

      command="prod::L_x_"+syst_x_expectedPrefixNames.at(j)+"("+normByNames.at(j)+","+syst_x_expectedPrefixNames.at(j)+")";
      /*RooAbsReal* tempFunc =(RooAbsReal*) */
      proto->factory(command.c_str());
      shapeList+=prepend+"L_x_"+syst_x_expectedPrefixNames.at(j);
      prepend=",";
      
      // add to num int to product
      //      tempFunc->specialIntegratorConfig(kTRUE)->method1D().setLabel("RooBinIntegrator")  ;
      //      tempFunc->forceNumInt();

    }    

    proto->defineSet("coefList",coeffList.c_str());
    proto->defineSet("shapeList",shapeList.c_str());
    //    proto->factory(command.c_str());
    RooRealSumPdf tot(totName.c_str(),totName.c_str(),*proto->set("shapeList"),*proto->set("coefList"),kTRUE);
    tot.specialIntegratorConfig(kTRUE)->method1D().setLabel("RooBinIntegrator")  ;
    tot.specialIntegratorConfig(kTRUE)->method2D().setLabel("RooBinIntegrator")  ;
    tot.specialIntegratorConfig(kTRUE)->methodND().setLabel("RooBinIntegrator")  ;
    tot.forceNumInt();

    // for mixed generation in RooSimultaneous
    tot.setAttribute("GenerateBinned"); // for use with RooSimultaneous::generate in mixed mode
    //    tot.setAttribute("GenerateUnbinned"); // we don't want that

    /*
    // Use binned numeric integration
    int nbins = 0;
    if( fObsNameVec.size() == 1 ) {
      nbins = proto->var(fObsNameVec.at(0).c_str())->numBins();

      cout <<"num bis for RooRealSumPdf = "<<nbins <<endl;
      //int nbins = ((RooRealVar*) allVars.first())->numBins();
      tot.specialIntegratorConfig(kTRUE)->getConfigSection("RooBinIntegrator").setRealValue("numBins",nbins);
      tot.forceNumInt();
      
    } else {
      cout << "Bin Integrator only supports 1-d.  Will be slow." << std::endl;
    }
    */
    

    proto->import(tot);
    
  }

  void HistoToWorkspaceFactoryFast::AddPoissonTerms(RooWorkspace* proto, string prefix, string obsPrefix, string expPrefix, int lowBin, int highBin, 
           vector<string>& likelihoodTermNames){
    /////////////////////////////////
    // Relate observables to expected for each bin
    // later modify variable named expPrefix_i to be product of terms
    RooArgSet Pois(prefix.c_str());
    for(Int_t i=lowBin; i<highBin; ++i){
      std::stringstream str;
      str<<"_"<<i;
      //string command("Poisson::"+prefix+str.str()+"("+obsPrefix+str.str()+","+expPrefix+str.str()+")");
      string command("Poisson::"+prefix+str.str()+"("+obsPrefix+str.str()+","+expPrefix+str.str()+",1)");//for no rounding
      RooAbsArg* temp = (proto->factory( command.c_str() ) );

      // output
      cout << "Poisson Term " << command << endl;
      ((RooAbsPdf*) temp)->setEvalErrorLoggingMode(RooAbsReal::PrintErrors);
      //cout << temp << endl;

      likelihoodTermNames.push_back( temp->GetName() );
      Pois.add(* temp );
    }  
    proto->defineSet(prefix.c_str(),Pois); // add argset to workspace
  }

   void HistoToWorkspaceFactoryFast::SetObsToExpected(RooWorkspace* proto, string obsPrefix, string expPrefix, int lowBin, int highBin){ 
    /////////////////////////////////
    // set observed to expected
     TTree* tree = new TTree();
     Double_t* obsForTree = new Double_t[highBin-lowBin];
     RooArgList obsList("obsList");

     for(Int_t i=lowBin; i<highBin; ++i){
       std::stringstream str;
       str<<"_"<<i;
       RooRealVar* obs = (RooRealVar*) proto->var((obsPrefix+str.str()).c_str());
       cout << "expected number of events called: " << expPrefix << endl;
       RooAbsReal* exp = proto->function((expPrefix+str.str()).c_str());
       if(obs && exp){
         
         //proto->Print();
         obs->setVal(  exp->getVal() );
         cout << "setting obs"+str.str()+" to expected = " << exp->getVal() << " check: " << obs->getVal() << endl;
         
         // add entry to array and attach to tree
         obsForTree[i] = exp->getVal();
         tree->Branch((obsPrefix+str.str()).c_str(), obsForTree+i ,(obsPrefix+str.str()+"/D").c_str());
         obsList.add(*obs);
       }else{
         cout << "problem retrieving obs or exp " << obsPrefix+str.str() << obs << " " << expPrefix+str.str() << exp << endl;
       }
     }  
     tree->Fill();
     RooDataSet* data = new RooDataSet("expData","", tree, obsList); // one experiment

     delete tree;
     delete [] obsForTree;

     proto->import(*data);

  }

  //_____________________________________________________________
  void HistoToWorkspaceFactoryFast::EditSyst(RooWorkspace* proto, const char* pdfNameChar, 
					     map<string,double> gammaSyst, 
					     map<string,double> uniformSyst, 
					     map<string,double> logNormSyst, 
					     map<string,double> noSyst) {
    string pdfName(pdfNameChar);

    ModelConfig * combined_config = (ModelConfig *) proto->obj("ModelConfig");
    if( combined_config==NULL ) {
      std::cout << "Error: Failed to find object 'ModelConfig' in workspace: " 
		<< proto->GetName() << std::endl;
      throw hf_exc();
    }
    //    const RooArgSet * constrainedParams=combined_config->GetNuisanceParameters();
    //    RooArgSet temp(*constrainedParams);
    string edit="EDIT::newSimPdf("+pdfName+",";
    string editList;
    string lastPdf=pdfName;
    string precede="";
    unsigned int numReplacements = 0;
    unsigned int nskipped = 0;
    map<string,double>::iterator it;

    // add gamma terms and their constraints
    for(it=gammaSyst.begin(); it!=gammaSyst.end(); ++it) {
      //cout << "edit for " << it->first << "with rel uncert = " << it->second << endl;
      if(! proto->var(("alpha_"+it->first).c_str())){
	//cout << "systematic not there" << endl;
	nskipped++; 
	continue;
      }
      numReplacements++;      

      double relativeUncertainty = it->second;
      double scale = 1/sqrt((1+1/pow(relativeUncertainty,2)));
      
      // this is the Gamma PDF and in a form that doesn't have roundoff problems like the Poisson does
      proto->factory(Form("beta_%s[1,0,10]",it->first.c_str()));
      proto->factory(Form("y_%s[%f]",it->first.c_str(),1./pow(relativeUncertainty,2))) ;
      proto->factory(Form("theta_%s[%f]",it->first.c_str(),pow(relativeUncertainty,2))) ;
      proto->factory(Form("Gamma::beta_%sConstraint(beta_%s,sum::k_%s(y_%s,one[1]),theta_%s,zero[0])",
			  it->first.c_str(),
			  it->first.c_str(),
			  it->first.c_str(),
			  it->first.c_str(),
			  it->first.c_str())) ;

      /*
      // this has some problems because N in poisson is rounded to nearest integer     
      proto->factory(Form("Poisson::beta_%sConstraint(y_%s[%f],prod::taub_%s(taus_%s[%f],beta_%s[1,0,5]))",
			  it->first.c_str(),
			  it->first.c_str(),
			  1./pow(relativeUncertainty,2),
			  it->first.c_str(),
			    it->first.c_str(),
			  1./pow(relativeUncertainty,2),
			  it->first.c_str()
			  ) ) ;
      */
      //	combined->factory(Form("expr::alphaOfBeta('(beta-1)/%f',beta)",scale));
      //	combined->factory(Form("expr::alphaOfBeta_%s('(beta_%s-1)/%f',beta_%s)",it->first.c_str(),it->first.c_str(),scale,it->first.c_str()));
      proto->factory(Form("PolyVar::alphaOfBeta_%s(beta_%s,{%f,%f})",it->first.c_str(),it->first.c_str(),-1./scale,1./scale));
	
      // set beta const status to be same as alpha
      if(proto->var(Form("alpha_%s",it->first.c_str()))->isConstant()) {
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(true);
      }
      else {
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(false);
      }
      // set alpha const status to true
      //      proto->var(Form("alpha_%s",it->first.c_str()))->setConstant(true);

      // replace alphas with alphaOfBeta and replace constraints
      editList+=precede + "alpha_"+it->first+"Constraint=beta_" + it->first+ "Constraint";
      precede=",";
      editList+=precede + "alpha_"+it->first+"=alphaOfBeta_"+ it->first;

      /*
      if( proto->pdf(("alpha_"+it->first+"Constraint").c_str()) && proto->var(("alpha_"+it->first).c_str()) )
      cout << " checked they are there" << proto->pdf(("alpha_"+it->first+"Constraint").c_str()) << " " << proto->var(("alpha_"+it->first).c_str()) << endl;
      else
	cout << "NOT THERE" << endl;
      */

      // EDIT seems to die if the list of edits is too long.  So chunck them up.
      if(numReplacements%10 == 0 && numReplacements+nskipped!=gammaSyst.size()){
	edit="EDIT::"+lastPdf+"_("+lastPdf+","+editList+")";
	lastPdf+="_"; // append an underscore for the edit
	editList=""; // reset edit list
	precede="";
	cout << "Going to issue this edit command\n" << edit<< endl;
	proto->factory( edit.c_str() );
	RooAbsPdf* newOne = proto->pdf(lastPdf.c_str());
	if(!newOne)
	  cout << "\n\n ---------------------\n WARNING: failed to make EDIT\n\n" << endl;
	
      }
    }

    // add uniform terms and their constraints
    for(it=uniformSyst.begin(); it!=uniformSyst.end(); ++it) {
      cout << "edit for " << it->first << "with rel uncert = " << it->second << endl;
      if(! proto->var(("alpha_"+it->first).c_str())){
	cout << "systematic not there" << endl;
	nskipped++; 
	continue;
      }
      numReplacements++;      

      // this is the Uniform PDF
      proto->factory(Form("beta_%s[1,0,10]",it->first.c_str()));
      proto->factory(Form("Uniform::beta_%sConstraint(beta_%s)",it->first.c_str(),it->first.c_str()));
      proto->factory(Form("PolyVar::alphaOfBeta_%s(beta_%s,{-1,1})",it->first.c_str(),it->first.c_str()));
      
      // set beta const status to be same as alpha
      if(proto->var(Form("alpha_%s",it->first.c_str()))->isConstant())
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(true);
      else
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(false);
      // set alpha const status to true
      //      proto->var(Form("alpha_%s",it->first.c_str()))->setConstant(true);

      // replace alphas with alphaOfBeta and replace constraints
      cout <<         "alpha_"+it->first+"Constraint=beta_" + it->first+ "Constraint" << endl;
      editList+=precede + "alpha_"+it->first+"Constraint=beta_" + it->first+ "Constraint";
      precede=",";
      cout <<         "alpha_"+it->first+"=alphaOfBeta_"+ it->first << endl;
      editList+=precede + "alpha_"+it->first+"=alphaOfBeta_"+ it->first;

      if( proto->pdf(("alpha_"+it->first+"Constraint").c_str()) && proto->var(("alpha_"+it->first).c_str()) )
	cout << " checked they are there" << proto->pdf(("alpha_"+it->first+"Constraint").c_str()) << " " << proto->var(("alpha_"+it->first).c_str()) << endl;
      else
	cout << "NOT THERE" << endl;

      // EDIT seems to die if the list of edits is too long.  So chunck them up.
      if(numReplacements%10 == 0 && numReplacements+nskipped!=gammaSyst.size()){
	edit="EDIT::"+lastPdf+"_("+lastPdf+","+editList+")";
	lastPdf+="_"; // append an underscore for the edit
	editList=""; // reset edit list
	precede="";
	cout << edit<< endl;
	proto->factory( edit.c_str() );
	RooAbsPdf* newOne = proto->pdf(lastPdf.c_str());
	if(!newOne)
	  cout << "\n\n ---------------------\n WARNING: failed to make EDIT\n\n" << endl;
	
      }
    }

    /////////////////////////////////////////
    ////////////////////////////////////


    // add lognormal terms and their constraints
    for(it=logNormSyst.begin(); it!=logNormSyst.end(); ++it) {
      cout << "edit for " << it->first << "with rel uncert = " << it->second << endl;
      if(! proto->var(("alpha_"+it->first).c_str())){
	cout << "systematic not there" << endl;
	nskipped++; 
	continue;
      }
      numReplacements++;      

      double relativeUncertainty = it->second;
      double kappa = 1+relativeUncertainty;
      // when transforming beta -> alpha, need alpha=1 to be +1sigma value.
      // the P(beta>kappa*\hat(beta)) = 16%
      // and \hat(beta) is 1, thus
      double scale = relativeUncertainty;
      //double scale = kappa; 

      // this is the LogNormal
      proto->factory(Form("beta_%s[1,0,10]",it->first.c_str()));
      proto->factory(Form("kappa_%s[%f]",it->first.c_str(),kappa));
      proto->factory(Form("Lognormal::beta_%sConstraint(beta_%s,one[1],kappa_%s)",
			  it->first.c_str(),
			  it->first.c_str(),
			  it->first.c_str())) ;
      proto->factory(Form("PolyVar::alphaOfBeta_%s(beta_%s,{%f,%f})",it->first.c_str(),it->first.c_str(),-1./scale,1./scale));
      //      proto->factory(Form("PolyVar::alphaOfBeta_%s(beta_%s,{%f,%f})",it->first.c_str(),it->first.c_str(),-1.,1./scale));
      
      // set beta const status to be same as alpha
      if(proto->var(Form("alpha_%s",it->first.c_str()))->isConstant())
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(true);
      else
	proto->var(Form("beta_%s",it->first.c_str()))->setConstant(false);
      // set alpha const status to true
      //      proto->var(Form("alpha_%s",it->first.c_str()))->setConstant(true);

      // replace alphas with alphaOfBeta and replace constraints
      cout <<         "alpha_"+it->first+"Constraint=beta_" + it->first+ "Constraint" << endl;
      editList+=precede + "alpha_"+it->first+"Constraint=beta_" + it->first+ "Constraint";
      precede=",";
      cout <<         "alpha_"+it->first+"=alphaOfBeta_"+ it->first << endl;
      editList+=precede + "alpha_"+it->first+"=alphaOfBeta_"+ it->first;

      if( proto->pdf(("alpha_"+it->first+"Constraint").c_str()) && proto->var(("alpha_"+it->first).c_str()) )
	cout << " checked they are there" << proto->pdf(("alpha_"+it->first+"Constraint").c_str()) << " " << proto->var(("alpha_"+it->first).c_str()) << endl;
      else
	cout << "NOT THERE" << endl;

      // EDIT seems to die if the list of edits is too long.  So chunck them up.
      if(numReplacements%10 == 0 && numReplacements+nskipped!=gammaSyst.size()){
	edit="EDIT::"+lastPdf+"_("+lastPdf+","+editList+")";
	lastPdf+="_"; // append an underscore for the edit
	editList=""; // reset edit list
	precede="";
	cout << edit<< endl;
	proto->factory( edit.c_str() );
	RooAbsPdf* newOne = proto->pdf(lastPdf.c_str());
	if(!newOne)
	  cout << "\n\n ---------------------\n WARNING: failed to make EDIT\n\n" << endl;
	
      }
    }

    /////////////////////////////////////////

    // MB: remove a systematic constraint
    for(it=noSyst.begin(); it!=noSyst.end(); ++it) {

      cout << "remove constraint for parameter" << it->first << endl;
      if(! proto->var(("alpha_"+it->first).c_str()) || ! proto->pdf(("alpha_"+it->first+"Constraint").c_str()) ) {
	cout << "systematic not there" << endl;
	nskipped++; 
	continue;
      }
      numReplacements++;      

      // dummy replacement pdf
      if ( !proto->var("one") ) { proto->factory("one[1.0]"); }
      proto->var("one")->setConstant();

      // replace constraints
      cout << "alpha_"+it->first+"Constraint=one" << endl;
      editList+=precede + "alpha_"+it->first+"Constraint=one";
      precede=",";

      // EDIT seems to die if the list of edits is too long.  So chunck them up.
      if(numReplacements%10 == 0 && numReplacements+nskipped!=gammaSyst.size()){
	edit="EDIT::"+lastPdf+"_("+lastPdf+","+editList+")";
	lastPdf+="_"; // append an underscore for the edit
	editList=""; // reset edit list
	precede="";
	cout << edit << endl;
	proto->factory( edit.c_str() );
	RooAbsPdf* newOne = proto->pdf(lastPdf.c_str());
	if(!newOne) { cout << "\n\n ---------------------\n WARNING: failed to make EDIT\n\n" << endl; }
      }
    }

    /////////////////////////////////////////

    // commit last bunch of edits
    edit="EDIT::newSimPdf("+lastPdf+","+editList+")";
    cout << edit<< endl;
    proto->factory( edit.c_str() );
    //    proto->writeToFile(("results/model_"+fRowTitle+"_edited.root").c_str());
    RooAbsPdf* newOne = proto->pdf("newSimPdf");
    if(newOne){
      // newOne->graphVizTree(("results/"+pdfName+"_"+fRowTitle+"newSimPdf.dot").c_str());
      combined_config->SetPdf(*newOne);
    }
    else{
      cout << "\n\n ---------------------\n WARNING: failed to make EDIT\n\n" << endl;
    }
  }

  void HistoToWorkspaceFactoryFast::PrintCovarianceMatrix(RooFitResult* result, RooArgSet* params, string filename){
    // Change-> Now a static utility

    FILE* covFile = fopen ((filename).c_str(),"w"); 

    TIter iti = params->createIterator();
    TIter itj = params->createIterator();
    RooRealVar *myargi, *myargj; 
    fprintf(covFile," ") ;
    while ((myargi = (RooRealVar *)iti.Next())) { 
      if(myargi->isConstant()) continue;
      fprintf(covFile," & %s",  myargi->GetName());
    }
    fprintf(covFile,"\\\\ \\hline \n" );
    iti.Reset();
    while ((myargi = (RooRealVar *)iti.Next())) { 
      if(myargi->isConstant()) continue;
      fprintf(covFile,"%s", myargi->GetName());
      itj.Reset();
      while ((myargj = (RooRealVar *)itj.Next())) { 
        if(myargj->isConstant()) continue;
        cout << myargi->GetName() << "," << myargj->GetName();
        fprintf(covFile, " & %.2f", result->correlation(*myargi, *myargj));
      }
      cout << endl;
      fprintf(covFile, " \\\\\n");
    }
    fclose(covFile);
    
  }


  ///////////////////////////////////////////////
  RooWorkspace* HistoToWorkspaceFactoryFast::MakeSingleChannelWorkspace(Measurement& measurement, Channel& channel) {

     // check inputs (see JIRA-6890 )

     if (channel.GetSamples().empty()) {
        Error("MakeSingleChannelWorkspace","The input Channel does not contain any sample - return a nullptr");
        return 0; 
     }
     
    // Set these by hand inside the function
    vector<string> systToFix = measurement.GetConstantParams();
    bool doRatio=false;

    // to time the macro
    TStopwatch t;
    t.Start();
    //ES// string channel_name=summary[0].channel;
    string channel_name = channel.GetName();
    
    /// MB: reset observable names for each new channel.
    fObsNameVec.clear();

    /// MB: label observables x,y,z, depending on histogram dimensionality
    /// GHL: Give it the first sample's nominal histogram as a template
    ///      since the data histogram may not be present
    TH1* channel_hist_template = channel.GetSamples().at(0).GetHisto();
    if (fObsNameVec.empty()) { GuessObsNameVec(channel_hist_template); }

    for ( unsigned int idx=0; idx<fObsNameVec.size(); ++idx ) {
      fObsNameVec[idx] = "obs_" + fObsNameVec[idx] + "_" + channel_name ;
    }

    if (fObsNameVec.empty()) {
      fObsName= "obs_" + channel_name; // set name ov observable
      fObsNameVec.push_back( fObsName );
    }

    R__ASSERT( fObsNameVec.size()>=1 && fObsNameVec.size()<=3 );

    cout << "\n\n-------------------\nStarting to process " << channel_name << " channel with " << fObsNameVec.size() << " observables" << endl;

    //
    // our main workspace that we are using to construct the model
    //
    RooWorkspace* proto = new RooWorkspace(channel_name.c_str(), (channel_name+" workspace").c_str());
    ModelConfig * proto_config = new ModelConfig("ModelConfig", proto);
    proto_config->SetWorkspace(*proto);

    // preprocess functions
    vector<string>::iterator funcIter = fPreprocessFunctions.begin();
    for(;funcIter!= fPreprocessFunctions.end(); ++funcIter){
      cout <<"will preprocess this line: " << *funcIter <<endl;
      proto->factory(funcIter->c_str());
      proto->Print();
    }

    RooArgSet likelihoodTerms("likelihoodTerms"), constraintTerms("constraintTerms");
    vector<string> likelihoodTermNames, constraintTermNames, totSystTermNames, syst_x_expectedPrefixNames, normalizationNames;

    vector< pair<string,string> >   statNamePairs;
    vector< pair<TH1*,TH1*> >       statHistPairs; // <nominal, error>
    std::string                     statFuncName; // the name of the ParamHistFunc
    std::string                     statNodeName; // the name of the McStat Node
    // Constraint::Type statConstraintType=Constraint::Gaussian;
    // Double_t                        statRelErrorThreshold=0.0;

    string prefix, range;

    /////////////////////////////
    // shared parameters
    // this is ratio of lumi to nominal lumi.  We will include relative uncertainty in model
    std::stringstream lumiStr;
    // lumi range
    lumiStr<<"["<<fNomLumi<<",0,"<<10.*fNomLumi<<"]";
    proto->factory(("Lumi"+lumiStr.str()).c_str());
    cout << "lumi str = " << lumiStr.str() << endl;
    
    std::stringstream lumiErrorStr;
    lumiErrorStr << "nominalLumi["<<fNomLumi << ",0,"<<fNomLumi+10*fLumiError<<"]," << fLumiError ;
    proto->factory(("Gaussian::lumiConstraint(Lumi,"+lumiErrorStr.str()+")").c_str());
    proto->var("nominalLumi")->setConstant();
    proto->defineSet("globalObservables","nominalLumi");
    //likelihoodTermNames.push_back("lumiConstraint");
    constraintTermNames.push_back("lumiConstraint");
    cout << "lumi Error str = " << lumiErrorStr.str() << endl;
    
    //proto->factory((string("SigXsecOverSM[1.,0.5,1..8]").c_str()));
    ///////////////////////////////////
    // loop through estimates, add expectation, floating bin predictions, 
    // and terms that constrain floating to expectation via uncertainties
    // GHL: Loop over samples instead, which doesn't contain the data
    vector<Sample>::iterator it = channel.GetSamples().begin();
    for(; it!=channel.GetSamples().end(); ++it) {

      //ES// string overallSystName = it->name+"_"+it->channel+"_epsilon"; 
      Sample& sample = (*it);
      string overallSystName = sample.GetName() + "_" + channel_name + "_epsilon"; 

      string systSourcePrefix = "alpha_";

      // constraintTermNames and totSystTermNames are vectors that are passed
      // by reference and filled by this method
      AddEfficiencyTerms(proto,systSourcePrefix, overallSystName,
			 sample.GetOverallSysList(), constraintTermNames , totSystTermNames);    

      // GHL: Consider passing the NormFactor list instead of the entire sample
      overallSystName = AddNormFactor(proto, channel_name, overallSystName, sample, doRatio); 

      // Create the string for the object
      // that is added to the RooRealSumPdf
      // for this channel
      string syst_x_expectedPrefix = "";

      // get histogram
      //ES// TH1* nominal = it->nominal;
      TH1* nominal = sample.GetHisto();

      // MB : HACK no option to have both non-hist variations and hist variations ?
      // get histogram
      // GHL: Okay, this is going to be non-trivial.
      //      We will loop over histosys's, which contain both
      //      the low hist and the high hist together.

      // Logic:  
      //        - If we have no HistoSys's, do part A
      //        - else, if the histo syst's don't match, return (we ignore this case)
      //        - finally, we take the syst's and apply the linear interpolation w/ constraint

      if(sample.GetHistoSysList().size() == 0) {

	// If no HistoSys
        cout << sample.GetName() + "_" + channel_name + " has no variation histograms " << endl;
        string expPrefix = sample.GetName() + "_" + channel_name; //+"_expN";
        syst_x_expectedPrefix = sample.GetName() + "_" + channel_name + "_overallSyst_x_Exp";

        ProcessExpectedHisto(sample.GetHisto(), proto, expPrefix, syst_x_expectedPrefix, 
			     overallSystName);
      } 
      else {
	// If there ARE HistoSys(s)
	// name of source for variation
        string constraintPrefix = sample.GetName() + "_" + channel_name + "_Hist_alpha"; 
	syst_x_expectedPrefix = sample.GetName() + "_" + channel_name + "_overallSyst_x_HistSyst";
	// constraintTermNames are passed by reference and appended to,
	// overallSystName is a std::string for this sample

        LinInterpWithConstraint(proto, nominal, sample.GetHistoSysList(),
				constraintPrefix, syst_x_expectedPrefix, overallSystName, 
				constraintTermNames);
      }

      ////////////////////////////////////
      // Add StatErrors to this Channel //
      ////////////////////////////////////

      if( sample.GetStatError().GetActivate() ) {

	if( fObsNameVec.size() > 3 ) {
	  std::cout << "Cannot include Stat Error for histograms of more than 3 dimensions." 
		    << std::endl; 
	  throw hf_exc();
	} else {

	  // If we are using StatUncertainties, we multiply this object
	  // by the ParamHistFunc and then pass that to the
	  // RooRealSumPdf by appending it's name to the list

	  std::cout << "Sample: "     << sample.GetName()  << " to be included in Stat Error " 
		    << "for channel " << channel_name
		    << std::endl;

	  /*
	  Constraint::Type type = channel.GetStatErrorConfig().GetConstraintType();
	  statConstraintType = Constraint::Gaussian;
	  if( type == Constraint::Gaussian) {
	    std::cout << "Using Gaussian StatErrors" << std::endl;
	    statConstraintType = Constraint::Gaussian;
	  }
	  if( type == Constraint::Poisson ) {
	    std::cout << "Using Poisson StatErrors" << std::endl;
	    statConstraintType = Constraint::Poisson;
	  }
	  */

	  //statRelErrorThreshold = channel.GetStatErrorConfig().GetRelErrorThreshold();

	  // First, get the uncertainty histogram
	  // and push it back to our vectors
	
	  //if( sample.GetStatError().GetErrorHist() ) {
	  //statErrorHist = (TH1*) sample.GetStatError().GetErrorHist()->Clone();
	  //}
	  //if( statErrorHist == NULL ) {

	  // We need to get the *ABSOLUTE* uncertainty for use in Stat Uncertainties
	  // This can be done in one of two ways:
	  //   - Use the built-in Errors in the TH1 itself (they are aboslute)
	  //   - Take the supplied *RELATIVE* error and multiply by the nominal  
	  string UncertName  = syst_x_expectedPrefix + "_StatAbsolUncert";
	  TH1* statErrorHist = NULL;

	  if( sample.GetStatError().GetErrorHist() == NULL ) {
	    // Make the absolute stat error
	    std::cout << "Making Statistical Uncertainty Hist for "
		      << " Channel: " << channel_name
		      << " Sample: "  << sample.GetName()
		      << std::endl;
	    statErrorHist = MakeAbsolUncertaintyHist( UncertName, nominal );
	  } else {
             // clone the error histograms because in case the sample has not error hist
             // it is created in MakeAbsolUncertainty
             // we need later to clean statErrorHist
	    statErrorHist = (TH1*) sample.GetStatError().GetErrorHist()->Clone();
	    // We assume the (relative) error is provided.
	    // We must turn it into an absolute error
	    // using the nominal histogram
	    std::cout << "Using external histogram for Stat Errors for "
		      << " Channel: " << channel_name
		      << " Sample: "  << sample.GetName()
		      << std::endl;
	    std::cout << "Error Histogram: " << statErrorHist->GetName() << std::endl;
	    // Multiply the relative stat uncertainty by the
	    // nominal to get the overall stat uncertainty
	    statErrorHist->Multiply( nominal );
	    statErrorHist->SetName( UncertName.c_str() );
	  }
	
	  // Save the nominal and error hists
	  // for the building of constraint terms
	  statHistPairs.push_back( pair<TH1*,TH1*>(nominal, statErrorHist) );

	  // To do the 'conservative' version, we would need to do some
	  // intervention here.  We would probably need to create a different
	  // ParamHistFunc for each sample in the channel.  The would nominally
	  // use the same gamma's, so we haven't increased the number of parameters
	  // However, if a bin in the 'nominal' histogram is 0, we simply need to
	  // change the parameter in that bin in the ParamHistFunc for this sample.
	  // We also need to add a constraint term.
	  //  Actually, we'd probably not use the ParamHistFunc...?
	  //  we could remove the dependence in this ParamHistFunc on the ith gamma
	  //  and then create the poisson term: Pois(tau | n_exp)Pois(data | n_exp)


	  // Next, try to get the ParamHistFunc (it may have been 
	  // created by another sample in this channel)
	  // or create it if it doesn't yet exist:
	  statFuncName = "mc_stat_" + channel_name;
	  ParamHistFunc* paramHist = (ParamHistFunc*) proto->function( statFuncName.c_str() );
	  if( paramHist == NULL ) {

	    // Get a RooArgSet of the observables:
	    // Names in the list fObsNameVec:
	    RooArgList observables;
	    std::vector<std::string>::iterator itr = fObsNameVec.begin();
	    for (int idx=0; itr!=fObsNameVec.end(); ++itr, ++idx ) {
	      observables.add( *proto->var(itr->c_str()) );
	    }
	  
	    // Create the list of terms to
	    // control the bin heights:
	    std::string ParamSetPrefix  = "gamma_stat_" + channel_name;
	    Double_t gammaMin = 0.0;
	    Double_t gammaMax = 10.0;
	    RooArgList statFactorParams = ParamHistFunc::createParamSet(*proto, 
									ParamSetPrefix.c_str(), 
									observables, 
									gammaMin, gammaMax);

	    ParamHistFunc statUncertFunc(statFuncName.c_str(), statFuncName.c_str(), 
					 observables, statFactorParams );
	  
	    proto->import( statUncertFunc, RecycleConflictNodes() );

	    paramHist = (ParamHistFunc*) proto->function( statFuncName.c_str() );

	  } // END: If Statement: Create ParamHistFunc
	
	  // Create the node as a product
	  // of this function and the 
	  // expected value from MC
	  statNodeName = sample.GetName() + "_" + channel_name + "_overallSyst_x_StatUncert";
	
	  RooAbsReal* expFunc = (RooAbsReal*) proto->function( syst_x_expectedPrefix.c_str() );
	  RooProduct nodeWithMcStat(statNodeName.c_str(), statNodeName.c_str(),
				    RooArgSet(*paramHist, *expFunc) );
	
	  proto->import( nodeWithMcStat, RecycleConflictNodes() );
	
	  // Push back the final name of the node 
	  // to be used in the RooRealSumPdf 
	  // (node to be created later)
	  syst_x_expectedPrefix = nodeWithMcStat.GetName();

	}
      } // END: if DoMcStat
      

      ///////////////////////////////////////////
      // Create a ShapeFactor for this channel //
      ///////////////////////////////////////////

      if( sample.GetShapeFactorList().size() > 0 ) {

	if( fObsNameVec.size() > 3 ) {
	  std::cout << "Cannot include Stat Error for histograms of more than 3 dimensions." 
		    << std::endl; 
	  throw hf_exc();
	} else {

	  std::cout << "Sample: "     << sample.GetName() << " in channel: " << channel_name
	  	    << " to be include a ShapeFactor."
	  	    << std::endl;
	  
	  std::vector<ParamHistFunc*> paramHistFuncList;
	  std::vector<std::string> shapeFactorNameList;

	  for(unsigned int i=0; i < sample.GetShapeFactorList().size(); ++i) {

	    ShapeFactor& shapeFactor = sample.GetShapeFactorList().at(i);

	    std::string funcName = channel_name + "_" + shapeFactor.GetName() + "_shapeFactor";
	    ParamHistFunc* paramHist = (ParamHistFunc*) proto->function( funcName.c_str() );
	    if( paramHist == NULL ) {
	      
	      RooArgList observables;
	      std::vector<std::string>::iterator itr = fObsNameVec.begin();
	      for (int idx=0; itr!=fObsNameVec.end(); ++itr, ++idx ) {
		observables.add( *proto->var(itr->c_str()) );
	      }
	      
	      // Create the Parameters
	      std::string funcParams = "gamma_" + shapeFactor.GetName();

	      // GHL: Again, we are putting hard ranges on the gamma's
	      //      We should change this to range from 0 to /inf
	      RooArgList shapeFactorParams = ParamHistFunc::createParamSet(*proto, 
									   funcParams.c_str(), 
									   observables, 0, 1000);
	      
	      // Create the Function
	      ParamHistFunc shapeFactorFunc( funcName.c_str(), funcName.c_str(),
					   observables, shapeFactorParams );
	      
	      // Set an initial shape, if requested
	      if( shapeFactor.GetInitialShape() != NULL ) {
		TH1* initialShape = shapeFactor.GetInitialShape();
		std::cout << "Setting Shape Factor: " << shapeFactor.GetName()
			  << " to have initial shape from hist: "
			  << initialShape->GetName()
			  << std::endl;
		shapeFactorFunc.setShape( initialShape );
	      }
	      
	      // Set the variables constant, if requested
	      if( shapeFactor.IsConstant() ) {
		std::cout << "Setting Shape Factor: " << shapeFactor.GetName()
			  << " to be constant" << std::endl;
		shapeFactorFunc.setConstant(true);
	      }

	      proto->import( shapeFactorFunc, RecycleConflictNodes() );
	      paramHist = (ParamHistFunc*) proto->function( funcName.c_str() );
	  
	    } // End: Create ShapeFactor ParamHistFunc

	    paramHistFuncList.push_back(paramHist);
	    shapeFactorNameList.push_back(funcName);

	  } // End loop over ShapeFactor Systematics

	  // Now that we have the right ShapeFactor, 
	  // we multiply the expected function
	
	  //std::string shapeFactorNodeName = syst_x_expectedPrefix + "_x_" + funcName;
	  // Dynamically build the name as a long product
	  std::string shapeFactorNodeName = syst_x_expectedPrefix;
	  for( unsigned int i=0; i < shapeFactorNameList.size(); ++i) {
	    shapeFactorNodeName += "_x_" + shapeFactorNameList.at(i);
	  }

	  RooAbsReal* expFunc = (RooAbsReal*) proto->function( syst_x_expectedPrefix.c_str() );
	  RooArgSet nodesForProduct(*expFunc);
	  for( unsigned int i=0; i < paramHistFuncList.size(); ++i) {
	    nodesForProduct.add( *paramHistFuncList.at(i) );
	  }
	  //RooProduct nodeWithShapeFactor(shapeFactorNodeName.c_str(), 
	  //                               shapeFactorNodeName.c_str(),
	  //RooArgSet(*paramHist, *expFunc) );
	  RooProduct nodeWithShapeFactor(shapeFactorNodeName.c_str(), 
	                                 shapeFactorNodeName.c_str(),
					 nodesForProduct );
	
	  proto->import( nodeWithShapeFactor, RecycleConflictNodes() );

	  // Push back the final name of the node 
	  // to be used in the RooRealSumPdf 
	  // (node to be created later)
	  syst_x_expectedPrefix = nodeWithShapeFactor.GetName();
     
	}
      } // End: if ShapeFactorName!=""


      ////////////////////////////////////////
      // Create a ShapeSys for this channel //
      ////////////////////////////////////////

      if( sample.GetShapeSysList().size() != 0 ) {

	if( fObsNameVec.size() > 3 ) {
	  std::cout << "Cannot include Stat Error for histograms of more than 3 dimensions." 
		    << std::endl; 
	  throw hf_exc();
	} else {

	  // List of ShapeSys ParamHistFuncs
	  std::vector<string> ShapeSysNames;

	  for( unsigned int i = 0; i < sample.GetShapeSysList().size(); ++i) {
	  	    
	    // Create the ParamHistFunc's
	    // Create their constraint terms and add them
	    // to the list of constraint terms

	    // Create a single RooProduct over all of these
	    // paramHistFunc's
	    
	    // Send the name of that product to the RooRealSumPdf

	    RooStats::HistFactory::ShapeSys& shapeSys = sample.GetShapeSysList().at(i);

	    std::cout << "Sample: " << sample.GetName() << " in channel: " << channel_name
		      << " to include a ShapeSys." << std::endl;

	    std::string funcName = channel_name + "_" + shapeSys.GetName() + "_ShapeSys";
	    ShapeSysNames.push_back( funcName );
	    ParamHistFunc* paramHist = (ParamHistFunc*) proto->function( funcName.c_str() );
	    if( paramHist == NULL ) {

	      //std::string funcParams = "gamma_" + it->shapeFactorName;
	      //paramHist = CreateParamHistFunc( proto, fObsNameVec, funcParams, funcName );

	      RooArgList observables;
	      std::vector<std::string>::iterator itr = fObsNameVec.begin();
	      for(; itr!=fObsNameVec.end(); ++itr ) {
		observables.add( *proto->var(itr->c_str()) );
	      }

	      // Create the Parameters
	      std::string funcParams = "gamma_" + shapeSys.GetName();
	      RooArgList shapeFactorParams = ParamHistFunc::createParamSet(*proto, 
									   funcParams.c_str(), 
									   observables, 0, 10);

	      // Create the Function
	      ParamHistFunc shapeFactorFunc( funcName.c_str(), funcName.c_str(),
					     observables, shapeFactorParams );

	      proto->import( shapeFactorFunc, RecycleConflictNodes() );
	      paramHist = (ParamHistFunc*) proto->function( funcName.c_str() );	      
	      
	    } // End: Create ShapeFactor ParamHistFunc

	    // Create the constraint terms and add
	    // them to the workspace (proto)
	    // as well as the list of constraint terms (constraintTermNames)
	    
	    // The syst should be a fractional error
	    TH1* shapeErrorHist = shapeSys.GetErrorHist();

	    // Constraint::Type shapeConstraintType = Constraint::Gaussian;
	    Constraint::Type systype = shapeSys.GetConstraintType();
	    if( systype == Constraint::Gaussian) {
	      systype = Constraint::Gaussian;
	    }
	    if( systype == Constraint::Poisson ) {
	      systype = Constraint::Poisson;
	    }

	    Double_t minShapeUncertainty = 0.0;
	    RooArgList shapeConstraints = createStatConstraintTerms(proto, constraintTermNames, 
								    *paramHist, shapeErrorHist, 
								    systype, 
								    minShapeUncertainty);

	  } // End: Loop over ShapeSys vector in this EstimateSummary
	  
	  // Now that we have the list of ShapeSys ParamHistFunc names,
	  // we create the total RooProduct
	  // we multiply the expected functio
	  
	  std::string NodeName = syst_x_expectedPrefix;
	  RooArgList ShapeSysForNode;
	  RooAbsReal* expFunc = (RooAbsReal*) proto->function( syst_x_expectedPrefix.c_str() );
	  ShapeSysForNode.add( *expFunc );
	  for( unsigned int i = 0; i < ShapeSysNames.size(); ++i ) {
	    std::string ShapeSysName = ShapeSysNames.at(i);
	    ShapeSysForNode.add( *proto->function(ShapeSysName.c_str()) );
	    NodeName = NodeName + "_x_" + ShapeSysName;
	  }

	  // Create the name for this NEW Node
	  RooProduct nodeWithShapeFactor(NodeName.c_str(), NodeName.c_str(), ShapeSysForNode );
	  proto->import( nodeWithShapeFactor, RecycleConflictNodes() );

	  // Push back the final name of the node 
	  // to be used in the RooRealSumPdf 
	  // (node to be created later)
	  syst_x_expectedPrefix = nodeWithShapeFactor.GetName();

	} // End: NumObsVar == 1

      } // End: GetShapeSysList.size() != 0

      // Append the name of the "node"
      // that is to be summed with the
      // RooRealSumPdf
      syst_x_expectedPrefixNames.push_back(syst_x_expectedPrefix);

      // GHL: This was pretty confusing before,
      //      hopefully using the measurement directly
      //      will improve it
      if( sample.GetNormalizeByTheory() ) {
	normalizationNames.push_back( "Lumi" );
      }
      else {
	TString lumiParamString;
	lumiParamString += measurement.GetLumi();
	lumiParamString.ReplaceAll(' ', TString());
        normalizationNames.push_back(lumiParamString.Data());
      }

    } // END: Loop over EstimateSummaries
    //    proto->Print();

    // If a non-zero number of samples call for
    // Stat Uncertainties, create the statFactor functions
    if( statHistPairs.size() > 0 ) {
      
      // Create the histogram of (binwise)
      // stat uncertainties:
      TH1* fracStatError = MakeScaledUncertaintyHist( statNodeName + "_RelErr", statHistPairs ); 
      if( fracStatError == NULL ) {
	std::cout << "Error: Failed to make ScaledUncertaintyHist for: " 
		  << statNodeName << std::endl;
	throw hf_exc();
      }
      
      // Using this TH1* of fractinal stat errors, 
      // create a set of constraint terms:
      ParamHistFunc* chanStatUncertFunc = (ParamHistFunc*) proto->function( statFuncName.c_str() );
      std::cout << "About to create Constraint Terms from: " 
		<< chanStatUncertFunc->GetName()
		<< " params: " << chanStatUncertFunc->paramList()
		<< std::endl;

      // Get the constraint type and the
      // rel error threshold from the (last)
      // EstimateSummary looped over (but all
      // should be the same)

      // Get the type of StatError constraint from the channel
      Constraint::Type statConstraintType = channel.GetStatErrorConfig().GetConstraintType();
      if( statConstraintType == Constraint::Gaussian) {
	std::cout << "Using Gaussian StatErrors in channel: " << channel.GetName() << std::endl;
      }
      if( statConstraintType == Constraint::Poisson ) {
	std::cout << "Using Poisson StatErrors in channel: " << channel.GetName()  << std::endl;
      }

      double statRelErrorThreshold = channel.GetStatErrorConfig().GetRelErrorThreshold();
      RooArgList statConstraints = createStatConstraintTerms(proto, constraintTermNames, 
							     *chanStatUncertFunc, fracStatError, 
							     statConstraintType, 
							     statRelErrorThreshold);


      // clean stat hist pair (need to delete second histogram)
      for (unsigned int i = 0; i < statHistPairs.size() ; ++i )  
              delete statHistPairs[i].second;
      
       statHistPairs.clear(); 
       //delete also histogram of stat uncertainties created in MakeScaledUncertaintyHist
       delete fracStatError;

    } // END: Loop over stat Hist Pairs
    
    
    ///////////////////////////////////
    // for ith bin calculate totN_i =  lumi * sum_j expected_j * syst_j 
    //MakeTotalExpected(proto,channel_name+"_model",channel_name,"Lumi",fLowBin,fHighBin, 
    //      syst_x_expectedPrefixNames, normalizationNames);
    MakeTotalExpected(proto, channel_name+"_model", //channel_name,"Lumi",fLowBin,fHighBin, 
		      syst_x_expectedPrefixNames, normalizationNames);
    likelihoodTermNames.push_back(channel_name+"_model");

    //////////////////////////////////////
    // fix specified parameters
    for(unsigned int i=0; i<systToFix.size(); ++i){
      RooRealVar* temp = proto->var((systToFix.at(i)).c_str());
      if(temp) {
	// set the parameter constant
	temp->setConstant();
	
	// remove the corresponding auxiliary observable from the global observables
	RooRealVar* auxMeas = NULL;
	if(systToFix.at(i)=="Lumi"){
	  auxMeas = proto->var("nominalLumi");
	} else {
	  auxMeas = proto->var(Form("nom_%s",temp->GetName()));
	}

	if(auxMeas){
	  const_cast<RooArgSet*>(proto->set("globalObservables"))->remove(*auxMeas);
	} else{
	  cout << "could not corresponding auxiliary measurement  " 
	       << Form("nom_%s",temp->GetName()) << endl;
	}
      } else {
	cout << "could not find variable " << systToFix.at(i) 
	     << " could not set it to constant" << endl;
      }
    }

    //////////////////////////////////////
    // final proto model
    for(unsigned int i=0; i<constraintTermNames.size(); ++i){
      RooAbsArg* proto_arg = (proto->arg(constraintTermNames[i].c_str()));
      if( proto_arg==NULL ) {
	std::cout << "Error: Cannot find arg set: " << constraintTermNames.at(i)
		  << " in workspace: " << proto->GetName() << std::endl;
	throw hf_exc();
      }
      constraintTerms.add( *proto_arg );
      //  constraintTerms.add(* proto_arg(proto->arg(constraintTermNames[i].c_str())) );
    }
    for(unsigned int i=0; i<likelihoodTermNames.size(); ++i){
      RooAbsArg* proto_arg = (proto->arg(likelihoodTermNames[i].c_str())); 
      if( proto_arg==NULL ) {
	std::cout << "Error: Cannot find arg set: " << likelihoodTermNames.at(i)
		  << " in workspace: " << proto->GetName() << std::endl;
	throw hf_exc();
      }
      likelihoodTerms.add( *proto_arg );
    }
    proto->defineSet("constraintTerms",constraintTerms);
    proto->defineSet("likelihoodTerms",likelihoodTerms);
    //  proto->Print();

    // list of observables
    RooArgList observables;
    std::string observablesStr;

    std::vector<std::string>::iterator itr = fObsNameVec.begin();
    for(; itr!=fObsNameVec.end(); ++itr ) {
      observables.add( *proto->var(itr->c_str()) );
      if (!observablesStr.empty()) { observablesStr += ","; }
      observablesStr += *itr;
    }

    // We create two sets, one for backwards compatability
    // The other to make a consistent naming convention
    // between individual channels and the combined workspace
    proto->defineSet("observables", Form("%s",observablesStr.c_str()));
    proto->defineSet("observablesSet", Form("%s",observablesStr.c_str()));
    
    // Create the ParamHistFunc
    // after observables have been made
    cout <<"-----------------------------------------"<<endl;
    cout <<"import model into workspace" << endl;

    RooProdPdf* model = new RooProdPdf(("model_"+channel_name).c_str(),    // MB : have changed this into conditional pdf. Much faster for toys!
               "product of Poissons accross bins for a single channel",
	       constraintTerms, Conditional(likelihoodTerms,observables));  //likelihoodTerms);
    proto->import(*model,RecycleConflictNodes());

    proto_config->SetPdf(*model);
    proto_config->SetObservables(observables);
    proto_config->SetGlobalObservables(*proto->set("globalObservables"));
    //    proto->writeToFile(("results/model_"+channel+".root").c_str());
    // fill out nuisance parameters in model config
    //    proto_config->GuessObsAndNuisance(*proto->data("asimovData"));
    proto->import(*proto_config,proto_config->GetName());
    proto->importClassCode();

    ///////////////////////////
    // make data sets
      // THis works and is natural, but the memory size of the simultaneous dataset grows exponentially with channels
    const char* weightName="weightVar";
    proto->factory(Form("%s[0,-1e10,1e10]",weightName));
    proto->defineSet("obsAndWeight",Form("%s,%s",weightName,observablesStr.c_str()));

    /* Old code for generating the asimov
       Asimov generation is now done later...
       
    RooAbsData* asimov_data = model->generateBinned(observables,ExpectedData());

    /// Asimov dataset
    RooDataSet* asimovDataUnbinned = new RooDataSet("asimovData","",*proto->set("obsAndWeight"),weightName);
    for(int i=0; i<asimov_data->numEntries(); ++i){
      asimov_data->get(i)->Print("v");
      //cout << "GREPME : " << i << " " << data->weight() <<endl;
      asimovDataUnbinned->add( *asimov_data->get(i), asimov_data->weight() );
    }
    proto->import(*asimovDataUnbinned);
    */

    // New Asimov Generation: Use the code in the Asymptotic calculator 
    // Need to get the ModelConfig...
    RooDataSet* asimov_dataset = (RooDataSet*) AsymptoticCalculator::GenerateAsimovData(*model, observables);
    proto->import(*asimov_dataset, Rename("asimovData"));

    // GHL: Determine to use data if the hist isn't 'NULL'
    if(channel.GetData().GetHisto() != NULL) { 

      Data& data = channel.GetData();
      TH1* mnominal = data.GetHisto(); 
      if( !mnominal ) {
	std::cout << "Error: Data histogram for channel: " << channel.GetName()
		  << " is NULL" << std::endl;
	throw hf_exc();
      }

      // THis works and is natural, but the memory size of the simultaneous dataset grows exponentially with channels
      RooDataSet* obsDataUnbinned = new RooDataSet("obsData","",*proto->set("obsAndWeight"),weightName);


      ConfigureHistFactoryDataset( obsDataUnbinned, mnominal, 
				   proto, fObsNameVec );
      
      /*
      //ES// TH1* mnominal = summary.at(0).nominal;
      TH1* mnominal = data.GetHisto(); 
      TAxis* ax = mnominal->GetXaxis(); 
      TAxis* ay = mnominal->GetYaxis(); 
      TAxis* az = mnominal->GetZaxis(); 	

      for (int i=1; i<=ax->GetNbins(); ++i) { // 1 or more dimension
	Double_t xval = ax->GetBinCenter(i);
	proto->var( fObsNameVec[0].c_str() )->setVal( xval );
	if        (fObsNameVec.size()==1) {
	  Double_t fval = mnominal->GetBinContent(i);
	  obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	} else { // 2 or more dimensions
	  for (int j=1; j<=ay->GetNbins(); ++j) {
	    Double_t yval = ay->GetBinCenter(j);
	    proto->var( fObsNameVec[1].c_str() )->setVal( yval );
	    if (fObsNameVec.size()==2) { 
	      Double_t fval = mnominal->GetBinContent(i,j);
	      obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	    } else { // 3 dimensions 
	      for (int k=1; k<=az->GetNbins(); ++k) {
		Double_t zval = az->GetBinCenter(k);
		proto->var( fObsNameVec[2].c_str() )->setVal( zval );
		Double_t fval = mnominal->GetBinContent(i,j,k);
		obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	      }
	    }
	  }
	}
      }
      */

      proto->import(*obsDataUnbinned);
    } // End: Has non-null 'data' entry

    
    for(unsigned int i=0; i < channel.GetAdditionalData().size(); ++i) {
      
      Data& data = channel.GetAdditionalData().at(i);
      std::string dataName = data.GetName();
      TH1* mnominal = data.GetHisto(); 
      if( !mnominal ) {
	std::cout << "Error: Additional Data histogram for channel: " << channel.GetName()
		  << " with name: " << dataName << " is NULL" << std::endl;
	throw hf_exc();
      }

      // THis works and is natural, but the memory size of the simultaneous dataset grows exponentially with channels
      RooDataSet* obsDataUnbinned = new RooDataSet(dataName.c_str(), dataName.c_str(),
						   *proto->set("obsAndWeight"), weightName);
      
      ConfigureHistFactoryDataset( obsDataUnbinned, mnominal, 
				   proto, fObsNameVec );
      
      /*
      //ES// TH1* mnominal = summary.at(0).nominal;
      TH1* mnominal = data.GetHisto(); 
      TAxis* ax = mnominal->GetXaxis(); 
      TAxis* ay = mnominal->GetYaxis(); 
      TAxis* az = mnominal->GetZaxis(); 	

      for (int i=1; i<=ax->GetNbins(); ++i) { // 1 or more dimension
	Double_t xval = ax->GetBinCenter(i);
	proto->var( fObsNameVec[0].c_str() )->setVal( xval );
	if        (fObsNameVec.size()==1) {
	  Double_t fval = mnominal->GetBinContent(i);
	  obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	} else { // 2 or more dimensions
	  for (int j=1; j<=ay->GetNbins(); ++j) {
	    Double_t yval = ay->GetBinCenter(j);
	    proto->var( fObsNameVec[1].c_str() )->setVal( yval );
	    if (fObsNameVec.size()==2) { 
	      Double_t fval = mnominal->GetBinContent(i,j);
	      obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	    } else { // 3 dimensions 
	      for (int k=1; k<=az->GetNbins(); ++k) {
		Double_t zval = az->GetBinCenter(k);
		proto->var( fObsNameVec[2].c_str() )->setVal( zval );
		Double_t fval = mnominal->GetBinContent(i,j,k);
		obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	      }
	    }
	  }
	}
      }
      */

      proto->import(*obsDataUnbinned);
    } // End: Has non-null 'data' entry

    proto->Print();
    return proto;
  }


  void HistoToWorkspaceFactoryFast::ConfigureHistFactoryDataset( RooDataSet* obsDataUnbinned, 
								 TH1* mnominal, 
								 RooWorkspace* proto,
								 std::vector<std::string> ObsNameVec) {

    // Take a RooDataSet and fill it with the entries
    // from a TH1*, using the observable names to
    // determine the columns

     if (ObsNameVec.empty() ) {
        Error("ConfigureHistFactoryDataset","Invalid input - return");
        return;
     }
    
    //ES// TH1* mnominal = summary.at(0).nominal;
    // TH1* mnominal = data.GetHisto(); 
    TAxis* ax = mnominal->GetXaxis(); 
    TAxis* ay = mnominal->GetYaxis(); 
    TAxis* az = mnominal->GetZaxis(); 	

    for (int i=1; i<=ax->GetNbins(); ++i) { // 1 or more dimension

      Double_t xval = ax->GetBinCenter(i);
      proto->var( ObsNameVec[0].c_str() )->setVal( xval );

      if(ObsNameVec.size()==1) {
	Double_t fval = mnominal->GetBinContent(i);
	obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
      } else { // 2 or more dimensions

	for(int j=1; j<=ay->GetNbins(); ++j) {
	  Double_t yval = ay->GetBinCenter(j);
	  proto->var( ObsNameVec[1].c_str() )->setVal( yval );

	  if(ObsNameVec.size()==2) { 
	    Double_t fval = mnominal->GetBinContent(i,j);
	    obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	  } else { // 3 dimensions 

	    for(int k=1; k<=az->GetNbins(); ++k) {
	      Double_t zval = az->GetBinCenter(k);
	      proto->var( ObsNameVec[2].c_str() )->setVal( zval );
	      Double_t fval = mnominal->GetBinContent(i,j,k);
	      obsDataUnbinned->add( *proto->set("obsAndWeight"), fval );
	    }
	  }
	}
      }
    }
  }

  void HistoToWorkspaceFactoryFast::GuessObsNameVec(TH1* hist)
  {
    fObsNameVec.clear();

    // determine histogram dimensionality 
    unsigned int histndim(1);
    std::string classname = hist->ClassName();
    if      (classname.find("TH1")==0) { histndim=1; }
    else if (classname.find("TH2")==0) { histndim=2; }
    else if (classname.find("TH3")==0) { histndim=3; }

    for ( unsigned int idx=0; idx<histndim; ++idx ) {
      if (idx==0) { fObsNameVec.push_back("x"); }
      if (idx==1) { fObsNameVec.push_back("y"); }
      if (idx==2) { fObsNameVec.push_back("z"); }
    }
  }


  RooWorkspace* HistoToWorkspaceFactoryFast::MakeCombinedModel(vector<string> ch_names, vector<RooWorkspace*> chs)
  {


     // check first the inputs (see JIRA-6890)
     if (ch_names.empty() || chs.empty() ) {
        Error("MakeCombinedModel","Input vectors are empty - return a nullptr");
        return 0;
     }
     if (chs.size()  <  ch_names.size() ) {
        Error("MakeCombinedModel","Input vector of workspace has an invalid size - return a nullptr");
        return 0;
     }

    //
    /// These things were used for debugging. Maybe useful in the future
    //

    map<string, RooAbsPdf*> pdfMap;
    vector<RooAbsPdf*> models;
    stringstream ss;

    RooArgList obsList;
    for(unsigned int i = 0; i< ch_names.size(); ++i){
      ModelConfig * config = (ModelConfig *) chs[i]->obj("ModelConfig");
      obsList.add(*config->GetObservables());
    }
    cout <<"full list of observables:"<<endl;
    obsList.Print();

    RooArgSet globalObs;
    for(unsigned int i = 0; i< ch_names.size(); ++i){
      string channel_name=ch_names[i];

      if (ss.str().empty()) ss << channel_name ;
      else ss << ',' << channel_name ;
      RooWorkspace * ch=chs[i];
      
      RooAbsPdf* model = ch->pdf(("model_"+channel_name).c_str());
      if(!model) cout <<"failed to find model for channel"<<endl;
      //      cout << "int = " << model->createIntegral(*obsN)->getVal() << endl;;
      models.push_back(model);
      globalObs.add(*ch->set("globalObservables"));

      //      constrainedParams->add( * ch->set("constrainedParams") );
      pdfMap[channel_name]=model;
    }
    //constrainedParams->Print();

    cout << "\n\n------------------\n Entering combination" << endl;
    RooWorkspace* combined = new RooWorkspace("combined");
    //    RooWorkspace* combined = chs[0];
    

    RooCategory* channelCat = (RooCategory*) combined->factory(("channelCat["+ss.str()+"]").c_str());
    RooSimultaneous * simPdf= new RooSimultaneous("simPdf","",pdfMap, *channelCat);
    ModelConfig * combined_config = new ModelConfig("ModelConfig", combined);
    combined_config->SetWorkspace(*combined);
    //    combined_config->SetNuisanceParameters(*constrainedParams);

    combined->import(globalObs);
    combined->defineSet("globalObservables",globalObs);
    combined_config->SetGlobalObservables(*combined->set("globalObservables"));
    

    ////////////////////////////////////////////
    // Make toy simultaneous dataset
    cout <<"-----------------------------------------"<<endl;
    cout << "create toy data for " << ss.str() << endl;
    

    // now with weighted datasets
    // First Asimov
    //RooDataSet * simData=NULL;
    combined->factory("weightVar[0,-1e10,1e10]");
    obsList.add(*combined->var("weightVar"));

    // Loop over channels and create the asimov
    /*
    for(unsigned int i = 0; i< ch_names.size(); ++i){
      cout << "merging data for channel " << ch_names[i].c_str() << endl;
      RooDataSet * tempData=new RooDataSet(ch_names[i].c_str(),"", obsList, Index(*channelCat),
					   WeightVar("weightVar"),
					  Import(ch_names[i].c_str(),*(RooDataSet*)chs[i]->data("asimovData")));
      if(simData){
	simData->append(*tempData);
      delete tempData;
      }else{
	simData = tempData;
      }
    }
    
    if (simData) combined->import(*simData,Rename("asimovData"));
    */
    RooDataSet* asimov_combined = (RooDataSet*) AsymptoticCalculator::GenerateAsimovData(*simPdf, 
											 obsList);
    if( asimov_combined ) {
      combined->import( *asimov_combined, Rename("asimovData"));
    }
    else {
      std::cout << "Error: Failed to create combined asimov dataset" << std::endl;
      throw hf_exc();
    }

    // Now merge the observable datasets across the channels
    if(chs[0]->data("obsData") != NULL) { 
      MergeDataSets(combined, chs, ch_names, "obsData", obsList, channelCat);
    }

    /*
    if(chs[0]->data("obsData") != NULL){
      RooDataSet * simData=NULL;
      //simData=NULL;

      // Loop through channels, get their individual datasets,
      // and add them to the combined dataset
      for(unsigned int i = 0; i< ch_names.size(); ++i){
	cout << "merging data for channel " << ch_names[i].c_str() << endl;

	RooDataSet* obsDataInChannel = (RooDataSet*) chs[i]->data("obsData");
	RooDataSet * tempData = new RooDataSet(ch_names[i].c_str(),"", obsList, Index(*channelCat),
					       WeightVar("weightVar"),
					       Import(ch_names[i].c_str(),*obsDataInChannel)); 
	// *(RooDataSet*) chs[i]->data("obsData")));
	if(simData) {
	  simData->append(*tempData);
	  delete tempData;
	}
	else {
	  simData = tempData;
	}
      } // End Loop Over Channels
      
      // Check that we successfully created the dataset
      // and import it into the workspace
      if(simData) {
	combined->import(*simData, Rename("obsData"));
      }
      else {
	std::cout << "Error: Unable to merge observable datasets" << std::endl;
	throw hf_exc();
      }

    } // End 'if' on data != NULL
    */

    // Now, create any additional Asimov datasets that
    // are configured in the measurement


    //    obsList.Print();
    //    combined->import(obsList);
    //    combined->Print();

    obsList.add(*channelCat);
    combined->defineSet("observables",obsList);
    combined_config->SetObservables(*combined->set("observables"));

    combined->Print();

    cout << "\n\n----------------\n Importing combined model" << endl;
    combined->import(*simPdf,RecycleConflictNodes());
    //combined->import(*simPdf, RenameVariable("SigXsecOverSM","SigXsecOverSM_comb"));
    // cout << "check pointer " << simPdf << endl;
    //    cout << "check val " << simPdf->getVal() << endl;

    std::map< std::string, double>::iterator param_itr = fParamValues.begin();
    for( ; param_itr != fParamValues.end(); ++param_itr ){
      // make sure they are fixed
      std::string paramName = param_itr->first;
      double paramVal = param_itr->second;
      
      RooRealVar* temp = combined->var( paramName.c_str() );
      if(temp) {
        temp->setVal( paramVal );
        cout <<"setting " << paramName << " to the value: " << paramVal <<  endl;
      } else 
	cout << "could not find variable " << paramName << " could not set its value" << endl;
    }


    for(unsigned int i=0; i<fSystToFix.size(); ++i){
      // make sure they are fixed
      RooRealVar* temp = combined->var((fSystToFix.at(i)).c_str());
      if(temp) {
        temp->setConstant();
        cout <<"setting " << fSystToFix.at(i) << " constant" << endl;
      } else 
	cout << "could not find variable " << fSystToFix.at(i) << " could not set it to constant" << endl;
    }

    ///
    /// writing out the model in graphViz
    /// 
    //    RooAbsPdf* customized=combined->pdf("simPdf"); 
    //combined_config->SetPdf(*customized);
    combined_config->SetPdf(*simPdf);
    //    combined_config->GuessObsAndNuisance(*simData);
    //    customized->graphVizTree(("results/"+fResultsPrefixStr.str()+"_simul.dot").c_str());
    combined->import(*combined_config,combined_config->GetName());
    combined->importClassCode();
    //    combined->writeToFile("results/model_combined.root");

    return combined;
  }


  RooDataSet* HistoToWorkspaceFactoryFast::MergeDataSets(RooWorkspace* combined,
							 std::vector<RooWorkspace*> wspace_vec, 
							 std::vector<std::string> channel_names, 
							 std::string dataSetName,
							 RooArgList obsList,
							 RooCategory* channelCat) {

    // Create the total dataset
    RooDataSet* simData=NULL;

    // Loop through channels, get their individual datasets,
    // and add them to the combined dataset
    for(unsigned int i = 0; i< channel_names.size(); ++i){

      // Grab the dataset for the existing channel
      std::cout << "Merging data for channel " << channel_names[i].c_str() << std::endl;
      RooDataSet* obsDataInChannel = (RooDataSet*) wspace_vec[i]->data(dataSetName.c_str());
      if( !obsDataInChannel ) {
	std::cout << "Error: Can't find DataSet: " << dataSetName
		  << " in channel: " << channel_names.at(i)
		  << std::endl;
	throw hf_exc();
      }

      // Create the new Dataset
      RooDataSet * tempData = new RooDataSet(channel_names[i].c_str(),"", 
					     obsList, Index(*channelCat),
					     WeightVar("weightVar"),
					     Import(channel_names[i].c_str(),*obsDataInChannel)); 
      if(simData) {
	simData->append(*tempData);
	delete tempData;
      }
      else {
	simData = tempData;
      }
    } // End Loop Over Channels
      
    // Check that we successfully created the dataset
    // and import it into the workspace
    if(simData) {
      combined->import(*simData, Rename(dataSetName.c_str()));
    }
    else {
      std::cout << "Error: Unable to merge observable datasets" << std::endl;
      throw hf_exc();
    }

    return simData;

  }
    

  TH1* HistoToWorkspaceFactoryFast::MakeAbsolUncertaintyHist( const std::string& Name, const TH1* Nominal ) {

    // Take a nominal TH1* and create
    // a TH1 representing the binwise
    // errors (taken from the nominal TH1)

    TH1* ErrorHist = (TH1*) Nominal->Clone( Name.c_str() );
    ErrorHist->Reset();
    
    Int_t numBins   = Nominal->GetNbinsX()*Nominal->GetNbinsY()*Nominal->GetNbinsZ();
    Int_t binNumber = 0;

    // Loop over bins
    for( Int_t i_bin = 0; i_bin < numBins; ++i_bin) {

      binNumber++;
      // Ignore underflow / overflow
      while( Nominal->IsBinUnderflow(binNumber) || Nominal->IsBinOverflow(binNumber) ){
	binNumber++;
      }

      Double_t histError = Nominal->GetBinError( binNumber );
    
      // Check that histError != NAN
      if( histError != histError ) {
	std::cout << "Warning: In histogram " << Nominal->GetName()
		  << " bin error for bin " << i_bin
		  << " is NAN.  Not using Error!!!"
		  << std::endl;
	throw hf_exc();
	//histError = sqrt( histContent );
	//histError = 0;
      }
    
      // Check that histError ! < 0
      if( histError < 0  ) {
	std::cout << "Warning: In histogram " << Nominal->GetName()
		  << " bin error for bin " << binNumber
		  << " is < 0.  Setting Error to 0"
		  << std::endl;
	//histError = sqrt( histContent );
	histError = 0;
      }

      ErrorHist->SetBinContent( binNumber, histError );

    }

    return ErrorHist;
  
  }
  
  TH1* HistoToWorkspaceFactoryFast::MakeScaledUncertaintyHist( const std::string& Name, std::vector< std::pair<TH1*, TH1*> > HistVec ) {

    // Take a list of < nominal, absolError > TH1* pairs
    // and construct a single histogram representing the 
    // total fractional error as:

    // UncertInQuad(bin i) = Sum: absolUncert*absolUncert
    // Total(bin i)        = Sum: Value
    //
    // TotalFracError(bin i) = Sqrt( UncertInQuad(i) ) / TotalBin(i)
    

    unsigned int numHists = HistVec.size();
    
    if( numHists == 0 ) {
      std::cout << "Warning: Empty Hist Vector, cannot create total uncertainty" << std::endl;
      return NULL;
    }
    
    TH1* HistTemplate = HistVec.at(0).first;
    Int_t numBins = HistTemplate->GetNbinsX()*HistTemplate->GetNbinsY()*HistTemplate->GetNbinsZ();

  // Check that all histograms
  // have the same bins
  for( unsigned int i = 0; i < HistVec.size(); ++i ) {
    
    TH1* nominal = HistVec.at(i).first;
    TH1* error   = HistVec.at(i).second;
    
    if( nominal->GetNbinsX()*nominal->GetNbinsY()*nominal->GetNbinsZ() != numBins ) {
      std::cout << "Error: Provided hists have unequal bins" << std::endl;
      return NULL;
    }
    if( error->GetNbinsX()*error->GetNbinsY()*error->GetNbinsZ() != numBins ) {
      std::cout << "Error: Provided hists have unequal bins" << std::endl;
      return NULL;
    }
  }

  std::vector<double> TotalBinContent( numBins, 0.0);
  std::vector<double> HistErrorsSqr( numBins, 0.0);

  Int_t binNumber = 0;

  // Loop over bins
  for( Int_t i_bins = 0; i_bins < numBins; ++i_bins) {
    
    binNumber++;
    while( HistTemplate->IsBinUnderflow(binNumber) || HistTemplate->IsBinOverflow(binNumber) ){
      binNumber++;
    }
    
    for( unsigned int i_hist = 0; i_hist < numHists; ++i_hist ) {
      
      TH1* nominal = HistVec.at(i_hist).first;
      TH1* error   = HistVec.at(i_hist).second;

      //Int_t binNumber = i_bins + 1;

      Double_t histValue  = nominal->GetBinContent( binNumber );
      Double_t histError  = error->GetBinContent( binNumber );
      /*
      std::cout << " Getting Bin content for Stat Uncertainty"
		<< " Nom name: " << nominal->GetName()
		<< " Err name: " << error->GetName()
		<< " HistNumber: " << i_hist << " bin: " << binNumber
		<< " Value: " << histValue << " Error: " << histError
		<< std::endl;
      */

      if( histError != histError ) {
	std::cout << "Warning: In histogram " << error->GetName()
		  << " bin error for bin " << binNumber
		  << " is NAN.  Not using error!!"
		  << std::endl;
	throw hf_exc();
	//histError = 0;
      }
      
      TotalBinContent.at(i_bins) += histValue;
      HistErrorsSqr.at(i_bins)   += histError*histError; // Add in quadrature

    }
  }

  binNumber = 0;

  // Creat the output histogram
  TH1* ErrorHist = (TH1*) HistTemplate->Clone( Name.c_str() );
  ErrorHist->Reset();

  // Fill the output histogram
  for( Int_t i = 0; i < numBins; ++i) {

    //    Int_t binNumber = i + 1;
    binNumber++;
    while( ErrorHist->IsBinUnderflow(binNumber) || ErrorHist->IsBinOverflow(binNumber) ){
      binNumber++;
    }

    Double_t ErrorsSqr = HistErrorsSqr.at(i);
    Double_t TotalVal  = TotalBinContent.at(i);

    if( TotalVal <= 0 ) {
      std::cout << "Warning: Sum of histograms for bin: " << binNumber
		<< " is <= 0.  Setting error to 0"
		<< std::endl;

      ErrorHist->SetBinContent( binNumber, 0.0 );
      continue;
    }

    Double_t RelativeError = sqrt(ErrorsSqr) / TotalVal;

    // If we otherwise get a NAN
    // it's an error
    if( RelativeError != RelativeError ) {
      std::cout << "Error: bin " << i << " error is NAN" << std::endl;
      std::cout << " HistErrorsSqr: " << ErrorsSqr
		<< " TotalVal: " << TotalVal
		<< std::endl;
      throw hf_exc();
    }

    // 0th entry in vector is
    // the 1st bin in TH1 
    // (we ignore underflow)

    ErrorHist->SetBinContent( binNumber, RelativeError );
    
    std::cout << "Making Total Uncertainty for bin " << binNumber
	      << " Error = " << sqrt(ErrorsSqr)
	      << " Val = " << TotalVal
	      << " RelativeError = " << RelativeError
	      << std::endl;

  }

  return ErrorHist;

}



  RooArgList HistoToWorkspaceFactoryFast::
  createStatConstraintTerms( RooWorkspace* proto, vector<string>& constraintTermNames,
			     ParamHistFunc& paramHist, TH1* uncertHist, 
			     Constraint::Type type, Double_t minSigma ) {


  // Take a RooArgList of RooAbsReal's and
  // create N constraint terms (one for
  // each gamma) whose relative uncertainty
  // is the value of the ith RooAbsReal
  //
  // The integer "type" controls the type
  // of constraint term:
  //
  // type == 0 : NONE
  // type == 1 : Gaussian
  // type == 2 : Poisson
  // type == 3 : LogNormal

  RooArgList ConstraintTerms;

  RooArgList paramSet = paramHist.paramList();

  // Must get the full size of the TH1
  // (No direct method to do this...)
  Int_t numBins   = uncertHist->GetNbinsX()*uncertHist->GetNbinsY()*uncertHist->GetNbinsZ();
  Int_t numParams = paramSet.getSize();
  //  Int_t numBins   = uncertHist->GetNbinsX()*uncertHist->GetNbinsY()*uncertHist->GetNbinsZ();

  // Check that there are N elements
  // in the RooArgList
  if( numBins != numParams ) {
    std::cout << "Error: In createStatConstraintTerms, encountered bad number of bins" << std::endl;
    std::cout << "Given histogram with " << numBins << " bins,"
	      << " but require exactly " << numParams << std::endl;
    throw hf_exc();
  }

  Int_t TH1BinNumber = 0;
  for( Int_t i = 0; i < paramSet.getSize(); ++i) {

    TH1BinNumber++;

    while( uncertHist->IsBinUnderflow(TH1BinNumber) || uncertHist->IsBinOverflow(TH1BinNumber) ){
      TH1BinNumber++;
    }

    RooRealVar& gamma = (RooRealVar&) (paramSet[i]);

    std::cout << "Creating constraint for: " << gamma.GetName() 
	      << ". Type of constraint: " << type <<  std::endl;

    // Get the sigma from the hist
    // (the relative uncertainty)
    Double_t sigma = uncertHist->GetBinContent( TH1BinNumber );

    // If the sigma is <= 0, 
    // do cont create the term
    if( sigma <= 0 ){
      std::cout << "Not creating constraint term for "
		<< gamma.GetName() 
		<< " because sigma = " << sigma
		<< " (sigma<=0)" 
		<< " (TH1 bin number = " << TH1BinNumber << ")"
		<< std::endl;
      gamma.setConstant(kTRUE);
      continue;
    }
  
    // set reasonable ranges for gamma parameters
    gamma.setMax( 1 + 5*sigma );
    //    gamma.setMin( TMath::Max(1. - 5*sigma, 0.) );    
    gamma.setMin( 0. );         

    // Make Constraint Term
    std::string constrName = string(gamma.GetName()) + "_constraint";
    std::string nomName = string("nom_") + gamma.GetName();
    std::string sigmaName = string(gamma.GetName()) + "_sigma";
    std::string poisMeanName = string(gamma.GetName()) + "_poisMean";

    if( type == Constraint::Gaussian ) {

      // Type 1 : RooGaussian
    
      // Make sigma

      RooConstVar constrSigma( sigmaName.c_str(), sigmaName.c_str(), sigma );
      //proto->import( constrSigma, RecycleConflictNodes() );
      //proto->import( constrSigma );
    
      // Make "observed" value
      RooRealVar constrNom(nomName.c_str(), nomName.c_str(), 1.0,0,10);
      constrNom.setConstant( true );

      // Make the constraint: 
      RooGaussian gauss( constrName.c_str(), constrName.c_str(),
			 constrNom, gamma, constrSigma );
      
      proto->import( gauss, RecycleConflictNodes() );
      //proto->import( gauss );
      
    } else if( type == Constraint::Poisson ) {
    
      Double_t tau = 1/sigma/sigma; // this is correct Poisson equivalent to a Gaussian with mean 1 and stdev sigma

      // Make nominal "observed" value
      RooRealVar constrNom(nomName.c_str(), nomName.c_str(), tau);
      constrNom.setMin(0);
      constrNom.setConstant( true );
    
      // Make the scaling term
      std::string scalingName = string(gamma.GetName()) + "_tau";
      RooConstVar poissonScaling( scalingName.c_str(), scalingName.c_str(), tau);
    
      // Make mean for scaled Poisson
      RooProduct constrMean( poisMeanName.c_str(), poisMeanName.c_str(), RooArgSet(gamma, poissonScaling) );
      //proto->import( constrSigma, RecycleConflictNodes() );
      //proto->import( constrSigma );

      // Type 2 : RooPoisson
      RooPoisson pois(constrName.c_str(), constrName.c_str(), constrNom, constrMean);
      pois.setNoRounding(true);
      proto->import( pois, RecycleConflictNodes() );
      
    } else {

      std::cout << "Error: Did not recognize Stat Error constraint term type: "
		<< type << " for : " << paramHist.GetName() << std::endl;
      throw hf_exc();
    }
  
    // If the sigma value is less
    // than a supplied threshold,
    // set the variable to constant
    if( sigma < minSigma ) {
      std::cout << "Warning:  Bin " << i << " = " << sigma
		<< " and is < " << minSigma
		<< ". Setting: " << gamma.GetName() << " to constant"
		<< std::endl;
      gamma.setConstant(kTRUE);
    }
  
    constraintTermNames.push_back( constrName );    
    ConstraintTerms.add( *proto->pdf(constrName.c_str()) );

    // Add the "observed" value to the 
    // list of global observables:
    RooArgSet* globalSet = const_cast<RooArgSet*>(proto->set("globalObservables"));
  
    RooRealVar* nomVarInWorkspace = proto->var(nomName.c_str());
    if( ! globalSet->contains(*nomVarInWorkspace) ) {
      globalSet->add( *nomVarInWorkspace );	
    }
  
  } // end loop over parameters
  
  return ConstraintTerms;
  
}

} // namespace RooStats
} // namespace HistFactory

 HistoToWorkspaceFactoryFast.cxx:1
 HistoToWorkspaceFactoryFast.cxx:2
 HistoToWorkspaceFactoryFast.cxx:3
 HistoToWorkspaceFactoryFast.cxx:4
 HistoToWorkspaceFactoryFast.cxx:5
 HistoToWorkspaceFactoryFast.cxx:6
 HistoToWorkspaceFactoryFast.cxx:7
 HistoToWorkspaceFactoryFast.cxx:8
 HistoToWorkspaceFactoryFast.cxx:9
 HistoToWorkspaceFactoryFast.cxx:10
 HistoToWorkspaceFactoryFast.cxx:11
 HistoToWorkspaceFactoryFast.cxx:12
 HistoToWorkspaceFactoryFast.cxx:13
 HistoToWorkspaceFactoryFast.cxx:14
 HistoToWorkspaceFactoryFast.cxx:15
 HistoToWorkspaceFactoryFast.cxx:16
 HistoToWorkspaceFactoryFast.cxx:17
 HistoToWorkspaceFactoryFast.cxx:18
 HistoToWorkspaceFactoryFast.cxx:19
 HistoToWorkspaceFactoryFast.cxx:20
 HistoToWorkspaceFactoryFast.cxx:21
 HistoToWorkspaceFactoryFast.cxx:22
 HistoToWorkspaceFactoryFast.cxx:23
 HistoToWorkspaceFactoryFast.cxx:24
 HistoToWorkspaceFactoryFast.cxx:25
 HistoToWorkspaceFactoryFast.cxx:26
 HistoToWorkspaceFactoryFast.cxx:27
 HistoToWorkspaceFactoryFast.cxx:28
 HistoToWorkspaceFactoryFast.cxx:29
 HistoToWorkspaceFactoryFast.cxx:30
 HistoToWorkspaceFactoryFast.cxx:31
 HistoToWorkspaceFactoryFast.cxx:32
 HistoToWorkspaceFactoryFast.cxx:33
 HistoToWorkspaceFactoryFast.cxx:34
 HistoToWorkspaceFactoryFast.cxx:35
 HistoToWorkspaceFactoryFast.cxx:36
 HistoToWorkspaceFactoryFast.cxx:37
 HistoToWorkspaceFactoryFast.cxx:38
 HistoToWorkspaceFactoryFast.cxx:39
 HistoToWorkspaceFactoryFast.cxx:40
 HistoToWorkspaceFactoryFast.cxx:41
 HistoToWorkspaceFactoryFast.cxx:42
 HistoToWorkspaceFactoryFast.cxx:43
 HistoToWorkspaceFactoryFast.cxx:44
 HistoToWorkspaceFactoryFast.cxx:45
 HistoToWorkspaceFactoryFast.cxx:46
 HistoToWorkspaceFactoryFast.cxx:47
 HistoToWorkspaceFactoryFast.cxx:48
 HistoToWorkspaceFactoryFast.cxx:49
 HistoToWorkspaceFactoryFast.cxx:50
 HistoToWorkspaceFactoryFast.cxx:51
 HistoToWorkspaceFactoryFast.cxx:52
 HistoToWorkspaceFactoryFast.cxx:53
 HistoToWorkspaceFactoryFast.cxx:54
 HistoToWorkspaceFactoryFast.cxx:55
 HistoToWorkspaceFactoryFast.cxx:56
 HistoToWorkspaceFactoryFast.cxx:57
 HistoToWorkspaceFactoryFast.cxx:58
 HistoToWorkspaceFactoryFast.cxx:59
 HistoToWorkspaceFactoryFast.cxx:60
 HistoToWorkspaceFactoryFast.cxx:61
 HistoToWorkspaceFactoryFast.cxx:62
 HistoToWorkspaceFactoryFast.cxx:63
 HistoToWorkspaceFactoryFast.cxx:64
 HistoToWorkspaceFactoryFast.cxx:65
 HistoToWorkspaceFactoryFast.cxx:66
 HistoToWorkspaceFactoryFast.cxx:67
 HistoToWorkspaceFactoryFast.cxx:68
 HistoToWorkspaceFactoryFast.cxx:69
 HistoToWorkspaceFactoryFast.cxx:70
 HistoToWorkspaceFactoryFast.cxx:71
 HistoToWorkspaceFactoryFast.cxx:72
 HistoToWorkspaceFactoryFast.cxx:73
 HistoToWorkspaceFactoryFast.cxx:74
 HistoToWorkspaceFactoryFast.cxx:75
 HistoToWorkspaceFactoryFast.cxx:76
 HistoToWorkspaceFactoryFast.cxx:77
 HistoToWorkspaceFactoryFast.cxx:78
 HistoToWorkspaceFactoryFast.cxx:79
 HistoToWorkspaceFactoryFast.cxx:80
 HistoToWorkspaceFactoryFast.cxx:81
 HistoToWorkspaceFactoryFast.cxx:82
 HistoToWorkspaceFactoryFast.cxx:83
 HistoToWorkspaceFactoryFast.cxx:84
 HistoToWorkspaceFactoryFast.cxx:85
 HistoToWorkspaceFactoryFast.cxx:86
 HistoToWorkspaceFactoryFast.cxx:87
 HistoToWorkspaceFactoryFast.cxx:88
 HistoToWorkspaceFactoryFast.cxx:89
 HistoToWorkspaceFactoryFast.cxx:90
 HistoToWorkspaceFactoryFast.cxx:91
 HistoToWorkspaceFactoryFast.cxx:92
 HistoToWorkspaceFactoryFast.cxx:93
 HistoToWorkspaceFactoryFast.cxx:94
 HistoToWorkspaceFactoryFast.cxx:95
 HistoToWorkspaceFactoryFast.cxx:96
 HistoToWorkspaceFactoryFast.cxx:97
 HistoToWorkspaceFactoryFast.cxx:98
 HistoToWorkspaceFactoryFast.cxx:99
 HistoToWorkspaceFactoryFast.cxx:100
 HistoToWorkspaceFactoryFast.cxx:101
 HistoToWorkspaceFactoryFast.cxx:102
 HistoToWorkspaceFactoryFast.cxx:103
 HistoToWorkspaceFactoryFast.cxx:104
 HistoToWorkspaceFactoryFast.cxx:105
 HistoToWorkspaceFactoryFast.cxx:106
 HistoToWorkspaceFactoryFast.cxx:107
 HistoToWorkspaceFactoryFast.cxx:108
 HistoToWorkspaceFactoryFast.cxx:109
 HistoToWorkspaceFactoryFast.cxx:110
 HistoToWorkspaceFactoryFast.cxx:111
 HistoToWorkspaceFactoryFast.cxx:112
 HistoToWorkspaceFactoryFast.cxx:113
 HistoToWorkspaceFactoryFast.cxx:114
 HistoToWorkspaceFactoryFast.cxx:115
 HistoToWorkspaceFactoryFast.cxx:116
 HistoToWorkspaceFactoryFast.cxx:117
 HistoToWorkspaceFactoryFast.cxx:118
 HistoToWorkspaceFactoryFast.cxx:119
 HistoToWorkspaceFactoryFast.cxx:120
 HistoToWorkspaceFactoryFast.cxx:121
 HistoToWorkspaceFactoryFast.cxx:122
 HistoToWorkspaceFactoryFast.cxx:123
 HistoToWorkspaceFactoryFast.cxx:124
 HistoToWorkspaceFactoryFast.cxx:125
 HistoToWorkspaceFactoryFast.cxx:126
 HistoToWorkspaceFactoryFast.cxx:127
 HistoToWorkspaceFactoryFast.cxx:128
 HistoToWorkspaceFactoryFast.cxx:129
 HistoToWorkspaceFactoryFast.cxx:130
 HistoToWorkspaceFactoryFast.cxx:131
 HistoToWorkspaceFactoryFast.cxx:132
 HistoToWorkspaceFactoryFast.cxx:133
 HistoToWorkspaceFactoryFast.cxx:134
 HistoToWorkspaceFactoryFast.cxx:135
 HistoToWorkspaceFactoryFast.cxx:136
 HistoToWorkspaceFactoryFast.cxx:137
 HistoToWorkspaceFactoryFast.cxx:138
 HistoToWorkspaceFactoryFast.cxx:139
 HistoToWorkspaceFactoryFast.cxx:140
 HistoToWorkspaceFactoryFast.cxx:141
 HistoToWorkspaceFactoryFast.cxx:142
 HistoToWorkspaceFactoryFast.cxx:143
 HistoToWorkspaceFactoryFast.cxx:144
 HistoToWorkspaceFactoryFast.cxx:145
 HistoToWorkspaceFactoryFast.cxx:146
 HistoToWorkspaceFactoryFast.cxx:147
 HistoToWorkspaceFactoryFast.cxx:148
 HistoToWorkspaceFactoryFast.cxx:149
 HistoToWorkspaceFactoryFast.cxx:150
 HistoToWorkspaceFactoryFast.cxx:151
 HistoToWorkspaceFactoryFast.cxx:152
 HistoToWorkspaceFactoryFast.cxx:153
 HistoToWorkspaceFactoryFast.cxx:154
 HistoToWorkspaceFactoryFast.cxx:155
 HistoToWorkspaceFactoryFast.cxx:156
 HistoToWorkspaceFactoryFast.cxx:157
 HistoToWorkspaceFactoryFast.cxx:158
 HistoToWorkspaceFactoryFast.cxx:159
 HistoToWorkspaceFactoryFast.cxx:160
 HistoToWorkspaceFactoryFast.cxx:161
 HistoToWorkspaceFactoryFast.cxx:162
 HistoToWorkspaceFactoryFast.cxx:163
 HistoToWorkspaceFactoryFast.cxx:164
 HistoToWorkspaceFactoryFast.cxx:165
 HistoToWorkspaceFactoryFast.cxx:166
 HistoToWorkspaceFactoryFast.cxx:167
 HistoToWorkspaceFactoryFast.cxx:168
 HistoToWorkspaceFactoryFast.cxx:169
 HistoToWorkspaceFactoryFast.cxx:170
 HistoToWorkspaceFactoryFast.cxx:171
 HistoToWorkspaceFactoryFast.cxx:172
 HistoToWorkspaceFactoryFast.cxx:173
 HistoToWorkspaceFactoryFast.cxx:174
 HistoToWorkspaceFactoryFast.cxx:175
 HistoToWorkspaceFactoryFast.cxx:176
 HistoToWorkspaceFactoryFast.cxx:177
 HistoToWorkspaceFactoryFast.cxx:178
 HistoToWorkspaceFactoryFast.cxx:179
 HistoToWorkspaceFactoryFast.cxx:180
 HistoToWorkspaceFactoryFast.cxx:181
 HistoToWorkspaceFactoryFast.cxx:182
 HistoToWorkspaceFactoryFast.cxx:183
 HistoToWorkspaceFactoryFast.cxx:184
 HistoToWorkspaceFactoryFast.cxx:185
 HistoToWorkspaceFactoryFast.cxx:186
 HistoToWorkspaceFactoryFast.cxx:187
 HistoToWorkspaceFactoryFast.cxx:188
 HistoToWorkspaceFactoryFast.cxx:189
 HistoToWorkspaceFactoryFast.cxx:190
 HistoToWorkspaceFactoryFast.cxx:191
 HistoToWorkspaceFactoryFast.cxx:192
 HistoToWorkspaceFactoryFast.cxx:193
 HistoToWorkspaceFactoryFast.cxx:194
 HistoToWorkspaceFactoryFast.cxx:195
 HistoToWorkspaceFactoryFast.cxx:196
 HistoToWorkspaceFactoryFast.cxx:197
 HistoToWorkspaceFactoryFast.cxx:198
 HistoToWorkspaceFactoryFast.cxx:199
 HistoToWorkspaceFactoryFast.cxx:200
 HistoToWorkspaceFactoryFast.cxx:201
 HistoToWorkspaceFactoryFast.cxx:202
 HistoToWorkspaceFactoryFast.cxx:203
 HistoToWorkspaceFactoryFast.cxx:204
 HistoToWorkspaceFactoryFast.cxx:205
 HistoToWorkspaceFactoryFast.cxx:206
 HistoToWorkspaceFactoryFast.cxx:207
 HistoToWorkspaceFactoryFast.cxx:208
 HistoToWorkspaceFactoryFast.cxx:209
 HistoToWorkspaceFactoryFast.cxx:210
 HistoToWorkspaceFactoryFast.cxx:211
 HistoToWorkspaceFactoryFast.cxx:212
 HistoToWorkspaceFactoryFast.cxx:213
 HistoToWorkspaceFactoryFast.cxx:214
 HistoToWorkspaceFactoryFast.cxx:215
 HistoToWorkspaceFactoryFast.cxx:216
 HistoToWorkspaceFactoryFast.cxx:217
 HistoToWorkspaceFactoryFast.cxx:218
 HistoToWorkspaceFactoryFast.cxx:219
 HistoToWorkspaceFactoryFast.cxx:220
 HistoToWorkspaceFactoryFast.cxx:221
 HistoToWorkspaceFactoryFast.cxx:222
 HistoToWorkspaceFactoryFast.cxx:223
 HistoToWorkspaceFactoryFast.cxx:224
 HistoToWorkspaceFactoryFast.cxx:225
 HistoToWorkspaceFactoryFast.cxx:226
 HistoToWorkspaceFactoryFast.cxx:227
 HistoToWorkspaceFactoryFast.cxx:228
 HistoToWorkspaceFactoryFast.cxx:229
 HistoToWorkspaceFactoryFast.cxx:230
 HistoToWorkspaceFactoryFast.cxx:231
 HistoToWorkspaceFactoryFast.cxx:232
 HistoToWorkspaceFactoryFast.cxx:233
 HistoToWorkspaceFactoryFast.cxx:234
 HistoToWorkspaceFactoryFast.cxx:235
 HistoToWorkspaceFactoryFast.cxx:236
 HistoToWorkspaceFactoryFast.cxx:237
 HistoToWorkspaceFactoryFast.cxx:238
 HistoToWorkspaceFactoryFast.cxx:239
 HistoToWorkspaceFactoryFast.cxx:240
 HistoToWorkspaceFactoryFast.cxx:241
 HistoToWorkspaceFactoryFast.cxx:242
 HistoToWorkspaceFactoryFast.cxx:243
 HistoToWorkspaceFactoryFast.cxx:244
 HistoToWorkspaceFactoryFast.cxx:245
 HistoToWorkspaceFactoryFast.cxx:246
 HistoToWorkspaceFactoryFast.cxx:247
 HistoToWorkspaceFactoryFast.cxx:248
 HistoToWorkspaceFactoryFast.cxx:249
 HistoToWorkspaceFactoryFast.cxx:250
 HistoToWorkspaceFactoryFast.cxx:251
 HistoToWorkspaceFactoryFast.cxx:252
 HistoToWorkspaceFactoryFast.cxx:253
 HistoToWorkspaceFactoryFast.cxx:254
 HistoToWorkspaceFactoryFast.cxx:255
 HistoToWorkspaceFactoryFast.cxx:256
 HistoToWorkspaceFactoryFast.cxx:257
 HistoToWorkspaceFactoryFast.cxx:258
 HistoToWorkspaceFactoryFast.cxx:259
 HistoToWorkspaceFactoryFast.cxx:260
 HistoToWorkspaceFactoryFast.cxx:261
 HistoToWorkspaceFactoryFast.cxx:262
 HistoToWorkspaceFactoryFast.cxx:263
 HistoToWorkspaceFactoryFast.cxx:264
 HistoToWorkspaceFactoryFast.cxx:265
 HistoToWorkspaceFactoryFast.cxx:266
 HistoToWorkspaceFactoryFast.cxx:267
 HistoToWorkspaceFactoryFast.cxx:268
 HistoToWorkspaceFactoryFast.cxx:269
 HistoToWorkspaceFactoryFast.cxx:270
 HistoToWorkspaceFactoryFast.cxx:271
 HistoToWorkspaceFactoryFast.cxx:272
 HistoToWorkspaceFactoryFast.cxx:273
 HistoToWorkspaceFactoryFast.cxx:274
 HistoToWorkspaceFactoryFast.cxx:275
 HistoToWorkspaceFactoryFast.cxx:276
 HistoToWorkspaceFactoryFast.cxx:277
 HistoToWorkspaceFactoryFast.cxx:278
 HistoToWorkspaceFactoryFast.cxx:279
 HistoToWorkspaceFactoryFast.cxx:280
 HistoToWorkspaceFactoryFast.cxx:281
 HistoToWorkspaceFactoryFast.cxx:282
 HistoToWorkspaceFactoryFast.cxx:283
 HistoToWorkspaceFactoryFast.cxx:284
 HistoToWorkspaceFactoryFast.cxx:285
 HistoToWorkspaceFactoryFast.cxx:286
 HistoToWorkspaceFactoryFast.cxx:287
 HistoToWorkspaceFactoryFast.cxx:288
 HistoToWorkspaceFactoryFast.cxx:289
 HistoToWorkspaceFactoryFast.cxx:290
 HistoToWorkspaceFactoryFast.cxx:291
 HistoToWorkspaceFactoryFast.cxx:292
 HistoToWorkspaceFactoryFast.cxx:293
 HistoToWorkspaceFactoryFast.cxx:294
 HistoToWorkspaceFactoryFast.cxx:295
 HistoToWorkspaceFactoryFast.cxx:296
 HistoToWorkspaceFactoryFast.cxx:297
 HistoToWorkspaceFactoryFast.cxx:298
 HistoToWorkspaceFactoryFast.cxx:299
 HistoToWorkspaceFactoryFast.cxx:300
 HistoToWorkspaceFactoryFast.cxx:301
 HistoToWorkspaceFactoryFast.cxx:302
 HistoToWorkspaceFactoryFast.cxx:303
 HistoToWorkspaceFactoryFast.cxx:304
 HistoToWorkspaceFactoryFast.cxx:305
 HistoToWorkspaceFactoryFast.cxx:306
 HistoToWorkspaceFactoryFast.cxx:307
 HistoToWorkspaceFactoryFast.cxx:308
 HistoToWorkspaceFactoryFast.cxx:309
 HistoToWorkspaceFactoryFast.cxx:310
 HistoToWorkspaceFactoryFast.cxx:311
 HistoToWorkspaceFactoryFast.cxx:312
 HistoToWorkspaceFactoryFast.cxx:313
 HistoToWorkspaceFactoryFast.cxx:314
 HistoToWorkspaceFactoryFast.cxx:315
 HistoToWorkspaceFactoryFast.cxx:316
 HistoToWorkspaceFactoryFast.cxx:317
 HistoToWorkspaceFactoryFast.cxx:318
 HistoToWorkspaceFactoryFast.cxx:319
 HistoToWorkspaceFactoryFast.cxx:320
 HistoToWorkspaceFactoryFast.cxx:321
 HistoToWorkspaceFactoryFast.cxx:322
 HistoToWorkspaceFactoryFast.cxx:323
 HistoToWorkspaceFactoryFast.cxx:324
 HistoToWorkspaceFactoryFast.cxx:325
 HistoToWorkspaceFactoryFast.cxx:326
 HistoToWorkspaceFactoryFast.cxx:327
 HistoToWorkspaceFactoryFast.cxx:328
 HistoToWorkspaceFactoryFast.cxx:329
 HistoToWorkspaceFactoryFast.cxx:330
 HistoToWorkspaceFactoryFast.cxx:331
 HistoToWorkspaceFactoryFast.cxx:332
 HistoToWorkspaceFactoryFast.cxx:333
 HistoToWorkspaceFactoryFast.cxx:334
 HistoToWorkspaceFactoryFast.cxx:335
 HistoToWorkspaceFactoryFast.cxx:336
 HistoToWorkspaceFactoryFast.cxx:337
 HistoToWorkspaceFactoryFast.cxx:338
 HistoToWorkspaceFactoryFast.cxx:339
 HistoToWorkspaceFactoryFast.cxx:340
 HistoToWorkspaceFactoryFast.cxx:341
 HistoToWorkspaceFactoryFast.cxx:342
 HistoToWorkspaceFactoryFast.cxx:343
 HistoToWorkspaceFactoryFast.cxx:344
 HistoToWorkspaceFactoryFast.cxx:345
 HistoToWorkspaceFactoryFast.cxx:346
 HistoToWorkspaceFactoryFast.cxx:347
 HistoToWorkspaceFactoryFast.cxx:348
 HistoToWorkspaceFactoryFast.cxx:349
 HistoToWorkspaceFactoryFast.cxx:350
 HistoToWorkspaceFactoryFast.cxx:351
 HistoToWorkspaceFactoryFast.cxx:352
 HistoToWorkspaceFactoryFast.cxx:353
 HistoToWorkspaceFactoryFast.cxx:354
 HistoToWorkspaceFactoryFast.cxx:355
 HistoToWorkspaceFactoryFast.cxx:356
 HistoToWorkspaceFactoryFast.cxx:357
 HistoToWorkspaceFactoryFast.cxx:358
 HistoToWorkspaceFactoryFast.cxx:359
 HistoToWorkspaceFactoryFast.cxx:360
 HistoToWorkspaceFactoryFast.cxx:361
 HistoToWorkspaceFactoryFast.cxx:362
 HistoToWorkspaceFactoryFast.cxx:363
 HistoToWorkspaceFactoryFast.cxx:364
 HistoToWorkspaceFactoryFast.cxx:365
 HistoToWorkspaceFactoryFast.cxx:366
 HistoToWorkspaceFactoryFast.cxx:367
 HistoToWorkspaceFactoryFast.cxx:368
 HistoToWorkspaceFactoryFast.cxx:369
 HistoToWorkspaceFactoryFast.cxx:370
 HistoToWorkspaceFactoryFast.cxx:371
 HistoToWorkspaceFactoryFast.cxx:372
 HistoToWorkspaceFactoryFast.cxx:373
 HistoToWorkspaceFactoryFast.cxx:374
 HistoToWorkspaceFactoryFast.cxx:375
 HistoToWorkspaceFactoryFast.cxx:376
 HistoToWorkspaceFactoryFast.cxx:377
 HistoToWorkspaceFactoryFast.cxx:378
 HistoToWorkspaceFactoryFast.cxx:379
 HistoToWorkspaceFactoryFast.cxx:380
 HistoToWorkspaceFactoryFast.cxx:381
 HistoToWorkspaceFactoryFast.cxx:382
 HistoToWorkspaceFactoryFast.cxx:383
 HistoToWorkspaceFactoryFast.cxx:384
 HistoToWorkspaceFactoryFast.cxx:385
 HistoToWorkspaceFactoryFast.cxx:386
 HistoToWorkspaceFactoryFast.cxx:387
 HistoToWorkspaceFactoryFast.cxx:388
 HistoToWorkspaceFactoryFast.cxx:389
 HistoToWorkspaceFactoryFast.cxx:390
 HistoToWorkspaceFactoryFast.cxx:391
 HistoToWorkspaceFactoryFast.cxx:392
 HistoToWorkspaceFactoryFast.cxx:393
 HistoToWorkspaceFactoryFast.cxx:394
 HistoToWorkspaceFactoryFast.cxx:395
 HistoToWorkspaceFactoryFast.cxx:396
 HistoToWorkspaceFactoryFast.cxx:397
 HistoToWorkspaceFactoryFast.cxx:398
 HistoToWorkspaceFactoryFast.cxx:399
 HistoToWorkspaceFactoryFast.cxx:400
 HistoToWorkspaceFactoryFast.cxx:401
 HistoToWorkspaceFactoryFast.cxx:402
 HistoToWorkspaceFactoryFast.cxx:403
 HistoToWorkspaceFactoryFast.cxx:404
 HistoToWorkspaceFactoryFast.cxx:405
 HistoToWorkspaceFactoryFast.cxx:406
 HistoToWorkspaceFactoryFast.cxx:407
 HistoToWorkspaceFactoryFast.cxx:408
 HistoToWorkspaceFactoryFast.cxx:409
 HistoToWorkspaceFactoryFast.cxx:410
 HistoToWorkspaceFactoryFast.cxx:411
 HistoToWorkspaceFactoryFast.cxx:412
 HistoToWorkspaceFactoryFast.cxx:413
 HistoToWorkspaceFactoryFast.cxx:414
 HistoToWorkspaceFactoryFast.cxx:415
 HistoToWorkspaceFactoryFast.cxx:416
 HistoToWorkspaceFactoryFast.cxx:417
 HistoToWorkspaceFactoryFast.cxx:418
 HistoToWorkspaceFactoryFast.cxx:419
 HistoToWorkspaceFactoryFast.cxx:420
 HistoToWorkspaceFactoryFast.cxx:421
 HistoToWorkspaceFactoryFast.cxx:422
 HistoToWorkspaceFactoryFast.cxx:423
 HistoToWorkspaceFactoryFast.cxx:424
 HistoToWorkspaceFactoryFast.cxx:425
 HistoToWorkspaceFactoryFast.cxx:426
 HistoToWorkspaceFactoryFast.cxx:427
 HistoToWorkspaceFactoryFast.cxx:428
 HistoToWorkspaceFactoryFast.cxx:429
 HistoToWorkspaceFactoryFast.cxx:430
 HistoToWorkspaceFactoryFast.cxx:431
 HistoToWorkspaceFactoryFast.cxx:432
 HistoToWorkspaceFactoryFast.cxx:433
 HistoToWorkspaceFactoryFast.cxx:434
 HistoToWorkspaceFactoryFast.cxx:435
 HistoToWorkspaceFactoryFast.cxx:436
 HistoToWorkspaceFactoryFast.cxx:437
 HistoToWorkspaceFactoryFast.cxx:438
 HistoToWorkspaceFactoryFast.cxx:439
 HistoToWorkspaceFactoryFast.cxx:440
 HistoToWorkspaceFactoryFast.cxx:441
 HistoToWorkspaceFactoryFast.cxx:442
 HistoToWorkspaceFactoryFast.cxx:443
 HistoToWorkspaceFactoryFast.cxx:444
 HistoToWorkspaceFactoryFast.cxx:445
 HistoToWorkspaceFactoryFast.cxx:446
 HistoToWorkspaceFactoryFast.cxx:447
 HistoToWorkspaceFactoryFast.cxx:448
 HistoToWorkspaceFactoryFast.cxx:449
 HistoToWorkspaceFactoryFast.cxx:450
 HistoToWorkspaceFactoryFast.cxx:451
 HistoToWorkspaceFactoryFast.cxx:452
 HistoToWorkspaceFactoryFast.cxx:453
 HistoToWorkspaceFactoryFast.cxx:454
 HistoToWorkspaceFactoryFast.cxx:455
 HistoToWorkspaceFactoryFast.cxx:456
 HistoToWorkspaceFactoryFast.cxx:457
 HistoToWorkspaceFactoryFast.cxx:458
 HistoToWorkspaceFactoryFast.cxx:459
 HistoToWorkspaceFactoryFast.cxx:460
 HistoToWorkspaceFactoryFast.cxx:461
 HistoToWorkspaceFactoryFast.cxx:462
 HistoToWorkspaceFactoryFast.cxx:463
 HistoToWorkspaceFactoryFast.cxx:464
 HistoToWorkspaceFactoryFast.cxx:465
 HistoToWorkspaceFactoryFast.cxx:466
 HistoToWorkspaceFactoryFast.cxx:467
 HistoToWorkspaceFactoryFast.cxx:468
 HistoToWorkspaceFactoryFast.cxx:469
 HistoToWorkspaceFactoryFast.cxx:470
 HistoToWorkspaceFactoryFast.cxx:471
 HistoToWorkspaceFactoryFast.cxx:472
 HistoToWorkspaceFactoryFast.cxx:473
 HistoToWorkspaceFactoryFast.cxx:474
 HistoToWorkspaceFactoryFast.cxx:475
 HistoToWorkspaceFactoryFast.cxx:476
 HistoToWorkspaceFactoryFast.cxx:477
 HistoToWorkspaceFactoryFast.cxx:478
 HistoToWorkspaceFactoryFast.cxx:479
 HistoToWorkspaceFactoryFast.cxx:480
 HistoToWorkspaceFactoryFast.cxx:481
 HistoToWorkspaceFactoryFast.cxx:482
 HistoToWorkspaceFactoryFast.cxx:483
 HistoToWorkspaceFactoryFast.cxx:484
 HistoToWorkspaceFactoryFast.cxx:485
 HistoToWorkspaceFactoryFast.cxx:486
 HistoToWorkspaceFactoryFast.cxx:487
 HistoToWorkspaceFactoryFast.cxx:488
 HistoToWorkspaceFactoryFast.cxx:489
 HistoToWorkspaceFactoryFast.cxx:490
 HistoToWorkspaceFactoryFast.cxx:491
 HistoToWorkspaceFactoryFast.cxx:492
 HistoToWorkspaceFactoryFast.cxx:493
 HistoToWorkspaceFactoryFast.cxx:494
 HistoToWorkspaceFactoryFast.cxx:495
 HistoToWorkspaceFactoryFast.cxx:496
 HistoToWorkspaceFactoryFast.cxx:497
 HistoToWorkspaceFactoryFast.cxx:498
 HistoToWorkspaceFactoryFast.cxx:499
 HistoToWorkspaceFactoryFast.cxx:500
 HistoToWorkspaceFactoryFast.cxx:501
 HistoToWorkspaceFactoryFast.cxx:502
 HistoToWorkspaceFactoryFast.cxx:503
 HistoToWorkspaceFactoryFast.cxx:504
 HistoToWorkspaceFactoryFast.cxx:505
 HistoToWorkspaceFactoryFast.cxx:506
 HistoToWorkspaceFactoryFast.cxx:507
 HistoToWorkspaceFactoryFast.cxx:508
 HistoToWorkspaceFactoryFast.cxx:509
 HistoToWorkspaceFactoryFast.cxx:510
 HistoToWorkspaceFactoryFast.cxx:511
 HistoToWorkspaceFactoryFast.cxx:512
 HistoToWorkspaceFactoryFast.cxx:513
 HistoToWorkspaceFactoryFast.cxx:514
 HistoToWorkspaceFactoryFast.cxx:515
 HistoToWorkspaceFactoryFast.cxx:516
 HistoToWorkspaceFactoryFast.cxx:517
 HistoToWorkspaceFactoryFast.cxx:518
 HistoToWorkspaceFactoryFast.cxx:519
 HistoToWorkspaceFactoryFast.cxx:520
 HistoToWorkspaceFactoryFast.cxx:521
 HistoToWorkspaceFactoryFast.cxx:522
 HistoToWorkspaceFactoryFast.cxx:523
 HistoToWorkspaceFactoryFast.cxx:524
 HistoToWorkspaceFactoryFast.cxx:525
 HistoToWorkspaceFactoryFast.cxx:526
 HistoToWorkspaceFactoryFast.cxx:527
 HistoToWorkspaceFactoryFast.cxx:528
 HistoToWorkspaceFactoryFast.cxx:529
 HistoToWorkspaceFactoryFast.cxx:530
 HistoToWorkspaceFactoryFast.cxx:531
 HistoToWorkspaceFactoryFast.cxx:532
 HistoToWorkspaceFactoryFast.cxx:533
 HistoToWorkspaceFactoryFast.cxx:534
 HistoToWorkspaceFactoryFast.cxx:535
 HistoToWorkspaceFactoryFast.cxx:536
 HistoToWorkspaceFactoryFast.cxx:537
 HistoToWorkspaceFactoryFast.cxx:538
 HistoToWorkspaceFactoryFast.cxx:539
 HistoToWorkspaceFactoryFast.cxx:540
 HistoToWorkspaceFactoryFast.cxx:541
 HistoToWorkspaceFactoryFast.cxx:542
 HistoToWorkspaceFactoryFast.cxx:543
 HistoToWorkspaceFactoryFast.cxx:544
 HistoToWorkspaceFactoryFast.cxx:545
 HistoToWorkspaceFactoryFast.cxx:546
 HistoToWorkspaceFactoryFast.cxx:547
 HistoToWorkspaceFactoryFast.cxx:548
 HistoToWorkspaceFactoryFast.cxx:549
 HistoToWorkspaceFactoryFast.cxx:550
 HistoToWorkspaceFactoryFast.cxx:551
 HistoToWorkspaceFactoryFast.cxx:552
 HistoToWorkspaceFactoryFast.cxx:553
 HistoToWorkspaceFactoryFast.cxx:554
 HistoToWorkspaceFactoryFast.cxx:555
 HistoToWorkspaceFactoryFast.cxx:556
 HistoToWorkspaceFactoryFast.cxx:557
 HistoToWorkspaceFactoryFast.cxx:558
 HistoToWorkspaceFactoryFast.cxx:559
 HistoToWorkspaceFactoryFast.cxx:560
 HistoToWorkspaceFactoryFast.cxx:561
 HistoToWorkspaceFactoryFast.cxx:562
 HistoToWorkspaceFactoryFast.cxx:563
 HistoToWorkspaceFactoryFast.cxx:564
 HistoToWorkspaceFactoryFast.cxx:565
 HistoToWorkspaceFactoryFast.cxx:566
 HistoToWorkspaceFactoryFast.cxx:567
 HistoToWorkspaceFactoryFast.cxx:568
 HistoToWorkspaceFactoryFast.cxx:569
 HistoToWorkspaceFactoryFast.cxx:570
 HistoToWorkspaceFactoryFast.cxx:571
 HistoToWorkspaceFactoryFast.cxx:572
 HistoToWorkspaceFactoryFast.cxx:573
 HistoToWorkspaceFactoryFast.cxx:574
 HistoToWorkspaceFactoryFast.cxx:575
 HistoToWorkspaceFactoryFast.cxx:576
 HistoToWorkspaceFactoryFast.cxx:577
 HistoToWorkspaceFactoryFast.cxx:578
 HistoToWorkspaceFactoryFast.cxx:579
 HistoToWorkspaceFactoryFast.cxx:580
 HistoToWorkspaceFactoryFast.cxx:581
 HistoToWorkspaceFactoryFast.cxx:582
 HistoToWorkspaceFactoryFast.cxx:583
 HistoToWorkspaceFactoryFast.cxx:584
 HistoToWorkspaceFactoryFast.cxx:585
 HistoToWorkspaceFactoryFast.cxx:586
 HistoToWorkspaceFactoryFast.cxx:587
 HistoToWorkspaceFactoryFast.cxx:588
 HistoToWorkspaceFactoryFast.cxx:589
 HistoToWorkspaceFactoryFast.cxx:590
 HistoToWorkspaceFactoryFast.cxx:591
 HistoToWorkspaceFactoryFast.cxx:592
 HistoToWorkspaceFactoryFast.cxx:593
 HistoToWorkspaceFactoryFast.cxx:594
 HistoToWorkspaceFactoryFast.cxx:595
 HistoToWorkspaceFactoryFast.cxx:596
 HistoToWorkspaceFactoryFast.cxx:597
 HistoToWorkspaceFactoryFast.cxx:598
 HistoToWorkspaceFactoryFast.cxx:599
 HistoToWorkspaceFactoryFast.cxx:600
 HistoToWorkspaceFactoryFast.cxx:601
 HistoToWorkspaceFactoryFast.cxx:602
 HistoToWorkspaceFactoryFast.cxx:603
 HistoToWorkspaceFactoryFast.cxx:604
 HistoToWorkspaceFactoryFast.cxx:605
 HistoToWorkspaceFactoryFast.cxx:606
 HistoToWorkspaceFactoryFast.cxx:607
 HistoToWorkspaceFactoryFast.cxx:608
 HistoToWorkspaceFactoryFast.cxx:609
 HistoToWorkspaceFactoryFast.cxx:610
 HistoToWorkspaceFactoryFast.cxx:611
 HistoToWorkspaceFactoryFast.cxx:612
 HistoToWorkspaceFactoryFast.cxx:613
 HistoToWorkspaceFactoryFast.cxx:614
 HistoToWorkspaceFactoryFast.cxx:615
 HistoToWorkspaceFactoryFast.cxx:616
 HistoToWorkspaceFactoryFast.cxx:617
 HistoToWorkspaceFactoryFast.cxx:618
 HistoToWorkspaceFactoryFast.cxx:619
 HistoToWorkspaceFactoryFast.cxx:620
 HistoToWorkspaceFactoryFast.cxx:621
 HistoToWorkspaceFactoryFast.cxx:622
 HistoToWorkspaceFactoryFast.cxx:623
 HistoToWorkspaceFactoryFast.cxx:624
 HistoToWorkspaceFactoryFast.cxx:625
 HistoToWorkspaceFactoryFast.cxx:626
 HistoToWorkspaceFactoryFast.cxx:627
 HistoToWorkspaceFactoryFast.cxx:628
 HistoToWorkspaceFactoryFast.cxx:629
 HistoToWorkspaceFactoryFast.cxx:630
 HistoToWorkspaceFactoryFast.cxx:631
 HistoToWorkspaceFactoryFast.cxx:632
 HistoToWorkspaceFactoryFast.cxx:633
 HistoToWorkspaceFactoryFast.cxx:634
 HistoToWorkspaceFactoryFast.cxx:635
 HistoToWorkspaceFactoryFast.cxx:636
 HistoToWorkspaceFactoryFast.cxx:637
 HistoToWorkspaceFactoryFast.cxx:638
 HistoToWorkspaceFactoryFast.cxx:639
 HistoToWorkspaceFactoryFast.cxx:640
 HistoToWorkspaceFactoryFast.cxx:641
 HistoToWorkspaceFactoryFast.cxx:642
 HistoToWorkspaceFactoryFast.cxx:643
 HistoToWorkspaceFactoryFast.cxx:644
 HistoToWorkspaceFactoryFast.cxx:645
 HistoToWorkspaceFactoryFast.cxx:646
 HistoToWorkspaceFactoryFast.cxx:647
 HistoToWorkspaceFactoryFast.cxx:648
 HistoToWorkspaceFactoryFast.cxx:649
 HistoToWorkspaceFactoryFast.cxx:650
 HistoToWorkspaceFactoryFast.cxx:651
 HistoToWorkspaceFactoryFast.cxx:652
 HistoToWorkspaceFactoryFast.cxx:653
 HistoToWorkspaceFactoryFast.cxx:654
 HistoToWorkspaceFactoryFast.cxx:655
 HistoToWorkspaceFactoryFast.cxx:656
 HistoToWorkspaceFactoryFast.cxx:657
 HistoToWorkspaceFactoryFast.cxx:658
 HistoToWorkspaceFactoryFast.cxx:659
 HistoToWorkspaceFactoryFast.cxx:660
 HistoToWorkspaceFactoryFast.cxx:661
 HistoToWorkspaceFactoryFast.cxx:662
 HistoToWorkspaceFactoryFast.cxx:663
 HistoToWorkspaceFactoryFast.cxx:664
 HistoToWorkspaceFactoryFast.cxx:665
 HistoToWorkspaceFactoryFast.cxx:666
 HistoToWorkspaceFactoryFast.cxx:667
 HistoToWorkspaceFactoryFast.cxx:668
 HistoToWorkspaceFactoryFast.cxx:669
 HistoToWorkspaceFactoryFast.cxx:670
 HistoToWorkspaceFactoryFast.cxx:671
 HistoToWorkspaceFactoryFast.cxx:672
 HistoToWorkspaceFactoryFast.cxx:673
 HistoToWorkspaceFactoryFast.cxx:674
 HistoToWorkspaceFactoryFast.cxx:675
 HistoToWorkspaceFactoryFast.cxx:676
 HistoToWorkspaceFactoryFast.cxx:677
 HistoToWorkspaceFactoryFast.cxx:678
 HistoToWorkspaceFactoryFast.cxx:679
 HistoToWorkspaceFactoryFast.cxx:680
 HistoToWorkspaceFactoryFast.cxx:681
 HistoToWorkspaceFactoryFast.cxx:682
 HistoToWorkspaceFactoryFast.cxx:683
 HistoToWorkspaceFactoryFast.cxx:684
 HistoToWorkspaceFactoryFast.cxx:685
 HistoToWorkspaceFactoryFast.cxx:686
 HistoToWorkspaceFactoryFast.cxx:687
 HistoToWorkspaceFactoryFast.cxx:688
 HistoToWorkspaceFactoryFast.cxx:689
 HistoToWorkspaceFactoryFast.cxx:690
 HistoToWorkspaceFactoryFast.cxx:691
 HistoToWorkspaceFactoryFast.cxx:692
 HistoToWorkspaceFactoryFast.cxx:693
 HistoToWorkspaceFactoryFast.cxx:694
 HistoToWorkspaceFactoryFast.cxx:695
 HistoToWorkspaceFactoryFast.cxx:696
 HistoToWorkspaceFactoryFast.cxx:697
 HistoToWorkspaceFactoryFast.cxx:698
 HistoToWorkspaceFactoryFast.cxx:699
 HistoToWorkspaceFactoryFast.cxx:700
 HistoToWorkspaceFactoryFast.cxx:701
 HistoToWorkspaceFactoryFast.cxx:702
 HistoToWorkspaceFactoryFast.cxx:703
 HistoToWorkspaceFactoryFast.cxx:704
 HistoToWorkspaceFactoryFast.cxx:705
 HistoToWorkspaceFactoryFast.cxx:706
 HistoToWorkspaceFactoryFast.cxx:707
 HistoToWorkspaceFactoryFast.cxx:708
 HistoToWorkspaceFactoryFast.cxx:709
 HistoToWorkspaceFactoryFast.cxx:710
 HistoToWorkspaceFactoryFast.cxx:711
 HistoToWorkspaceFactoryFast.cxx:712
 HistoToWorkspaceFactoryFast.cxx:713
 HistoToWorkspaceFactoryFast.cxx:714
 HistoToWorkspaceFactoryFast.cxx:715
 HistoToWorkspaceFactoryFast.cxx:716
 HistoToWorkspaceFactoryFast.cxx:717
 HistoToWorkspaceFactoryFast.cxx:718
 HistoToWorkspaceFactoryFast.cxx:719
 HistoToWorkspaceFactoryFast.cxx:720
 HistoToWorkspaceFactoryFast.cxx:721
 HistoToWorkspaceFactoryFast.cxx:722
 HistoToWorkspaceFactoryFast.cxx:723
 HistoToWorkspaceFactoryFast.cxx:724
 HistoToWorkspaceFactoryFast.cxx:725
 HistoToWorkspaceFactoryFast.cxx:726
 HistoToWorkspaceFactoryFast.cxx:727
 HistoToWorkspaceFactoryFast.cxx:728
 HistoToWorkspaceFactoryFast.cxx:729
 HistoToWorkspaceFactoryFast.cxx:730
 HistoToWorkspaceFactoryFast.cxx:731
 HistoToWorkspaceFactoryFast.cxx:732
 HistoToWorkspaceFactoryFast.cxx:733
 HistoToWorkspaceFactoryFast.cxx:734
 HistoToWorkspaceFactoryFast.cxx:735
 HistoToWorkspaceFactoryFast.cxx:736
 HistoToWorkspaceFactoryFast.cxx:737
 HistoToWorkspaceFactoryFast.cxx:738
 HistoToWorkspaceFactoryFast.cxx:739
 HistoToWorkspaceFactoryFast.cxx:740
 HistoToWorkspaceFactoryFast.cxx:741
 HistoToWorkspaceFactoryFast.cxx:742
 HistoToWorkspaceFactoryFast.cxx:743
 HistoToWorkspaceFactoryFast.cxx:744
 HistoToWorkspaceFactoryFast.cxx:745
 HistoToWorkspaceFactoryFast.cxx:746
 HistoToWorkspaceFactoryFast.cxx:747
 HistoToWorkspaceFactoryFast.cxx:748
 HistoToWorkspaceFactoryFast.cxx:749
 HistoToWorkspaceFactoryFast.cxx:750
 HistoToWorkspaceFactoryFast.cxx:751
 HistoToWorkspaceFactoryFast.cxx:752
 HistoToWorkspaceFactoryFast.cxx:753
 HistoToWorkspaceFactoryFast.cxx:754
 HistoToWorkspaceFactoryFast.cxx:755
 HistoToWorkspaceFactoryFast.cxx:756
 HistoToWorkspaceFactoryFast.cxx:757
 HistoToWorkspaceFactoryFast.cxx:758
 HistoToWorkspaceFactoryFast.cxx:759
 HistoToWorkspaceFactoryFast.cxx:760
 HistoToWorkspaceFactoryFast.cxx:761
 HistoToWorkspaceFactoryFast.cxx:762
 HistoToWorkspaceFactoryFast.cxx:763
 HistoToWorkspaceFactoryFast.cxx:764
 HistoToWorkspaceFactoryFast.cxx:765
 HistoToWorkspaceFactoryFast.cxx:766
 HistoToWorkspaceFactoryFast.cxx:767
 HistoToWorkspaceFactoryFast.cxx:768
 HistoToWorkspaceFactoryFast.cxx:769
 HistoToWorkspaceFactoryFast.cxx:770
 HistoToWorkspaceFactoryFast.cxx:771
 HistoToWorkspaceFactoryFast.cxx:772
 HistoToWorkspaceFactoryFast.cxx:773
 HistoToWorkspaceFactoryFast.cxx:774
 HistoToWorkspaceFactoryFast.cxx:775
 HistoToWorkspaceFactoryFast.cxx:776
 HistoToWorkspaceFactoryFast.cxx:777
 HistoToWorkspaceFactoryFast.cxx:778
 HistoToWorkspaceFactoryFast.cxx:779
 HistoToWorkspaceFactoryFast.cxx:780
 HistoToWorkspaceFactoryFast.cxx:781
 HistoToWorkspaceFactoryFast.cxx:782
 HistoToWorkspaceFactoryFast.cxx:783
 HistoToWorkspaceFactoryFast.cxx:784
 HistoToWorkspaceFactoryFast.cxx:785
 HistoToWorkspaceFactoryFast.cxx:786
 HistoToWorkspaceFactoryFast.cxx:787
 HistoToWorkspaceFactoryFast.cxx:788
 HistoToWorkspaceFactoryFast.cxx:789
 HistoToWorkspaceFactoryFast.cxx:790
 HistoToWorkspaceFactoryFast.cxx:791
 HistoToWorkspaceFactoryFast.cxx:792
 HistoToWorkspaceFactoryFast.cxx:793
 HistoToWorkspaceFactoryFast.cxx:794
 HistoToWorkspaceFactoryFast.cxx:795
 HistoToWorkspaceFactoryFast.cxx:796
 HistoToWorkspaceFactoryFast.cxx:797
 HistoToWorkspaceFactoryFast.cxx:798
 HistoToWorkspaceFactoryFast.cxx:799
 HistoToWorkspaceFactoryFast.cxx:800
 HistoToWorkspaceFactoryFast.cxx:801
 HistoToWorkspaceFactoryFast.cxx:802
 HistoToWorkspaceFactoryFast.cxx:803
 HistoToWorkspaceFactoryFast.cxx:804
 HistoToWorkspaceFactoryFast.cxx:805
 HistoToWorkspaceFactoryFast.cxx:806
 HistoToWorkspaceFactoryFast.cxx:807
 HistoToWorkspaceFactoryFast.cxx:808
 HistoToWorkspaceFactoryFast.cxx:809
 HistoToWorkspaceFactoryFast.cxx:810
 HistoToWorkspaceFactoryFast.cxx:811
 HistoToWorkspaceFactoryFast.cxx:812
 HistoToWorkspaceFactoryFast.cxx:813
 HistoToWorkspaceFactoryFast.cxx:814
 HistoToWorkspaceFactoryFast.cxx:815
 HistoToWorkspaceFactoryFast.cxx:816
 HistoToWorkspaceFactoryFast.cxx:817
 HistoToWorkspaceFactoryFast.cxx:818
 HistoToWorkspaceFactoryFast.cxx:819
 HistoToWorkspaceFactoryFast.cxx:820
 HistoToWorkspaceFactoryFast.cxx:821
 HistoToWorkspaceFactoryFast.cxx:822
 HistoToWorkspaceFactoryFast.cxx:823
 HistoToWorkspaceFactoryFast.cxx:824
 HistoToWorkspaceFactoryFast.cxx:825
 HistoToWorkspaceFactoryFast.cxx:826
 HistoToWorkspaceFactoryFast.cxx:827
 HistoToWorkspaceFactoryFast.cxx:828
 HistoToWorkspaceFactoryFast.cxx:829
 HistoToWorkspaceFactoryFast.cxx:830
 HistoToWorkspaceFactoryFast.cxx:831
 HistoToWorkspaceFactoryFast.cxx:832
 HistoToWorkspaceFactoryFast.cxx:833
 HistoToWorkspaceFactoryFast.cxx:834
 HistoToWorkspaceFactoryFast.cxx:835
 HistoToWorkspaceFactoryFast.cxx:836
 HistoToWorkspaceFactoryFast.cxx:837
 HistoToWorkspaceFactoryFast.cxx:838
 HistoToWorkspaceFactoryFast.cxx:839
 HistoToWorkspaceFactoryFast.cxx:840
 HistoToWorkspaceFactoryFast.cxx:841
 HistoToWorkspaceFactoryFast.cxx:842
 HistoToWorkspaceFactoryFast.cxx:843
 HistoToWorkspaceFactoryFast.cxx:844
 HistoToWorkspaceFactoryFast.cxx:845
 HistoToWorkspaceFactoryFast.cxx:846
 HistoToWorkspaceFactoryFast.cxx:847
 HistoToWorkspaceFactoryFast.cxx:848
 HistoToWorkspaceFactoryFast.cxx:849
 HistoToWorkspaceFactoryFast.cxx:850
 HistoToWorkspaceFactoryFast.cxx:851
 HistoToWorkspaceFactoryFast.cxx:852
 HistoToWorkspaceFactoryFast.cxx:853
 HistoToWorkspaceFactoryFast.cxx:854
 HistoToWorkspaceFactoryFast.cxx:855
 HistoToWorkspaceFactoryFast.cxx:856
 HistoToWorkspaceFactoryFast.cxx:857
 HistoToWorkspaceFactoryFast.cxx:858
 HistoToWorkspaceFactoryFast.cxx:859
 HistoToWorkspaceFactoryFast.cxx:860
 HistoToWorkspaceFactoryFast.cxx:861
 HistoToWorkspaceFactoryFast.cxx:862
 HistoToWorkspaceFactoryFast.cxx:863
 HistoToWorkspaceFactoryFast.cxx:864
 HistoToWorkspaceFactoryFast.cxx:865
 HistoToWorkspaceFactoryFast.cxx:866
 HistoToWorkspaceFactoryFast.cxx:867
 HistoToWorkspaceFactoryFast.cxx:868
 HistoToWorkspaceFactoryFast.cxx:869
 HistoToWorkspaceFactoryFast.cxx:870
 HistoToWorkspaceFactoryFast.cxx:871
 HistoToWorkspaceFactoryFast.cxx:872
 HistoToWorkspaceFactoryFast.cxx:873
 HistoToWorkspaceFactoryFast.cxx:874
 HistoToWorkspaceFactoryFast.cxx:875
 HistoToWorkspaceFactoryFast.cxx:876
 HistoToWorkspaceFactoryFast.cxx:877
 HistoToWorkspaceFactoryFast.cxx:878
 HistoToWorkspaceFactoryFast.cxx:879
 HistoToWorkspaceFactoryFast.cxx:880
 HistoToWorkspaceFactoryFast.cxx:881
 HistoToWorkspaceFactoryFast.cxx:882
 HistoToWorkspaceFactoryFast.cxx:883
 HistoToWorkspaceFactoryFast.cxx:884
 HistoToWorkspaceFactoryFast.cxx:885
 HistoToWorkspaceFactoryFast.cxx:886
 HistoToWorkspaceFactoryFast.cxx:887
 HistoToWorkspaceFactoryFast.cxx:888
 HistoToWorkspaceFactoryFast.cxx:889
 HistoToWorkspaceFactoryFast.cxx:890
 HistoToWorkspaceFactoryFast.cxx:891
 HistoToWorkspaceFactoryFast.cxx:892
 HistoToWorkspaceFactoryFast.cxx:893
 HistoToWorkspaceFactoryFast.cxx:894
 HistoToWorkspaceFactoryFast.cxx:895
 HistoToWorkspaceFactoryFast.cxx:896
 HistoToWorkspaceFactoryFast.cxx:897
 HistoToWorkspaceFactoryFast.cxx:898
 HistoToWorkspaceFactoryFast.cxx:899
 HistoToWorkspaceFactoryFast.cxx:900
 HistoToWorkspaceFactoryFast.cxx:901
 HistoToWorkspaceFactoryFast.cxx:902
 HistoToWorkspaceFactoryFast.cxx:903
 HistoToWorkspaceFactoryFast.cxx:904
 HistoToWorkspaceFactoryFast.cxx:905
 HistoToWorkspaceFactoryFast.cxx:906
 HistoToWorkspaceFactoryFast.cxx:907
 HistoToWorkspaceFactoryFast.cxx:908
 HistoToWorkspaceFactoryFast.cxx:909
 HistoToWorkspaceFactoryFast.cxx:910
 HistoToWorkspaceFactoryFast.cxx:911
 HistoToWorkspaceFactoryFast.cxx:912
 HistoToWorkspaceFactoryFast.cxx:913
 HistoToWorkspaceFactoryFast.cxx:914
 HistoToWorkspaceFactoryFast.cxx:915
 HistoToWorkspaceFactoryFast.cxx:916
 HistoToWorkspaceFactoryFast.cxx:917
 HistoToWorkspaceFactoryFast.cxx:918
 HistoToWorkspaceFactoryFast.cxx:919
 HistoToWorkspaceFactoryFast.cxx:920
 HistoToWorkspaceFactoryFast.cxx:921
 HistoToWorkspaceFactoryFast.cxx:922
 HistoToWorkspaceFactoryFast.cxx:923
 HistoToWorkspaceFactoryFast.cxx:924
 HistoToWorkspaceFactoryFast.cxx:925
 HistoToWorkspaceFactoryFast.cxx:926
 HistoToWorkspaceFactoryFast.cxx:927
 HistoToWorkspaceFactoryFast.cxx:928
 HistoToWorkspaceFactoryFast.cxx:929
 HistoToWorkspaceFactoryFast.cxx:930
 HistoToWorkspaceFactoryFast.cxx:931
 HistoToWorkspaceFactoryFast.cxx:932
 HistoToWorkspaceFactoryFast.cxx:933
 HistoToWorkspaceFactoryFast.cxx:934
 HistoToWorkspaceFactoryFast.cxx:935
 HistoToWorkspaceFactoryFast.cxx:936
 HistoToWorkspaceFactoryFast.cxx:937
 HistoToWorkspaceFactoryFast.cxx:938
 HistoToWorkspaceFactoryFast.cxx:939
 HistoToWorkspaceFactoryFast.cxx:940
 HistoToWorkspaceFactoryFast.cxx:941
 HistoToWorkspaceFactoryFast.cxx:942
 HistoToWorkspaceFactoryFast.cxx:943
 HistoToWorkspaceFactoryFast.cxx:944
 HistoToWorkspaceFactoryFast.cxx:945
 HistoToWorkspaceFactoryFast.cxx:946
 HistoToWorkspaceFactoryFast.cxx:947
 HistoToWorkspaceFactoryFast.cxx:948
 HistoToWorkspaceFactoryFast.cxx:949
 HistoToWorkspaceFactoryFast.cxx:950
 HistoToWorkspaceFactoryFast.cxx:951
 HistoToWorkspaceFactoryFast.cxx:952
 HistoToWorkspaceFactoryFast.cxx:953
 HistoToWorkspaceFactoryFast.cxx:954
 HistoToWorkspaceFactoryFast.cxx:955
 HistoToWorkspaceFactoryFast.cxx:956
 HistoToWorkspaceFactoryFast.cxx:957
 HistoToWorkspaceFactoryFast.cxx:958
 HistoToWorkspaceFactoryFast.cxx:959
 HistoToWorkspaceFactoryFast.cxx:960
 HistoToWorkspaceFactoryFast.cxx:961
 HistoToWorkspaceFactoryFast.cxx:962
 HistoToWorkspaceFactoryFast.cxx:963
 HistoToWorkspaceFactoryFast.cxx:964
 HistoToWorkspaceFactoryFast.cxx:965
 HistoToWorkspaceFactoryFast.cxx:966
 HistoToWorkspaceFactoryFast.cxx:967
 HistoToWorkspaceFactoryFast.cxx:968
 HistoToWorkspaceFactoryFast.cxx:969
 HistoToWorkspaceFactoryFast.cxx:970
 HistoToWorkspaceFactoryFast.cxx:971
 HistoToWorkspaceFactoryFast.cxx:972
 HistoToWorkspaceFactoryFast.cxx:973
 HistoToWorkspaceFactoryFast.cxx:974
 HistoToWorkspaceFactoryFast.cxx:975
 HistoToWorkspaceFactoryFast.cxx:976
 HistoToWorkspaceFactoryFast.cxx:977
 HistoToWorkspaceFactoryFast.cxx:978
 HistoToWorkspaceFactoryFast.cxx:979
 HistoToWorkspaceFactoryFast.cxx:980
 HistoToWorkspaceFactoryFast.cxx:981
 HistoToWorkspaceFactoryFast.cxx:982
 HistoToWorkspaceFactoryFast.cxx:983
 HistoToWorkspaceFactoryFast.cxx:984
 HistoToWorkspaceFactoryFast.cxx:985
 HistoToWorkspaceFactoryFast.cxx:986
 HistoToWorkspaceFactoryFast.cxx:987
 HistoToWorkspaceFactoryFast.cxx:988
 HistoToWorkspaceFactoryFast.cxx:989
 HistoToWorkspaceFactoryFast.cxx:990
 HistoToWorkspaceFactoryFast.cxx:991
 HistoToWorkspaceFactoryFast.cxx:992
 HistoToWorkspaceFactoryFast.cxx:993
 HistoToWorkspaceFactoryFast.cxx:994
 HistoToWorkspaceFactoryFast.cxx:995
 HistoToWorkspaceFactoryFast.cxx:996
 HistoToWorkspaceFactoryFast.cxx:997
 HistoToWorkspaceFactoryFast.cxx:998
 HistoToWorkspaceFactoryFast.cxx:999
 HistoToWorkspaceFactoryFast.cxx:1000
 HistoToWorkspaceFactoryFast.cxx:1001
 HistoToWorkspaceFactoryFast.cxx:1002
 HistoToWorkspaceFactoryFast.cxx:1003
 HistoToWorkspaceFactoryFast.cxx:1004
 HistoToWorkspaceFactoryFast.cxx:1005
 HistoToWorkspaceFactoryFast.cxx:1006
 HistoToWorkspaceFactoryFast.cxx:1007
 HistoToWorkspaceFactoryFast.cxx:1008
 HistoToWorkspaceFactoryFast.cxx:1009
 HistoToWorkspaceFactoryFast.cxx:1010
 HistoToWorkspaceFactoryFast.cxx:1011
 HistoToWorkspaceFactoryFast.cxx:1012
 HistoToWorkspaceFactoryFast.cxx:1013
 HistoToWorkspaceFactoryFast.cxx:1014
 HistoToWorkspaceFactoryFast.cxx:1015
 HistoToWorkspaceFactoryFast.cxx:1016
 HistoToWorkspaceFactoryFast.cxx:1017
 HistoToWorkspaceFactoryFast.cxx:1018
 HistoToWorkspaceFactoryFast.cxx:1019
 HistoToWorkspaceFactoryFast.cxx:1020
 HistoToWorkspaceFactoryFast.cxx:1021
 HistoToWorkspaceFactoryFast.cxx:1022
 HistoToWorkspaceFactoryFast.cxx:1023
 HistoToWorkspaceFactoryFast.cxx:1024
 HistoToWorkspaceFactoryFast.cxx:1025
 HistoToWorkspaceFactoryFast.cxx:1026
 HistoToWorkspaceFactoryFast.cxx:1027
 HistoToWorkspaceFactoryFast.cxx:1028
 HistoToWorkspaceFactoryFast.cxx:1029
 HistoToWorkspaceFactoryFast.cxx:1030
 HistoToWorkspaceFactoryFast.cxx:1031
 HistoToWorkspaceFactoryFast.cxx:1032
 HistoToWorkspaceFactoryFast.cxx:1033
 HistoToWorkspaceFactoryFast.cxx:1034
 HistoToWorkspaceFactoryFast.cxx:1035
 HistoToWorkspaceFactoryFast.cxx:1036
 HistoToWorkspaceFactoryFast.cxx:1037
 HistoToWorkspaceFactoryFast.cxx:1038
 HistoToWorkspaceFactoryFast.cxx:1039
 HistoToWorkspaceFactoryFast.cxx:1040
 HistoToWorkspaceFactoryFast.cxx:1041
 HistoToWorkspaceFactoryFast.cxx:1042
 HistoToWorkspaceFactoryFast.cxx:1043
 HistoToWorkspaceFactoryFast.cxx:1044
 HistoToWorkspaceFactoryFast.cxx:1045
 HistoToWorkspaceFactoryFast.cxx:1046
 HistoToWorkspaceFactoryFast.cxx:1047
 HistoToWorkspaceFactoryFast.cxx:1048
 HistoToWorkspaceFactoryFast.cxx:1049
 HistoToWorkspaceFactoryFast.cxx:1050
 HistoToWorkspaceFactoryFast.cxx:1051
 HistoToWorkspaceFactoryFast.cxx:1052
 HistoToWorkspaceFactoryFast.cxx:1053
 HistoToWorkspaceFactoryFast.cxx:1054
 HistoToWorkspaceFactoryFast.cxx:1055
 HistoToWorkspaceFactoryFast.cxx:1056
 HistoToWorkspaceFactoryFast.cxx:1057
 HistoToWorkspaceFactoryFast.cxx:1058
 HistoToWorkspaceFactoryFast.cxx:1059
 HistoToWorkspaceFactoryFast.cxx:1060
 HistoToWorkspaceFactoryFast.cxx:1061
 HistoToWorkspaceFactoryFast.cxx:1062
 HistoToWorkspaceFactoryFast.cxx:1063
 HistoToWorkspaceFactoryFast.cxx:1064
 HistoToWorkspaceFactoryFast.cxx:1065
 HistoToWorkspaceFactoryFast.cxx:1066
 HistoToWorkspaceFactoryFast.cxx:1067
 HistoToWorkspaceFactoryFast.cxx:1068
 HistoToWorkspaceFactoryFast.cxx:1069
 HistoToWorkspaceFactoryFast.cxx:1070
 HistoToWorkspaceFactoryFast.cxx:1071
 HistoToWorkspaceFactoryFast.cxx:1072
 HistoToWorkspaceFactoryFast.cxx:1073
 HistoToWorkspaceFactoryFast.cxx:1074
 HistoToWorkspaceFactoryFast.cxx:1075
 HistoToWorkspaceFactoryFast.cxx:1076
 HistoToWorkspaceFactoryFast.cxx:1077
 HistoToWorkspaceFactoryFast.cxx:1078
 HistoToWorkspaceFactoryFast.cxx:1079
 HistoToWorkspaceFactoryFast.cxx:1080
 HistoToWorkspaceFactoryFast.cxx:1081
 HistoToWorkspaceFactoryFast.cxx:1082
 HistoToWorkspaceFactoryFast.cxx:1083
 HistoToWorkspaceFactoryFast.cxx:1084
 HistoToWorkspaceFactoryFast.cxx:1085
 HistoToWorkspaceFactoryFast.cxx:1086
 HistoToWorkspaceFactoryFast.cxx:1087
 HistoToWorkspaceFactoryFast.cxx:1088
 HistoToWorkspaceFactoryFast.cxx:1089
 HistoToWorkspaceFactoryFast.cxx:1090
 HistoToWorkspaceFactoryFast.cxx:1091
 HistoToWorkspaceFactoryFast.cxx:1092
 HistoToWorkspaceFactoryFast.cxx:1093
 HistoToWorkspaceFactoryFast.cxx:1094
 HistoToWorkspaceFactoryFast.cxx:1095
 HistoToWorkspaceFactoryFast.cxx:1096
 HistoToWorkspaceFactoryFast.cxx:1097
 HistoToWorkspaceFactoryFast.cxx:1098
 HistoToWorkspaceFactoryFast.cxx:1099
 HistoToWorkspaceFactoryFast.cxx:1100
 HistoToWorkspaceFactoryFast.cxx:1101
 HistoToWorkspaceFactoryFast.cxx:1102
 HistoToWorkspaceFactoryFast.cxx:1103
 HistoToWorkspaceFactoryFast.cxx:1104
 HistoToWorkspaceFactoryFast.cxx:1105
 HistoToWorkspaceFactoryFast.cxx:1106
 HistoToWorkspaceFactoryFast.cxx:1107
 HistoToWorkspaceFactoryFast.cxx:1108
 HistoToWorkspaceFactoryFast.cxx:1109
 HistoToWorkspaceFactoryFast.cxx:1110
 HistoToWorkspaceFactoryFast.cxx:1111
 HistoToWorkspaceFactoryFast.cxx:1112
 HistoToWorkspaceFactoryFast.cxx:1113
 HistoToWorkspaceFactoryFast.cxx:1114
 HistoToWorkspaceFactoryFast.cxx:1115
 HistoToWorkspaceFactoryFast.cxx:1116
 HistoToWorkspaceFactoryFast.cxx:1117
 HistoToWorkspaceFactoryFast.cxx:1118
 HistoToWorkspaceFactoryFast.cxx:1119
 HistoToWorkspaceFactoryFast.cxx:1120
 HistoToWorkspaceFactoryFast.cxx:1121
 HistoToWorkspaceFactoryFast.cxx:1122
 HistoToWorkspaceFactoryFast.cxx:1123
 HistoToWorkspaceFactoryFast.cxx:1124
 HistoToWorkspaceFactoryFast.cxx:1125
 HistoToWorkspaceFactoryFast.cxx:1126
 HistoToWorkspaceFactoryFast.cxx:1127
 HistoToWorkspaceFactoryFast.cxx:1128
 HistoToWorkspaceFactoryFast.cxx:1129
 HistoToWorkspaceFactoryFast.cxx:1130
 HistoToWorkspaceFactoryFast.cxx:1131
 HistoToWorkspaceFactoryFast.cxx:1132
 HistoToWorkspaceFactoryFast.cxx:1133
 HistoToWorkspaceFactoryFast.cxx:1134
 HistoToWorkspaceFactoryFast.cxx:1135
 HistoToWorkspaceFactoryFast.cxx:1136
 HistoToWorkspaceFactoryFast.cxx:1137
 HistoToWorkspaceFactoryFast.cxx:1138
 HistoToWorkspaceFactoryFast.cxx:1139
 HistoToWorkspaceFactoryFast.cxx:1140
 HistoToWorkspaceFactoryFast.cxx:1141
 HistoToWorkspaceFactoryFast.cxx:1142
 HistoToWorkspaceFactoryFast.cxx:1143
 HistoToWorkspaceFactoryFast.cxx:1144
 HistoToWorkspaceFactoryFast.cxx:1145
 HistoToWorkspaceFactoryFast.cxx:1146
 HistoToWorkspaceFactoryFast.cxx:1147
 HistoToWorkspaceFactoryFast.cxx:1148
 HistoToWorkspaceFactoryFast.cxx:1149
 HistoToWorkspaceFactoryFast.cxx:1150
 HistoToWorkspaceFactoryFast.cxx:1151
 HistoToWorkspaceFactoryFast.cxx:1152
 HistoToWorkspaceFactoryFast.cxx:1153
 HistoToWorkspaceFactoryFast.cxx:1154
 HistoToWorkspaceFactoryFast.cxx:1155
 HistoToWorkspaceFactoryFast.cxx:1156
 HistoToWorkspaceFactoryFast.cxx:1157
 HistoToWorkspaceFactoryFast.cxx:1158
 HistoToWorkspaceFactoryFast.cxx:1159
 HistoToWorkspaceFactoryFast.cxx:1160
 HistoToWorkspaceFactoryFast.cxx:1161
 HistoToWorkspaceFactoryFast.cxx:1162
 HistoToWorkspaceFactoryFast.cxx:1163
 HistoToWorkspaceFactoryFast.cxx:1164
 HistoToWorkspaceFactoryFast.cxx:1165
 HistoToWorkspaceFactoryFast.cxx:1166
 HistoToWorkspaceFactoryFast.cxx:1167
 HistoToWorkspaceFactoryFast.cxx:1168
 HistoToWorkspaceFactoryFast.cxx:1169
 HistoToWorkspaceFactoryFast.cxx:1170
 HistoToWorkspaceFactoryFast.cxx:1171
 HistoToWorkspaceFactoryFast.cxx:1172
 HistoToWorkspaceFactoryFast.cxx:1173
 HistoToWorkspaceFactoryFast.cxx:1174
 HistoToWorkspaceFactoryFast.cxx:1175
 HistoToWorkspaceFactoryFast.cxx:1176
 HistoToWorkspaceFactoryFast.cxx:1177
 HistoToWorkspaceFactoryFast.cxx:1178
 HistoToWorkspaceFactoryFast.cxx:1179
 HistoToWorkspaceFactoryFast.cxx:1180
 HistoToWorkspaceFactoryFast.cxx:1181
 HistoToWorkspaceFactoryFast.cxx:1182
 HistoToWorkspaceFactoryFast.cxx:1183
 HistoToWorkspaceFactoryFast.cxx:1184
 HistoToWorkspaceFactoryFast.cxx:1185
 HistoToWorkspaceFactoryFast.cxx:1186
 HistoToWorkspaceFactoryFast.cxx:1187
 HistoToWorkspaceFactoryFast.cxx:1188
 HistoToWorkspaceFactoryFast.cxx:1189
 HistoToWorkspaceFactoryFast.cxx:1190
 HistoToWorkspaceFactoryFast.cxx:1191
 HistoToWorkspaceFactoryFast.cxx:1192
 HistoToWorkspaceFactoryFast.cxx:1193
 HistoToWorkspaceFactoryFast.cxx:1194
 HistoToWorkspaceFactoryFast.cxx:1195
 HistoToWorkspaceFactoryFast.cxx:1196
 HistoToWorkspaceFactoryFast.cxx:1197
 HistoToWorkspaceFactoryFast.cxx:1198
 HistoToWorkspaceFactoryFast.cxx:1199
 HistoToWorkspaceFactoryFast.cxx:1200
 HistoToWorkspaceFactoryFast.cxx:1201
 HistoToWorkspaceFactoryFast.cxx:1202
 HistoToWorkspaceFactoryFast.cxx:1203
 HistoToWorkspaceFactoryFast.cxx:1204
 HistoToWorkspaceFactoryFast.cxx:1205
 HistoToWorkspaceFactoryFast.cxx:1206
 HistoToWorkspaceFactoryFast.cxx:1207
 HistoToWorkspaceFactoryFast.cxx:1208
 HistoToWorkspaceFactoryFast.cxx:1209
 HistoToWorkspaceFactoryFast.cxx:1210
 HistoToWorkspaceFactoryFast.cxx:1211
 HistoToWorkspaceFactoryFast.cxx:1212
 HistoToWorkspaceFactoryFast.cxx:1213
 HistoToWorkspaceFactoryFast.cxx:1214
 HistoToWorkspaceFactoryFast.cxx:1215
 HistoToWorkspaceFactoryFast.cxx:1216
 HistoToWorkspaceFactoryFast.cxx:1217
 HistoToWorkspaceFactoryFast.cxx:1218
 HistoToWorkspaceFactoryFast.cxx:1219
 HistoToWorkspaceFactoryFast.cxx:1220
 HistoToWorkspaceFactoryFast.cxx:1221
 HistoToWorkspaceFactoryFast.cxx:1222
 HistoToWorkspaceFactoryFast.cxx:1223
 HistoToWorkspaceFactoryFast.cxx:1224
 HistoToWorkspaceFactoryFast.cxx:1225
 HistoToWorkspaceFactoryFast.cxx:1226
 HistoToWorkspaceFactoryFast.cxx:1227
 HistoToWorkspaceFactoryFast.cxx:1228
 HistoToWorkspaceFactoryFast.cxx:1229
 HistoToWorkspaceFactoryFast.cxx:1230
 HistoToWorkspaceFactoryFast.cxx:1231
 HistoToWorkspaceFactoryFast.cxx:1232
 HistoToWorkspaceFactoryFast.cxx:1233
 HistoToWorkspaceFactoryFast.cxx:1234
 HistoToWorkspaceFactoryFast.cxx:1235
 HistoToWorkspaceFactoryFast.cxx:1236
 HistoToWorkspaceFactoryFast.cxx:1237
 HistoToWorkspaceFactoryFast.cxx:1238
 HistoToWorkspaceFactoryFast.cxx:1239
 HistoToWorkspaceFactoryFast.cxx:1240
 HistoToWorkspaceFactoryFast.cxx:1241
 HistoToWorkspaceFactoryFast.cxx:1242
 HistoToWorkspaceFactoryFast.cxx:1243
 HistoToWorkspaceFactoryFast.cxx:1244
 HistoToWorkspaceFactoryFast.cxx:1245
 HistoToWorkspaceFactoryFast.cxx:1246
 HistoToWorkspaceFactoryFast.cxx:1247
 HistoToWorkspaceFactoryFast.cxx:1248
 HistoToWorkspaceFactoryFast.cxx:1249
 HistoToWorkspaceFactoryFast.cxx:1250
 HistoToWorkspaceFactoryFast.cxx:1251
 HistoToWorkspaceFactoryFast.cxx:1252
 HistoToWorkspaceFactoryFast.cxx:1253
 HistoToWorkspaceFactoryFast.cxx:1254
 HistoToWorkspaceFactoryFast.cxx:1255
 HistoToWorkspaceFactoryFast.cxx:1256
 HistoToWorkspaceFactoryFast.cxx:1257
 HistoToWorkspaceFactoryFast.cxx:1258
 HistoToWorkspaceFactoryFast.cxx:1259
 HistoToWorkspaceFactoryFast.cxx:1260
 HistoToWorkspaceFactoryFast.cxx:1261
 HistoToWorkspaceFactoryFast.cxx:1262
 HistoToWorkspaceFactoryFast.cxx:1263
 HistoToWorkspaceFactoryFast.cxx:1264
 HistoToWorkspaceFactoryFast.cxx:1265
 HistoToWorkspaceFactoryFast.cxx:1266
 HistoToWorkspaceFactoryFast.cxx:1267
 HistoToWorkspaceFactoryFast.cxx:1268
 HistoToWorkspaceFactoryFast.cxx:1269
 HistoToWorkspaceFactoryFast.cxx:1270
 HistoToWorkspaceFactoryFast.cxx:1271
 HistoToWorkspaceFactoryFast.cxx:1272
 HistoToWorkspaceFactoryFast.cxx:1273
 HistoToWorkspaceFactoryFast.cxx:1274
 HistoToWorkspaceFactoryFast.cxx:1275
 HistoToWorkspaceFactoryFast.cxx:1276
 HistoToWorkspaceFactoryFast.cxx:1277
 HistoToWorkspaceFactoryFast.cxx:1278
 HistoToWorkspaceFactoryFast.cxx:1279
 HistoToWorkspaceFactoryFast.cxx:1280
 HistoToWorkspaceFactoryFast.cxx:1281
 HistoToWorkspaceFactoryFast.cxx:1282
 HistoToWorkspaceFactoryFast.cxx:1283
 HistoToWorkspaceFactoryFast.cxx:1284
 HistoToWorkspaceFactoryFast.cxx:1285
 HistoToWorkspaceFactoryFast.cxx:1286
 HistoToWorkspaceFactoryFast.cxx:1287
 HistoToWorkspaceFactoryFast.cxx:1288
 HistoToWorkspaceFactoryFast.cxx:1289
 HistoToWorkspaceFactoryFast.cxx:1290
 HistoToWorkspaceFactoryFast.cxx:1291
 HistoToWorkspaceFactoryFast.cxx:1292
 HistoToWorkspaceFactoryFast.cxx:1293
 HistoToWorkspaceFactoryFast.cxx:1294
 HistoToWorkspaceFactoryFast.cxx:1295
 HistoToWorkspaceFactoryFast.cxx:1296
 HistoToWorkspaceFactoryFast.cxx:1297
 HistoToWorkspaceFactoryFast.cxx:1298
 HistoToWorkspaceFactoryFast.cxx:1299
 HistoToWorkspaceFactoryFast.cxx:1300
 HistoToWorkspaceFactoryFast.cxx:1301
 HistoToWorkspaceFactoryFast.cxx:1302
 HistoToWorkspaceFactoryFast.cxx:1303
 HistoToWorkspaceFactoryFast.cxx:1304
 HistoToWorkspaceFactoryFast.cxx:1305
 HistoToWorkspaceFactoryFast.cxx:1306
 HistoToWorkspaceFactoryFast.cxx:1307
 HistoToWorkspaceFactoryFast.cxx:1308
 HistoToWorkspaceFactoryFast.cxx:1309
 HistoToWorkspaceFactoryFast.cxx:1310
 HistoToWorkspaceFactoryFast.cxx:1311
 HistoToWorkspaceFactoryFast.cxx:1312
 HistoToWorkspaceFactoryFast.cxx:1313
 HistoToWorkspaceFactoryFast.cxx:1314
 HistoToWorkspaceFactoryFast.cxx:1315
 HistoToWorkspaceFactoryFast.cxx:1316
 HistoToWorkspaceFactoryFast.cxx:1317
 HistoToWorkspaceFactoryFast.cxx:1318
 HistoToWorkspaceFactoryFast.cxx:1319
 HistoToWorkspaceFactoryFast.cxx:1320
 HistoToWorkspaceFactoryFast.cxx:1321
 HistoToWorkspaceFactoryFast.cxx:1322
 HistoToWorkspaceFactoryFast.cxx:1323
 HistoToWorkspaceFactoryFast.cxx:1324
 HistoToWorkspaceFactoryFast.cxx:1325
 HistoToWorkspaceFactoryFast.cxx:1326
 HistoToWorkspaceFactoryFast.cxx:1327
 HistoToWorkspaceFactoryFast.cxx:1328
 HistoToWorkspaceFactoryFast.cxx:1329
 HistoToWorkspaceFactoryFast.cxx:1330
 HistoToWorkspaceFactoryFast.cxx:1331
 HistoToWorkspaceFactoryFast.cxx:1332
 HistoToWorkspaceFactoryFast.cxx:1333
 HistoToWorkspaceFactoryFast.cxx:1334
 HistoToWorkspaceFactoryFast.cxx:1335
 HistoToWorkspaceFactoryFast.cxx:1336
 HistoToWorkspaceFactoryFast.cxx:1337
 HistoToWorkspaceFactoryFast.cxx:1338
 HistoToWorkspaceFactoryFast.cxx:1339
 HistoToWorkspaceFactoryFast.cxx:1340
 HistoToWorkspaceFactoryFast.cxx:1341
 HistoToWorkspaceFactoryFast.cxx:1342
 HistoToWorkspaceFactoryFast.cxx:1343
 HistoToWorkspaceFactoryFast.cxx:1344
 HistoToWorkspaceFactoryFast.cxx:1345
 HistoToWorkspaceFactoryFast.cxx:1346
 HistoToWorkspaceFactoryFast.cxx:1347
 HistoToWorkspaceFactoryFast.cxx:1348
 HistoToWorkspaceFactoryFast.cxx:1349
 HistoToWorkspaceFactoryFast.cxx:1350
 HistoToWorkspaceFactoryFast.cxx:1351
 HistoToWorkspaceFactoryFast.cxx:1352
 HistoToWorkspaceFactoryFast.cxx:1353
 HistoToWorkspaceFactoryFast.cxx:1354
 HistoToWorkspaceFactoryFast.cxx:1355
 HistoToWorkspaceFactoryFast.cxx:1356
 HistoToWorkspaceFactoryFast.cxx:1357
 HistoToWorkspaceFactoryFast.cxx:1358
 HistoToWorkspaceFactoryFast.cxx:1359
 HistoToWorkspaceFactoryFast.cxx:1360
 HistoToWorkspaceFactoryFast.cxx:1361
 HistoToWorkspaceFactoryFast.cxx:1362
 HistoToWorkspaceFactoryFast.cxx:1363
 HistoToWorkspaceFactoryFast.cxx:1364
 HistoToWorkspaceFactoryFast.cxx:1365
 HistoToWorkspaceFactoryFast.cxx:1366
 HistoToWorkspaceFactoryFast.cxx:1367
 HistoToWorkspaceFactoryFast.cxx:1368
 HistoToWorkspaceFactoryFast.cxx:1369
 HistoToWorkspaceFactoryFast.cxx:1370
 HistoToWorkspaceFactoryFast.cxx:1371
 HistoToWorkspaceFactoryFast.cxx:1372
 HistoToWorkspaceFactoryFast.cxx:1373
 HistoToWorkspaceFactoryFast.cxx:1374
 HistoToWorkspaceFactoryFast.cxx:1375
 HistoToWorkspaceFactoryFast.cxx:1376
 HistoToWorkspaceFactoryFast.cxx:1377
 HistoToWorkspaceFactoryFast.cxx:1378
 HistoToWorkspaceFactoryFast.cxx:1379
 HistoToWorkspaceFactoryFast.cxx:1380
 HistoToWorkspaceFactoryFast.cxx:1381
 HistoToWorkspaceFactoryFast.cxx:1382
 HistoToWorkspaceFactoryFast.cxx:1383
 HistoToWorkspaceFactoryFast.cxx:1384
 HistoToWorkspaceFactoryFast.cxx:1385
 HistoToWorkspaceFactoryFast.cxx:1386
 HistoToWorkspaceFactoryFast.cxx:1387
 HistoToWorkspaceFactoryFast.cxx:1388
 HistoToWorkspaceFactoryFast.cxx:1389
 HistoToWorkspaceFactoryFast.cxx:1390
 HistoToWorkspaceFactoryFast.cxx:1391
 HistoToWorkspaceFactoryFast.cxx:1392
 HistoToWorkspaceFactoryFast.cxx:1393
 HistoToWorkspaceFactoryFast.cxx:1394
 HistoToWorkspaceFactoryFast.cxx:1395
 HistoToWorkspaceFactoryFast.cxx:1396
 HistoToWorkspaceFactoryFast.cxx:1397
 HistoToWorkspaceFactoryFast.cxx:1398
 HistoToWorkspaceFactoryFast.cxx:1399
 HistoToWorkspaceFactoryFast.cxx:1400
 HistoToWorkspaceFactoryFast.cxx:1401
 HistoToWorkspaceFactoryFast.cxx:1402
 HistoToWorkspaceFactoryFast.cxx:1403
 HistoToWorkspaceFactoryFast.cxx:1404
 HistoToWorkspaceFactoryFast.cxx:1405
 HistoToWorkspaceFactoryFast.cxx:1406
 HistoToWorkspaceFactoryFast.cxx:1407
 HistoToWorkspaceFactoryFast.cxx:1408
 HistoToWorkspaceFactoryFast.cxx:1409
 HistoToWorkspaceFactoryFast.cxx:1410
 HistoToWorkspaceFactoryFast.cxx:1411
 HistoToWorkspaceFactoryFast.cxx:1412
 HistoToWorkspaceFactoryFast.cxx:1413
 HistoToWorkspaceFactoryFast.cxx:1414
 HistoToWorkspaceFactoryFast.cxx:1415
 HistoToWorkspaceFactoryFast.cxx:1416
 HistoToWorkspaceFactoryFast.cxx:1417
 HistoToWorkspaceFactoryFast.cxx:1418
 HistoToWorkspaceFactoryFast.cxx:1419
 HistoToWorkspaceFactoryFast.cxx:1420
 HistoToWorkspaceFactoryFast.cxx:1421
 HistoToWorkspaceFactoryFast.cxx:1422
 HistoToWorkspaceFactoryFast.cxx:1423
 HistoToWorkspaceFactoryFast.cxx:1424
 HistoToWorkspaceFactoryFast.cxx:1425
 HistoToWorkspaceFactoryFast.cxx:1426
 HistoToWorkspaceFactoryFast.cxx:1427
 HistoToWorkspaceFactoryFast.cxx:1428
 HistoToWorkspaceFactoryFast.cxx:1429
 HistoToWorkspaceFactoryFast.cxx:1430
 HistoToWorkspaceFactoryFast.cxx:1431
 HistoToWorkspaceFactoryFast.cxx:1432
 HistoToWorkspaceFactoryFast.cxx:1433
 HistoToWorkspaceFactoryFast.cxx:1434
 HistoToWorkspaceFactoryFast.cxx:1435
 HistoToWorkspaceFactoryFast.cxx:1436
 HistoToWorkspaceFactoryFast.cxx:1437
 HistoToWorkspaceFactoryFast.cxx:1438
 HistoToWorkspaceFactoryFast.cxx:1439
 HistoToWorkspaceFactoryFast.cxx:1440
 HistoToWorkspaceFactoryFast.cxx:1441
 HistoToWorkspaceFactoryFast.cxx:1442
 HistoToWorkspaceFactoryFast.cxx:1443
 HistoToWorkspaceFactoryFast.cxx:1444
 HistoToWorkspaceFactoryFast.cxx:1445
 HistoToWorkspaceFactoryFast.cxx:1446
 HistoToWorkspaceFactoryFast.cxx:1447
 HistoToWorkspaceFactoryFast.cxx:1448
 HistoToWorkspaceFactoryFast.cxx:1449
 HistoToWorkspaceFactoryFast.cxx:1450
 HistoToWorkspaceFactoryFast.cxx:1451
 HistoToWorkspaceFactoryFast.cxx:1452
 HistoToWorkspaceFactoryFast.cxx:1453
 HistoToWorkspaceFactoryFast.cxx:1454
 HistoToWorkspaceFactoryFast.cxx:1455
 HistoToWorkspaceFactoryFast.cxx:1456
 HistoToWorkspaceFactoryFast.cxx:1457
 HistoToWorkspaceFactoryFast.cxx:1458
 HistoToWorkspaceFactoryFast.cxx:1459
 HistoToWorkspaceFactoryFast.cxx:1460
 HistoToWorkspaceFactoryFast.cxx:1461
 HistoToWorkspaceFactoryFast.cxx:1462
 HistoToWorkspaceFactoryFast.cxx:1463
 HistoToWorkspaceFactoryFast.cxx:1464
 HistoToWorkspaceFactoryFast.cxx:1465
 HistoToWorkspaceFactoryFast.cxx:1466
 HistoToWorkspaceFactoryFast.cxx:1467
 HistoToWorkspaceFactoryFast.cxx:1468
 HistoToWorkspaceFactoryFast.cxx:1469
 HistoToWorkspaceFactoryFast.cxx:1470
 HistoToWorkspaceFactoryFast.cxx:1471
 HistoToWorkspaceFactoryFast.cxx:1472
 HistoToWorkspaceFactoryFast.cxx:1473
 HistoToWorkspaceFactoryFast.cxx:1474
 HistoToWorkspaceFactoryFast.cxx:1475
 HistoToWorkspaceFactoryFast.cxx:1476
 HistoToWorkspaceFactoryFast.cxx:1477
 HistoToWorkspaceFactoryFast.cxx:1478
 HistoToWorkspaceFactoryFast.cxx:1479
 HistoToWorkspaceFactoryFast.cxx:1480
 HistoToWorkspaceFactoryFast.cxx:1481
 HistoToWorkspaceFactoryFast.cxx:1482
 HistoToWorkspaceFactoryFast.cxx:1483
 HistoToWorkspaceFactoryFast.cxx:1484
 HistoToWorkspaceFactoryFast.cxx:1485
 HistoToWorkspaceFactoryFast.cxx:1486
 HistoToWorkspaceFactoryFast.cxx:1487
 HistoToWorkspaceFactoryFast.cxx:1488
 HistoToWorkspaceFactoryFast.cxx:1489
 HistoToWorkspaceFactoryFast.cxx:1490
 HistoToWorkspaceFactoryFast.cxx:1491
 HistoToWorkspaceFactoryFast.cxx:1492
 HistoToWorkspaceFactoryFast.cxx:1493
 HistoToWorkspaceFactoryFast.cxx:1494
 HistoToWorkspaceFactoryFast.cxx:1495
 HistoToWorkspaceFactoryFast.cxx:1496
 HistoToWorkspaceFactoryFast.cxx:1497
 HistoToWorkspaceFactoryFast.cxx:1498
 HistoToWorkspaceFactoryFast.cxx:1499
 HistoToWorkspaceFactoryFast.cxx:1500
 HistoToWorkspaceFactoryFast.cxx:1501
 HistoToWorkspaceFactoryFast.cxx:1502
 HistoToWorkspaceFactoryFast.cxx:1503
 HistoToWorkspaceFactoryFast.cxx:1504
 HistoToWorkspaceFactoryFast.cxx:1505
 HistoToWorkspaceFactoryFast.cxx:1506
 HistoToWorkspaceFactoryFast.cxx:1507
 HistoToWorkspaceFactoryFast.cxx:1508
 HistoToWorkspaceFactoryFast.cxx:1509
 HistoToWorkspaceFactoryFast.cxx:1510
 HistoToWorkspaceFactoryFast.cxx:1511
 HistoToWorkspaceFactoryFast.cxx:1512
 HistoToWorkspaceFactoryFast.cxx:1513
 HistoToWorkspaceFactoryFast.cxx:1514
 HistoToWorkspaceFactoryFast.cxx:1515
 HistoToWorkspaceFactoryFast.cxx:1516
 HistoToWorkspaceFactoryFast.cxx:1517
 HistoToWorkspaceFactoryFast.cxx:1518
 HistoToWorkspaceFactoryFast.cxx:1519
 HistoToWorkspaceFactoryFast.cxx:1520
 HistoToWorkspaceFactoryFast.cxx:1521
 HistoToWorkspaceFactoryFast.cxx:1522
 HistoToWorkspaceFactoryFast.cxx:1523
 HistoToWorkspaceFactoryFast.cxx:1524
 HistoToWorkspaceFactoryFast.cxx:1525
 HistoToWorkspaceFactoryFast.cxx:1526
 HistoToWorkspaceFactoryFast.cxx:1527
 HistoToWorkspaceFactoryFast.cxx:1528
 HistoToWorkspaceFactoryFast.cxx:1529
 HistoToWorkspaceFactoryFast.cxx:1530
 HistoToWorkspaceFactoryFast.cxx:1531
 HistoToWorkspaceFactoryFast.cxx:1532
 HistoToWorkspaceFactoryFast.cxx:1533
 HistoToWorkspaceFactoryFast.cxx:1534
 HistoToWorkspaceFactoryFast.cxx:1535
 HistoToWorkspaceFactoryFast.cxx:1536
 HistoToWorkspaceFactoryFast.cxx:1537
 HistoToWorkspaceFactoryFast.cxx:1538
 HistoToWorkspaceFactoryFast.cxx:1539
 HistoToWorkspaceFactoryFast.cxx:1540
 HistoToWorkspaceFactoryFast.cxx:1541
 HistoToWorkspaceFactoryFast.cxx:1542
 HistoToWorkspaceFactoryFast.cxx:1543
 HistoToWorkspaceFactoryFast.cxx:1544
 HistoToWorkspaceFactoryFast.cxx:1545
 HistoToWorkspaceFactoryFast.cxx:1546
 HistoToWorkspaceFactoryFast.cxx:1547
 HistoToWorkspaceFactoryFast.cxx:1548
 HistoToWorkspaceFactoryFast.cxx:1549
 HistoToWorkspaceFactoryFast.cxx:1550
 HistoToWorkspaceFactoryFast.cxx:1551
 HistoToWorkspaceFactoryFast.cxx:1552
 HistoToWorkspaceFactoryFast.cxx:1553
 HistoToWorkspaceFactoryFast.cxx:1554
 HistoToWorkspaceFactoryFast.cxx:1555
 HistoToWorkspaceFactoryFast.cxx:1556
 HistoToWorkspaceFactoryFast.cxx:1557
 HistoToWorkspaceFactoryFast.cxx:1558
 HistoToWorkspaceFactoryFast.cxx:1559
 HistoToWorkspaceFactoryFast.cxx:1560
 HistoToWorkspaceFactoryFast.cxx:1561
 HistoToWorkspaceFactoryFast.cxx:1562
 HistoToWorkspaceFactoryFast.cxx:1563
 HistoToWorkspaceFactoryFast.cxx:1564
 HistoToWorkspaceFactoryFast.cxx:1565
 HistoToWorkspaceFactoryFast.cxx:1566
 HistoToWorkspaceFactoryFast.cxx:1567
 HistoToWorkspaceFactoryFast.cxx:1568
 HistoToWorkspaceFactoryFast.cxx:1569
 HistoToWorkspaceFactoryFast.cxx:1570
 HistoToWorkspaceFactoryFast.cxx:1571
 HistoToWorkspaceFactoryFast.cxx:1572
 HistoToWorkspaceFactoryFast.cxx:1573
 HistoToWorkspaceFactoryFast.cxx:1574
 HistoToWorkspaceFactoryFast.cxx:1575
 HistoToWorkspaceFactoryFast.cxx:1576
 HistoToWorkspaceFactoryFast.cxx:1577
 HistoToWorkspaceFactoryFast.cxx:1578
 HistoToWorkspaceFactoryFast.cxx:1579
 HistoToWorkspaceFactoryFast.cxx:1580
 HistoToWorkspaceFactoryFast.cxx:1581
 HistoToWorkspaceFactoryFast.cxx:1582
 HistoToWorkspaceFactoryFast.cxx:1583
 HistoToWorkspaceFactoryFast.cxx:1584
 HistoToWorkspaceFactoryFast.cxx:1585
 HistoToWorkspaceFactoryFast.cxx:1586
 HistoToWorkspaceFactoryFast.cxx:1587
 HistoToWorkspaceFactoryFast.cxx:1588
 HistoToWorkspaceFactoryFast.cxx:1589
 HistoToWorkspaceFactoryFast.cxx:1590
 HistoToWorkspaceFactoryFast.cxx:1591
 HistoToWorkspaceFactoryFast.cxx:1592
 HistoToWorkspaceFactoryFast.cxx:1593
 HistoToWorkspaceFactoryFast.cxx:1594
 HistoToWorkspaceFactoryFast.cxx:1595
 HistoToWorkspaceFactoryFast.cxx:1596
 HistoToWorkspaceFactoryFast.cxx:1597
 HistoToWorkspaceFactoryFast.cxx:1598
 HistoToWorkspaceFactoryFast.cxx:1599
 HistoToWorkspaceFactoryFast.cxx:1600
 HistoToWorkspaceFactoryFast.cxx:1601
 HistoToWorkspaceFactoryFast.cxx:1602
 HistoToWorkspaceFactoryFast.cxx:1603
 HistoToWorkspaceFactoryFast.cxx:1604
 HistoToWorkspaceFactoryFast.cxx:1605
 HistoToWorkspaceFactoryFast.cxx:1606
 HistoToWorkspaceFactoryFast.cxx:1607
 HistoToWorkspaceFactoryFast.cxx:1608
 HistoToWorkspaceFactoryFast.cxx:1609
 HistoToWorkspaceFactoryFast.cxx:1610
 HistoToWorkspaceFactoryFast.cxx:1611
 HistoToWorkspaceFactoryFast.cxx:1612
 HistoToWorkspaceFactoryFast.cxx:1613
 HistoToWorkspaceFactoryFast.cxx:1614
 HistoToWorkspaceFactoryFast.cxx:1615
 HistoToWorkspaceFactoryFast.cxx:1616
 HistoToWorkspaceFactoryFast.cxx:1617
 HistoToWorkspaceFactoryFast.cxx:1618
 HistoToWorkspaceFactoryFast.cxx:1619
 HistoToWorkspaceFactoryFast.cxx:1620
 HistoToWorkspaceFactoryFast.cxx:1621
 HistoToWorkspaceFactoryFast.cxx:1622
 HistoToWorkspaceFactoryFast.cxx:1623
 HistoToWorkspaceFactoryFast.cxx:1624
 HistoToWorkspaceFactoryFast.cxx:1625
 HistoToWorkspaceFactoryFast.cxx:1626
 HistoToWorkspaceFactoryFast.cxx:1627
 HistoToWorkspaceFactoryFast.cxx:1628
 HistoToWorkspaceFactoryFast.cxx:1629
 HistoToWorkspaceFactoryFast.cxx:1630
 HistoToWorkspaceFactoryFast.cxx:1631
 HistoToWorkspaceFactoryFast.cxx:1632
 HistoToWorkspaceFactoryFast.cxx:1633
 HistoToWorkspaceFactoryFast.cxx:1634
 HistoToWorkspaceFactoryFast.cxx:1635
 HistoToWorkspaceFactoryFast.cxx:1636
 HistoToWorkspaceFactoryFast.cxx:1637
 HistoToWorkspaceFactoryFast.cxx:1638
 HistoToWorkspaceFactoryFast.cxx:1639
 HistoToWorkspaceFactoryFast.cxx:1640
 HistoToWorkspaceFactoryFast.cxx:1641
 HistoToWorkspaceFactoryFast.cxx:1642
 HistoToWorkspaceFactoryFast.cxx:1643
 HistoToWorkspaceFactoryFast.cxx:1644
 HistoToWorkspaceFactoryFast.cxx:1645
 HistoToWorkspaceFactoryFast.cxx:1646
 HistoToWorkspaceFactoryFast.cxx:1647
 HistoToWorkspaceFactoryFast.cxx:1648
 HistoToWorkspaceFactoryFast.cxx:1649
 HistoToWorkspaceFactoryFast.cxx:1650
 HistoToWorkspaceFactoryFast.cxx:1651
 HistoToWorkspaceFactoryFast.cxx:1652
 HistoToWorkspaceFactoryFast.cxx:1653
 HistoToWorkspaceFactoryFast.cxx:1654
 HistoToWorkspaceFactoryFast.cxx:1655
 HistoToWorkspaceFactoryFast.cxx:1656
 HistoToWorkspaceFactoryFast.cxx:1657
 HistoToWorkspaceFactoryFast.cxx:1658
 HistoToWorkspaceFactoryFast.cxx:1659
 HistoToWorkspaceFactoryFast.cxx:1660
 HistoToWorkspaceFactoryFast.cxx:1661
 HistoToWorkspaceFactoryFast.cxx:1662
 HistoToWorkspaceFactoryFast.cxx:1663
 HistoToWorkspaceFactoryFast.cxx:1664
 HistoToWorkspaceFactoryFast.cxx:1665
 HistoToWorkspaceFactoryFast.cxx:1666
 HistoToWorkspaceFactoryFast.cxx:1667
 HistoToWorkspaceFactoryFast.cxx:1668
 HistoToWorkspaceFactoryFast.cxx:1669
 HistoToWorkspaceFactoryFast.cxx:1670
 HistoToWorkspaceFactoryFast.cxx:1671
 HistoToWorkspaceFactoryFast.cxx:1672
 HistoToWorkspaceFactoryFast.cxx:1673
 HistoToWorkspaceFactoryFast.cxx:1674
 HistoToWorkspaceFactoryFast.cxx:1675
 HistoToWorkspaceFactoryFast.cxx:1676
 HistoToWorkspaceFactoryFast.cxx:1677
 HistoToWorkspaceFactoryFast.cxx:1678
 HistoToWorkspaceFactoryFast.cxx:1679
 HistoToWorkspaceFactoryFast.cxx:1680
 HistoToWorkspaceFactoryFast.cxx:1681
 HistoToWorkspaceFactoryFast.cxx:1682
 HistoToWorkspaceFactoryFast.cxx:1683
 HistoToWorkspaceFactoryFast.cxx:1684
 HistoToWorkspaceFactoryFast.cxx:1685
 HistoToWorkspaceFactoryFast.cxx:1686
 HistoToWorkspaceFactoryFast.cxx:1687
 HistoToWorkspaceFactoryFast.cxx:1688
 HistoToWorkspaceFactoryFast.cxx:1689
 HistoToWorkspaceFactoryFast.cxx:1690
 HistoToWorkspaceFactoryFast.cxx:1691
 HistoToWorkspaceFactoryFast.cxx:1692
 HistoToWorkspaceFactoryFast.cxx:1693
 HistoToWorkspaceFactoryFast.cxx:1694
 HistoToWorkspaceFactoryFast.cxx:1695
 HistoToWorkspaceFactoryFast.cxx:1696
 HistoToWorkspaceFactoryFast.cxx:1697
 HistoToWorkspaceFactoryFast.cxx:1698
 HistoToWorkspaceFactoryFast.cxx:1699
 HistoToWorkspaceFactoryFast.cxx:1700
 HistoToWorkspaceFactoryFast.cxx:1701
 HistoToWorkspaceFactoryFast.cxx:1702
 HistoToWorkspaceFactoryFast.cxx:1703
 HistoToWorkspaceFactoryFast.cxx:1704
 HistoToWorkspaceFactoryFast.cxx:1705
 HistoToWorkspaceFactoryFast.cxx:1706
 HistoToWorkspaceFactoryFast.cxx:1707
 HistoToWorkspaceFactoryFast.cxx:1708
 HistoToWorkspaceFactoryFast.cxx:1709
 HistoToWorkspaceFactoryFast.cxx:1710
 HistoToWorkspaceFactoryFast.cxx:1711
 HistoToWorkspaceFactoryFast.cxx:1712
 HistoToWorkspaceFactoryFast.cxx:1713
 HistoToWorkspaceFactoryFast.cxx:1714
 HistoToWorkspaceFactoryFast.cxx:1715
 HistoToWorkspaceFactoryFast.cxx:1716
 HistoToWorkspaceFactoryFast.cxx:1717
 HistoToWorkspaceFactoryFast.cxx:1718
 HistoToWorkspaceFactoryFast.cxx:1719
 HistoToWorkspaceFactoryFast.cxx:1720
 HistoToWorkspaceFactoryFast.cxx:1721
 HistoToWorkspaceFactoryFast.cxx:1722
 HistoToWorkspaceFactoryFast.cxx:1723
 HistoToWorkspaceFactoryFast.cxx:1724
 HistoToWorkspaceFactoryFast.cxx:1725
 HistoToWorkspaceFactoryFast.cxx:1726
 HistoToWorkspaceFactoryFast.cxx:1727
 HistoToWorkspaceFactoryFast.cxx:1728
 HistoToWorkspaceFactoryFast.cxx:1729
 HistoToWorkspaceFactoryFast.cxx:1730
 HistoToWorkspaceFactoryFast.cxx:1731
 HistoToWorkspaceFactoryFast.cxx:1732
 HistoToWorkspaceFactoryFast.cxx:1733
 HistoToWorkspaceFactoryFast.cxx:1734
 HistoToWorkspaceFactoryFast.cxx:1735
 HistoToWorkspaceFactoryFast.cxx:1736
 HistoToWorkspaceFactoryFast.cxx:1737
 HistoToWorkspaceFactoryFast.cxx:1738
 HistoToWorkspaceFactoryFast.cxx:1739
 HistoToWorkspaceFactoryFast.cxx:1740
 HistoToWorkspaceFactoryFast.cxx:1741
 HistoToWorkspaceFactoryFast.cxx:1742
 HistoToWorkspaceFactoryFast.cxx:1743
 HistoToWorkspaceFactoryFast.cxx:1744
 HistoToWorkspaceFactoryFast.cxx:1745
 HistoToWorkspaceFactoryFast.cxx:1746
 HistoToWorkspaceFactoryFast.cxx:1747
 HistoToWorkspaceFactoryFast.cxx:1748
 HistoToWorkspaceFactoryFast.cxx:1749
 HistoToWorkspaceFactoryFast.cxx:1750
 HistoToWorkspaceFactoryFast.cxx:1751
 HistoToWorkspaceFactoryFast.cxx:1752
 HistoToWorkspaceFactoryFast.cxx:1753
 HistoToWorkspaceFactoryFast.cxx:1754
 HistoToWorkspaceFactoryFast.cxx:1755
 HistoToWorkspaceFactoryFast.cxx:1756
 HistoToWorkspaceFactoryFast.cxx:1757
 HistoToWorkspaceFactoryFast.cxx:1758
 HistoToWorkspaceFactoryFast.cxx:1759
 HistoToWorkspaceFactoryFast.cxx:1760
 HistoToWorkspaceFactoryFast.cxx:1761
 HistoToWorkspaceFactoryFast.cxx:1762
 HistoToWorkspaceFactoryFast.cxx:1763
 HistoToWorkspaceFactoryFast.cxx:1764
 HistoToWorkspaceFactoryFast.cxx:1765
 HistoToWorkspaceFactoryFast.cxx:1766
 HistoToWorkspaceFactoryFast.cxx:1767
 HistoToWorkspaceFactoryFast.cxx:1768
 HistoToWorkspaceFactoryFast.cxx:1769
 HistoToWorkspaceFactoryFast.cxx:1770
 HistoToWorkspaceFactoryFast.cxx:1771
 HistoToWorkspaceFactoryFast.cxx:1772
 HistoToWorkspaceFactoryFast.cxx:1773
 HistoToWorkspaceFactoryFast.cxx:1774
 HistoToWorkspaceFactoryFast.cxx:1775
 HistoToWorkspaceFactoryFast.cxx:1776
 HistoToWorkspaceFactoryFast.cxx:1777
 HistoToWorkspaceFactoryFast.cxx:1778
 HistoToWorkspaceFactoryFast.cxx:1779
 HistoToWorkspaceFactoryFast.cxx:1780
 HistoToWorkspaceFactoryFast.cxx:1781
 HistoToWorkspaceFactoryFast.cxx:1782
 HistoToWorkspaceFactoryFast.cxx:1783
 HistoToWorkspaceFactoryFast.cxx:1784
 HistoToWorkspaceFactoryFast.cxx:1785
 HistoToWorkspaceFactoryFast.cxx:1786
 HistoToWorkspaceFactoryFast.cxx:1787
 HistoToWorkspaceFactoryFast.cxx:1788
 HistoToWorkspaceFactoryFast.cxx:1789
 HistoToWorkspaceFactoryFast.cxx:1790
 HistoToWorkspaceFactoryFast.cxx:1791
 HistoToWorkspaceFactoryFast.cxx:1792
 HistoToWorkspaceFactoryFast.cxx:1793
 HistoToWorkspaceFactoryFast.cxx:1794
 HistoToWorkspaceFactoryFast.cxx:1795
 HistoToWorkspaceFactoryFast.cxx:1796
 HistoToWorkspaceFactoryFast.cxx:1797
 HistoToWorkspaceFactoryFast.cxx:1798
 HistoToWorkspaceFactoryFast.cxx:1799
 HistoToWorkspaceFactoryFast.cxx:1800
 HistoToWorkspaceFactoryFast.cxx:1801
 HistoToWorkspaceFactoryFast.cxx:1802
 HistoToWorkspaceFactoryFast.cxx:1803
 HistoToWorkspaceFactoryFast.cxx:1804
 HistoToWorkspaceFactoryFast.cxx:1805
 HistoToWorkspaceFactoryFast.cxx:1806
 HistoToWorkspaceFactoryFast.cxx:1807
 HistoToWorkspaceFactoryFast.cxx:1808
 HistoToWorkspaceFactoryFast.cxx:1809
 HistoToWorkspaceFactoryFast.cxx:1810
 HistoToWorkspaceFactoryFast.cxx:1811
 HistoToWorkspaceFactoryFast.cxx:1812
 HistoToWorkspaceFactoryFast.cxx:1813
 HistoToWorkspaceFactoryFast.cxx:1814
 HistoToWorkspaceFactoryFast.cxx:1815
 HistoToWorkspaceFactoryFast.cxx:1816
 HistoToWorkspaceFactoryFast.cxx:1817
 HistoToWorkspaceFactoryFast.cxx:1818
 HistoToWorkspaceFactoryFast.cxx:1819
 HistoToWorkspaceFactoryFast.cxx:1820
 HistoToWorkspaceFactoryFast.cxx:1821
 HistoToWorkspaceFactoryFast.cxx:1822
 HistoToWorkspaceFactoryFast.cxx:1823
 HistoToWorkspaceFactoryFast.cxx:1824
 HistoToWorkspaceFactoryFast.cxx:1825
 HistoToWorkspaceFactoryFast.cxx:1826
 HistoToWorkspaceFactoryFast.cxx:1827
 HistoToWorkspaceFactoryFast.cxx:1828
 HistoToWorkspaceFactoryFast.cxx:1829
 HistoToWorkspaceFactoryFast.cxx:1830
 HistoToWorkspaceFactoryFast.cxx:1831
 HistoToWorkspaceFactoryFast.cxx:1832
 HistoToWorkspaceFactoryFast.cxx:1833
 HistoToWorkspaceFactoryFast.cxx:1834
 HistoToWorkspaceFactoryFast.cxx:1835
 HistoToWorkspaceFactoryFast.cxx:1836
 HistoToWorkspaceFactoryFast.cxx:1837
 HistoToWorkspaceFactoryFast.cxx:1838
 HistoToWorkspaceFactoryFast.cxx:1839
 HistoToWorkspaceFactoryFast.cxx:1840
 HistoToWorkspaceFactoryFast.cxx:1841
 HistoToWorkspaceFactoryFast.cxx:1842
 HistoToWorkspaceFactoryFast.cxx:1843
 HistoToWorkspaceFactoryFast.cxx:1844
 HistoToWorkspaceFactoryFast.cxx:1845
 HistoToWorkspaceFactoryFast.cxx:1846
 HistoToWorkspaceFactoryFast.cxx:1847
 HistoToWorkspaceFactoryFast.cxx:1848
 HistoToWorkspaceFactoryFast.cxx:1849
 HistoToWorkspaceFactoryFast.cxx:1850
 HistoToWorkspaceFactoryFast.cxx:1851
 HistoToWorkspaceFactoryFast.cxx:1852
 HistoToWorkspaceFactoryFast.cxx:1853
 HistoToWorkspaceFactoryFast.cxx:1854
 HistoToWorkspaceFactoryFast.cxx:1855
 HistoToWorkspaceFactoryFast.cxx:1856
 HistoToWorkspaceFactoryFast.cxx:1857
 HistoToWorkspaceFactoryFast.cxx:1858
 HistoToWorkspaceFactoryFast.cxx:1859
 HistoToWorkspaceFactoryFast.cxx:1860
 HistoToWorkspaceFactoryFast.cxx:1861
 HistoToWorkspaceFactoryFast.cxx:1862
 HistoToWorkspaceFactoryFast.cxx:1863
 HistoToWorkspaceFactoryFast.cxx:1864
 HistoToWorkspaceFactoryFast.cxx:1865
 HistoToWorkspaceFactoryFast.cxx:1866
 HistoToWorkspaceFactoryFast.cxx:1867
 HistoToWorkspaceFactoryFast.cxx:1868
 HistoToWorkspaceFactoryFast.cxx:1869
 HistoToWorkspaceFactoryFast.cxx:1870
 HistoToWorkspaceFactoryFast.cxx:1871
 HistoToWorkspaceFactoryFast.cxx:1872
 HistoToWorkspaceFactoryFast.cxx:1873
 HistoToWorkspaceFactoryFast.cxx:1874
 HistoToWorkspaceFactoryFast.cxx:1875
 HistoToWorkspaceFactoryFast.cxx:1876
 HistoToWorkspaceFactoryFast.cxx:1877
 HistoToWorkspaceFactoryFast.cxx:1878
 HistoToWorkspaceFactoryFast.cxx:1879
 HistoToWorkspaceFactoryFast.cxx:1880
 HistoToWorkspaceFactoryFast.cxx:1881
 HistoToWorkspaceFactoryFast.cxx:1882
 HistoToWorkspaceFactoryFast.cxx:1883
 HistoToWorkspaceFactoryFast.cxx:1884
 HistoToWorkspaceFactoryFast.cxx:1885
 HistoToWorkspaceFactoryFast.cxx:1886
 HistoToWorkspaceFactoryFast.cxx:1887
 HistoToWorkspaceFactoryFast.cxx:1888
 HistoToWorkspaceFactoryFast.cxx:1889
 HistoToWorkspaceFactoryFast.cxx:1890
 HistoToWorkspaceFactoryFast.cxx:1891
 HistoToWorkspaceFactoryFast.cxx:1892
 HistoToWorkspaceFactoryFast.cxx:1893
 HistoToWorkspaceFactoryFast.cxx:1894
 HistoToWorkspaceFactoryFast.cxx:1895
 HistoToWorkspaceFactoryFast.cxx:1896
 HistoToWorkspaceFactoryFast.cxx:1897
 HistoToWorkspaceFactoryFast.cxx:1898
 HistoToWorkspaceFactoryFast.cxx:1899
 HistoToWorkspaceFactoryFast.cxx:1900
 HistoToWorkspaceFactoryFast.cxx:1901
 HistoToWorkspaceFactoryFast.cxx:1902
 HistoToWorkspaceFactoryFast.cxx:1903
 HistoToWorkspaceFactoryFast.cxx:1904
 HistoToWorkspaceFactoryFast.cxx:1905
 HistoToWorkspaceFactoryFast.cxx:1906
 HistoToWorkspaceFactoryFast.cxx:1907
 HistoToWorkspaceFactoryFast.cxx:1908
 HistoToWorkspaceFactoryFast.cxx:1909
 HistoToWorkspaceFactoryFast.cxx:1910
 HistoToWorkspaceFactoryFast.cxx:1911
 HistoToWorkspaceFactoryFast.cxx:1912
 HistoToWorkspaceFactoryFast.cxx:1913
 HistoToWorkspaceFactoryFast.cxx:1914
 HistoToWorkspaceFactoryFast.cxx:1915
 HistoToWorkspaceFactoryFast.cxx:1916
 HistoToWorkspaceFactoryFast.cxx:1917
 HistoToWorkspaceFactoryFast.cxx:1918
 HistoToWorkspaceFactoryFast.cxx:1919
 HistoToWorkspaceFactoryFast.cxx:1920
 HistoToWorkspaceFactoryFast.cxx:1921
 HistoToWorkspaceFactoryFast.cxx:1922
 HistoToWorkspaceFactoryFast.cxx:1923
 HistoToWorkspaceFactoryFast.cxx:1924
 HistoToWorkspaceFactoryFast.cxx:1925
 HistoToWorkspaceFactoryFast.cxx:1926
 HistoToWorkspaceFactoryFast.cxx:1927
 HistoToWorkspaceFactoryFast.cxx:1928
 HistoToWorkspaceFactoryFast.cxx:1929
 HistoToWorkspaceFactoryFast.cxx:1930
 HistoToWorkspaceFactoryFast.cxx:1931
 HistoToWorkspaceFactoryFast.cxx:1932
 HistoToWorkspaceFactoryFast.cxx:1933
 HistoToWorkspaceFactoryFast.cxx:1934
 HistoToWorkspaceFactoryFast.cxx:1935
 HistoToWorkspaceFactoryFast.cxx:1936
 HistoToWorkspaceFactoryFast.cxx:1937
 HistoToWorkspaceFactoryFast.cxx:1938
 HistoToWorkspaceFactoryFast.cxx:1939
 HistoToWorkspaceFactoryFast.cxx:1940
 HistoToWorkspaceFactoryFast.cxx:1941
 HistoToWorkspaceFactoryFast.cxx:1942
 HistoToWorkspaceFactoryFast.cxx:1943
 HistoToWorkspaceFactoryFast.cxx:1944
 HistoToWorkspaceFactoryFast.cxx:1945
 HistoToWorkspaceFactoryFast.cxx:1946
 HistoToWorkspaceFactoryFast.cxx:1947
 HistoToWorkspaceFactoryFast.cxx:1948
 HistoToWorkspaceFactoryFast.cxx:1949
 HistoToWorkspaceFactoryFast.cxx:1950
 HistoToWorkspaceFactoryFast.cxx:1951
 HistoToWorkspaceFactoryFast.cxx:1952
 HistoToWorkspaceFactoryFast.cxx:1953
 HistoToWorkspaceFactoryFast.cxx:1954
 HistoToWorkspaceFactoryFast.cxx:1955
 HistoToWorkspaceFactoryFast.cxx:1956
 HistoToWorkspaceFactoryFast.cxx:1957
 HistoToWorkspaceFactoryFast.cxx:1958
 HistoToWorkspaceFactoryFast.cxx:1959
 HistoToWorkspaceFactoryFast.cxx:1960
 HistoToWorkspaceFactoryFast.cxx:1961
 HistoToWorkspaceFactoryFast.cxx:1962
 HistoToWorkspaceFactoryFast.cxx:1963
 HistoToWorkspaceFactoryFast.cxx:1964
 HistoToWorkspaceFactoryFast.cxx:1965
 HistoToWorkspaceFactoryFast.cxx:1966
 HistoToWorkspaceFactoryFast.cxx:1967
 HistoToWorkspaceFactoryFast.cxx:1968
 HistoToWorkspaceFactoryFast.cxx:1969
 HistoToWorkspaceFactoryFast.cxx:1970
 HistoToWorkspaceFactoryFast.cxx:1971
 HistoToWorkspaceFactoryFast.cxx:1972
 HistoToWorkspaceFactoryFast.cxx:1973
 HistoToWorkspaceFactoryFast.cxx:1974
 HistoToWorkspaceFactoryFast.cxx:1975
 HistoToWorkspaceFactoryFast.cxx:1976
 HistoToWorkspaceFactoryFast.cxx:1977
 HistoToWorkspaceFactoryFast.cxx:1978
 HistoToWorkspaceFactoryFast.cxx:1979
 HistoToWorkspaceFactoryFast.cxx:1980
 HistoToWorkspaceFactoryFast.cxx:1981
 HistoToWorkspaceFactoryFast.cxx:1982
 HistoToWorkspaceFactoryFast.cxx:1983
 HistoToWorkspaceFactoryFast.cxx:1984
 HistoToWorkspaceFactoryFast.cxx:1985
 HistoToWorkspaceFactoryFast.cxx:1986
 HistoToWorkspaceFactoryFast.cxx:1987
 HistoToWorkspaceFactoryFast.cxx:1988
 HistoToWorkspaceFactoryFast.cxx:1989
 HistoToWorkspaceFactoryFast.cxx:1990
 HistoToWorkspaceFactoryFast.cxx:1991
 HistoToWorkspaceFactoryFast.cxx:1992
 HistoToWorkspaceFactoryFast.cxx:1993
 HistoToWorkspaceFactoryFast.cxx:1994
 HistoToWorkspaceFactoryFast.cxx:1995
 HistoToWorkspaceFactoryFast.cxx:1996
 HistoToWorkspaceFactoryFast.cxx:1997
 HistoToWorkspaceFactoryFast.cxx:1998
 HistoToWorkspaceFactoryFast.cxx:1999
 HistoToWorkspaceFactoryFast.cxx:2000
 HistoToWorkspaceFactoryFast.cxx:2001
 HistoToWorkspaceFactoryFast.cxx:2002
 HistoToWorkspaceFactoryFast.cxx:2003
 HistoToWorkspaceFactoryFast.cxx:2004
 HistoToWorkspaceFactoryFast.cxx:2005
 HistoToWorkspaceFactoryFast.cxx:2006
 HistoToWorkspaceFactoryFast.cxx:2007
 HistoToWorkspaceFactoryFast.cxx:2008
 HistoToWorkspaceFactoryFast.cxx:2009
 HistoToWorkspaceFactoryFast.cxx:2010
 HistoToWorkspaceFactoryFast.cxx:2011
 HistoToWorkspaceFactoryFast.cxx:2012
 HistoToWorkspaceFactoryFast.cxx:2013
 HistoToWorkspaceFactoryFast.cxx:2014
 HistoToWorkspaceFactoryFast.cxx:2015
 HistoToWorkspaceFactoryFast.cxx:2016
 HistoToWorkspaceFactoryFast.cxx:2017
 HistoToWorkspaceFactoryFast.cxx:2018
 HistoToWorkspaceFactoryFast.cxx:2019
 HistoToWorkspaceFactoryFast.cxx:2020
 HistoToWorkspaceFactoryFast.cxx:2021
 HistoToWorkspaceFactoryFast.cxx:2022
 HistoToWorkspaceFactoryFast.cxx:2023
 HistoToWorkspaceFactoryFast.cxx:2024
 HistoToWorkspaceFactoryFast.cxx:2025
 HistoToWorkspaceFactoryFast.cxx:2026
 HistoToWorkspaceFactoryFast.cxx:2027
 HistoToWorkspaceFactoryFast.cxx:2028
 HistoToWorkspaceFactoryFast.cxx:2029
 HistoToWorkspaceFactoryFast.cxx:2030
 HistoToWorkspaceFactoryFast.cxx:2031
 HistoToWorkspaceFactoryFast.cxx:2032
 HistoToWorkspaceFactoryFast.cxx:2033
 HistoToWorkspaceFactoryFast.cxx:2034
 HistoToWorkspaceFactoryFast.cxx:2035
 HistoToWorkspaceFactoryFast.cxx:2036
 HistoToWorkspaceFactoryFast.cxx:2037
 HistoToWorkspaceFactoryFast.cxx:2038
 HistoToWorkspaceFactoryFast.cxx:2039
 HistoToWorkspaceFactoryFast.cxx:2040
 HistoToWorkspaceFactoryFast.cxx:2041
 HistoToWorkspaceFactoryFast.cxx:2042
 HistoToWorkspaceFactoryFast.cxx:2043
 HistoToWorkspaceFactoryFast.cxx:2044
 HistoToWorkspaceFactoryFast.cxx:2045
 HistoToWorkspaceFactoryFast.cxx:2046
 HistoToWorkspaceFactoryFast.cxx:2047
 HistoToWorkspaceFactoryFast.cxx:2048
 HistoToWorkspaceFactoryFast.cxx:2049
 HistoToWorkspaceFactoryFast.cxx:2050
 HistoToWorkspaceFactoryFast.cxx:2051
 HistoToWorkspaceFactoryFast.cxx:2052
 HistoToWorkspaceFactoryFast.cxx:2053
 HistoToWorkspaceFactoryFast.cxx:2054
 HistoToWorkspaceFactoryFast.cxx:2055
 HistoToWorkspaceFactoryFast.cxx:2056
 HistoToWorkspaceFactoryFast.cxx:2057
 HistoToWorkspaceFactoryFast.cxx:2058
 HistoToWorkspaceFactoryFast.cxx:2059
 HistoToWorkspaceFactoryFast.cxx:2060
 HistoToWorkspaceFactoryFast.cxx:2061
 HistoToWorkspaceFactoryFast.cxx:2062
 HistoToWorkspaceFactoryFast.cxx:2063
 HistoToWorkspaceFactoryFast.cxx:2064
 HistoToWorkspaceFactoryFast.cxx:2065
 HistoToWorkspaceFactoryFast.cxx:2066
 HistoToWorkspaceFactoryFast.cxx:2067
 HistoToWorkspaceFactoryFast.cxx:2068
 HistoToWorkspaceFactoryFast.cxx:2069
 HistoToWorkspaceFactoryFast.cxx:2070
 HistoToWorkspaceFactoryFast.cxx:2071
 HistoToWorkspaceFactoryFast.cxx:2072
 HistoToWorkspaceFactoryFast.cxx:2073
 HistoToWorkspaceFactoryFast.cxx:2074
 HistoToWorkspaceFactoryFast.cxx:2075
 HistoToWorkspaceFactoryFast.cxx:2076
 HistoToWorkspaceFactoryFast.cxx:2077
 HistoToWorkspaceFactoryFast.cxx:2078
 HistoToWorkspaceFactoryFast.cxx:2079
 HistoToWorkspaceFactoryFast.cxx:2080
 HistoToWorkspaceFactoryFast.cxx:2081
 HistoToWorkspaceFactoryFast.cxx:2082
 HistoToWorkspaceFactoryFast.cxx:2083
 HistoToWorkspaceFactoryFast.cxx:2084
 HistoToWorkspaceFactoryFast.cxx:2085
 HistoToWorkspaceFactoryFast.cxx:2086
 HistoToWorkspaceFactoryFast.cxx:2087
 HistoToWorkspaceFactoryFast.cxx:2088
 HistoToWorkspaceFactoryFast.cxx:2089
 HistoToWorkspaceFactoryFast.cxx:2090
 HistoToWorkspaceFactoryFast.cxx:2091
 HistoToWorkspaceFactoryFast.cxx:2092
 HistoToWorkspaceFactoryFast.cxx:2093
 HistoToWorkspaceFactoryFast.cxx:2094
 HistoToWorkspaceFactoryFast.cxx:2095
 HistoToWorkspaceFactoryFast.cxx:2096
 HistoToWorkspaceFactoryFast.cxx:2097
 HistoToWorkspaceFactoryFast.cxx:2098
 HistoToWorkspaceFactoryFast.cxx:2099
 HistoToWorkspaceFactoryFast.cxx:2100
 HistoToWorkspaceFactoryFast.cxx:2101
 HistoToWorkspaceFactoryFast.cxx:2102
 HistoToWorkspaceFactoryFast.cxx:2103
 HistoToWorkspaceFactoryFast.cxx:2104
 HistoToWorkspaceFactoryFast.cxx:2105
 HistoToWorkspaceFactoryFast.cxx:2106
 HistoToWorkspaceFactoryFast.cxx:2107
 HistoToWorkspaceFactoryFast.cxx:2108
 HistoToWorkspaceFactoryFast.cxx:2109
 HistoToWorkspaceFactoryFast.cxx:2110
 HistoToWorkspaceFactoryFast.cxx:2111
 HistoToWorkspaceFactoryFast.cxx:2112
 HistoToWorkspaceFactoryFast.cxx:2113
 HistoToWorkspaceFactoryFast.cxx:2114
 HistoToWorkspaceFactoryFast.cxx:2115
 HistoToWorkspaceFactoryFast.cxx:2116
 HistoToWorkspaceFactoryFast.cxx:2117
 HistoToWorkspaceFactoryFast.cxx:2118
 HistoToWorkspaceFactoryFast.cxx:2119
 HistoToWorkspaceFactoryFast.cxx:2120
 HistoToWorkspaceFactoryFast.cxx:2121
 HistoToWorkspaceFactoryFast.cxx:2122
 HistoToWorkspaceFactoryFast.cxx:2123
 HistoToWorkspaceFactoryFast.cxx:2124
 HistoToWorkspaceFactoryFast.cxx:2125
 HistoToWorkspaceFactoryFast.cxx:2126
 HistoToWorkspaceFactoryFast.cxx:2127
 HistoToWorkspaceFactoryFast.cxx:2128
 HistoToWorkspaceFactoryFast.cxx:2129
 HistoToWorkspaceFactoryFast.cxx:2130
 HistoToWorkspaceFactoryFast.cxx:2131
 HistoToWorkspaceFactoryFast.cxx:2132
 HistoToWorkspaceFactoryFast.cxx:2133
 HistoToWorkspaceFactoryFast.cxx:2134
 HistoToWorkspaceFactoryFast.cxx:2135
 HistoToWorkspaceFactoryFast.cxx:2136
 HistoToWorkspaceFactoryFast.cxx:2137
 HistoToWorkspaceFactoryFast.cxx:2138
 HistoToWorkspaceFactoryFast.cxx:2139
 HistoToWorkspaceFactoryFast.cxx:2140
 HistoToWorkspaceFactoryFast.cxx:2141
 HistoToWorkspaceFactoryFast.cxx:2142
 HistoToWorkspaceFactoryFast.cxx:2143
 HistoToWorkspaceFactoryFast.cxx:2144
 HistoToWorkspaceFactoryFast.cxx:2145
 HistoToWorkspaceFactoryFast.cxx:2146
 HistoToWorkspaceFactoryFast.cxx:2147
 HistoToWorkspaceFactoryFast.cxx:2148
 HistoToWorkspaceFactoryFast.cxx:2149
 HistoToWorkspaceFactoryFast.cxx:2150
 HistoToWorkspaceFactoryFast.cxx:2151
 HistoToWorkspaceFactoryFast.cxx:2152
 HistoToWorkspaceFactoryFast.cxx:2153
 HistoToWorkspaceFactoryFast.cxx:2154
 HistoToWorkspaceFactoryFast.cxx:2155
 HistoToWorkspaceFactoryFast.cxx:2156
 HistoToWorkspaceFactoryFast.cxx:2157
 HistoToWorkspaceFactoryFast.cxx:2158
 HistoToWorkspaceFactoryFast.cxx:2159
 HistoToWorkspaceFactoryFast.cxx:2160
 HistoToWorkspaceFactoryFast.cxx:2161
 HistoToWorkspaceFactoryFast.cxx:2162
 HistoToWorkspaceFactoryFast.cxx:2163
 HistoToWorkspaceFactoryFast.cxx:2164
 HistoToWorkspaceFactoryFast.cxx:2165
 HistoToWorkspaceFactoryFast.cxx:2166
 HistoToWorkspaceFactoryFast.cxx:2167
 HistoToWorkspaceFactoryFast.cxx:2168
 HistoToWorkspaceFactoryFast.cxx:2169
 HistoToWorkspaceFactoryFast.cxx:2170
 HistoToWorkspaceFactoryFast.cxx:2171
 HistoToWorkspaceFactoryFast.cxx:2172
 HistoToWorkspaceFactoryFast.cxx:2173
 HistoToWorkspaceFactoryFast.cxx:2174
 HistoToWorkspaceFactoryFast.cxx:2175
 HistoToWorkspaceFactoryFast.cxx:2176
 HistoToWorkspaceFactoryFast.cxx:2177
 HistoToWorkspaceFactoryFast.cxx:2178
 HistoToWorkspaceFactoryFast.cxx:2179
 HistoToWorkspaceFactoryFast.cxx:2180
 HistoToWorkspaceFactoryFast.cxx:2181
 HistoToWorkspaceFactoryFast.cxx:2182
 HistoToWorkspaceFactoryFast.cxx:2183
 HistoToWorkspaceFactoryFast.cxx:2184
 HistoToWorkspaceFactoryFast.cxx:2185
 HistoToWorkspaceFactoryFast.cxx:2186
 HistoToWorkspaceFactoryFast.cxx:2187
 HistoToWorkspaceFactoryFast.cxx:2188
 HistoToWorkspaceFactoryFast.cxx:2189
 HistoToWorkspaceFactoryFast.cxx:2190
 HistoToWorkspaceFactoryFast.cxx:2191
 HistoToWorkspaceFactoryFast.cxx:2192
 HistoToWorkspaceFactoryFast.cxx:2193
 HistoToWorkspaceFactoryFast.cxx:2194
 HistoToWorkspaceFactoryFast.cxx:2195
 HistoToWorkspaceFactoryFast.cxx:2196
 HistoToWorkspaceFactoryFast.cxx:2197
 HistoToWorkspaceFactoryFast.cxx:2198
 HistoToWorkspaceFactoryFast.cxx:2199
 HistoToWorkspaceFactoryFast.cxx:2200
 HistoToWorkspaceFactoryFast.cxx:2201
 HistoToWorkspaceFactoryFast.cxx:2202
 HistoToWorkspaceFactoryFast.cxx:2203
 HistoToWorkspaceFactoryFast.cxx:2204
 HistoToWorkspaceFactoryFast.cxx:2205
 HistoToWorkspaceFactoryFast.cxx:2206
 HistoToWorkspaceFactoryFast.cxx:2207
 HistoToWorkspaceFactoryFast.cxx:2208
 HistoToWorkspaceFactoryFast.cxx:2209
 HistoToWorkspaceFactoryFast.cxx:2210
 HistoToWorkspaceFactoryFast.cxx:2211
 HistoToWorkspaceFactoryFast.cxx:2212
 HistoToWorkspaceFactoryFast.cxx:2213
 HistoToWorkspaceFactoryFast.cxx:2214
 HistoToWorkspaceFactoryFast.cxx:2215
 HistoToWorkspaceFactoryFast.cxx:2216
 HistoToWorkspaceFactoryFast.cxx:2217
 HistoToWorkspaceFactoryFast.cxx:2218
 HistoToWorkspaceFactoryFast.cxx:2219
 HistoToWorkspaceFactoryFast.cxx:2220
 HistoToWorkspaceFactoryFast.cxx:2221
 HistoToWorkspaceFactoryFast.cxx:2222
 HistoToWorkspaceFactoryFast.cxx:2223
 HistoToWorkspaceFactoryFast.cxx:2224
 HistoToWorkspaceFactoryFast.cxx:2225
 HistoToWorkspaceFactoryFast.cxx:2226
 HistoToWorkspaceFactoryFast.cxx:2227
 HistoToWorkspaceFactoryFast.cxx:2228
 HistoToWorkspaceFactoryFast.cxx:2229
 HistoToWorkspaceFactoryFast.cxx:2230
 HistoToWorkspaceFactoryFast.cxx:2231
 HistoToWorkspaceFactoryFast.cxx:2232
 HistoToWorkspaceFactoryFast.cxx:2233
 HistoToWorkspaceFactoryFast.cxx:2234
 HistoToWorkspaceFactoryFast.cxx:2235
 HistoToWorkspaceFactoryFast.cxx:2236
 HistoToWorkspaceFactoryFast.cxx:2237
 HistoToWorkspaceFactoryFast.cxx:2238
 HistoToWorkspaceFactoryFast.cxx:2239
 HistoToWorkspaceFactoryFast.cxx:2240
 HistoToWorkspaceFactoryFast.cxx:2241
 HistoToWorkspaceFactoryFast.cxx:2242
 HistoToWorkspaceFactoryFast.cxx:2243
 HistoToWorkspaceFactoryFast.cxx:2244
 HistoToWorkspaceFactoryFast.cxx:2245
 HistoToWorkspaceFactoryFast.cxx:2246
 HistoToWorkspaceFactoryFast.cxx:2247
 HistoToWorkspaceFactoryFast.cxx:2248
 HistoToWorkspaceFactoryFast.cxx:2249
 HistoToWorkspaceFactoryFast.cxx:2250
 HistoToWorkspaceFactoryFast.cxx:2251
 HistoToWorkspaceFactoryFast.cxx:2252
 HistoToWorkspaceFactoryFast.cxx:2253
 HistoToWorkspaceFactoryFast.cxx:2254
 HistoToWorkspaceFactoryFast.cxx:2255
 HistoToWorkspaceFactoryFast.cxx:2256
 HistoToWorkspaceFactoryFast.cxx:2257
 HistoToWorkspaceFactoryFast.cxx:2258
 HistoToWorkspaceFactoryFast.cxx:2259
 HistoToWorkspaceFactoryFast.cxx:2260
 HistoToWorkspaceFactoryFast.cxx:2261
 HistoToWorkspaceFactoryFast.cxx:2262
 HistoToWorkspaceFactoryFast.cxx:2263
 HistoToWorkspaceFactoryFast.cxx:2264
 HistoToWorkspaceFactoryFast.cxx:2265
 HistoToWorkspaceFactoryFast.cxx:2266
 HistoToWorkspaceFactoryFast.cxx:2267
 HistoToWorkspaceFactoryFast.cxx:2268
 HistoToWorkspaceFactoryFast.cxx:2269
 HistoToWorkspaceFactoryFast.cxx:2270
 HistoToWorkspaceFactoryFast.cxx:2271
 HistoToWorkspaceFactoryFast.cxx:2272
 HistoToWorkspaceFactoryFast.cxx:2273
 HistoToWorkspaceFactoryFast.cxx:2274
 HistoToWorkspaceFactoryFast.cxx:2275
 HistoToWorkspaceFactoryFast.cxx:2276
 HistoToWorkspaceFactoryFast.cxx:2277
 HistoToWorkspaceFactoryFast.cxx:2278
 HistoToWorkspaceFactoryFast.cxx:2279
 HistoToWorkspaceFactoryFast.cxx:2280
 HistoToWorkspaceFactoryFast.cxx:2281
 HistoToWorkspaceFactoryFast.cxx:2282
 HistoToWorkspaceFactoryFast.cxx:2283
 HistoToWorkspaceFactoryFast.cxx:2284
 HistoToWorkspaceFactoryFast.cxx:2285
 HistoToWorkspaceFactoryFast.cxx:2286
 HistoToWorkspaceFactoryFast.cxx:2287
 HistoToWorkspaceFactoryFast.cxx:2288
 HistoToWorkspaceFactoryFast.cxx:2289
 HistoToWorkspaceFactoryFast.cxx:2290
 HistoToWorkspaceFactoryFast.cxx:2291
 HistoToWorkspaceFactoryFast.cxx:2292
 HistoToWorkspaceFactoryFast.cxx:2293
 HistoToWorkspaceFactoryFast.cxx:2294
 HistoToWorkspaceFactoryFast.cxx:2295
 HistoToWorkspaceFactoryFast.cxx:2296
 HistoToWorkspaceFactoryFast.cxx:2297
 HistoToWorkspaceFactoryFast.cxx:2298
 HistoToWorkspaceFactoryFast.cxx:2299
 HistoToWorkspaceFactoryFast.cxx:2300
 HistoToWorkspaceFactoryFast.cxx:2301
 HistoToWorkspaceFactoryFast.cxx:2302
 HistoToWorkspaceFactoryFast.cxx:2303
 HistoToWorkspaceFactoryFast.cxx:2304
 HistoToWorkspaceFactoryFast.cxx:2305
 HistoToWorkspaceFactoryFast.cxx:2306
 HistoToWorkspaceFactoryFast.cxx:2307
 HistoToWorkspaceFactoryFast.cxx:2308
 HistoToWorkspaceFactoryFast.cxx:2309
 HistoToWorkspaceFactoryFast.cxx:2310
 HistoToWorkspaceFactoryFast.cxx:2311
 HistoToWorkspaceFactoryFast.cxx:2312
 HistoToWorkspaceFactoryFast.cxx:2313
 HistoToWorkspaceFactoryFast.cxx:2314
 HistoToWorkspaceFactoryFast.cxx:2315
 HistoToWorkspaceFactoryFast.cxx:2316
 HistoToWorkspaceFactoryFast.cxx:2317
 HistoToWorkspaceFactoryFast.cxx:2318
 HistoToWorkspaceFactoryFast.cxx:2319
 HistoToWorkspaceFactoryFast.cxx:2320
 HistoToWorkspaceFactoryFast.cxx:2321
 HistoToWorkspaceFactoryFast.cxx:2322
 HistoToWorkspaceFactoryFast.cxx:2323
 HistoToWorkspaceFactoryFast.cxx:2324
 HistoToWorkspaceFactoryFast.cxx:2325
 HistoToWorkspaceFactoryFast.cxx:2326
 HistoToWorkspaceFactoryFast.cxx:2327
 HistoToWorkspaceFactoryFast.cxx:2328
 HistoToWorkspaceFactoryFast.cxx:2329
 HistoToWorkspaceFactoryFast.cxx:2330
 HistoToWorkspaceFactoryFast.cxx:2331
 HistoToWorkspaceFactoryFast.cxx:2332
 HistoToWorkspaceFactoryFast.cxx:2333
 HistoToWorkspaceFactoryFast.cxx:2334
 HistoToWorkspaceFactoryFast.cxx:2335
 HistoToWorkspaceFactoryFast.cxx:2336
 HistoToWorkspaceFactoryFast.cxx:2337
 HistoToWorkspaceFactoryFast.cxx:2338
 HistoToWorkspaceFactoryFast.cxx:2339
 HistoToWorkspaceFactoryFast.cxx:2340
 HistoToWorkspaceFactoryFast.cxx:2341
 HistoToWorkspaceFactoryFast.cxx:2342
 HistoToWorkspaceFactoryFast.cxx:2343
 HistoToWorkspaceFactoryFast.cxx:2344
 HistoToWorkspaceFactoryFast.cxx:2345
 HistoToWorkspaceFactoryFast.cxx:2346
 HistoToWorkspaceFactoryFast.cxx:2347
 HistoToWorkspaceFactoryFast.cxx:2348
 HistoToWorkspaceFactoryFast.cxx:2349
 HistoToWorkspaceFactoryFast.cxx:2350
 HistoToWorkspaceFactoryFast.cxx:2351
 HistoToWorkspaceFactoryFast.cxx:2352
 HistoToWorkspaceFactoryFast.cxx:2353
 HistoToWorkspaceFactoryFast.cxx:2354
 HistoToWorkspaceFactoryFast.cxx:2355
 HistoToWorkspaceFactoryFast.cxx:2356
 HistoToWorkspaceFactoryFast.cxx:2357
 HistoToWorkspaceFactoryFast.cxx:2358
 HistoToWorkspaceFactoryFast.cxx:2359
 HistoToWorkspaceFactoryFast.cxx:2360
 HistoToWorkspaceFactoryFast.cxx:2361
 HistoToWorkspaceFactoryFast.cxx:2362
 HistoToWorkspaceFactoryFast.cxx:2363
 HistoToWorkspaceFactoryFast.cxx:2364
 HistoToWorkspaceFactoryFast.cxx:2365
 HistoToWorkspaceFactoryFast.cxx:2366
 HistoToWorkspaceFactoryFast.cxx:2367
 HistoToWorkspaceFactoryFast.cxx:2368
 HistoToWorkspaceFactoryFast.cxx:2369
 HistoToWorkspaceFactoryFast.cxx:2370
 HistoToWorkspaceFactoryFast.cxx:2371
 HistoToWorkspaceFactoryFast.cxx:2372
 HistoToWorkspaceFactoryFast.cxx:2373
 HistoToWorkspaceFactoryFast.cxx:2374
 HistoToWorkspaceFactoryFast.cxx:2375
 HistoToWorkspaceFactoryFast.cxx:2376
 HistoToWorkspaceFactoryFast.cxx:2377
 HistoToWorkspaceFactoryFast.cxx:2378
 HistoToWorkspaceFactoryFast.cxx:2379
 HistoToWorkspaceFactoryFast.cxx:2380
 HistoToWorkspaceFactoryFast.cxx:2381
 HistoToWorkspaceFactoryFast.cxx:2382
 HistoToWorkspaceFactoryFast.cxx:2383
 HistoToWorkspaceFactoryFast.cxx:2384
 HistoToWorkspaceFactoryFast.cxx:2385
 HistoToWorkspaceFactoryFast.cxx:2386
 HistoToWorkspaceFactoryFast.cxx:2387
 HistoToWorkspaceFactoryFast.cxx:2388
 HistoToWorkspaceFactoryFast.cxx:2389
 HistoToWorkspaceFactoryFast.cxx:2390
 HistoToWorkspaceFactoryFast.cxx:2391
 HistoToWorkspaceFactoryFast.cxx:2392
 HistoToWorkspaceFactoryFast.cxx:2393
 HistoToWorkspaceFactoryFast.cxx:2394
 HistoToWorkspaceFactoryFast.cxx:2395
 HistoToWorkspaceFactoryFast.cxx:2396
 HistoToWorkspaceFactoryFast.cxx:2397
 HistoToWorkspaceFactoryFast.cxx:2398
 HistoToWorkspaceFactoryFast.cxx:2399
 HistoToWorkspaceFactoryFast.cxx:2400
 HistoToWorkspaceFactoryFast.cxx:2401
 HistoToWorkspaceFactoryFast.cxx:2402
 HistoToWorkspaceFactoryFast.cxx:2403
 HistoToWorkspaceFactoryFast.cxx:2404
 HistoToWorkspaceFactoryFast.cxx:2405
 HistoToWorkspaceFactoryFast.cxx:2406
 HistoToWorkspaceFactoryFast.cxx:2407
 HistoToWorkspaceFactoryFast.cxx:2408
 HistoToWorkspaceFactoryFast.cxx:2409
 HistoToWorkspaceFactoryFast.cxx:2410
 HistoToWorkspaceFactoryFast.cxx:2411
 HistoToWorkspaceFactoryFast.cxx:2412
 HistoToWorkspaceFactoryFast.cxx:2413
 HistoToWorkspaceFactoryFast.cxx:2414
 HistoToWorkspaceFactoryFast.cxx:2415
 HistoToWorkspaceFactoryFast.cxx:2416
 HistoToWorkspaceFactoryFast.cxx:2417
 HistoToWorkspaceFactoryFast.cxx:2418
 HistoToWorkspaceFactoryFast.cxx:2419
 HistoToWorkspaceFactoryFast.cxx:2420
 HistoToWorkspaceFactoryFast.cxx:2421
 HistoToWorkspaceFactoryFast.cxx:2422
 HistoToWorkspaceFactoryFast.cxx:2423
 HistoToWorkspaceFactoryFast.cxx:2424
 HistoToWorkspaceFactoryFast.cxx:2425
 HistoToWorkspaceFactoryFast.cxx:2426
 HistoToWorkspaceFactoryFast.cxx:2427
 HistoToWorkspaceFactoryFast.cxx:2428
 HistoToWorkspaceFactoryFast.cxx:2429
 HistoToWorkspaceFactoryFast.cxx:2430
 HistoToWorkspaceFactoryFast.cxx:2431
 HistoToWorkspaceFactoryFast.cxx:2432
 HistoToWorkspaceFactoryFast.cxx:2433
 HistoToWorkspaceFactoryFast.cxx:2434
 HistoToWorkspaceFactoryFast.cxx:2435
 HistoToWorkspaceFactoryFast.cxx:2436
 HistoToWorkspaceFactoryFast.cxx:2437
 HistoToWorkspaceFactoryFast.cxx:2438
 HistoToWorkspaceFactoryFast.cxx:2439
 HistoToWorkspaceFactoryFast.cxx:2440
 HistoToWorkspaceFactoryFast.cxx:2441
 HistoToWorkspaceFactoryFast.cxx:2442
 HistoToWorkspaceFactoryFast.cxx:2443
 HistoToWorkspaceFactoryFast.cxx:2444
 HistoToWorkspaceFactoryFast.cxx:2445
 HistoToWorkspaceFactoryFast.cxx:2446
 HistoToWorkspaceFactoryFast.cxx:2447
 HistoToWorkspaceFactoryFast.cxx:2448
 HistoToWorkspaceFactoryFast.cxx:2449
 HistoToWorkspaceFactoryFast.cxx:2450
 HistoToWorkspaceFactoryFast.cxx:2451
 HistoToWorkspaceFactoryFast.cxx:2452
 HistoToWorkspaceFactoryFast.cxx:2453
 HistoToWorkspaceFactoryFast.cxx:2454
 HistoToWorkspaceFactoryFast.cxx:2455
 HistoToWorkspaceFactoryFast.cxx:2456
 HistoToWorkspaceFactoryFast.cxx:2457
 HistoToWorkspaceFactoryFast.cxx:2458
 HistoToWorkspaceFactoryFast.cxx:2459
 HistoToWorkspaceFactoryFast.cxx:2460
 HistoToWorkspaceFactoryFast.cxx:2461
 HistoToWorkspaceFactoryFast.cxx:2462
 HistoToWorkspaceFactoryFast.cxx:2463
 HistoToWorkspaceFactoryFast.cxx:2464
 HistoToWorkspaceFactoryFast.cxx:2465
 HistoToWorkspaceFactoryFast.cxx:2466
 HistoToWorkspaceFactoryFast.cxx:2467
 HistoToWorkspaceFactoryFast.cxx:2468
 HistoToWorkspaceFactoryFast.cxx:2469
 HistoToWorkspaceFactoryFast.cxx:2470
 HistoToWorkspaceFactoryFast.cxx:2471
 HistoToWorkspaceFactoryFast.cxx:2472
 HistoToWorkspaceFactoryFast.cxx:2473
 HistoToWorkspaceFactoryFast.cxx:2474
 HistoToWorkspaceFactoryFast.cxx:2475
 HistoToWorkspaceFactoryFast.cxx:2476
 HistoToWorkspaceFactoryFast.cxx:2477
 HistoToWorkspaceFactoryFast.cxx:2478
 HistoToWorkspaceFactoryFast.cxx:2479
 HistoToWorkspaceFactoryFast.cxx:2480
 HistoToWorkspaceFactoryFast.cxx:2481
 HistoToWorkspaceFactoryFast.cxx:2482
 HistoToWorkspaceFactoryFast.cxx:2483
 HistoToWorkspaceFactoryFast.cxx:2484
 HistoToWorkspaceFactoryFast.cxx:2485
 HistoToWorkspaceFactoryFast.cxx:2486
 HistoToWorkspaceFactoryFast.cxx:2487
 HistoToWorkspaceFactoryFast.cxx:2488
 HistoToWorkspaceFactoryFast.cxx:2489
 HistoToWorkspaceFactoryFast.cxx:2490
 HistoToWorkspaceFactoryFast.cxx:2491
 HistoToWorkspaceFactoryFast.cxx:2492
 HistoToWorkspaceFactoryFast.cxx:2493
 HistoToWorkspaceFactoryFast.cxx:2494
 HistoToWorkspaceFactoryFast.cxx:2495
 HistoToWorkspaceFactoryFast.cxx:2496
 HistoToWorkspaceFactoryFast.cxx:2497
 HistoToWorkspaceFactoryFast.cxx:2498
 HistoToWorkspaceFactoryFast.cxx:2499
 HistoToWorkspaceFactoryFast.cxx:2500
 HistoToWorkspaceFactoryFast.cxx:2501
 HistoToWorkspaceFactoryFast.cxx:2502
 HistoToWorkspaceFactoryFast.cxx:2503
 HistoToWorkspaceFactoryFast.cxx:2504
 HistoToWorkspaceFactoryFast.cxx:2505
 HistoToWorkspaceFactoryFast.cxx:2506
 HistoToWorkspaceFactoryFast.cxx:2507
 HistoToWorkspaceFactoryFast.cxx:2508
 HistoToWorkspaceFactoryFast.cxx:2509
 HistoToWorkspaceFactoryFast.cxx:2510
 HistoToWorkspaceFactoryFast.cxx:2511
 HistoToWorkspaceFactoryFast.cxx:2512
 HistoToWorkspaceFactoryFast.cxx:2513
 HistoToWorkspaceFactoryFast.cxx:2514
 HistoToWorkspaceFactoryFast.cxx:2515
 HistoToWorkspaceFactoryFast.cxx:2516
 HistoToWorkspaceFactoryFast.cxx:2517
 HistoToWorkspaceFactoryFast.cxx:2518
 HistoToWorkspaceFactoryFast.cxx:2519
 HistoToWorkspaceFactoryFast.cxx:2520
 HistoToWorkspaceFactoryFast.cxx:2521
 HistoToWorkspaceFactoryFast.cxx:2522
 HistoToWorkspaceFactoryFast.cxx:2523
 HistoToWorkspaceFactoryFast.cxx:2524
 HistoToWorkspaceFactoryFast.cxx:2525
 HistoToWorkspaceFactoryFast.cxx:2526
 HistoToWorkspaceFactoryFast.cxx:2527
 HistoToWorkspaceFactoryFast.cxx:2528
 HistoToWorkspaceFactoryFast.cxx:2529
 HistoToWorkspaceFactoryFast.cxx:2530
 HistoToWorkspaceFactoryFast.cxx:2531
 HistoToWorkspaceFactoryFast.cxx:2532
 HistoToWorkspaceFactoryFast.cxx:2533
 HistoToWorkspaceFactoryFast.cxx:2534
 HistoToWorkspaceFactoryFast.cxx:2535
 HistoToWorkspaceFactoryFast.cxx:2536
 HistoToWorkspaceFactoryFast.cxx:2537
 HistoToWorkspaceFactoryFast.cxx:2538
 HistoToWorkspaceFactoryFast.cxx:2539
 HistoToWorkspaceFactoryFast.cxx:2540
 HistoToWorkspaceFactoryFast.cxx:2541
 HistoToWorkspaceFactoryFast.cxx:2542
 HistoToWorkspaceFactoryFast.cxx:2543
 HistoToWorkspaceFactoryFast.cxx:2544
 HistoToWorkspaceFactoryFast.cxx:2545
 HistoToWorkspaceFactoryFast.cxx:2546
 HistoToWorkspaceFactoryFast.cxx:2547
 HistoToWorkspaceFactoryFast.cxx:2548
 HistoToWorkspaceFactoryFast.cxx:2549
 HistoToWorkspaceFactoryFast.cxx:2550
 HistoToWorkspaceFactoryFast.cxx:2551
 HistoToWorkspaceFactoryFast.cxx:2552
 HistoToWorkspaceFactoryFast.cxx:2553
 HistoToWorkspaceFactoryFast.cxx:2554
 HistoToWorkspaceFactoryFast.cxx:2555
 HistoToWorkspaceFactoryFast.cxx:2556
 HistoToWorkspaceFactoryFast.cxx:2557
 HistoToWorkspaceFactoryFast.cxx:2558
 HistoToWorkspaceFactoryFast.cxx:2559
 HistoToWorkspaceFactoryFast.cxx:2560
 HistoToWorkspaceFactoryFast.cxx:2561
 HistoToWorkspaceFactoryFast.cxx:2562
 HistoToWorkspaceFactoryFast.cxx:2563
 HistoToWorkspaceFactoryFast.cxx:2564
 HistoToWorkspaceFactoryFast.cxx:2565
 HistoToWorkspaceFactoryFast.cxx:2566
 HistoToWorkspaceFactoryFast.cxx:2567
 HistoToWorkspaceFactoryFast.cxx:2568
 HistoToWorkspaceFactoryFast.cxx:2569
 HistoToWorkspaceFactoryFast.cxx:2570
 HistoToWorkspaceFactoryFast.cxx:2571
 HistoToWorkspaceFactoryFast.cxx:2572
 HistoToWorkspaceFactoryFast.cxx:2573
 HistoToWorkspaceFactoryFast.cxx:2574
 HistoToWorkspaceFactoryFast.cxx:2575
 HistoToWorkspaceFactoryFast.cxx:2576
 HistoToWorkspaceFactoryFast.cxx:2577
 HistoToWorkspaceFactoryFast.cxx:2578
 HistoToWorkspaceFactoryFast.cxx:2579
 HistoToWorkspaceFactoryFast.cxx:2580
 HistoToWorkspaceFactoryFast.cxx:2581
 HistoToWorkspaceFactoryFast.cxx:2582
 HistoToWorkspaceFactoryFast.cxx:2583
 HistoToWorkspaceFactoryFast.cxx:2584
 HistoToWorkspaceFactoryFast.cxx:2585
 HistoToWorkspaceFactoryFast.cxx:2586
 HistoToWorkspaceFactoryFast.cxx:2587
 HistoToWorkspaceFactoryFast.cxx:2588
 HistoToWorkspaceFactoryFast.cxx:2589
 HistoToWorkspaceFactoryFast.cxx:2590
 HistoToWorkspaceFactoryFast.cxx:2591
 HistoToWorkspaceFactoryFast.cxx:2592
 HistoToWorkspaceFactoryFast.cxx:2593
 HistoToWorkspaceFactoryFast.cxx:2594
 HistoToWorkspaceFactoryFast.cxx:2595
 HistoToWorkspaceFactoryFast.cxx:2596
 HistoToWorkspaceFactoryFast.cxx:2597
 HistoToWorkspaceFactoryFast.cxx:2598
 HistoToWorkspaceFactoryFast.cxx:2599
 HistoToWorkspaceFactoryFast.cxx:2600
 HistoToWorkspaceFactoryFast.cxx:2601
 HistoToWorkspaceFactoryFast.cxx:2602
 HistoToWorkspaceFactoryFast.cxx:2603