ROOT logo
/*****************************************************************************

 *****************************************************************************/

//////////////////////////////////////////////////////////////////////////////
// 
// BEGIN_HTML
// ParamHistFunc 
// END_HTML
//


#include <sstream>
#include "TMath.h"
#include "TH1.h"

#include "Riostream.h"
#include "Riostream.h"
#include <math.h>

#include "RooFit.h"
#include "RooStats/HistFactory/ParamHistFunc.h"
#include "RooAbsReal.h"
#include "RooAbsPdf.h"

#include "RooConstVar.h"
#include "RooBinning.h"
#include "RooErrorHandler.h"

#include "RooGaussian.h"
#include "RooHistFunc.h"
#include "RooArgSet.h"
#include "RooNLLVar.h"
#include "RooChi2Var.h"
#include "RooMsgService.h"

// Forward declared:
#include "RooRealVar.h"
#include "RooArgList.h"
#include "RooWorkspace.h"
#include "RooBinning.h"

ClassImp(ParamHistFunc);


//_____________________________________________________________________________
ParamHistFunc::ParamHistFunc() 
{
  ;
}


//_____________________________________________________________________________
ParamHistFunc::ParamHistFunc(const char* name, const char* title, 
			     const RooArgList& vars, const RooArgList& paramSet) :
  RooAbsReal(name, title),
  _dataVars("!dataVars","data Vars",       this),
  _paramSet("!paramSet","bin paramaters",  this),
  _numBins(0),
  _dataSet( (string(name)+"_dataSet").c_str(), "", vars) 
{
  
  // Create a function which returns binewise-values
  // This class contains N RooRealVar's, one for each
  // bin from the given RooRealVar.
  //
  // The value of the function in the ith bin is 
  // given by:
  //
  // F(i) = gamma_i * nominal(i)
  //
  // Where the nominal values are simply fixed
  // numbers (default = 1.0 for all i)

  // Create the dataset that stores the binning info:
  
  //  _dataSet = RooDataSet("

  // Set the binning
  // //_binning = var.getBinning().clone() ;
  
  // Create the set of paramaters
  // controlling the height of each bin

  // Get the number of bins
  _numBins = GetNumBins( vars );

  // Add the paramaters (with checking)
  addVarSet( vars );
  addParamSet( paramSet );

  
}


//_____________________________________________________________________________
ParamHistFunc::ParamHistFunc(const char* name, const char* title, 
			     const RooArgList& vars, const RooArgList& paramSet,
			     const TH1* Hist ) :
  RooAbsReal(name, title),
  //  _dataVar("!dataVar","data Var", this, (RooRealVar&) var),
  _dataVars("!dataVars","data Vars",       this),
  _paramSet("!paramSet","bin paramaters",  this),
  _numBins(0),
  _dataSet( (string(name)+"_dataSet").c_str(), "", vars, Hist) 
{

  // Create a function which returns binewise-values
  // This class contains N RooRealVar's, one for each
  // bin from the given RooRealVar.
  //
  // The value of the function in the ith bin is 
  // given by:
  //
  // F(i) = gamma_i * nominal(i)
  //
  // Where the nominal values are simply fixed
  // numbers (default = 1.0 for all i)

  // Get the number of bins
  _numBins = GetNumBins( vars );

  // Add the paramaters (with checking)
  addVarSet( vars );
  addParamSet( paramSet );
 
}


Int_t ParamHistFunc::GetNumBins( const RooArgSet& vars ) {
  
  
  // A helper method to get the number of bins
  
  if( vars.getSize() == 0 ) return 0;
    
  Int_t numBins = 1;

  RooFIter varIter = vars.fwdIterator() ;
  RooAbsArg* comp ;
  while((comp = (RooAbsArg*) varIter.next())) {
    if (!dynamic_cast<RooRealVar*>(comp)) {
      cout << "ParamHistFunc::GetNumBins" << vars.GetName() << ") ERROR: component " << comp->GetName() 
	   << " in vars list is not of type RooRealVar" << std::endl ;
      RooErrorHandler::softAbort() ;
      return -1;
    }
    RooRealVar* var = (RooRealVar*) comp;

    Int_t varNumBins = var->numBins();
    numBins *= varNumBins;
  }
    
  return numBins;

}


//_____________________________________________________________________________
ParamHistFunc::ParamHistFunc(const ParamHistFunc& other, const char* name) :
  RooAbsReal(other, name), 
  _dataVars("!dataVars", this, other._dataVars ),
  _paramSet("!paramSet", this, other._paramSet),
  _numBins( other._numBins ),
  _dataSet( other._dataSet )
{
  ;
  // Copy constructor
  // Member _ownedList is intentionally not copy-constructed -- ownership is not transferred
}


//_____________________________________________________________________________
ParamHistFunc::~ParamHistFunc() 
{
  ;
}


//_____________________________________________________________________________
Int_t ParamHistFunc::getCurrentBin() const {

  Int_t dataSetIndex = _dataSet.getIndex( _dataVars ); // calcTreeIndex();
  Int_t currentIndex = _binMap[ dataSetIndex ];

  return currentIndex;

}

//_____________________________________________________________________________
RooRealVar& ParamHistFunc::getParameter( Int_t index ) const {
  return (RooRealVar&) _paramSet[index];
}

//_____________________________________________________________________________
RooRealVar& ParamHistFunc::getParameter() const {
  Int_t index = getCurrentBin();
  return getParameter( index );
}

void ParamHistFunc::setParamConst( Int_t index, Bool_t varConst ) {

  RooRealVar& var = getParameter( index );
  var.setConstant( varConst );
}



//_____________________________________________________________________________
RooArgList ParamHistFunc::createParamSet(RooWorkspace& w, const std::string& Prefix, const RooArgList& vars) {
  
  // Create the list of RooRealVar
  // parameters which represent the
  // height of the histogram bins.
  // Store them in a list

  // _paramSet.add( createParamSet() );

  // Get the number of bins
  // in the nominal histogram


  RooArgList paramSet;

  Int_t numVars = vars.getSize();
  Int_t numBins = GetNumBins( vars );


  if( numVars == 0 ) {
    cout << "Warning - ParamHistFunc::createParamSet() :"
	 << " No Variables provided.  Not making constraint terms." 
	 << endl;
    return paramSet;
  }

  else if( numVars == 1 ) {
 
    // For each bin, create a RooRealVar
    for( Int_t i = 0; i < numBins; ++i) {

      std::stringstream VarNameStream;
      VarNameStream << Prefix << "_bin_" << i;
      std::string VarName = VarNameStream.str();



      RooRealVar gamma( VarName.c_str(), VarName.c_str(), 1.0 ); 
      // "Hard-Code" a minimum of 0.0
      gamma.setMin( 0.0 );
      gamma.setConstant( false );

      w.import( gamma, RooFit::RecycleConflictNodes() );
      RooRealVar* gamma_wspace = (RooRealVar*) w.var( VarName.c_str() );

      paramSet.add( *gamma_wspace );

    }
  }


  else if( numVars == 2 ) {
 
    // Create a vector of indices
    // all starting at 0
    std::vector< Int_t > Indices(numVars, 0);

    RooRealVar* varx = (RooRealVar*) vars.at(0);
    RooRealVar* vary = (RooRealVar*) vars.at(1);
    
    // For each bin, create a RooRealVar
    for( Int_t j = 0; j < vary->numBins(); ++j) {
      for( Int_t i = 0; i < varx->numBins(); ++i) {

	// Ordering is important:
	// To match TH1, list goes over x bins
	// first, then y

	std::stringstream VarNameStream;
	VarNameStream << Prefix << "_bin_" << i << "_" << j;
	std::string VarName = VarNameStream.str();

	RooRealVar gamma( VarName.c_str(), VarName.c_str(), 1.0 ); 
	// "Hard-Code" a minimum of 0.0
	gamma.setMin( 0.0 );
	gamma.setConstant( false );
	  
	w.import( gamma, RooFit::RecycleConflictNodes() );
	RooRealVar* gamma_wspace = (RooRealVar*) w.var( VarName.c_str() );
	  
	paramSet.add( *gamma_wspace );
	  
      }
    }
  }

  else if( numVars == 3 ) {
 
    // Create a vector of indices
    // all starting at 0
    std::vector< Int_t > Indices(numVars, 0);

    RooRealVar* varx = (RooRealVar*) vars.at(0);
    RooRealVar* vary = (RooRealVar*) vars.at(1);
    RooRealVar* varz = (RooRealVar*) vars.at(2);
    
    // For each bin, create a RooRealVar
    for( Int_t k = 0; k < varz->numBins(); ++k) {
      for( Int_t j = 0; j < vary->numBins(); ++j) {
	for( Int_t i = 0; i < varx->numBins(); ++i) {
	  
	  // Ordering is important:
	  // To match TH1, list goes over x bins
	  // first, then y, then z

	  std::stringstream VarNameStream;
	  VarNameStream << Prefix << "_bin_" << i << "_" << j << "_" << k;
	  std::string VarName = VarNameStream.str();
	
	  RooRealVar gamma( VarName.c_str(), VarName.c_str(), 1.0 ); 
	  // "Hard-Code" a minimum of 0.0
	  gamma.setMin( 0.0 );
	  gamma.setConstant( false );
	  
	  w.import( gamma, RooFit::RecycleConflictNodes() );
	  RooRealVar* gamma_wspace = (RooRealVar*) w.var( VarName.c_str() );
	  
	  paramSet.add( *gamma_wspace );
	
	}
      }
    }
  }

    

  else {
 
    cout << " Error: ParamHistFunc doesn't support dimensions > 3D " <<  endl;
    
    /*
    // Create a vector of indices
    // all starting at 0
    std::vector< Int_t > Indices(numVars, 0);

    // Loop over vars:
    RooFIter varIter = vars.fwdIterator() ;
    Int_t VarIndex = 0;
    RooAbsArg* comp ;
    while((comp = (RooAbsArg*) varIter.next())) {
    
      RooRealVar* var = (RooRealVar*) comp;

      // For each bin, create a RooRealVar
      for( Int_t i = 0; i < var->numBins(); ++i) {

	if( i != 0 ) Indices.at(VarIndex)++;
	
	// Make the name of the var:
	// Varname_bin_0_2_1  where x=0, y=2, z=1 (etc)
	std::stringstream VarNameStream;
	VarNameStream << Prefix << "_bin";
	for(Int_t j = 0; j < numVars; ++j) {
	  VarNameStream << "_" << Indices.at(j);;
	}
	std::string VarName = VarNameStream.str();
	
	RooRealVar gamma( VarName.c_str(), VarName.c_str(), 1.0 ); 
	// "Hard-Code" a minimum of 0.0
	gamma.setMin( 0.0 );
	gamma.setConstant( false );
	
	w.import( gamma, RooFit::RecycleConflictNodes() );
	RooRealVar* gamma_wspace = (RooRealVar*) w.var( VarName.c_str() );
	
	paramSet.add( *gamma_wspace );
	
	// Increase the bin index on this var
	// (Used in naming)

      }

      // Increase the Int_t iterator
      // over variables
      VarIndex++;

    }
    */
  }

  return paramSet;  

}


//_____________________________________________________________________________
RooArgList ParamHistFunc::createParamSet(RooWorkspace& w, const std::string& Prefix, const RooArgList& vars, 
					 Double_t gamma_min, Double_t gamma_max) {


  RooArgList params = ParamHistFunc::createParamSet( w, Prefix, vars );

  RooFIter paramIter = params.fwdIterator() ;
  RooAbsArg* comp ;
  while((comp = (RooAbsArg*) paramIter.next())) {
    
    RooRealVar* var = (RooRealVar*) comp;

    var->setMin( gamma_min );
    var->setMax( gamma_max );
  }

  return params;

  /*  

  // Create the list of RooRealVar
  // parameters which represent the
  // height of the histogram bins.
  // Store them in a list

  // _paramSet.add( createParamSet() );

  // Get the number of bins
  // in the nominal histogram
 

  RooArgList paramSet;

  if( gamma_max <= gamma_min ) {

    std::cout << "Warming: gamma_min <= gamma_max: Using default values (0, 10)" << std::endl;

    gamma_min = 0.0;
    gamma_max = 10.0;

  }

  Double_t gamma_nominal = 1.0;

  if( gamma_nominal < gamma_min ) {
    gamma_nominal = gamma_min;
  }

  if( gamma_nominal > gamma_max ) {
    gamma_nominal = gamma_max;
  }


  // For each bin, create a RooRealVar
  for( Int_t i = 0; i < numBins; ++i) {

    std::stringstream VarNameStream;
    VarNameStream << Prefix << "_bin_" << i;
    std::string VarName = VarNameStream.str();

    RooRealVar gamma( VarName.c_str(), VarName.c_str(), 
		      gamma_nominal, gamma_min, gamma_max );
    gamma.setConstant( false );

    w.import( gamma, RooFit::RecycleConflictNodes() );
    RooRealVar* gamma_wspace = (RooRealVar*) w.var( VarName.c_str() );

    paramSet.add( *gamma_wspace );

  }


  return paramSet;
  */

}



//_____________________________________________________________________________
RooArgList ParamHistFunc::createParamSet(const std::string& Prefix, Int_t numBins, Double_t gamma_min, Double_t gamma_max) {

  // Create the list of RooRealVar
  // parameters which represent the
  // height of the histogram bins.
  // Store them in a list

  // _paramSet.add( createParamSet() );

  // Get the number of bins
  // in the nominal histogram
 

  RooArgList paramSet;

  if( gamma_max <= gamma_min ) {

    std::cout << "Warming: gamma_min <= gamma_max: Using default values (0, 10)" << std::endl;

    gamma_min = 0.0;
    gamma_max = 10.0;

  }

  Double_t gamma_nominal = 1.0;

  if( gamma_nominal < gamma_min ) {
    gamma_nominal = gamma_min;
  }

  if( gamma_nominal > gamma_max ) {
    gamma_nominal = gamma_max;
  }


  // For each bin, create a RooRealVar
  for( Int_t i = 0; i < numBins; ++i) {

    std::stringstream VarNameStream;
    VarNameStream << Prefix << "_bin_" << i;
    std::string VarName = VarNameStream.str();

    RooRealVar* gamma = new RooRealVar( VarName.c_str(), VarName.c_str(), 
					gamma_nominal, gamma_min, gamma_max );
    gamma->setConstant( false );
    paramSet.add( *gamma );

  }


  return paramSet;

}

//_____________________________________________________________________________
Int_t ParamHistFunc::addVarSet( const RooArgList& vars ) {
  
  // return 0 for success
  // return 1 for failure
  
  // Check that the elements 
  // are actually RooRealVar's
  // If so, add them to the 
  // list of vars

  int numVars = 0;

  RooFIter varIter = vars.fwdIterator() ;
  RooAbsArg* comp ;
  while((comp = (RooAbsArg*) varIter.next())) {
    if (!dynamic_cast<RooRealVar*>(comp)) {
      coutE(InputArguments) << "ParamHistFunc::(" << GetName() << ") ERROR: component " << comp->GetName() 
			    << " in variables list is not of type RooRealVar" << std::endl ;
      RooErrorHandler::softAbort() ;
      return 1;
    }

    _dataVars.add( *comp );
    numVars++;

  }


  Int_t numBinsX = 1;
  Int_t numBinsY = 1;
  Int_t numBinsZ = 1;

  if( numVars == 1 ) {
    RooRealVar* varX = (RooRealVar*) _dataVars.at(0);
    numBinsX = varX->numBins();
    numBinsY = 1;
    numBinsZ = 1;
  } else  if( numVars == 2 ) {
    RooRealVar* varX = (RooRealVar*) _dataVars.at(0);
    RooRealVar* varY = (RooRealVar*) _dataVars.at(1);
    numBinsX = varX->numBins();
    numBinsY = varY->numBins();
    numBinsZ = 1;
  } else  if( numVars == 3 ) {
    RooRealVar* varX = (RooRealVar*) _dataVars.at(0);
    RooRealVar* varY = (RooRealVar*) _dataVars.at(1);
    RooRealVar* varZ = (RooRealVar*) _dataVars.at(2);
    numBinsX = varX->numBins();
    numBinsY = varY->numBins();
    numBinsZ = varZ->numBins();
  } else {
    std::cout << "ParamHistFunc() - Only works for 1-3 variables (1d-3d)" << std::endl;
    throw -1;  
  }

  // Fill the mapping between
  // RooDataHist bins and TH1 Bins:

  for( Int_t i = 0; i < numBinsX; ++i ) {
    for( Int_t j = 0; j < numBinsY; ++j ) {
      for( Int_t k = 0; k < numBinsZ; ++k ) {
	
	Int_t RooDataSetBin = k + j*numBinsZ + i*numBinsY*numBinsZ; 
	Int_t TH1HistBin    = i + j*numBinsX + k*numBinsX*numBinsY; 
	  
	_binMap[RooDataSetBin] = TH1HistBin;
	
      }
    }
  }

  
  return 0;

}

//_____________________________________________________________________________
Int_t ParamHistFunc::addParamSet( const RooArgList& params ) {
  
  // return 0 for success
  // return 1 for failure

  // Check that the supplied list has
  // the right number of arguments:

  Int_t numVarBins  = _numBins;
  Int_t numElements = params.getSize();

  if( numVarBins != numElements ) {
    std::cout << "ParamHistFunc::addParamSet - ERROR - " 
	      << "Supplied list of paramaters " << params.GetName()
	      << " has " << numElements << " elements but the ParamHistFunc"
	      << GetName() << " has " << numVarBins << " bins."
	      << std::endl;
    return 1;

  }
  
  // Check that the elements 
  // are actually RooRealVar's
  // If so, add them to the 
  // list of params

  RooFIter paramIter = params.fwdIterator() ;
  RooAbsArg* comp ;
  while((comp = (RooAbsArg*) paramIter.next())) {
    if (!dynamic_cast<RooRealVar*>(comp)) {
      coutE(InputArguments) << "ParamHistFunc::(" << GetName() << ") ERROR: component " << comp->GetName() 
			    << " in paramater list is not of type RooRealVar" << std::endl ;
      RooErrorHandler::softAbort() ;
      return 1;
    }

    _paramSet.add( *comp );

  }
  
  return 0;

}


//_____________________________________________________________________________
Double_t ParamHistFunc::evaluate() const 
{

  // Find the bin cooresponding to the current
  // value of the RooRealVar:

  Int_t currentBin = getCurrentBin();

  RooRealVar* param = (RooRealVar*) &(_paramSet[currentBin]);

  Double_t value = param->getVal();

  /*
  cout << "ParamHistFunc - Current Bin: " << currentBin
       << " param pointer: " << param
       << " param val: " << paramVal
       << " val: " << value
       << endl;
  */
  return value;
  
}


//_____________________________________________________________________________
Int_t ParamHistFunc::getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, 
						      const RooArgSet* normSet, const char* /*rangeName*/) const 
{
  // Advertise that all integrals can be handled internally.

  // Handle trivial no-integration scenario
  if (allVars.getSize()==0) return 0 ;
  if (_forceNumInt) return 0 ;


  // Select subset of allVars that are actual dependents
  analVars.add(allVars) ;
  //  RooArgSet* normSet = normSet2 ? getObservables(normSet2) : 0 ;
  //  RooArgSet* normSet = getObservables();
  //  RooArgSet* normSet = 0;


  // Check if this configuration was created before
  Int_t sterileIdx(-1) ;
  CacheElem* cache = (CacheElem*) _normIntMgr.getObj(normSet,&analVars,&sterileIdx,(const char*)0) ;
  if (cache) {
    return _normIntMgr.lastIndex()+1 ;
  }
  
  // Create new cache element
  cache = new CacheElem ;

  // Store cache element
  Int_t code = _normIntMgr.setObj(normSet,&analVars,(RooAbsCacheElement*)cache,0) ;

  return code+1 ; 


  // Make list of function projection and normalization integrals 
  //  RooAbsReal* param ;
  // RooAbsReal *func ;
  //  const RooArgSet* nset = _paramList.nset() ;

  // do nominal
  /*
  func = (RooAbsReal*) &( _dataVar.arg() );
  RooAbsReal* funcInt = func->createIntegral(analVars) ;
  cache->_funcIntList.addOwned(*funcInt) ;


  // Implement integration here

  // do variations
  //_lowIter->Reset() ;
  //_highIter->Reset() ;
  _paramIter->Reset() ;
  int i=0;
  while((param=(RooAbsReal*)_paramIter->Next())) {

    / *
    func = (RooAbsReal*)_lowIter->Next() ;
    funcInt = func->createIntegral(analVars) ;
    cache->_lowIntList.addOwned(*funcInt) ;

    func = (RooAbsReal*)_highIter->Next() ;
    funcInt = func->createIntegral(analVars) ;
    cache->_highIntList.addOwned(*funcInt) ;
    * /
    ++i;

  }
*/

}




//_____________________________________________________________________________
Double_t ParamHistFunc::analyticalIntegralWN(Int_t /*code*/, const RooArgSet* /*normSet2*/,const char* /*rangeName*/) const 
{
  // Implement analytical integrations by doing appropriate weighting from  component integrals
  // functions to integrators of components

  Double_t value(0) ;

  // Simply loop over bins, 
  // get the height, and
  // multiply by the bind width
  
  RooFIter paramIter = _paramSet.fwdIterator();
  RooRealVar* param = NULL;
  Int_t nominalItr = 0;
  while((param = (RooRealVar*) paramIter.next())) {

    // Get the gamma's value
    Double_t paramVal  = (*param).getVal();
    
    // Get the bin volume
    _dataSet.get( nominalItr );
    Double_t binVolume  = _dataSet.binVolume(); //_binning->binWidth( nominalItr );
    
    // Finally, get the subtotal
    value += paramVal*binVolume;

    ++nominalItr;

    /*
    std::cout << "Integrating : "
	      << " bin: "  << nomValue
	      << " binVolume:  "  << binVolume
	      << " paramValue:  "  << paramVal
	      << " nomValue:  "  << nomValue
	      << " subTotal:  "  << value
	      << std::endl;
    */

  }

  return value;

}



//_____________________________________________________________________________
list<Double_t>* ParamHistFunc::plotSamplingHint(RooAbsRealLValue& obs, Double_t xlo, Double_t xhi) const
{
  // Return sampling hint for making curves of (projections) of this function
  // as the recursive division strategy of RooCurve cannot deal efficiently
  // with the vertical lines that occur in a non-interpolated histogram

  return 0;

  // copied and edited from RooHistFunc
  RooAbsLValue* lvarg = &obs;

  // Retrieve position of all bin boundaries
  const RooAbsBinning* binning = lvarg->getBinningPtr(0) ;
  Double_t* boundaries = binning->array() ;

  list<Double_t>* hint = new list<Double_t> ;

  // Widen range slighty
  xlo = xlo - 0.01*(xhi-xlo) ;
  xhi = xhi + 0.01*(xhi-xlo) ;

  Double_t delta = (xhi-xlo)*1e-8 ;
 
  // Construct array with pairs of points positioned epsilon to the left and
  // right of the bin boundaries
  for (Int_t i=0 ; i<binning->numBoundaries() ; i++) {
    if (boundaries[i]>=xlo && boundaries[i]<=xhi) {
      hint->push_back(boundaries[i]-delta) ;
      hint->push_back(boundaries[i]+delta) ;
    }
  }

  return hint ;
}


//______________________________________________________________________________
std::list<Double_t>* ParamHistFunc::binBoundaries(RooAbsRealLValue& obs, Double_t xlo, Double_t xhi) const 
{
  // Return sampling hint for making curves of (projections) of this function
  // as the recursive division strategy of RooCurve cannot deal efficiently
  // with the vertical lines that occur in a non-interpolated histogram

  return 0;

  // copied and edited from RooHistFunc
  RooAbsLValue* lvarg = &obs;

  // Retrieve position of all bin boundaries
  const RooAbsBinning* binning = lvarg->getBinningPtr(0) ;
  Double_t* boundaries = binning->array() ;

  list<Double_t>* hint = new list<Double_t> ;

  // Construct array with pairs of points positioned epsilon to the left and
  // right of the bin boundaries
  for (Int_t i=0 ; i<binning->numBoundaries() ; i++) {
    if (boundaries[i]>=xlo && boundaries[i]<=xhi) {
      hint->push_back(boundaries[i]) ;
    }
  }

  return hint ;
}
 ParamHistFunc.cxx:1
 ParamHistFunc.cxx:2
 ParamHistFunc.cxx:3
 ParamHistFunc.cxx:4
 ParamHistFunc.cxx:5
 ParamHistFunc.cxx:6
 ParamHistFunc.cxx:7
 ParamHistFunc.cxx:8
 ParamHistFunc.cxx:9
 ParamHistFunc.cxx:10
 ParamHistFunc.cxx:11
 ParamHistFunc.cxx:12
 ParamHistFunc.cxx:13
 ParamHistFunc.cxx:14
 ParamHistFunc.cxx:15
 ParamHistFunc.cxx:16
 ParamHistFunc.cxx:17
 ParamHistFunc.cxx:18
 ParamHistFunc.cxx:19
 ParamHistFunc.cxx:20
 ParamHistFunc.cxx:21
 ParamHistFunc.cxx:22
 ParamHistFunc.cxx:23
 ParamHistFunc.cxx:24
 ParamHistFunc.cxx:25
 ParamHistFunc.cxx:26
 ParamHistFunc.cxx:27
 ParamHistFunc.cxx:28
 ParamHistFunc.cxx:29
 ParamHistFunc.cxx:30
 ParamHistFunc.cxx:31
 ParamHistFunc.cxx:32
 ParamHistFunc.cxx:33
 ParamHistFunc.cxx:34
 ParamHistFunc.cxx:35
 ParamHistFunc.cxx:36
 ParamHistFunc.cxx:37
 ParamHistFunc.cxx:38
 ParamHistFunc.cxx:39
 ParamHistFunc.cxx:40
 ParamHistFunc.cxx:41
 ParamHistFunc.cxx:42
 ParamHistFunc.cxx:43
 ParamHistFunc.cxx:44
 ParamHistFunc.cxx:45
 ParamHistFunc.cxx:46
 ParamHistFunc.cxx:47
 ParamHistFunc.cxx:48
 ParamHistFunc.cxx:49
 ParamHistFunc.cxx:50
 ParamHistFunc.cxx:51
 ParamHistFunc.cxx:52
 ParamHistFunc.cxx:53
 ParamHistFunc.cxx:54
 ParamHistFunc.cxx:55
 ParamHistFunc.cxx:56
 ParamHistFunc.cxx:57
 ParamHistFunc.cxx:58
 ParamHistFunc.cxx:59
 ParamHistFunc.cxx:60
 ParamHistFunc.cxx:61
 ParamHistFunc.cxx:62
 ParamHistFunc.cxx:63
 ParamHistFunc.cxx:64
 ParamHistFunc.cxx:65
 ParamHistFunc.cxx:66
 ParamHistFunc.cxx:67
 ParamHistFunc.cxx:68
 ParamHistFunc.cxx:69
 ParamHistFunc.cxx:70
 ParamHistFunc.cxx:71
 ParamHistFunc.cxx:72
 ParamHistFunc.cxx:73
 ParamHistFunc.cxx:74
 ParamHistFunc.cxx:75
 ParamHistFunc.cxx:76
 ParamHistFunc.cxx:77
 ParamHistFunc.cxx:78
 ParamHistFunc.cxx:79
 ParamHistFunc.cxx:80
 ParamHistFunc.cxx:81
 ParamHistFunc.cxx:82
 ParamHistFunc.cxx:83
 ParamHistFunc.cxx:84
 ParamHistFunc.cxx:85
 ParamHistFunc.cxx:86
 ParamHistFunc.cxx:87
 ParamHistFunc.cxx:88
 ParamHistFunc.cxx:89
 ParamHistFunc.cxx:90
 ParamHistFunc.cxx:91
 ParamHistFunc.cxx:92
 ParamHistFunc.cxx:93
 ParamHistFunc.cxx:94
 ParamHistFunc.cxx:95
 ParamHistFunc.cxx:96
 ParamHistFunc.cxx:97
 ParamHistFunc.cxx:98
 ParamHistFunc.cxx:99
 ParamHistFunc.cxx:100
 ParamHistFunc.cxx:101
 ParamHistFunc.cxx:102
 ParamHistFunc.cxx:103
 ParamHistFunc.cxx:104
 ParamHistFunc.cxx:105
 ParamHistFunc.cxx:106
 ParamHistFunc.cxx:107
 ParamHistFunc.cxx:108
 ParamHistFunc.cxx:109
 ParamHistFunc.cxx:110
 ParamHistFunc.cxx:111
 ParamHistFunc.cxx:112
 ParamHistFunc.cxx:113
 ParamHistFunc.cxx:114
 ParamHistFunc.cxx:115
 ParamHistFunc.cxx:116
 ParamHistFunc.cxx:117
 ParamHistFunc.cxx:118
 ParamHistFunc.cxx:119
 ParamHistFunc.cxx:120
 ParamHistFunc.cxx:121
 ParamHistFunc.cxx:122
 ParamHistFunc.cxx:123
 ParamHistFunc.cxx:124
 ParamHistFunc.cxx:125
 ParamHistFunc.cxx:126
 ParamHistFunc.cxx:127
 ParamHistFunc.cxx:128
 ParamHistFunc.cxx:129
 ParamHistFunc.cxx:130
 ParamHistFunc.cxx:131
 ParamHistFunc.cxx:132
 ParamHistFunc.cxx:133
 ParamHistFunc.cxx:134
 ParamHistFunc.cxx:135
 ParamHistFunc.cxx:136
 ParamHistFunc.cxx:137
 ParamHistFunc.cxx:138
 ParamHistFunc.cxx:139
 ParamHistFunc.cxx:140
 ParamHistFunc.cxx:141
 ParamHistFunc.cxx:142
 ParamHistFunc.cxx:143
 ParamHistFunc.cxx:144
 ParamHistFunc.cxx:145
 ParamHistFunc.cxx:146
 ParamHistFunc.cxx:147
 ParamHistFunc.cxx:148
 ParamHistFunc.cxx:149
 ParamHistFunc.cxx:150
 ParamHistFunc.cxx:151
 ParamHistFunc.cxx:152
 ParamHistFunc.cxx:153
 ParamHistFunc.cxx:154
 ParamHistFunc.cxx:155
 ParamHistFunc.cxx:156
 ParamHistFunc.cxx:157
 ParamHistFunc.cxx:158
 ParamHistFunc.cxx:159
 ParamHistFunc.cxx:160
 ParamHistFunc.cxx:161
 ParamHistFunc.cxx:162
 ParamHistFunc.cxx:163
 ParamHistFunc.cxx:164
 ParamHistFunc.cxx:165
 ParamHistFunc.cxx:166
 ParamHistFunc.cxx:167
 ParamHistFunc.cxx:168
 ParamHistFunc.cxx:169
 ParamHistFunc.cxx:170
 ParamHistFunc.cxx:171
 ParamHistFunc.cxx:172
 ParamHistFunc.cxx:173
 ParamHistFunc.cxx:174
 ParamHistFunc.cxx:175
 ParamHistFunc.cxx:176
 ParamHistFunc.cxx:177
 ParamHistFunc.cxx:178
 ParamHistFunc.cxx:179
 ParamHistFunc.cxx:180
 ParamHistFunc.cxx:181
 ParamHistFunc.cxx:182
 ParamHistFunc.cxx:183
 ParamHistFunc.cxx:184
 ParamHistFunc.cxx:185
 ParamHistFunc.cxx:186
 ParamHistFunc.cxx:187
 ParamHistFunc.cxx:188
 ParamHistFunc.cxx:189
 ParamHistFunc.cxx:190
 ParamHistFunc.cxx:191
 ParamHistFunc.cxx:192
 ParamHistFunc.cxx:193
 ParamHistFunc.cxx:194
 ParamHistFunc.cxx:195
 ParamHistFunc.cxx:196
 ParamHistFunc.cxx:197
 ParamHistFunc.cxx:198
 ParamHistFunc.cxx:199
 ParamHistFunc.cxx:200
 ParamHistFunc.cxx:201
 ParamHistFunc.cxx:202
 ParamHistFunc.cxx:203
 ParamHistFunc.cxx:204
 ParamHistFunc.cxx:205
 ParamHistFunc.cxx:206
 ParamHistFunc.cxx:207
 ParamHistFunc.cxx:208
 ParamHistFunc.cxx:209
 ParamHistFunc.cxx:210
 ParamHistFunc.cxx:211
 ParamHistFunc.cxx:212
 ParamHistFunc.cxx:213
 ParamHistFunc.cxx:214
 ParamHistFunc.cxx:215
 ParamHistFunc.cxx:216
 ParamHistFunc.cxx:217
 ParamHistFunc.cxx:218
 ParamHistFunc.cxx:219
 ParamHistFunc.cxx:220
 ParamHistFunc.cxx:221
 ParamHistFunc.cxx:222
 ParamHistFunc.cxx:223
 ParamHistFunc.cxx:224
 ParamHistFunc.cxx:225
 ParamHistFunc.cxx:226
 ParamHistFunc.cxx:227
 ParamHistFunc.cxx:228
 ParamHistFunc.cxx:229
 ParamHistFunc.cxx:230
 ParamHistFunc.cxx:231
 ParamHistFunc.cxx:232
 ParamHistFunc.cxx:233
 ParamHistFunc.cxx:234
 ParamHistFunc.cxx:235
 ParamHistFunc.cxx:236
 ParamHistFunc.cxx:237
 ParamHistFunc.cxx:238
 ParamHistFunc.cxx:239
 ParamHistFunc.cxx:240
 ParamHistFunc.cxx:241
 ParamHistFunc.cxx:242
 ParamHistFunc.cxx:243
 ParamHistFunc.cxx:244
 ParamHistFunc.cxx:245
 ParamHistFunc.cxx:246
 ParamHistFunc.cxx:247
 ParamHistFunc.cxx:248
 ParamHistFunc.cxx:249
 ParamHistFunc.cxx:250
 ParamHistFunc.cxx:251
 ParamHistFunc.cxx:252
 ParamHistFunc.cxx:253
 ParamHistFunc.cxx:254
 ParamHistFunc.cxx:255
 ParamHistFunc.cxx:256
 ParamHistFunc.cxx:257
 ParamHistFunc.cxx:258
 ParamHistFunc.cxx:259
 ParamHistFunc.cxx:260
 ParamHistFunc.cxx:261
 ParamHistFunc.cxx:262
 ParamHistFunc.cxx:263
 ParamHistFunc.cxx:264
 ParamHistFunc.cxx:265
 ParamHistFunc.cxx:266
 ParamHistFunc.cxx:267
 ParamHistFunc.cxx:268
 ParamHistFunc.cxx:269
 ParamHistFunc.cxx:270
 ParamHistFunc.cxx:271
 ParamHistFunc.cxx:272
 ParamHistFunc.cxx:273
 ParamHistFunc.cxx:274
 ParamHistFunc.cxx:275
 ParamHistFunc.cxx:276
 ParamHistFunc.cxx:277
 ParamHistFunc.cxx:278
 ParamHistFunc.cxx:279
 ParamHistFunc.cxx:280
 ParamHistFunc.cxx:281
 ParamHistFunc.cxx:282
 ParamHistFunc.cxx:283
 ParamHistFunc.cxx:284
 ParamHistFunc.cxx:285
 ParamHistFunc.cxx:286
 ParamHistFunc.cxx:287
 ParamHistFunc.cxx:288
 ParamHistFunc.cxx:289
 ParamHistFunc.cxx:290
 ParamHistFunc.cxx:291
 ParamHistFunc.cxx:292
 ParamHistFunc.cxx:293
 ParamHistFunc.cxx:294
 ParamHistFunc.cxx:295
 ParamHistFunc.cxx:296
 ParamHistFunc.cxx:297
 ParamHistFunc.cxx:298
 ParamHistFunc.cxx:299
 ParamHistFunc.cxx:300
 ParamHistFunc.cxx:301
 ParamHistFunc.cxx:302
 ParamHistFunc.cxx:303
 ParamHistFunc.cxx:304
 ParamHistFunc.cxx:305
 ParamHistFunc.cxx:306
 ParamHistFunc.cxx:307
 ParamHistFunc.cxx:308
 ParamHistFunc.cxx:309
 ParamHistFunc.cxx:310
 ParamHistFunc.cxx:311
 ParamHistFunc.cxx:312
 ParamHistFunc.cxx:313
 ParamHistFunc.cxx:314
 ParamHistFunc.cxx:315
 ParamHistFunc.cxx:316
 ParamHistFunc.cxx:317
 ParamHistFunc.cxx:318
 ParamHistFunc.cxx:319
 ParamHistFunc.cxx:320
 ParamHistFunc.cxx:321
 ParamHistFunc.cxx:322
 ParamHistFunc.cxx:323
 ParamHistFunc.cxx:324
 ParamHistFunc.cxx:325
 ParamHistFunc.cxx:326
 ParamHistFunc.cxx:327
 ParamHistFunc.cxx:328
 ParamHistFunc.cxx:329
 ParamHistFunc.cxx:330
 ParamHistFunc.cxx:331
 ParamHistFunc.cxx:332
 ParamHistFunc.cxx:333
 ParamHistFunc.cxx:334
 ParamHistFunc.cxx:335
 ParamHistFunc.cxx:336
 ParamHistFunc.cxx:337
 ParamHistFunc.cxx:338
 ParamHistFunc.cxx:339
 ParamHistFunc.cxx:340
 ParamHistFunc.cxx:341
 ParamHistFunc.cxx:342
 ParamHistFunc.cxx:343
 ParamHistFunc.cxx:344
 ParamHistFunc.cxx:345
 ParamHistFunc.cxx:346
 ParamHistFunc.cxx:347
 ParamHistFunc.cxx:348
 ParamHistFunc.cxx:349
 ParamHistFunc.cxx:350
 ParamHistFunc.cxx:351
 ParamHistFunc.cxx:352
 ParamHistFunc.cxx:353
 ParamHistFunc.cxx:354
 ParamHistFunc.cxx:355
 ParamHistFunc.cxx:356
 ParamHistFunc.cxx:357
 ParamHistFunc.cxx:358
 ParamHistFunc.cxx:359
 ParamHistFunc.cxx:360
 ParamHistFunc.cxx:361
 ParamHistFunc.cxx:362
 ParamHistFunc.cxx:363
 ParamHistFunc.cxx:364
 ParamHistFunc.cxx:365
 ParamHistFunc.cxx:366
 ParamHistFunc.cxx:367
 ParamHistFunc.cxx:368
 ParamHistFunc.cxx:369
 ParamHistFunc.cxx:370
 ParamHistFunc.cxx:371
 ParamHistFunc.cxx:372
 ParamHistFunc.cxx:373
 ParamHistFunc.cxx:374
 ParamHistFunc.cxx:375
 ParamHistFunc.cxx:376
 ParamHistFunc.cxx:377
 ParamHistFunc.cxx:378
 ParamHistFunc.cxx:379
 ParamHistFunc.cxx:380
 ParamHistFunc.cxx:381
 ParamHistFunc.cxx:382
 ParamHistFunc.cxx:383
 ParamHistFunc.cxx:384
 ParamHistFunc.cxx:385
 ParamHistFunc.cxx:386
 ParamHistFunc.cxx:387
 ParamHistFunc.cxx:388
 ParamHistFunc.cxx:389
 ParamHistFunc.cxx:390
 ParamHistFunc.cxx:391
 ParamHistFunc.cxx:392
 ParamHistFunc.cxx:393
 ParamHistFunc.cxx:394
 ParamHistFunc.cxx:395
 ParamHistFunc.cxx:396
 ParamHistFunc.cxx:397
 ParamHistFunc.cxx:398
 ParamHistFunc.cxx:399
 ParamHistFunc.cxx:400
 ParamHistFunc.cxx:401
 ParamHistFunc.cxx:402
 ParamHistFunc.cxx:403
 ParamHistFunc.cxx:404
 ParamHistFunc.cxx:405
 ParamHistFunc.cxx:406
 ParamHistFunc.cxx:407
 ParamHistFunc.cxx:408
 ParamHistFunc.cxx:409
 ParamHistFunc.cxx:410
 ParamHistFunc.cxx:411
 ParamHistFunc.cxx:412
 ParamHistFunc.cxx:413
 ParamHistFunc.cxx:414
 ParamHistFunc.cxx:415
 ParamHistFunc.cxx:416
 ParamHistFunc.cxx:417
 ParamHistFunc.cxx:418
 ParamHistFunc.cxx:419
 ParamHistFunc.cxx:420
 ParamHistFunc.cxx:421
 ParamHistFunc.cxx:422
 ParamHistFunc.cxx:423
 ParamHistFunc.cxx:424
 ParamHistFunc.cxx:425
 ParamHistFunc.cxx:426
 ParamHistFunc.cxx:427
 ParamHistFunc.cxx:428
 ParamHistFunc.cxx:429
 ParamHistFunc.cxx:430
 ParamHistFunc.cxx:431
 ParamHistFunc.cxx:432
 ParamHistFunc.cxx:433
 ParamHistFunc.cxx:434
 ParamHistFunc.cxx:435
 ParamHistFunc.cxx:436
 ParamHistFunc.cxx:437
 ParamHistFunc.cxx:438
 ParamHistFunc.cxx:439
 ParamHistFunc.cxx:440
 ParamHistFunc.cxx:441
 ParamHistFunc.cxx:442
 ParamHistFunc.cxx:443
 ParamHistFunc.cxx:444
 ParamHistFunc.cxx:445
 ParamHistFunc.cxx:446
 ParamHistFunc.cxx:447
 ParamHistFunc.cxx:448
 ParamHistFunc.cxx:449
 ParamHistFunc.cxx:450
 ParamHistFunc.cxx:451
 ParamHistFunc.cxx:452
 ParamHistFunc.cxx:453
 ParamHistFunc.cxx:454
 ParamHistFunc.cxx:455
 ParamHistFunc.cxx:456
 ParamHistFunc.cxx:457
 ParamHistFunc.cxx:458
 ParamHistFunc.cxx:459
 ParamHistFunc.cxx:460
 ParamHistFunc.cxx:461
 ParamHistFunc.cxx:462
 ParamHistFunc.cxx:463
 ParamHistFunc.cxx:464
 ParamHistFunc.cxx:465
 ParamHistFunc.cxx:466
 ParamHistFunc.cxx:467
 ParamHistFunc.cxx:468
 ParamHistFunc.cxx:469
 ParamHistFunc.cxx:470
 ParamHistFunc.cxx:471
 ParamHistFunc.cxx:472
 ParamHistFunc.cxx:473
 ParamHistFunc.cxx:474
 ParamHistFunc.cxx:475
 ParamHistFunc.cxx:476
 ParamHistFunc.cxx:477
 ParamHistFunc.cxx:478
 ParamHistFunc.cxx:479
 ParamHistFunc.cxx:480
 ParamHistFunc.cxx:481
 ParamHistFunc.cxx:482
 ParamHistFunc.cxx:483
 ParamHistFunc.cxx:484
 ParamHistFunc.cxx:485
 ParamHistFunc.cxx:486
 ParamHistFunc.cxx:487
 ParamHistFunc.cxx:488
 ParamHistFunc.cxx:489
 ParamHistFunc.cxx:490
 ParamHistFunc.cxx:491
 ParamHistFunc.cxx:492
 ParamHistFunc.cxx:493
 ParamHistFunc.cxx:494
 ParamHistFunc.cxx:495
 ParamHistFunc.cxx:496
 ParamHistFunc.cxx:497
 ParamHistFunc.cxx:498
 ParamHistFunc.cxx:499
 ParamHistFunc.cxx:500
 ParamHistFunc.cxx:501
 ParamHistFunc.cxx:502
 ParamHistFunc.cxx:503
 ParamHistFunc.cxx:504
 ParamHistFunc.cxx:505
 ParamHistFunc.cxx:506
 ParamHistFunc.cxx:507
 ParamHistFunc.cxx:508
 ParamHistFunc.cxx:509
 ParamHistFunc.cxx:510
 ParamHistFunc.cxx:511
 ParamHistFunc.cxx:512
 ParamHistFunc.cxx:513
 ParamHistFunc.cxx:514
 ParamHistFunc.cxx:515
 ParamHistFunc.cxx:516
 ParamHistFunc.cxx:517
 ParamHistFunc.cxx:518
 ParamHistFunc.cxx:519
 ParamHistFunc.cxx:520
 ParamHistFunc.cxx:521
 ParamHistFunc.cxx:522
 ParamHistFunc.cxx:523
 ParamHistFunc.cxx:524
 ParamHistFunc.cxx:525
 ParamHistFunc.cxx:526
 ParamHistFunc.cxx:527
 ParamHistFunc.cxx:528
 ParamHistFunc.cxx:529
 ParamHistFunc.cxx:530
 ParamHistFunc.cxx:531
 ParamHistFunc.cxx:532
 ParamHistFunc.cxx:533
 ParamHistFunc.cxx:534
 ParamHistFunc.cxx:535
 ParamHistFunc.cxx:536
 ParamHistFunc.cxx:537
 ParamHistFunc.cxx:538
 ParamHistFunc.cxx:539
 ParamHistFunc.cxx:540
 ParamHistFunc.cxx:541
 ParamHistFunc.cxx:542
 ParamHistFunc.cxx:543
 ParamHistFunc.cxx:544
 ParamHistFunc.cxx:545
 ParamHistFunc.cxx:546
 ParamHistFunc.cxx:547
 ParamHistFunc.cxx:548
 ParamHistFunc.cxx:549
 ParamHistFunc.cxx:550
 ParamHistFunc.cxx:551
 ParamHistFunc.cxx:552
 ParamHistFunc.cxx:553
 ParamHistFunc.cxx:554
 ParamHistFunc.cxx:555
 ParamHistFunc.cxx:556
 ParamHistFunc.cxx:557
 ParamHistFunc.cxx:558
 ParamHistFunc.cxx:559
 ParamHistFunc.cxx:560
 ParamHistFunc.cxx:561
 ParamHistFunc.cxx:562
 ParamHistFunc.cxx:563
 ParamHistFunc.cxx:564
 ParamHistFunc.cxx:565
 ParamHistFunc.cxx:566
 ParamHistFunc.cxx:567
 ParamHistFunc.cxx:568
 ParamHistFunc.cxx:569
 ParamHistFunc.cxx:570
 ParamHistFunc.cxx:571
 ParamHistFunc.cxx:572
 ParamHistFunc.cxx:573
 ParamHistFunc.cxx:574
 ParamHistFunc.cxx:575
 ParamHistFunc.cxx:576
 ParamHistFunc.cxx:577
 ParamHistFunc.cxx:578
 ParamHistFunc.cxx:579
 ParamHistFunc.cxx:580
 ParamHistFunc.cxx:581
 ParamHistFunc.cxx:582
 ParamHistFunc.cxx:583
 ParamHistFunc.cxx:584
 ParamHistFunc.cxx:585
 ParamHistFunc.cxx:586
 ParamHistFunc.cxx:587
 ParamHistFunc.cxx:588
 ParamHistFunc.cxx:589
 ParamHistFunc.cxx:590
 ParamHistFunc.cxx:591
 ParamHistFunc.cxx:592
 ParamHistFunc.cxx:593
 ParamHistFunc.cxx:594
 ParamHistFunc.cxx:595
 ParamHistFunc.cxx:596
 ParamHistFunc.cxx:597
 ParamHistFunc.cxx:598
 ParamHistFunc.cxx:599
 ParamHistFunc.cxx:600
 ParamHistFunc.cxx:601
 ParamHistFunc.cxx:602
 ParamHistFunc.cxx:603
 ParamHistFunc.cxx:604
 ParamHistFunc.cxx:605
 ParamHistFunc.cxx:606
 ParamHistFunc.cxx:607
 ParamHistFunc.cxx:608
 ParamHistFunc.cxx:609
 ParamHistFunc.cxx:610
 ParamHistFunc.cxx:611
 ParamHistFunc.cxx:612
 ParamHistFunc.cxx:613
 ParamHistFunc.cxx:614
 ParamHistFunc.cxx:615
 ParamHistFunc.cxx:616
 ParamHistFunc.cxx:617
 ParamHistFunc.cxx:618
 ParamHistFunc.cxx:619
 ParamHistFunc.cxx:620
 ParamHistFunc.cxx:621
 ParamHistFunc.cxx:622
 ParamHistFunc.cxx:623
 ParamHistFunc.cxx:624
 ParamHistFunc.cxx:625
 ParamHistFunc.cxx:626
 ParamHistFunc.cxx:627
 ParamHistFunc.cxx:628
 ParamHistFunc.cxx:629
 ParamHistFunc.cxx:630
 ParamHistFunc.cxx:631
 ParamHistFunc.cxx:632
 ParamHistFunc.cxx:633
 ParamHistFunc.cxx:634
 ParamHistFunc.cxx:635
 ParamHistFunc.cxx:636
 ParamHistFunc.cxx:637
 ParamHistFunc.cxx:638
 ParamHistFunc.cxx:639
 ParamHistFunc.cxx:640
 ParamHistFunc.cxx:641
 ParamHistFunc.cxx:642
 ParamHistFunc.cxx:643
 ParamHistFunc.cxx:644
 ParamHistFunc.cxx:645
 ParamHistFunc.cxx:646
 ParamHistFunc.cxx:647
 ParamHistFunc.cxx:648
 ParamHistFunc.cxx:649
 ParamHistFunc.cxx:650
 ParamHistFunc.cxx:651
 ParamHistFunc.cxx:652
 ParamHistFunc.cxx:653
 ParamHistFunc.cxx:654
 ParamHistFunc.cxx:655
 ParamHistFunc.cxx:656
 ParamHistFunc.cxx:657
 ParamHistFunc.cxx:658
 ParamHistFunc.cxx:659
 ParamHistFunc.cxx:660
 ParamHistFunc.cxx:661
 ParamHistFunc.cxx:662
 ParamHistFunc.cxx:663
 ParamHistFunc.cxx:664
 ParamHistFunc.cxx:665
 ParamHistFunc.cxx:666
 ParamHistFunc.cxx:667
 ParamHistFunc.cxx:668
 ParamHistFunc.cxx:669
 ParamHistFunc.cxx:670
 ParamHistFunc.cxx:671
 ParamHistFunc.cxx:672
 ParamHistFunc.cxx:673
 ParamHistFunc.cxx:674
 ParamHistFunc.cxx:675
 ParamHistFunc.cxx:676
 ParamHistFunc.cxx:677
 ParamHistFunc.cxx:678
 ParamHistFunc.cxx:679
 ParamHistFunc.cxx:680
 ParamHistFunc.cxx:681
 ParamHistFunc.cxx:682
 ParamHistFunc.cxx:683
 ParamHistFunc.cxx:684
 ParamHistFunc.cxx:685
 ParamHistFunc.cxx:686
 ParamHistFunc.cxx:687
 ParamHistFunc.cxx:688
 ParamHistFunc.cxx:689
 ParamHistFunc.cxx:690
 ParamHistFunc.cxx:691
 ParamHistFunc.cxx:692
 ParamHistFunc.cxx:693
 ParamHistFunc.cxx:694
 ParamHistFunc.cxx:695
 ParamHistFunc.cxx:696
 ParamHistFunc.cxx:697
 ParamHistFunc.cxx:698
 ParamHistFunc.cxx:699
 ParamHistFunc.cxx:700
 ParamHistFunc.cxx:701
 ParamHistFunc.cxx:702
 ParamHistFunc.cxx:703
 ParamHistFunc.cxx:704
 ParamHistFunc.cxx:705
 ParamHistFunc.cxx:706
 ParamHistFunc.cxx:707
 ParamHistFunc.cxx:708
 ParamHistFunc.cxx:709
 ParamHistFunc.cxx:710
 ParamHistFunc.cxx:711
 ParamHistFunc.cxx:712
 ParamHistFunc.cxx:713
 ParamHistFunc.cxx:714
 ParamHistFunc.cxx:715
 ParamHistFunc.cxx:716
 ParamHistFunc.cxx:717
 ParamHistFunc.cxx:718
 ParamHistFunc.cxx:719
 ParamHistFunc.cxx:720
 ParamHistFunc.cxx:721
 ParamHistFunc.cxx:722
 ParamHistFunc.cxx:723
 ParamHistFunc.cxx:724
 ParamHistFunc.cxx:725
 ParamHistFunc.cxx:726
 ParamHistFunc.cxx:727
 ParamHistFunc.cxx:728
 ParamHistFunc.cxx:729
 ParamHistFunc.cxx:730
 ParamHistFunc.cxx:731
 ParamHistFunc.cxx:732
 ParamHistFunc.cxx:733
 ParamHistFunc.cxx:734
 ParamHistFunc.cxx:735
 ParamHistFunc.cxx:736
 ParamHistFunc.cxx:737
 ParamHistFunc.cxx:738
 ParamHistFunc.cxx:739
 ParamHistFunc.cxx:740
 ParamHistFunc.cxx:741
 ParamHistFunc.cxx:742
 ParamHistFunc.cxx:743
 ParamHistFunc.cxx:744
 ParamHistFunc.cxx:745
 ParamHistFunc.cxx:746
 ParamHistFunc.cxx:747
 ParamHistFunc.cxx:748
 ParamHistFunc.cxx:749
 ParamHistFunc.cxx:750
 ParamHistFunc.cxx:751
 ParamHistFunc.cxx:752
 ParamHistFunc.cxx:753
 ParamHistFunc.cxx:754
 ParamHistFunc.cxx:755
 ParamHistFunc.cxx:756
 ParamHistFunc.cxx:757
 ParamHistFunc.cxx:758
 ParamHistFunc.cxx:759
 ParamHistFunc.cxx:760
 ParamHistFunc.cxx:761
 ParamHistFunc.cxx:762
 ParamHistFunc.cxx:763
 ParamHistFunc.cxx:764
 ParamHistFunc.cxx:765
 ParamHistFunc.cxx:766
 ParamHistFunc.cxx:767
 ParamHistFunc.cxx:768
 ParamHistFunc.cxx:769
 ParamHistFunc.cxx:770
 ParamHistFunc.cxx:771
 ParamHistFunc.cxx:772
 ParamHistFunc.cxx:773
 ParamHistFunc.cxx:774
 ParamHistFunc.cxx:775
 ParamHistFunc.cxx:776
 ParamHistFunc.cxx:777
 ParamHistFunc.cxx:778
 ParamHistFunc.cxx:779
 ParamHistFunc.cxx:780
 ParamHistFunc.cxx:781
 ParamHistFunc.cxx:782
 ParamHistFunc.cxx:783
 ParamHistFunc.cxx:784
 ParamHistFunc.cxx:785
 ParamHistFunc.cxx:786
 ParamHistFunc.cxx:787
 ParamHistFunc.cxx:788
 ParamHistFunc.cxx:789
 ParamHistFunc.cxx:790
 ParamHistFunc.cxx:791
 ParamHistFunc.cxx:792
 ParamHistFunc.cxx:793
 ParamHistFunc.cxx:794
 ParamHistFunc.cxx:795
 ParamHistFunc.cxx:796
 ParamHistFunc.cxx:797
 ParamHistFunc.cxx:798
 ParamHistFunc.cxx:799
 ParamHistFunc.cxx:800
 ParamHistFunc.cxx:801
 ParamHistFunc.cxx:802
 ParamHistFunc.cxx:803
 ParamHistFunc.cxx:804
 ParamHistFunc.cxx:805
 ParamHistFunc.cxx:806
 ParamHistFunc.cxx:807
 ParamHistFunc.cxx:808
 ParamHistFunc.cxx:809
 ParamHistFunc.cxx:810
 ParamHistFunc.cxx:811
 ParamHistFunc.cxx:812
 ParamHistFunc.cxx:813
 ParamHistFunc.cxx:814
 ParamHistFunc.cxx:815
 ParamHistFunc.cxx:816
 ParamHistFunc.cxx:817
 ParamHistFunc.cxx:818
 ParamHistFunc.cxx:819
 ParamHistFunc.cxx:820
 ParamHistFunc.cxx:821
 ParamHistFunc.cxx:822
 ParamHistFunc.cxx:823
 ParamHistFunc.cxx:824
 ParamHistFunc.cxx:825
 ParamHistFunc.cxx:826
 ParamHistFunc.cxx:827
 ParamHistFunc.cxx:828
 ParamHistFunc.cxx:829
 ParamHistFunc.cxx:830
 ParamHistFunc.cxx:831
 ParamHistFunc.cxx:832
 ParamHistFunc.cxx:833
 ParamHistFunc.cxx:834
 ParamHistFunc.cxx:835
 ParamHistFunc.cxx:836
 ParamHistFunc.cxx:837
 ParamHistFunc.cxx:838
 ParamHistFunc.cxx:839
 ParamHistFunc.cxx:840
 ParamHistFunc.cxx:841
 ParamHistFunc.cxx:842
 ParamHistFunc.cxx:843
 ParamHistFunc.cxx:844
 ParamHistFunc.cxx:845
 ParamHistFunc.cxx:846
 ParamHistFunc.cxx:847
 ParamHistFunc.cxx:848
 ParamHistFunc.cxx:849
 ParamHistFunc.cxx:850
 ParamHistFunc.cxx:851
 ParamHistFunc.cxx:852
 ParamHistFunc.cxx:853
 ParamHistFunc.cxx:854
 ParamHistFunc.cxx:855
 ParamHistFunc.cxx:856
 ParamHistFunc.cxx:857
 ParamHistFunc.cxx:858
 ParamHistFunc.cxx:859
 ParamHistFunc.cxx:860
 ParamHistFunc.cxx:861
 ParamHistFunc.cxx:862
 ParamHistFunc.cxx:863