Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

FunctionProjector Class Reference

#include <FunctionProjector.h>

Inheritance diagram for FunctionProjector:

Inheritance graph
[legend]
Collaboration diagram for FunctionProjector:

Collaboration graph
[legend]
List of all members.

Detailed Description

A projector that plots one function.

Author:
Kaustuv <kaustuv@stanford.edu>

Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Sanket B. Malde <sanket@stanford.edu>

Oded Wurman <owurman@stanford.edu>

Definition at line 31 of file FunctionProjector.h.

Public Types

typedef void(hippodraw::Observer::* Action )(const Observable *)
 The member function of the Observer that is called.
typedef std::list< hippodraw::Observer * > ObserverList_t
 The type of STL container to maintain list of Observer objects.

Public Member Functions

void addObserver (hippodraw::Observer *)
 Adds an Observer to the Observer list.
virtual void addValues (const std::vector< double > &v)
 Add values to the projection.
virtual ProjectorBaseclone ()
const std::vector< std::vector<
double > > & 
covariance () const
 Returns the covariance matrix.
virtual DataSourcecreateNTuple () const
 Creates an NTuple representation of the projected values.
virtual const DataSourcecreateOldStyleNTuple () const
virtual Range dataRangeOn (hippodraw::Axes::Type) const
 Returns the range of the raw data.
int degreesOfFreedom () const
 Returns the number of degrees of freedom in the fit.
bool fitFunction ()
 Fits the function.
FunctionBasefunction () const
 Returns a pointer to the contained function.
 FunctionProjector (const FunctionProjector &)
 The copy constructor.
 FunctionProjector (FunctionBase *function, ProjectorBase *targetProjector)
 This constructor takes a FunctionBase pointer.
 FunctionProjector (const std::string &name, ProjectorBase *targetProjector)
 The following constructor takes a function name as an argument.
virtual double getAverage (hippodraw::Axes::Type axis) const
 Get the Average of all projected values on the specified axis.
virtual const std::vector<
std::string > & 
getAxisBindings () const
 Returns the axis bindings.
virtual AxisModelBasegetAxisModel (hippodraw::Axes::Type axis) const
 Get the AxisModel for axis axis.
virtual double getBinWidth (hippodraw::Axes::Type axis) const
 Returns the bin width of the axis.
FittergetFitter () const
 Returns the Fitter that is in use.
virtual NTuplegetNTupleAfterCuts () const
 Template for projectors that can return subsets of the NTuple used by the DataRep.
virtual int getNumberOfBins (hippodraw::Axes::Type) const
 Returns the number of bins.
int getNumberOfEntries () const
 A call to this member function is meaningless.
const ObserverList_tgetObservers () const
 Returns the list of observers.
virtual double getOffset (hippodraw::Axes::Type axis) const
 Returns the offset of the axis.
const std::vector< std::string > & getPointReps () const
 Return the vector of Point Reps.
virtual double getPosOn (hippodraw::Axes::Type) const
 Returns the minimum positive value.
const DataSourcegetProjectedValues () const
 Returns ntuple representation of projected values.
virtual const RangegetRange (hippodraw::Axes::Type) const
 Returns the Range along the specified axis.
virtual double getRMS (hippodraw::Axes::Type axis)
 Returns the RMS.
virtual const std::stringgetTitle () const
 Finds the title of the plot.
virtual const std::stringgetXLabel () const
 Finds the X axis label of the plot.
virtual const std::stringgetYLabel (bool density=false) const
 Finds the Y axis label of the plot.
const std::stringgetZLabel () const
 Is meaningless for this projector.
virtual double getZValue (double x, double y) const
 Get the z value at the specified point (x,y).
bool hasSavedParameters () const
 Returns true if the function's parameters have been saved.
void initializeFunction (ProjectorBase *projector)
 Gives the function object initial values based on a given data projector.
virtual bool isAxisBinned (const std::string &axis) const
 Returns true if specified axis is binned.
bool isDirty () const
 Returns true if the projector has been marked dirty.
virtual bool isEmpty () const
 Implements ProjectorBase.
virtual bool isValueBinned () const
 Returns true if the projected values are the result of binning.
virtual void matrixTranspose (bool yes)
 Transposes the X and Y axis.
virtual void normalizeTo (double norm)
 Sets a scale factor on the output so that the number of entries appears to be number.
virtual void normalizeTo (const ProjectorBase *target)
 Sets the target of normalization.
virtual void notifyObservers () const
 Notifies Observer objects of a change.
double objectiveValue () const
 Returns the objective value (chi2 or likelihood) between the function and the data.
virtual Range preferredRange (hippodraw::Axes::Type) const
 Returns the preferred Range.
virtual void prepareAxis (const Range &x_view, const Range &y_view)
 Prepares the projected values for plotting.
const std::vector< double > & principleErrors () const
 Returns the principle diagonal of the covariance matrix.
void removeObserver (hippodraw::Observer *)
 Removes an Observer from the Observer list.
virtual void reset ()
 Resets the bins.
void restoreParameters ()
 Restores the function's parameter values from the previously saved values.
void saveParameters ()
 Makes a copy of the function's parameter values.
virtual void setAxisBinding (const std::string &axis, const std::string &label)
 Sets the axis binding.
virtual void setAxisBindings (const std::vector< std::string > &bindings)
 Sets the axis binding.
virtual void setAxisModel (hippodraw::Axes::Type axis, AxisModelBase *)
 Sets the AxisModel for axis axis.
virtual void setBinWidth (const std::string &axis, int parm, bool dragging)
 Sets the bin width.
virtual void setBinWidth (hippodraw::Axes::Type axis, double width)
 Sets the bin width.
virtual void setDirty (bool value=true)
 Sets the dirty flag to value.
virtual void setFitCut (TupleCut *cut)
 Sets the cut to limit range of fitting.
virtual void setFitRange (bool yes=true)
 Sets use of a fitting range on or off.
void setFitter (Fitter *fitter)
 Sets the Fitter to be used.
virtual void setNormalizing (bool on)
 Sets the scaling number of entries on if on is true, otherwise turns if off.
virtual void setNumberOfBins (hippodraw::Axes::Type axis, unsigned int number)
 Sets the number of bins.
void setNumberOfBins (int nb)
 Sets the number of bins to be used in the function binner.
virtual void setOffset (hippodraw::Axes::Type axis, double offset)
 Sets the bin offset.
virtual void setOffset (const std::string &axis, int parm, bool dragging)
 Sets the bin offset.
void setParameters (const std::vector< double > &params)
 Set the parameter values by hand.
void setPrincipleErrors (std::vector< double >::const_iterator begin, std::vector< double >::const_iterator end)
 Sets the principle errors.
virtual void setRange (hippodraw::Axes::Type, bool)
 Sets the range of the selected axis.
virtual void update (const Observable *)
 Implements the Observer pattern.
virtual Range valueRange () const
virtual bool wantsScaleFactor (const std::string &axis) const
 Returns whether the projector wants scale factor.
virtual void willDelete (const Observable *)
 Notifies this Observer object that one of its Observable objects is about to be deleted.
virtual ~FunctionProjector ()
 The virtual destructor.

Protected Member Functions

virtual void fillDataSource (DataSource *ntuple, bool in_range=false) const
 Fills the DataSource source with the projected values.
virtual void fillProjectedValues (DataSource *ntuple, bool in_range=false) const
 Fills the NTuple ntuple with the projected values.
void notifyObservers (Action action) const
 An internal method to iterate over all observers and to send the message action.

Protected Attributes

std::vector< std::stringm_pointreps
 Vector of acceptable PointReps.
DataSourcem_proj_values
 The NTuple representing the result of the projection.
AxisModelBasem_x_axis
 The AxisModel along the X axis.
AxisModelBasem_y_axis
 The AxisModel along the Y axis.
AxisModelBasem_z_axis
 The AxisModel along the Z axis.

Private Member Functions

virtual void addPointReps ()
 Function to add the acceptable point reps.
virtual void prepareValues ()
 Prepares the projector for plotting.

Private Attributes

BinsFunctionm_binner
 The function binner object.
std::vector< std::vector<
double > > 
m_covariance
 The error covariance matrix of the errors associated with the parameters of the function.
Fitterm_fitter
 A fitter object for the function.
FunctionBasem_function
 The list of function objects to be projected.
std::vector< double > m_principleErrors
 The principle errors of the errors associated with the parameters of the function.
std::vector< double > m_save_parms
 A vector used to save parameters so that they can be restored.
ProjectorBasem_target
 The ProjectorBase object containing the data points for the function and fitter.
std::list< std::vector< double > > m_values
 The array of projected values.
std::string m_z_label
 Dummy member so getZLabel member can return reference.

Static Private Attributes

static std::string s_x_label
 An X label that might be used.


Member Typedef Documentation

typedef void( hippodraw::Observer::* Observable::Action)(const Observable *) [inherited]
 

The member function of the Observer that is called.

Definition at line 83 of file Observable.h.

typedef std::list< hippodraw::Observer * > Observable::ObserverList_t [inherited]
 

The type of STL container to maintain list of Observer objects.

Definition at line 46 of file Observable.h.


Constructor & Destructor Documentation

FunctionProjector::FunctionProjector const std::string name,
ProjectorBase targetProjector
 

The following constructor takes a function name as an argument.

The target projector is the projector on which the function is applied.

Definition at line 46 of file FunctionProjector.cxx.

References addPointReps(), Factory< Type >::create(), FunctionFactory::instance(), m_binner, m_function, and setNumberOfBins().

FunctionProjector::FunctionProjector FunctionBase function,
ProjectorBase targetProjector
 

This constructor takes a FunctionBase pointer.

Definition at line 64 of file FunctionProjector.cxx.

References addPointReps(), m_binner, m_function, and setNumberOfBins().

FunctionProjector::FunctionProjector const FunctionProjector plotter  ) 
 

The copy constructor.

Todo:
To be implemented.

Definition at line 81 of file FunctionProjector.cxx.

FunctionProjector::~FunctionProjector  )  [virtual]
 

The virtual destructor.

It is responsible for deleting the Function objects.

Definition at line 85 of file FunctionProjector.cxx.

References m_binner, m_fitter, and m_function.


Member Function Documentation

void Observable::addObserver hippodraw::Observer  )  [inherited]
 

Adds an Observer to the Observer list.

Definition at line 49 of file Observable.cxx.

References Observable::m_list.

Referenced by CutPlotter::addCutTarget(), XyPlotter::addDataRep(), FunctionRep::FunctionRep(), BinningProjector::normalizeTo(), DataRepController::setAxisBindings(), DisplayController::setNTuple(), CutPlotter::setNTuple(), and TextPlotter::setParentDataRep().

void FunctionProjector::addPointReps  )  [private, virtual]
 

Function to add the acceptable point reps.

Implements ProjectorBase.

Definition at line 346 of file FunctionProjector.cxx.

Referenced by FunctionProjector().

void ProjectorBase::addValues const std::vector< double > &  v  )  [virtual, inherited]
 

Add values to the projection.

This method is provided as convenience for derived classes that respond to it. The implementation in this class does nothing.

Reimplemented in StHist1DProjector, and StHist2DProjector.

Definition at line 312 of file ProjectorBase.cxx.

ProjectorBase * FunctionProjector::clone  )  [virtual]
 

Todo:
To be implemented.

Implements ProjectorBase.

Definition at line 93 of file FunctionProjector.cxx.

const vector< vector< double > > & FunctionProjector::covariance  )  const
 

Returns the covariance matrix.

Definition at line 371 of file FunctionProjector.cxx.

References m_covariance, and m_fitter.

DataSource * FunctionProjector::createNTuple  )  const [virtual]
 

Creates an NTuple representation of the projected values.

Derived classes should create a representation appropriate for their projection. They should at least include the coordinates, the width of the coordinates, the value and the error on the value.

Implements ProjectorBase.

Definition at line 384 of file FunctionProjector.cxx.

References fillProjectedValues(), m_values, num_util::size(), and hippodraw::DataPoint2DTuple::SIZE.

Referenced by prepareValues().

const DataSource * ProjectorBase::createOldStyleNTuple  )  const [virtual, inherited]
 

Reimplemented in BinningProjector.

Definition at line 345 of file ProjectorBase.cxx.

References ProjectorBase::getProjectedValues(), and ProjectorBase::prepareValues().

Range FunctionProjector::dataRangeOn hippodraw::Axes::Type   )  const [virtual]
 

Returns the range of the raw data.

Implements ProjectorBase.

Definition at line 253 of file FunctionProjector.cxx.

References AxisModelBase::getRange(), ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, and hippodraw::Axes::X.

int FunctionProjector::degreesOfFreedom  )  const
 

Returns the number of degrees of freedom in the fit.

Definition at line 308 of file FunctionProjector.cxx.

References Fitter::calcDegreesOfFreedom(), and m_fitter.

Referenced by FuncChiRep::drawProjectedValues().

void FunctionProjector::fillDataSource DataSource ntuple,
bool  in_range = false
const [protected, virtual]
 

Fills the DataSource source with the projected values.

Fills the DataSource source with the results of projecting the data source to projected values. Derived classes must implement this method. Clients, such as plotters or fitters, can then use getProjectedValues method to access the projected value data. The default behavior is to fill the DataSource with all values that are accepted by the TupleCut objects, if any. If in_range is equal to true, then the values used to fill the DataSource are further restricted to be within the axes ranges. Some derived classes may always use the default behavior.

Implements ProjectorBase.

Definition at line 423 of file FunctionProjector.cxx.

References m_values, and hippodraw::DataPoint2DTuple::SIZE.

void FunctionProjector::fillProjectedValues DataSource ntuple,
bool  in_range = false
const [protected, virtual]
 

Fills the NTuple ntuple with the projected values.

Fills the NTuple !ntuple with the results of projecting the data source to projected values. Derived classes must implement this method. Clients, such as plotters or fitters, can then use getProjectedValues method to access the projected value data. The default behavior is to fill the NTuple with all values that are accepted by the TupleCut objects, if any. If in_range is equal to true, then the values used to fill the NTuple are further restricted to be within the axes ranges. Some derived classes may always use the default behavior.

Implements ProjectorBase.

Definition at line 407 of file FunctionProjector.cxx.

References m_values, and hippodraw::DataPoint2DTuple::SIZE.

Referenced by createNTuple(), and prepareValues().

bool FunctionProjector::fitFunction  ) 
 

Fits the function.

Attempts to fit the function to the data. Returns true if the fit converged, otherwise returns false. Creates a new fitter object if necessary.

Definition at line 158 of file FunctionProjector.cxx.

References Fitter::calcBestFit(), hasSavedParameters(), m_fitter, m_function, m_target, prepareValues(), saveParameters(), and ProjectorBase::setDirty().

Referenced by FunctionRep::fitFunction().

FunctionBase * FunctionProjector::function  )  const
 

Returns a pointer to the contained function.

Definition at line 98 of file FunctionProjector.cxx.

References m_function.

Referenced by FunctionProjectorXML::createElement(), FuncParmRep::drawProjectedValues(), and FunctionRep::getFunction().

double ProjectorBase::getAverage hippodraw::Axes::Type  axis  )  const [virtual, inherited]
 

Get the Average of all projected values on the specified axis.

Todo:
this should be computed externally with the iterators

Reimplemented in DyHist1DProjector, Map1Projector, MapMatrixProjector, NTupleProjector, StHist1DProjector, and StHist2DProjector.

Definition at line 268 of file ProjectorBase.cxx.

Referenced by AverageTextRep::drawProjectedValues().

const vector< string > & ProjectorBase::getAxisBindings  )  const [virtual, inherited]
 

Returns the axis bindings.

Returns the name associated with each axis. This member function should only be called with a derived class which can process it in a meaningful way. thus if this method is called on this base class, an assertion is raised.

Reimplemented in NTupleProjector.

Definition at line 99 of file ProjectorBase.cxx.

Referenced by XYPlot::setAxisBindings().

AxisModelBase * ProjectorBase::getAxisModel hippodraw::Axes::Type  axis  )  const [virtual, inherited]
 

Get the AxisModel for axis axis.

Definition at line 204 of file ProjectorBase.cxx.

References ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, ProjectorBase::m_z_axis, hippodraw::Axes::X, hippodraw::Axes::Y, and hippodraw::Axes::Z.

Referenced by CompositePlotter::processReturnValue(), and ContourPointRep::setContourValues().

double ProjectorBase::getBinWidth hippodraw::Axes::Type  axis  )  const [virtual, inherited]
 

Returns the bin width of the axis.

Not all projectors has a notation of a bin width. This interface is declared for those that do. The implementation in this base class is to does nothing.

Reimplemented in BinningProjector, and MapMatrixProjector.

Definition at line 299 of file ProjectorBase.cxx.

Referenced by PyDataRep::getBinWidth(), and CompositePlotter::getBinWidth().

Fitter * FunctionProjector::getFitter  )  const
 

Returns the Fitter that is in use.

Definition at line 139 of file FunctionProjector.cxx.

References m_fitter.

NTuple * ProjectorBase::getNTupleAfterCuts  )  const [virtual, inherited]
 

Template for projectors that can return subsets of the NTuple used by the DataRep.

Reimplemented in NTupleProjector.

Definition at line 324 of file ProjectorBase.cxx.

Referenced by DataRep::getNTupleAfterCuts().

int ProjectorBase::getNumberOfBins hippodraw::Axes::Type   )  const [virtual, inherited]
 

Returns the number of bins.

Returns the number of bins on the specified axis. The result is 0 if the axis is not binned.

Reimplemented in BinningProjector, and MapMatrixProjector.

Definition at line 116 of file ProjectorBase.cxx.

Referenced by BinningProjector::getNumberOfBins().

int FunctionProjector::getNumberOfEntries  )  const [virtual]
 

A call to this member function is meaningless.

Thus, it raises an assertion.

Implements ProjectorBase.

Definition at line 244 of file FunctionProjector.cxx.

const Observable::ObserverList_t & Observable::getObservers  )  const [inherited]
 

Returns the list of observers.

Definition at line 57 of file Observable.cxx.

References Observable::m_list.

double ProjectorBase::getOffset hippodraw::Axes::Type  axis  )  const [virtual, inherited]
 

Returns the offset of the axis.

Not all projectors has a notation of a bin width. This interface is declared for those that do. The implementation in this base class is to does nothing.

Reimplemented in BinningProjector, and MapMatrixProjector.

Definition at line 258 of file ProjectorBase.cxx.

Referenced by CompositePlotter::getOffset().

const vector< string > & ProjectorBase::getPointReps  )  const [inherited]
 

Return the vector of Point Reps.

Definition at line 317 of file ProjectorBase.cxx.

References ProjectorBase::m_pointreps.

double FunctionProjector::getPosOn hippodraw::Axes::Type   )  const [virtual]
 

Returns the minimum positive value.

Todo:
Resolve if this method should be here.

Implements ProjectorBase.

Definition at line 315 of file FunctionProjector.cxx.

const DataSource * ProjectorBase::getProjectedValues  )  const [inherited]
 

Returns ntuple representation of projected values.

Definition at line 338 of file ProjectorBase.cxx.

References ProjectorBase::m_proj_values.

Referenced by BinningProjectorXML::createChildren(), ProjectorBase::createOldStyleNTuple(), StHist2DProjector::getAverage(), StHist1DProjector::getAverage(), MapMatrixProjector::getAverage(), Map1Projector::getAverage(), ProjectorBase::getRMS(), and initializeFunction().

const Range & ProjectorBase::getRange hippodraw::Axes::Type   )  const [virtual, inherited]
 

Returns the Range along the specified axis.

The behavior implemented here is to return the range of the AxisModelBase owned by the PlotterBase. However, derived classes may override this function, such as projectors that have binners, if this behavior is incorrect.

Definition at line 145 of file ProjectorBase.cxx.

References AxisModelBase::getRange(), ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, ProjectorBase::m_z_axis, hippodraw::Axes::X, hippodraw::Axes::Y, and hippodraw::Axes::Z.

Referenced by LineProjector::dataRangeOn(), LineProjector::fillDataSource(), LineProjector::fillProjectedValues(), NTupleProjector::getAverage(), DyHist1DProjector::getAverage(), LineProjector::getPosOn(), and LineProjector::valueRange().

double ProjectorBase::getRMS hippodraw::Axes::Type  axis  )  [virtual, inherited]
 

Returns the RMS.

Returns the root mean square of the data points along the axis axis.

Definition at line 279 of file ProjectorBase.cxx.

References ProjectorBase::getProjectedValues(), ProjectorHelper::stdCoord(), and hippodraw::Axes::X.

const string & FunctionProjector::getTitle  )  const [virtual]
 

Finds the title of the plot.

Implements ProjectorBase.

Definition at line 194 of file FunctionProjector.cxx.

References m_function, and FunctionBase::name().

const std::string & FunctionProjector::getXLabel  )  const [virtual]
 

Finds the X axis label of the plot.

Normally the label is taken from the data projector that is used in conjunction with the function projector. If called, the function returns "X".

Implements ProjectorBase.

Definition at line 214 of file FunctionProjector.cxx.

References s_x_label.

const string & FunctionProjector::getYLabel bool  density = false  )  const [virtual]
 

Finds the Y axis label of the plot.

Normally the label is taken from the data projector that is used in conjunction with the function projector. If called, the function returns the name of the function. The argument density is not used.

Implements ProjectorBase.

Definition at line 219 of file FunctionProjector.cxx.

References m_function, and FunctionBase::name().

const string & FunctionProjector::getZLabel  )  const [virtual]
 

Is meaningless for this projector.

Reimplemented from ProjectorBase.

Definition at line 339 of file FunctionProjector.cxx.

References m_z_label.

double ProjectorBase::getZValue double  x,
double  y
const [virtual, inherited]
 

Get the z value at the specified point (x,y).

Reimplemented in BinningProjector, Map3Projector, and MapMatrixProjector.

Definition at line 305 of file ProjectorBase.cxx.

Referenced by CompositePlotter::getZValue().

bool FunctionProjector::hasSavedParameters  )  const
 

Returns true if the function's parameters have been saved.

Definition at line 108 of file FunctionProjector.cxx.

References m_save_parms.

Referenced by fitFunction().

void FunctionProjector::initializeFunction ProjectorBase projector  ) 
 

Gives the function object initial values based on a given data projector.

Definition at line 144 of file FunctionProjector.cxx.

References ProjectorBase::getProjectedValues(), FunctionBase::initialParameters(), m_function, m_target, ProjectorBase::prepareValues(), and saveParameters().

Referenced by FunctionRep::initializeWith().

bool ProjectorBase::isAxisBinned const std::string axis  )  const [virtual, inherited]
 

Returns true if specified axis is binned.

An axis that is binned responds to the width and offset controls. This base class implementation returns false.

Reimplemented in DyHist1DProjector, DyHist2DProjector, Profile2DProjector, ProfileProjector, StHist1DProjector, and StHist2DProjector.

Definition at line 121 of file ProjectorBase.cxx.

Referenced by CompositePlotter::getBinWidth(), CompositePlotter::getOffset(), DisplayController::isAxisBinned(), DisplayController::setBinner(), and BinningProjector::setBinnerOn().

bool ProjectorBase::isDirty  )  const [inherited]
 

Returns true if the projector has been marked dirty.

A dirty projector is one whose projected values are invalid because of some change (e.g., an axis range has changed.)

Definition at line 70 of file ProjectorBase.cxx.

References ProjectorBase::m_isDirty.

Referenced by BinningProjector::createOldStyleNTuple(), Profile2DProjector::dataRangeOn(), DataRep::isDirty(), MapMatrixProjector::prepareValues(), Map2Projector::prepareValues(), prepareValues(), BinningProjector::prepareValues(), and Profile2DProjector::valueRange().

bool FunctionProjector::isEmpty  )  const [virtual]
 

Implements ProjectorBase.

Implements ProjectorBase.

Definition at line 352 of file FunctionProjector.cxx.

References m_binner.

bool ProjectorBase::isValueBinned  )  const [virtual, inherited]
 

Returns true if the projected values are the result of binning.

The implementation in this base class returns false. It maybe overridden in derived classes that do binning.

Reimplemented in Hist1DProjImp, and Hist2DProjImp.

Definition at line 126 of file ProjectorBase.cxx.

Referenced by BinningProjector::normalizeTo().

void ProjectorBase::matrixTranspose bool  yes  )  [virtual, inherited]
 

Transposes the X and Y axis.

The implementation in this base class does nothing.

Reimplemented in MapMatrixProjector.

Definition at line 109 of file ProjectorBase.cxx.

void ProjectorBase::normalizeTo double  norm  )  [virtual, inherited]
 

Sets a scale factor on the output so that the number of entries appears to be number.

This feature might be used, for example, to compare two histograms that have different number of entires by normalizing one to the other.

Reimplemented in BinningProjector.

Definition at line 355 of file ProjectorBase.cxx.

void ProjectorBase::normalizeTo const ProjectorBase target  )  [virtual, inherited]
 

Sets the target of normalization.

The meaning of normalizing the projected values of one projector to another one depends on the derived class. This implementation in this base does nothing.

Reimplemented in BinningProjector.

Definition at line 376 of file ProjectorBase.cxx.

void Observable::notifyObservers Action  action  )  const [protected, inherited]
 

An internal method to iterate over all observers and to send the message action.

Definition at line 69 of file Observable.cxx.

References std::bind2nd(), std::for_each(), Observable::m_list, and std::mem_fun().

void Observable::notifyObservers  )  const [virtual, inherited]
 

Notifies Observer objects of a change.

If interval counting is disabled, then Observer::Update is sent immediately. If interval counting is enabled, then the current count is incremented. If the current count is equal to the interval count, then the Observer::update message is sent and the current count reset to 0.

Reimplemented in NTuple, FitsNTuple, RootNTuple, NumArrayTuple, ListTuple, and RootNTuple.

Definition at line 90 of file Observable.cxx.

References hippodraw::Observer::update().

Referenced by XyPlotter::addDataRep(), XyPlotter::addDataRepStacked(), FunctionController::addFunctionRep(), RTuple::addRow(), StHist2DProjector::addValues(), StHist1DProjector::addValues(), XyPlotter::autoScale(), Inspector::contourLevelsTextBox_returnPressed(), Inspector::contourSlider_valueChanged(), Inspector::contourTextBox_returnPressed(), FunctionRep::fitFunction(), NumArrayTuple::notifyObservers(), NTuple::notifyObservers(), ListTuple::notifyObservers(), RootNTuple::notifyObservers(), FitsNTuple::notifyObservers(), XyPlotter::removeDataRep(), FunctionRep::restoreParameters(), CutPlotter::setActive(), XyPlotter::setAutoRanging(), QtDisplay::setContourLevels(), CutPlotter::setCutColor(), XyPlotter::setCutEnabled(), XyPlotter::setCutInverted(), XyPlotter::setCutRangeAt(), ProjectorBase::setDirty(), DataRep::setErrorDisplay(), XyPlotter::setHighRange(), XyPlotter::setLabel(), PlotterBase::setLabel(), DataSource::setLabelAt(), DataSource::setLabels(), XyPlotter::setLowRange(), DataSource::setName(), DisplayController::setNTuple(), FunctionRep::setParameters(), DataRep::setRepColor(), DyHistogram::setRepresentation(), DataRep::setRepresentation(), DataRep::setRepSize(), DataRep::setRepStyle(), XyPlotter::setScaling(), PlotterBase::setTitle(), DataSource::setTitle(), XyPlotter::setTransform(), XyPlotter::setValueRep(), PlotterBase::update(), NTupleProjector::update(), DataRep::update(), CutPlotter::update(), BinningProjector::update(), CutPlotter::updateTargets(), DataRep::~DataRep(), DataSource::~DataSource(), NTuple::~NTuple(), and RTuple::~RTuple().

double FunctionProjector::objectiveValue  )  const
 

Returns the objective value (chi2 or likelihood) between the function and the data.

Definition at line 260 of file FunctionProjector.cxx.

References m_fitter, and Fitter::objectiveValue().

Referenced by FuncChiRep::drawProjectedValues().

Range ProjectorBase::preferredRange hippodraw::Axes::Type   )  const [virtual, inherited]
 

Returns the preferred Range.

Returns the Range preferred by the projector. The default implementation in this base class is to return full range of the data on the axis. Derived classes, may need to override this implementation.

Reimplemented in Hist1DProjImp, and Hist2DProjImp.

Definition at line 163 of file ProjectorBase.cxx.

References ProjectorBase::dataRangeOn(), Range::length(), Range::low(), Range::setHigh(), Range::setLow(), and hippodraw::Axes::Y.

Referenced by DataRep::preferredRange().

void FunctionProjector::prepareAxis const Range x_view,
const Range y_view
[virtual]
 

Prepares the projected values for plotting.

This method is called before drawing. The ranges are in the display device coordinate system. They are used as part of the algorithm for defining what straight line segments are used for functions whose output is curved.

Definition at line 224 of file FunctionProjector.cxx.

References AxisModelBase::getRange(), m_binner, ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, ProjectorBase::setDirty(), BinsFunction::setRangeOn(), hippodraw::Axes::X, and hippodraw::Axes::Y.

void FunctionProjector::prepareValues  )  [private, virtual]
 

Prepares the projector for plotting.

Reimplemented from ProjectorBase.

Definition at line 177 of file FunctionProjector.cxx.

References createNTuple(), BinsFunction::createValuesArray(), fillProjectedValues(), ProjectorBase::isDirty(), m_binner, m_function, ProjectorBase::m_proj_values, m_values, ProjectorBase::setDirty(), and BinsFunction::setFunction().

Referenced by fitFunction().

const vector< double > & FunctionProjector::principleErrors  )  const
 

Returns the principle diagonal of the covariance matrix.

Todo:
This can be called with m_save_parms.size != m_convariance.size().
Should try to understand this. Use function.py to see it.

Definition at line 271 of file FunctionProjector.cxx.

References m_covariance, m_fitter, m_principleErrors, m_save_parms, and std::sqrt().

Referenced by FunctionRep::principleErrors().

void Observable::removeObserver hippodraw::Observer  )  [inherited]
 

Removes an Observer from the Observer list.

Definition at line 63 of file Observable.cxx.

References Observable::m_list.

Referenced by BinningProjector::normalizeTo(), CutPlotter::removeFromTarget(), DisplayController::removeTextObservers(), NTupleProjector::setNTuple(), FunctionRep::willDelete(), FunctionRep::~FunctionRep(), and NTupleProjector::~NTupleProjector().

void ProjectorBase::reset  )  [virtual, inherited]
 

Resets the bins.

This interface is for the StHist1DProjector

Reimplemented in BinningProjector, Hist1DProjImp, and StHist1DProjector.

Definition at line 252 of file ProjectorBase.cxx.

Referenced by CompositePlotter::reset().

void FunctionProjector::restoreParameters  ) 
 

Restores the function's parameter values from the previously saved values.

Definition at line 120 of file FunctionProjector.cxx.

References m_function, m_save_parms, ProjectorBase::setDirty(), and FunctionBase::setParameters().

Referenced by FunctionRep::restoreParameters().

void FunctionProjector::saveParameters  ) 
 

Makes a copy of the function's parameter values.

Definition at line 113 of file FunctionProjector.cxx.

References FunctionBase::getParameters(), m_function, and m_save_parms.

Referenced by fitFunction(), initializeFunction(), and FunctionRep::saveParameters().

void ProjectorBase::setAxisBinding const std::string axis,
const std::string label
[virtual, inherited]
 

Sets the axis binding.

Sets binding of the axis with name axis to entity with name label. It is expected that this member function will only be called on a derived class which can process it in a meaningful way. Thus if this method is called on this base class, an assertion is thrown.

Reimplemented in NTupleProjector.

Definition at line 84 of file ProjectorBase.cxx.

void ProjectorBase::setAxisBindings const std::vector< std::string > &  bindings  )  [virtual, inherited]
 

Sets the axis binding.

Sets binding of all axis entities with name in the vector. This member function should only be called with a derived class which can process it in a meaningful way. Thus if this method is called on this base class, an assertion is thrown.

Reimplemented in NTupleProjector.

Definition at line 92 of file ProjectorBase.cxx.

void FunctionProjector::setAxisModel hippodraw::Axes::Type  axis,
AxisModelBase
[virtual]
 

Sets the AxisModel for axis axis.

Reimplemented from ProjectorBase.

Definition at line 322 of file FunctionProjector.cxx.

References AxisModelBase::getRange(), m_binner, ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, BinsFunction::setRange(), hippodraw::Axes::X, and hippodraw::Axes::Y.

void ProjectorBase::setBinWidth const std::string axis,
int  parm,
bool  dragging
[virtual, inherited]
 

Sets the bin width.

This method is intended to be used in conjunction with a slider widget in a graphical user interface. The slider range is assumed to be 0 to 100 with the current value at parm. If the slider is still being dragged, then dragging is true, otherwise it is false. A derived class determines withs own bin width based on the width it had when slider dragging first started. and the current position of the slider. The implementation in this base class does nothing.

Reimplemented in BinningProjector, DyHist2DProjector, and Profile2DProjector.

Definition at line 232 of file ProjectorBase.cxx.

void ProjectorBase::setBinWidth hippodraw::Axes::Type  axis,
double  width
[virtual, inherited]
 

Sets the bin width.

Sets the bin width to width along the axis axis.

Not all projectors has a notation of a bin width. This interface is declared for those that do. The implementation in this base class is to does nothing.

Reimplemented in BinningProjector, Hist2DProjImp, MapMatrixProjector, and Profile2DProjector.

Definition at line 227 of file ProjectorBase.cxx.

Referenced by DisplayController::setBinWidth(), and CompositePlotter::setBinWidth().

void ProjectorBase::setDirty bool  value = true  )  [virtual, inherited]
 

Sets the dirty flag to value.

Definition at line 75 of file ProjectorBase.cxx.

References ProjectorBase::m_isDirty, and Observable::notifyObservers().

Referenced by StHist2DProjector::addValues(), StHist1DProjector::addValues(), Profile2DProjector::dataRangeOn(), fitFunction(), StHist2DProjector::getAverage(), StHist1DProjector::getAverage(), BinningProjector::normalize(), prepareAxis(), ProjectorBase::prepareValues(), MapMatrixProjector::prepareValues(), Map3Projector::prepareValues(), Map2Projector::prepareValues(), Map1Projector::prepareValues(), LineProjector::prepareValues(), prepareValues(), BinningProjector::prepareValues(), StHist1DProjector::reset(), restoreParameters(), NTupleProjector::setAxisBinding(), BinningProjector::setBinnerOn(), StHist2DProjector::setBinnerRange(), StHist1DProjector::setBinnerRange(), ProfileProjector::setBinnerRange(), Profile2DProjector::setBinnerRange(), DyHist2DProjector::setBinnerRange(), DyHist1DProjector::setBinnerRange(), Profile2DProjector::setBinWidth(), Hist2DProjImp::setBinWidth(), BinningProjector::setBinWidth(), DataRep::setDirty(), NTupleProjector::setNTuple(), MapMatrixProjector::setNTuple(), Profile2DProjector::setOffset(), Hist2DProjImp::setOffset(), DyHist2DProjector::setOffset(), BinningProjector::setOffset(), setParameters(), ProjectorBase::setRange(), Profile2DProjector::setRange(), setRange(), NTupleProjector::update(), and BinningProjector::willDelete().

void FunctionProjector::setFitCut TupleCut cut  )  [virtual]
 

Sets the cut to limit range of fitting.

Definition at line 439 of file FunctionProjector.cxx.

References m_fitter.

void FunctionProjector::setFitRange bool  yes = true  )  [virtual]
 

Sets use of a fitting range on or off.

Definition at line 446 of file FunctionProjector.cxx.

References m_fitter.

void FunctionProjector::setFitter Fitter fitter  ) 
 

Sets the Fitter to be used.

Definition at line 132 of file FunctionProjector.cxx.

References m_fitter.

void ProjectorBase::setNormalizing bool  on  )  [virtual, inherited]
 

Sets the scaling number of entries on if on is true, otherwise turns if off.

Reimplemented in BinningProjector.

Definition at line 362 of file ProjectorBase.cxx.

void ProjectorBase::setNumberOfBins hippodraw::Axes::Type  axis,
unsigned int  number
[virtual, inherited]
 

Sets the number of bins.

Sets the number of bins along the axis axis to number.

Not all projectors has a notation of a bin width. This interface is declared for those that do. The implementation in this base class is to does nothing.

Reimplemented in MapMatrixProjector.

Definition at line 221 of file ProjectorBase.cxx.

Referenced by CompositePlotter::setNumberOfBins().

void FunctionProjector::setNumberOfBins int  nb  ) 
 

Sets the number of bins to be used in the function binner.

Definition at line 103 of file FunctionProjector.cxx.

References m_binner, BinsFunction::setNumberOfBins(), and hippodraw::Axes::X.

Referenced by FunctionProjector().

void ProjectorBase::setOffset hippodraw::Axes::Type  axis,
double  offset
[virtual, inherited]
 

Sets the bin offset.

Sets the offset of bins by fraction offset of the bin width.

Not all projectors has a notation of a bin width. This interface is declared for those that do. The implementation in this base class is to does nothing.

Reimplemented in BinningProjector, Hist2DProjImp, MapMatrixProjector, and Profile2DProjector.

Definition at line 246 of file ProjectorBase.cxx.

void ProjectorBase::setOffset const std::string axis,
int  parm,
bool  dragging
[virtual, inherited]
 

Sets the bin offset.

See also:
setBinWidth ( const std::string &, int, bool )

Reimplemented in BinningProjector, DyHist2DProjector, and Profile2DProjector.

Definition at line 238 of file ProjectorBase.cxx.

Referenced by DisplayController::setOffset(), and CompositePlotter::setOffset().

void FunctionProjector::setParameters const std::vector< double > &  params  ) 
 

Set the parameter values by hand.

Definition at line 357 of file FunctionProjector.cxx.

References FunctionBase::getParameters(), m_function, ProjectorBase::setDirty(), and FunctionBase::setParameters().

Referenced by FunctionRep::setParameters().

void FunctionProjector::setPrincipleErrors std::vector< double >::const_iterator  begin,
std::vector< double >::const_iterator  end
 

Sets the principle errors.

Sets the principle errors of the parameters. This function may be used, for example, to set the errors found from a fitting procedure.

Definition at line 299 of file FunctionProjector.cxx.

References std::copy(), m_principleErrors, and num_util::size().

Referenced by FunctionController::setErrorsFromComposite().

void FunctionProjector::setRange hippodraw::Axes::Type  ,
bool 
[virtual]
 

Sets the range of the selected axis.

The base class implementation only sets the dirty flag. Derived classes may need to do more. The option bool parameter if true indicates a binning projector should hold the bin width parameter constant.

Reimplemented from ProjectorBase.

Definition at line 201 of file FunctionProjector.cxx.

References AxisModelBase::getRange(), m_binner, ProjectorBase::m_x_axis, ProjectorBase::m_y_axis, ProjectorBase::setDirty(), BinsFunction::setRange(), and hippodraw::Axes::X.

void ProjectorBase::update const Observable  )  [virtual, inherited]
 

Implements the Observer pattern.

The implementation in this abstract base class does nothing. Derived class may override this method if they are observers.

Implements hippodraw::Observer.

Reimplemented in BinningProjector, DyHist1DProjector, DyHist2DProjector, NTupleProjector, Profile2DProjector, and ProfileProjector.

Definition at line 369 of file ProjectorBase.cxx.

Range FunctionProjector::valueRange  )  const [virtual]
 

Todo:
Return value range of function.

Implements ProjectorBase.

Definition at line 237 of file FunctionProjector.cxx.

bool ProjectorBase::wantsScaleFactor const std::string axis  )  const [virtual, inherited]
 

Returns whether the projector wants scale factor.

Returns true if the projector wants to scale the axis, otherwise returns false. A projector supporting a histogram, for example, would want to scale the Y axis by the bin width in order to show entries per bin instead of density. This base class implementation always returns false.

Reimplemented in Hist1DProjImp, and Hist2DProjImp.

Definition at line 331 of file ProjectorBase.cxx.

Referenced by CompositePlotter::checkAxisScaling().

void hippodraw::Observer::willDelete const Observable  )  [virtual, inherited]
 

Notifies this Observer object that one of its Observable objects is about to be deleted.

Since most Observable objects are owned by its Observer, it is the Observer that issued the delete. Thus the default implementation here does nothing. Derived classes that observe objects owned by another should implement this method to remove the Observable from the list they are observing.

Reimplemented in FunctionRep, DataSourceController, CutPlotter, TextPlotter, BinningProjector, DyHist1DProjector, DyHist2DProjector, NTupleProjector, Profile2DProjector, and ProfileProjector.

Definition at line 25 of file Observer.cxx.

Referenced by DataRep::~DataRep(), DataSource::~DataSource(), NTuple::~NTuple(), and RTuple::~RTuple().


Member Data Documentation

BinsFunction* FunctionProjector::m_binner [private]
 

The function binner object.

Definition at line 77 of file FunctionProjector.h.

Referenced by FunctionProjector(), isEmpty(), prepareAxis(), prepareValues(), setAxisModel(), setNumberOfBins(), setRange(), and ~FunctionProjector().

std::vector< std::vector < double > > FunctionProjector::m_covariance [mutable, private]
 

The error covariance matrix of the errors associated with the parameters of the function.

Definition at line 38 of file FunctionProjector.h.

Referenced by covariance(), and principleErrors().

Fitter* FunctionProjector::m_fitter [private]
 

A fitter object for the function.

Todo:
Decide if FunctionProjector or the FunctionRep should be the owner of the Fitter.

Definition at line 74 of file FunctionProjector.h.

Referenced by covariance(), degreesOfFreedom(), fitFunction(), getFitter(), objectiveValue(), principleErrors(), setFitCut(), setFitRange(), setFitter(), and ~FunctionProjector().

FunctionBase* FunctionProjector::m_function [private]
 

The list of function objects to be projected.

Definition at line 68 of file FunctionProjector.h.

Referenced by fitFunction(), function(), FunctionProjector(), getTitle(), getYLabel(), initializeFunction(), prepareValues(), restoreParameters(), saveParameters(), setParameters(), and ~FunctionProjector().

std::vector< std::string > ProjectorBase::m_pointreps [protected, inherited]
 

Vector of acceptable PointReps.

Definition at line 98 of file ProjectorBase.h.

Referenced by StripChartProjector::addPointReps(), ProfileProjector::addPointReps(), Profile2DProjector::addPointReps(), MapMatrixProjector::addPointReps(), Map3Projector::addPointReps(), Map2Projector::addPointReps(), Map1Projector::addPointReps(), Hist2DProjImp::addPointReps(), Hist1DProjImp::addPointReps(), and ProjectorBase::getPointReps().

std::vector< double > FunctionProjector::m_principleErrors [mutable, private]
 

The principle errors of the errors associated with the parameters of the function.

Definition at line 42 of file FunctionProjector.h.

Referenced by principleErrors(), and setPrincipleErrors().

DataSource* ProjectorBase::m_proj_values [protected, inherited]
 

The NTuple representing the result of the projection.

Note:
An NTuple object is probably too heavy for non-binning projectors. In the future, we'll create a class which behaves like one, but maps the data from the data source NTuple to required getRow().

Definition at line 73 of file ProjectorBase.h.

Referenced by BinningProjector::BinningProjector(), ProfileProjector::dataRangeOn(), Profile2DProjector::dataRangeOn(), Hist2DProjImp::dataRangeOnValue(), Hist1DProjImp::dataRangeOnValue(), DyHist1DProjector::getAverage(), ProfileProjector::getPosOn(), ProjectorBase::getProjectedValues(), Map3Projector::getZValue(), MapMatrixProjector::prepareValues(), Map3Projector::prepareValues(), Map2Projector::prepareValues(), Map1Projector::prepareValues(), LineProjector::prepareValues(), prepareValues(), BinningProjector::prepareValues(), BinningProjector::setBinner(), and ProjectorBase::~ProjectorBase().

std::vector< double > FunctionProjector::m_save_parms [private]
 

A vector used to save parameters so that they can be restored.

Definition at line 57 of file FunctionProjector.h.

Referenced by hasSavedParameters(), principleErrors(), restoreParameters(), and saveParameters().

ProjectorBase* FunctionProjector::m_target [private]
 

The ProjectorBase object containing the data points for the function and fitter.

Reimplemented from ProjectorBase.

Definition at line 65 of file FunctionProjector.h.

Referenced by fitFunction(), and initializeFunction().

std::list< std::vector < double > > FunctionProjector::m_values [private]
 

The array of projected values.

Note:
Because BinsFunction::createValuesArray depends on fast insertion, this array is a list. When the function is plotted, the values from this array are copied to the projected values NTuple, m_proj_values.

Definition at line 50 of file FunctionProjector.h.

Referenced by createNTuple(), fillDataSource(), fillProjectedValues(), and prepareValues().

AxisModelBase* ProjectorBase::m_x_axis [protected, inherited]
 

The AxisModel along the X axis.

All Projectors have at least an X axis and maybe additional ones.

Todo:
Should be generalized to n-dimensions by having having a vector of AxisModelBase objects.

Definition at line 82 of file ProjectorBase.h.

Referenced by LineProjector::dataRangeOn(), dataRangeOn(), LineProjector::fillDataSource(), LineProjector::fillProjectedValues(), ProjectorBase::getAxisModel(), LineProjector::getPosOn(), ProjectorBase::getRange(), Map3Projector::getZValue(), NTupleProjector::inRange(), MapMatrixProjector::inRange(), Map1Projector::inRange(), prepareAxis(), ProjectorBase::setAxisModel(), setAxisModel(), Profile2DProjector::setOffset(), Hist2DProjImp::setOffset(), BinningProjector::setOffset(), ProfileProjector::setRange(), Profile2DProjector::setRange(), Hist2DProjImp::setRange(), Hist1DProjImp::setRange(), setRange(), and LineProjector::valueRange().

AxisModelBase* ProjectorBase::m_y_axis [protected, inherited]
 

The AxisModel along the Y axis.

All Projectors have at least a Y axis and maybe additional ones.

Definition at line 86 of file ProjectorBase.h.

Referenced by Hist1DProjImp::checkScaling(), LineProjector::dataRangeOn(), dataRangeOn(), LineProjector::fillDataSource(), LineProjector::fillProjectedValues(), StHist1DProjector::getAverage(), DyHist1DProjector::getAverage(), ProjectorBase::getAxisModel(), LineProjector::getPosOn(), ProjectorBase::getRange(), DyHist1DProjector::getYLabel(), Map3Projector::getZValue(), NTupleProjector::inRange(), MapMatrixProjector::inRange(), Map1Projector::inRange(), prepareAxis(), ProjectorBase::setAxisModel(), setAxisModel(), Profile2DProjector::setOffset(), Hist2DProjImp::setOffset(), Profile2DProjector::setRange(), Hist2DProjImp::setRange(), setRange(), and LineProjector::valueRange().

AxisModelBase* ProjectorBase::m_z_axis [protected, inherited]
 

The AxisModel along the Z axis.

May not be used by all Projectors.

Definition at line 90 of file ProjectorBase.h.

Referenced by Hist2DProjImp::checkScaling(), StHist2DProjector::getAverage(), ProjectorBase::getAxisModel(), ProjectorBase::getRange(), Hist2DProjImp::getZLabel(), NTupleProjector::inRange(), MapMatrixProjector::inRange(), ProjectorBase::setAxisModel(), and ProjectorBase::setRange().

std::string FunctionProjector::m_z_label [private]
 

Dummy member so getZLabel member can return reference.

Reimplemented from ProjectorBase.

Definition at line 60 of file FunctionProjector.h.

Referenced by getZLabel().

string FunctionProjector::s_x_label [static, private]
 

An X label that might be used.

Referenced by getXLabel().


The documentation for this class was generated from the following files:
Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3