ROOT logo
/*****************************************************************************
 * Project: RooFit                                                           *
 * Package: RooFitCore                                                       *
 * @(#)root/roofitcore:$Id: RooAbsRealLValue.cxx 28259 2009-04-16 16:21:16Z wouter $
 * Authors:                                                                  *
 *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
 *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
 *                                                                           *
 * Copyright (c) 2000-2005, Regents of the University of California          *
 *                          and Stanford University. All rights reserved.    *
 *                                                                           *
 * Redistribution and use in source and binary forms,                        *
 * with or without modification, are permitted according to the terms        *
 * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
 *****************************************************************************/

//////////////////////////////////////////////////////////////////////////////
// 
// BEGIN_HTML
// RooAbsRealLValue is the common abstract base class for objects that represent a
// real value that may appear on the left hand side of an equation ('lvalue')
// Each implementation must provide a setVal() member to allow direct modification 
// of the value. RooAbsRealLValue may be derived, but its functional relation
// to other RooAbsArg must be invertible
//
// This class has methods that export the defined range of the lvalue,
// but doesn't hold its values because these limits may be derived
// from limits of client object.  The range serve as integration
// range when interpreted as a observable and a boundaries when
// interpreted as a parameter.
// END_HTML
//
//

#include "RooFit.h"

#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "Riostream.h"
#include "TObjString.h"
#include "TTree.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "RooAbsRealLValue.h"
#include "RooStreamParser.h"
#include "RooRandom.h"
#include "RooPlot.h"
#include "RooArgList.h"
#include "RooAbsBinning.h"
#include "RooBinning.h"
#include "RooUniformBinning.h"
#include "RooCmdConfig.h"
#include "RooTreeData.h"
#include "RooRealVar.h"
#include "RooMsgService.h"



ClassImp(RooAbsRealLValue)

//_____________________________________________________________________________
RooAbsRealLValue::RooAbsRealLValue(const char *name, const char *title, const char *unit) :
  RooAbsReal(name, title, 0, 0, unit)
{
  // Constructor
}  



//_____________________________________________________________________________
RooAbsRealLValue::RooAbsRealLValue(const RooAbsRealLValue& other, const char* name) :
  RooAbsReal(other,name), RooAbsLValue(other)
{
  // Copy constructor
}


//_____________________________________________________________________________
RooAbsRealLValue::~RooAbsRealLValue() 
{
  // Destructor
}



//_____________________________________________________________________________
Bool_t RooAbsRealLValue::inRange(Double_t value, const char* rangeName, Double_t* clippedValPtr) const
{
  // Return kTRUE if the input value is within our fit range. Otherwise, return
  // kFALSE and write a clipped value into clippedValPtr if it is non-zero.

  // Double_t range = getMax() - getMin() ; // ok for +/-INIFINITY
  Double_t clippedValue(value);
  Bool_t isInRange(kTRUE) ;

  // test this value against our upper fit limit
  if(hasMax() && value > (getMax(rangeName)+1e-6)) {
    if (clippedValPtr) {
//       coutW(InputArguments) << "RooAbsRealLValue::inFitRange(" << GetName() << "): value " << value
// 			    << " rounded down to max limit " << getMax(rangeName) << endl ;
    }
    clippedValue = getMax(rangeName);
    isInRange = kFALSE ;
  }
  // test this value against our lower fit limit
  if(hasMin() && value < getMin(rangeName)-1e-6) {
    if (clippedValPtr) {
//       coutW(InputArguments) << "RooAbsRealLValue::inFitRange(" << GetName() << "): value " << value
// 			    << " rounded up to min limit " << getMin(rangeName) << endl;
    }
    clippedValue = getMin(rangeName);
    isInRange = kFALSE ;
  } 

  if (clippedValPtr) *clippedValPtr=clippedValue ;
  return isInRange ;
}



//_____________________________________________________________________________
Bool_t RooAbsRealLValue::isValidReal(Double_t value, Bool_t verbose) const 
{
  // Check if given value is valid

  if (!inRange(value,0)) {
    if (verbose)
      coutI(InputArguments) << "RooRealVar::isValid(" << GetName() << "): value " << value
			    << " out of range (" << getMin() << " - " << getMax() << ")" << endl ;
    return kFALSE ;
  }
  return kTRUE ;
}                                                                                                                         



//_____________________________________________________________________________
Bool_t RooAbsRealLValue::readFromStream(istream& /*is*/, Bool_t /*compact*/, Bool_t /*verbose*/) 
{
  // Read object contents from given stream

  return kTRUE ;
}



//_____________________________________________________________________________
void RooAbsRealLValue::writeToStream(ostream& /*os*/, Bool_t /*compact*/) const
{
  // Write object contents to given stream
}



//_____________________________________________________________________________
RooAbsArg& RooAbsRealLValue::operator=(Double_t newValue) 
{
  // Assignment operator from a Double_t

  Double_t clipValue ;
  // Clip 
  inRange(newValue,0,&clipValue) ;
  setVal(clipValue) ;

  return *this ;
}


//_____________________________________________________________________________
RooAbsArg& RooAbsRealLValue::operator=(const RooAbsReal& arg) 
{
  // Assignment operator from other RooAbsReal
  return operator=(arg.getVal()) ;
}



//_____________________________________________________________________________
RooPlot* RooAbsRealLValue::frame(const RooCmdArg& arg1, const RooCmdArg& arg2, const RooCmdArg& arg3, const RooCmdArg& arg4,
				 const RooCmdArg& arg5, const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) const 

  // Create a new RooPlot on the heap with a drawing frame initialized for this
  // object, but no plot contents. Use x.frame() as the first argument to a
  // y.plotOn(...) method, for example. The caller is responsible for deleting
  // the returned object.
  //
  // This function takes the following named arguments
  //
  // Range(double lo, double hi)          -- Make plot frame for the specified range
  // Range(const char* name)              -- Make plot frame for range with the specified name
  // Bins(Int_t nbins)                    -- Set default binning for datasets to specified number of bins
  // AutoRange(const RooAbsData& data,    -- Specifies range so that all points in given data set fit 
  //                    double margin)       inside the range with given margin.
  // AutoSymRange(const RooAbsData& data, -- Specifies range so that all points in given data set fit 
  //                    double margin)       inside the range and center of range coincides with mean
  //                                         of distribution in given dataset. 
  // Name(const char* name)               -- Give specified name to RooPlot object 
  // Title(const char* title)             -- Give specified title to RooPlot object
  //  
{
  RooLinkedList cmdList ;
  cmdList.Add(const_cast<RooCmdArg*>(&arg1)) ; cmdList.Add(const_cast<RooCmdArg*>(&arg2)) ;
  cmdList.Add(const_cast<RooCmdArg*>(&arg3)) ; cmdList.Add(const_cast<RooCmdArg*>(&arg4)) ;
  cmdList.Add(const_cast<RooCmdArg*>(&arg5)) ; cmdList.Add(const_cast<RooCmdArg*>(&arg6)) ;
  cmdList.Add(const_cast<RooCmdArg*>(&arg7)) ; cmdList.Add(const_cast<RooCmdArg*>(&arg8)) ;

  return frame(cmdList) ;
}



//_____________________________________________________________________________
RooPlot* RooAbsRealLValue::frame(const RooLinkedList& cmdList) const 
{
  // Back-end function for named argument frame() method

  // Define configuration for this method
  RooCmdConfig pc(Form("RooAbsRealLValue::frame(%s)",GetName())) ;
  pc.defineDouble("min","Range",0,getMin()) ;
  pc.defineDouble("max","Range",1,getMax()) ;
  pc.defineInt("nbins","Bins",0,getBins()) ;
  pc.defineString("rangeName","RangeWithName",0,"") ;
  pc.defineString("name","Name",0,"") ;
  pc.defineString("title","Title",0,"") ;
  pc.defineMutex("Range","RangeWithName","AutoRange") ;
  pc.defineObject("rangeData","AutoRange",0,0) ;
  pc.defineDouble("rangeMargin","AutoRange",0,0.1) ;
  pc.defineInt("rangeSym","AutoRange",0,0) ;

  // Process & check varargs 
  pc.process(cmdList) ;
  if (!pc.ok(kTRUE)) {
    return 0 ;
  }

  // Extract values from named arguments
  Double_t xmin,xmax ;
  if (pc.hasProcessed("Range")) {
    xmin = pc.getDouble("min") ;
    xmax = pc.getDouble("max") ;
    if (xmin==xmax) {
      xmin = getMin() ;
      xmax = getMax() ;
    }
  } else if (pc.hasProcessed("RangeWithName")) {
    const char* rangeName=pc.getString("rangeName",0,kTRUE) ;
    xmin = getMin(rangeName) ;
    xmax = getMax(rangeName) ;
  } else if (pc.hasProcessed("AutoRange")) {
    RooTreeData* rangeData = static_cast<RooTreeData*>(pc.getObject("rangeData")) ;
    rangeData->getRange((RooRealVar&)*this,xmin,xmax) ;
    if (pc.getInt("rangeSym")==0) {
      // Regular mode: range is from xmin to xmax with given extra margin
      Double_t margin = pc.getDouble("rangeMargin")*(xmax-xmin) ;    
      xmin -= margin ;
      xmax += margin ; 
      if (xmin<getMin()) xmin = getMin() ;
      if (xmin>getMax()) xmax = getMax() ;
    } else {
      // Symmetric mode: range is centered at mean of distribution with enough width to include
      // both lowest and highest point with margin
      Double_t mean = rangeData->moment((RooRealVar&)*this,1) ;
      Double_t delta = ((xmax-mean)>(mean-xmin)?(xmax-mean):(mean-xmin))*(1+pc.getDouble("rangeMargin")) ;
      xmin = mean-delta ;
      xmax = mean+delta ;
      if (xmin<getMin()) xmin = getMin() ;
      if (xmin>getMax()) xmax = getMax() ;
    }
  } else {
    xmin = getMin() ;
    xmax = getMax() ;
  }

  Int_t nbins = pc.getInt("nbins") ;
  const char* name = pc.getString("name",0,kTRUE) ;
  const char* title = pc.getString("title",0,kTRUE) ;

  RooPlot* theFrame = new RooPlot(*this,xmin,xmax,nbins) ;

  if (name) {
    theFrame->SetName(name) ;
  }
  if (title) {
    theFrame->SetTitle(title) ;
  }

  return theFrame ;
}



//_____________________________________________________________________________
RooPlot *RooAbsRealLValue::frame(Double_t xlo, Double_t xhi, Int_t nbins) const 
{
  // Create a new RooPlot on the heap with a drawing frame initialized for this
  // object, but no plot contents. Use x.frame() as the first argument to a
  // y.plotOn(...) method, for example. The caller is responsible for deleting
  // the returned object.

  return new RooPlot(*this,xlo,xhi,nbins);
}



//_____________________________________________________________________________
RooPlot *RooAbsRealLValue::frame(Double_t xlo, Double_t xhi) const 
{
  // Create a new RooPlot on the heap with a drawing frame initialized for this
  // object, but no plot contents. Use x.frame() as the first argument to a
  // y.plotOn(...) method, for example. The caller is responsible for deleting
  // the returned object.

  return new RooPlot(*this,xlo,xhi,getBins());
}



//_____________________________________________________________________________
RooPlot *RooAbsRealLValue::frame(Int_t nbins) const 
{
  // Create a new RooPlot on the heap with a drawing frame initialized for this
  // object, but no plot contents. Use x.frame() as the first argument to a
  // y.plotOn(...) method, for example. The caller is responsible for deleting
  // the returned object.
  //
  // The current fit range may not be open ended or empty.

  // Plot range of variable may not be infinite or empty
  if (getMin()==getMax()) {
    coutE(InputArguments) << "RooAbsRealLValue::frame(" << GetName() << ") ERROR: empty fit range, must specify plot range" << endl ;
    return 0 ;
  }
  if (RooNumber::isInfinite(getMin())||RooNumber::isInfinite(getMax())) {
    coutE(InputArguments) << "RooAbsRealLValue::frame(" << GetName() << ") ERROR: open ended fit range, must specify plot range" << endl ;
    return 0 ;
  }

  return new RooPlot(*this,getMin(),getMax(),nbins);
}



//_____________________________________________________________________________
RooPlot *RooAbsRealLValue::frame() const 
{
  // Create a new RooPlot on the heap with a drawing frame initialized for this
  // object, but no plot contents. Use x.frame() as the first argument to a
  // y.plotOn(...) method, for example. The caller is responsible for deleting
  // the returned object.
  //
  // The current fit range may not be open ended or empty.

  // Plot range of variable may not be infinite or empty
  if (getMin()==getMax()) {
    coutE(InputArguments) << "RooAbsRealLValue::frame(" << GetName() << ") ERROR: empty fit range, must specify plot range" << endl ;
    return 0 ;
  }
  if (RooNumber::isInfinite(getMin())||RooNumber::isInfinite(getMax())) {
    coutE(InputArguments) << "RooAbsRealLValue::frame(" << GetName() << ") ERROR: open ended fit range, must specify plot range" << endl ;
    return 0 ;
  }

  return new RooPlot(*this,getMin(),getMax(),getBins());
}



//_____________________________________________________________________________
void RooAbsRealLValue::copyCache(const RooAbsArg* source, Bool_t /*valueOnly*/) 
{
  // Copy cache of another RooAbsArg to our cache

  RooAbsReal::copyCache(source) ;
  setVal(_value) ; // force back-propagation
}


//_____________________________________________________________________________
void RooAbsRealLValue::printMultiline(ostream& os, Int_t contents, Bool_t verbose, TString indent) const
{  
  // Structure printing

  RooAbsReal::printMultiline(os,contents,verbose,indent);
  os << indent << "--- RooAbsRealLValue ---" << endl;
  TString unit(_unit);
  if(!unit.IsNull()) unit.Prepend(' ');
  os << indent << "  Fit range is [ ";
  if(hasMin()) {
    os << getMin() << unit << " , ";
  }
  else {
    os << "-INF , ";
  }
  if(hasMax()) {
    os << getMax() << unit << " ]" << endl;
  }
  else {
    os << "+INF ]" << endl;
  }
}



//_____________________________________________________________________________
void RooAbsRealLValue::randomize(const char* rangeName) 
{
  // Set a new value sampled from a uniform distribution over the fit range.
  // Prints a warning and does nothing if the fit range is not finite.
  
  if(hasMin(rangeName) && hasMax(rangeName)) {
    Double_t range= getMax(rangeName)-getMin(rangeName);
    setVal(getMin(rangeName) + RooRandom::uniform()*range);
  }
  else {
    coutE(Generation) << fName << "::" << ClassName() << ":randomize: fails with unbounded fit range" << endl;
  }
}



//_____________________________________________________________________________
void RooAbsRealLValue::setBin(Int_t ibin, const char* rangeName) 
{
  // Set value to center of bin 'ibin' of binning 'rangeName' (or of 
  // default binning if no range is specified)

  // Check range of plot bin index
  if (ibin<0 || ibin>=numBins(rangeName)) {
    coutE(InputArguments) << "RooAbsRealLValue::setBin(" << GetName() << ") ERROR: bin index " << ibin
			  << " is out of range (0," << getBins(rangeName)-1 << ")" << endl ;
    return ;
  }
 
  // Set value to center of requested bin
  setVal(getBinning(rangeName).binCenter(ibin)) ;
}





//_____________________________________________________________________________
void RooAbsRealLValue::setBin(Int_t ibin, const RooAbsBinning& binning) 
{
  // Set value to center of bin 'ibin' of binning 'binning' 

  // Set value to center of requested bin
  setVal(binning.binCenter(ibin)) ;
}





//_____________________________________________________________________________
void RooAbsRealLValue::randomize(const RooAbsBinning& binning) 
{
  // Set a new value sampled from a uniform distribution over the fit range.
  // Prints a warning and does nothing if the fit range is not finite.
  
  Double_t range= binning.highBound() - binning.lowBound() ;
  setVal(binning.lowBound() + RooRandom::uniform()*range);
}





//_____________________________________________________________________________
void RooAbsRealLValue::setBinFast(Int_t ibin, const RooAbsBinning& binning) 
{
  // Set value to center of bin 'ibin' of binning 'rangeName' (or of 
  // default binning if no range is specified)

  // Set value to center of requested bin
  setValFast(binning.binCenter(ibin)) ;
}



//_____________________________________________________________________________
Bool_t RooAbsRealLValue::fitRangeOKForPlotting() const 
{
  // Check if fit range is usable as plot range, i.e. it is neither
  // open ended, nor empty
  return (hasMin() && hasMax() && (getMin()!=getMax())) ;
}



//_____________________________________________________________________________
Bool_t RooAbsRealLValue::inRange(const char* name) const 
{
  // Check if current value is inside range with given name

  return (getVal() >= getMin(name) && getVal() <= getMax(name)) ;
}



//_____________________________________________________________________________
TH1* RooAbsRealLValue::createHistogram(const char *name, const RooCmdArg& arg1, const RooCmdArg& arg2, 
					const RooCmdArg& arg3, const RooCmdArg& arg4, const RooCmdArg& arg5, 
					const RooCmdArg& arg6, const RooCmdArg& arg7, const RooCmdArg& arg8) const 

  // Create an empty ROOT histogram TH1,TH2 or TH3 suitabe to store information represent by the RooAbsRealLValue
  //
  // This function accepts the following arguments
  //
  // name -- Name of the ROOT histogram
  //
  // Binning(const char* name)                    -- Apply binning with given name to x axis of histogram
  // Binning(RooAbsBinning& binning)              -- Apply specified binning to x axis of histogram
  // Binning(int_t nbins)                         -- Apply specified binning to x axis of histogram
  // Binning(int_t nbins, double lo, double hi)   -- Apply specified binning to x axis of histogram
  // ConditionalObservables(const RooArgSet& set) -- Do not normalized PDF over following observables when projecting PDF into histogram
  //
  // YVar(const RooAbsRealLValue& var,...)    -- Observable to be mapped on y axis of ROOT histogram
  // ZVar(const RooAbsRealLValue& var,...)    -- Observable to be mapped on z axis of ROOT histogram
  //
  // The YVar() and ZVar() arguments can be supplied with optional Binning() arguments to control the binning of the Y and Z axes, e.g.
  // createHistogram("histo",x,Binning(-1,1,20), YVar(y,Binning(-1,1,30)), ZVar(z,Binning("zbinning")))
  //
  // The caller takes ownership of the returned histogram
{
  RooLinkedList l ;
  l.Add((TObject*)&arg1) ;  l.Add((TObject*)&arg2) ;  
  l.Add((TObject*)&arg3) ;  l.Add((TObject*)&arg4) ;
  l.Add((TObject*)&arg5) ;  l.Add((TObject*)&arg6) ;  
  l.Add((TObject*)&arg7) ;  l.Add((TObject*)&arg8) ;

  return createHistogram(name,l) ;
}



//_____________________________________________________________________________
TH1* RooAbsRealLValue::createHistogram(const char *name, const RooLinkedList& cmdList) const 
{  
  // Create empty 1,2 or 3D histogram
  // Arguments recognized
  //
  // YVar() -- RooRealVar defining Y dimension with optional range/binning
  // ZVar() -- RooRealVar defining Z dimension with optional range/binning
  // AxisLabel() -- Vertical axis label
  // Binning() -- Range/Binning specification of X axis

  // Define configuration for this method
  RooCmdConfig pc(Form("RooAbsRealLValue::createHistogram(%s)",GetName())) ;

  pc.defineObject("xbinning","Binning",0,0) ;
  pc.defineString("xbinningName","BinningName",0,"") ;
  pc.defineInt("nxbins","BinningSpec",0) ;
  pc.defineDouble("xlo","BinningSpec",0,0) ;
  pc.defineDouble("xhi","BinningSpec",1,0) ;

  pc.defineObject("yvar","YVar",0,0) ;
  pc.defineObject("ybinning","YVar::Binning",0,0) ;
  pc.defineString("ybinningName","YVar::BinningName",0,"") ;
  pc.defineInt("nybins","YVar::BinningSpec",0) ;
  pc.defineDouble("ylo","YVar::BinningSpec",0,0) ;
  pc.defineDouble("yhi","YVar::BinningSpec",1,0) ;

  pc.defineObject("zvar","ZVar",0,0) ;
  pc.defineObject("zbinning","ZVar::Binning",0,0) ;
  pc.defineString("zbinningName","ZVar::BinningName",0,"") ;
  pc.defineInt("nzbins","ZVar::BinningSpec",0) ;
  pc.defineDouble("zlo","ZVar::BinningSpec",0,0) ;
  pc.defineDouble("zhi","ZVar::BinningSpec",1,0) ;

  pc.defineString("axisLabel","AxisLabel",0,"Events") ;

  pc.defineDependency("ZVar","YVar") ;

  // Process & check varargs 
  pc.process(cmdList) ;
  if (!pc.ok(kTRUE)) {
    return 0 ;
  }

  // Initialize arrays for call to implementation version of createHistogram
  const char* axisLabel = pc.getString("axisLabel") ;
  const RooAbsBinning* binning[3] ;
  Bool_t ownBinning[3]  = { kFALSE, kFALSE, kFALSE } ;
  RooArgList vars ;

  // Prepare X dimension
  vars.add(*this) ;
  if (pc.hasProcessed("Binning")) {
    binning[0] = static_cast<RooAbsBinning*>(pc.getObject("xbinning")) ;
  } else if (pc.hasProcessed("BinningName")) {
    binning[0] = &getBinning(pc.getString("xbinningName",0,kTRUE)) ;
  } else if (pc.hasProcessed("BinningSpec")) {
    Double_t xlo = pc.getDouble("xlo") ;
    Double_t xhi = pc.getDouble("xhi") ;
    binning[0] = new RooUniformBinning((xlo==xhi)?getMin():xlo,(xlo==xhi)?getMax():xhi,pc.getInt("nxbins")) ;
    ownBinning[0] = kTRUE ;
  }  else {
    binning[0] = &getBinning() ;
  }

  if (pc.hasProcessed("YVar")) {
    RooAbsRealLValue& yvar = *static_cast<RooAbsRealLValue*>(pc.getObject("yvar")) ;
    vars.add(yvar) ;
    if (pc.hasProcessed("YVar::Binning")) {
      binning[1] = static_cast<RooAbsBinning*>(pc.getObject("ybinning")) ;
    } else if (pc.hasProcessed("YVar::BinningName")) {
      binning[1] = &yvar.getBinning(pc.getString("ybinningName",0,kTRUE)) ;
    } else if (pc.hasProcessed("YVar::BinningSpec")) {
      Double_t ylo = pc.getDouble("ylo") ;
      Double_t yhi = pc.getDouble("yhi") ;
      binning[1] = new RooUniformBinning((ylo==yhi)?yvar.getMin():ylo,(ylo==yhi)?yvar.getMax():yhi,pc.getInt("nybins")) ;
      ownBinning[1] = kTRUE ;
    } else {
      binning[1] = &yvar.getBinning() ;
    }
  }

  if (pc.hasProcessed("ZVar")) {
    RooAbsRealLValue& zvar = *static_cast<RooAbsRealLValue*>(pc.getObject("zvar")) ;
    vars.add(zvar) ;
    if (pc.hasProcessed("ZVar::Binning")) {
      binning[2] = static_cast<RooAbsBinning*>(pc.getObject("zbinning")) ;
    } else if (pc.hasProcessed("ZVar::BinningName")) {
      binning[2] = &zvar.getBinning(pc.getString("zbinningName",0,kTRUE)) ;
    } else if (pc.hasProcessed("ZVar::BinningSpec")) {
      Double_t zlo = pc.getDouble("zlo") ;
      Double_t zhi = pc.getDouble("zhi") ;
      binning[2] = new RooUniformBinning((zlo==zhi)?zvar.getMin():zlo,(zlo==zhi)?zvar.getMax():zhi,pc.getInt("nzbins")) ;
      ownBinning[2] = kTRUE ;
    } else {
      binning[2] = &zvar.getBinning() ;
    }
  }


  TH1* ret = createHistogram(name, vars, axisLabel, binning) ;

  if (ownBinning[0]) delete binning[0] ;
  if (ownBinning[1]) delete binning[1] ;
  if (ownBinning[2]) delete binning[2] ;
  
  return ret ;
}



//_____________________________________________________________________________
TH1F *RooAbsRealLValue::createHistogram(const char *name, const char *yAxisLabel) const 
{
  // Create an empty 1D-histogram with appropriate scale and labels for this variable.
  // This method uses the default plot range which can be changed using the
  // setPlotMin(),setPlotMax() methods, and the default binning which can be
  // changed with setPlotBins(). The caller takes ownership of the returned
  // object and is responsible for deleting it.

  // Check if the fit range is usable as plot range
  if (!fitRangeOKForPlotting()) {
    coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			  << ") ERROR: fit range empty or open ended, must explicitly specify range" << endl ;
    return 0 ;
  }

  RooArgList list(*this) ;
  Double_t xlo = getMin() ;
  Double_t xhi = getMax() ;
  Int_t nbins = getBins() ;
  return (TH1F*)createHistogram(name, list, yAxisLabel, &xlo, &xhi, &nbins);
}



//_____________________________________________________________________________
TH1F *RooAbsRealLValue::createHistogram(const char *name, const char *yAxisLabel, Double_t xlo, Double_t xhi, Int_t nBins) const 
{
  // Create an empty 1D-histogram with appropriate scale and labels for this variable.
  // This method uses the default plot range which can be changed using the
  // setPlotMin(),setPlotMax() methods, and the default binning which can be
  // changed with setPlotBins(). The caller takes ownership of the returned
  // object and is responsible for deleting it.

  RooArgList list(*this) ;
  return (TH1F*)createHistogram(name, list, yAxisLabel, &xlo, &xhi, &nBins);
}



//_____________________________________________________________________________
TH1F *RooAbsRealLValue::createHistogram(const char *name, const char *yAxisLabel, const RooAbsBinning& bins) const 
{
  // Create an empty 1D-histogram with appropriate scale and labels for this variable.

  RooArgList list(*this) ;
  const RooAbsBinning* pbins = &bins ;
  return (TH1F*)createHistogram(name, list, yAxisLabel, &pbins);
}



//_____________________________________________________________________________
TH2F *RooAbsRealLValue::createHistogram(const char *name, const RooAbsRealLValue &yvar, const char *zAxisLabel, 
					Double_t* xlo, Double_t* xhi, Int_t* nBins) const 
{
  // Create an empty 2D-histogram with appropriate scale and labels for this variable (x)
  // and the specified y variable. This method uses the default plot ranges for x and y which
  // can be changed using the setPlotMin(),setPlotMax() methods, and the default binning which
  // can be changed with setPlotBins(). The caller takes ownership of the returned object
  // and is responsible for deleting it.

  if ((!xlo && xhi) || (xlo && !xhi)) {
    coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			  << ") ERROR must specify either no range, or both limits" << endl ;
    return 0 ;
  }

  Double_t xlo_fit[2] ;
  Double_t xhi_fit[2] ;
  Int_t nbins_fit[2] ;

  Double_t *xlo2 = xlo;
  Double_t *xhi2 = xhi;
  Int_t *nBins2 = nBins;

  if (!xlo2) {

    if (!fitRangeOKForPlotting()) {
      coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
	   << ") ERROR: fit range empty or open ended, must explicitly specify range" << endl ;      
      return 0 ;
    }
    if (!yvar.fitRangeOKForPlotting()) {
      coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
	   << ") ERROR: fit range of " << yvar.GetName() << " empty or open ended, must explicitly specify range" << endl ;      
      return 0 ;
    }

    xlo_fit[0] = getMin() ;
    xhi_fit[0] = getMax() ;    

    xlo_fit[1] = yvar.getMin() ;
    xhi_fit[1] = yvar.getMax() ;

    xlo2 = xlo_fit ;
    xhi2 = xhi_fit ;
  }
  
  if (!nBins2) {
    nbins_fit[0] = getBins() ;
    nbins_fit[1] = yvar.getBins() ;
    nBins2 = nbins_fit ;
  }


  RooArgList list(*this,yvar) ;
  return (TH2F*)createHistogram(name, list, zAxisLabel, xlo2, xhi2, nBins2);
}



//_____________________________________________________________________________
TH2F *RooAbsRealLValue::createHistogram(const char *name, const RooAbsRealLValue &yvar, 
					const char *zAxisLabel, const RooAbsBinning** bins) const 
{
  // Create an empty 2D-histogram with appropriate scale and labels for this variable (x)
  // and the specified y variable. 

  RooArgList list(*this,yvar) ;
  return (TH2F*)createHistogram(name, list, zAxisLabel, bins);
}



//_____________________________________________________________________________
TH3F *RooAbsRealLValue::createHistogram(const char *name, const RooAbsRealLValue &yvar, const RooAbsRealLValue &zvar,
					const char *tAxisLabel, Double_t* xlo, Double_t* xhi, Int_t* nBins) const 
{
  // Create an empty 3D-histogram with appropriate scale and labels for this variable (x)
  // and the specified y,z variables. This method uses the default plot ranges for x,y,z which
  // can be changed using the setPlotMin(),setPlotMax() methods, and the default binning which
  // can be changed with setPlotBins(). The caller takes ownership of the returned object
  // and is responsible for deleting it.

  if ((!xlo && xhi) || (xlo && !xhi)) {
    coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			  << ") ERROR must specify either no range, or both limits" << endl ;
    return 0 ;
  }

  Double_t xlo_fit[3] ;
  Double_t xhi_fit[3] ;
  Int_t nbins_fit[3] ;

  Double_t *xlo2 = xlo;
  Double_t *xhi2 = xhi;
  Int_t* nBins2 = nBins;
  if (!xlo2) {

    if (!fitRangeOKForPlotting()) {
      coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			    << ") ERROR: fit range empty or open ended, must explicitly specify range" << endl ;      
      return 0 ;
    }
    if (!yvar.fitRangeOKForPlotting()) {
      coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			    << ") ERROR: fit range of " << yvar.GetName() << " empty or open ended, must explicitly specify range" << endl ;      
      return 0 ;
    }
    if (!zvar.fitRangeOKForPlotting()) {
      coutE(InputArguments) << "RooAbsRealLValue::createHistogram(" << GetName() 
			    << ") ERROR: fit range of " << zvar.GetName() << " empty or open ended, must explicitly specify range" << endl ;      
      return 0 ;
    }

    xlo_fit[0] = getMin() ;
    xhi_fit[0] = getMax() ;    

    xlo_fit[1] = yvar.getMin() ;
    xhi_fit[1] = yvar.getMax() ;

    xlo_fit[2] = zvar.getMin() ;
    xhi_fit[2] = zvar.getMax() ;

    xlo2 = xlo_fit ;
    xhi2 = xhi_fit ;
  }
  
  if (!nBins2) {
    nbins_fit[0] = getBins() ;
    nbins_fit[1] = yvar.getBins() ;
    nbins_fit[2] = zvar.getBins() ;
    nBins2 = nbins_fit ;
  }

  RooArgList list(*this,yvar,zvar) ;
  return (TH3F*)createHistogram(name, list, tAxisLabel, xlo2, xhi2, nBins2);
}


TH3F *RooAbsRealLValue::createHistogram(const char *name, const RooAbsRealLValue &yvar, const RooAbsRealLValue &zvar, 
					const char* tAxisLabel, const RooAbsBinning** bins) const 
{
  // Create an empty 3D-histogram with appropriate scale and labels for this variable (x)
  // and the specified y,z variables. 

  RooArgList list(*this,yvar,zvar) ;
  return (TH3F*)createHistogram(name, list, tAxisLabel, bins);
}




//_____________________________________________________________________________
TH1 *RooAbsRealLValue::createHistogram(const char *name, RooArgList &vars, const char *tAxisLabel, 
				       Double_t* xlo, Double_t* xhi, Int_t* nBins)
{
  // Create 1-, 2- or 3-d ROOT histogram with labels taken
  // from the variables in 'vars' and the with range and binning
  // specified in xlo,xhi and nBins. The dimensions of the arrays xlo,xhi,
  // nBins should match the number of objects in vars.

  const RooAbsBinning* bin[3] ;
  Int_t ndim = vars.getSize() ;
  bin[0] = new RooUniformBinning(xlo[0],xhi[0],nBins[0]) ;
  bin[1] = (ndim>1) ? new RooUniformBinning(xlo[1],xhi[1],nBins[1]) : 0 ;
  bin[2] = (ndim>2) ? new RooUniformBinning(xlo[2],xhi[2],nBins[2]) : 0 ;

  TH1* ret = createHistogram(name,vars,tAxisLabel,bin) ;

  if (bin[0]) delete bin[0] ;
  if (bin[1]) delete bin[1] ;
  if (bin[2]) delete bin[2] ;
  return ret ;  
}



//_____________________________________________________________________________
TH1 *RooAbsRealLValue::createHistogram(const char *name, RooArgList &vars, const char *tAxisLabel, const RooAbsBinning** bins) 
{
  // Create a 1,2, or 3D-histogram with appropriate scale and labels.
  // Binning and ranges are taken from the variables themselves and can be changed by
  // calling their setPlotMin/Max() and setPlotBins() methods. A histogram can be filled
  // using RooAbsReal::fillHistogram() or RooTreeData::fillHistogram().
  // The caller takes ownership of the returned object and is responsible for deleting it.

  // Check that we have 1-3 vars
  Int_t dim= vars.getSize();
  if(dim < 1 || dim > 3) {
    oocoutE((TObject*)0,InputArguments) << "RooAbsReal::createHistogram: dimension not supported: " << dim << endl;
    return 0;
  }

  // Check that all variables are AbsReals and prepare a name of the form <name>_<var1>_...
  TString histName(name);
  histName.Append("_");
  const RooAbsRealLValue *xyz[3];

  Int_t index;
  for(index= 0; index < dim; index++) {
    const RooAbsArg *arg= vars.at(index);
    xyz[index]= dynamic_cast<const RooAbsRealLValue*>(arg);
    if(!xyz[index]) {
      oocoutE((TObject*)0,InputArguments) << "RooAbsRealLValue::createHistogram: variable is not real lvalue: " << arg->GetName() << endl;
      return 0;
    }
    histName.Append("_");
    histName.Append(arg->GetName());
  }
  TString histTitle(histName);
  histTitle.Prepend("Histogram of ");

  // Create the histogram
  TH1 *histogram = 0;
  switch(dim) {
  case 1:
    histogram= new TH1F(histName.Data(), histTitle.Data(),
			bins[0]->numBins(),bins[0]->array());
    break;
  case 2:
    histogram= new TH2F(histName.Data(), histTitle.Data(),
			bins[0]->numBins(),bins[0]->array(),
			bins[1]->numBins(),bins[1]->array());
    break;
  case 3:
    histogram= new TH3F(histName.Data(), histTitle.Data(),
			bins[0]->numBins(),bins[0]->array(),
			bins[1]->numBins(),bins[1]->array(),
			bins[2]->numBins(),bins[2]->array());
    break;
  default:
    assert(0);
    break;
  }
  if(!histogram) {
    oocoutE((TObject*)0,InputArguments) << "RooAbsReal::createHistogram: unable to create a new histogram" << endl;
    return 0;
  }

  // Set the histogram coordinate axis labels from the titles of each variable, adding units if necessary.
  for(index= 0; index < dim; index++) {
    TString axisTitle(xyz[index]->getTitle(kTRUE));
    switch(index) {
    case 0:
      histogram->SetXTitle(axisTitle.Data());
      break;
    case 1:
      histogram->SetYTitle(axisTitle.Data());
      break;
    case 2:
      histogram->SetZTitle(axisTitle.Data());
      break;
    default:
      assert(0);
      break;
    }
  }

  // Set the t-axis title if given one
  if((0 != tAxisLabel) && (0 != strlen(tAxisLabel))) {
    TString axisTitle(tAxisLabel);
    axisTitle.Append(" / ( ");
    for(Int_t index2= 0; index2 < dim; index2++) {
      Double_t delta= bins[index2]->averageBinWidth() ; // xyz[index2]->getBins();
      if(index2 > 0) axisTitle.Append(" x ");
      axisTitle.Append(Form("%g",delta));
      if(strlen(xyz[index2]->getUnit())) {
	axisTitle.Append(" ");
	axisTitle.Append(xyz[index2]->getUnit());
      }
    }
    axisTitle.Append(" )");
    switch(dim) {
    case 1:
      histogram->SetYTitle(axisTitle.Data());
      break;
    case 2:
      histogram->SetZTitle(axisTitle.Data());
      break;
    case 3:
      // not supported in TH1
      break;
    default:
      assert(0);
      break;
    }
  }

  return histogram;
}


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