SctFitter::FitAlgorithm Class Reference

This class is an abstract base class which describes how a fit is done. More...

#include <FitAlgorithm.h>

Inheritance diagram for SctFitter::FitAlgorithm:

Inheritance graph
[legend]
Collaboration diagram for SctFitter::FitAlgorithm:

Collaboration graph
[legend]

Utility functions

{

static float findLevel (const TH1 &h, const float fraction, const bool forward) throw (MathsError)
 Associated histogram utility routine.
static int findBin (const TH1 &h, const float fraction, const bool forward, const bool relative=true) throw (MathsError)
 Associated histogram utility routine.
 FitAlgorithm () throw ()
 }
virtual void doFit (const TH1 &hist, FitObject &fitObject, const ModuleElement &element, DefectList &defects) const throw (LogicError)
 Attempts to do an individual fit.
virtual auto_ptr< FitObjectgetPrototype () const =0 throw ()
 Returns a prototypical FitObject for this algorithm.
virtual void guessParameters (const TH1 &hist, FitObject &fitOb) const =0 throw (LogicError, MathsError)
 guess the initial fit parameters from histogram prior to doing a fit : put them in FitObject.
virtual void checkForDefects (const TH1 &hist, const ModuleElement &element, DefectList &defects) const =0 throw (LogicError)
 checks the element for defects.
virtual void checkForDefects (const FitObject &fo, const ModuleElement &element, DefectList &d) const =0
 checks fit for defects - add them to the defect list

Public Member Functions

virtual ~FitAlgorithm () throw ()
virtual auto_ptr< FitScanResultdoFit (const RawScanResult &raw) const throw (Sct::LogicError)
 This is the entry point for the FittingService.
const FitterModegetMode () const throw ()
void setMode (const FitterMode &mode) throw ()

Protected Member Functions

virtual void createSummaryHistograms (FitScanResult &fits) const =0 throw ()
 Makes set of summary histograms from the fitObject results.
boost::recursive_mutex & getMutex () const
 access the mutex
bool debug () const
 check if doing debug

Private Attributes

boost::recursive_mutex m_access
 access to the mode can be locked for thread-safeness.
FitterMode mode
 The FitterMode used by this algorithm.

Detailed Description

This class is an abstract base class which describes how a fit is done.

Specific sub-classes register themselves with the FitAlgorithmMap which is used to determine which FitAlgorithm to use given a ConfigurationVariable. Each FitAlgorithm has its own mode that is used to determine whether to fit links, chip, channels (and indeed if that is even meaningful!)

Author:
Matthew Palmer based on original code by Alan Barr (!)
Date:
7 June 2003

Definition at line 41 of file FitAlgorithm.h.


Constructor & Destructor Documentation

SctFitter::FitAlgorithm::FitAlgorithm  )  throw () [protected]
 

}

Definition at line 17 of file FitAlgorithm.cpp.


Member Function Documentation

virtual void SctFitter::FitAlgorithm::checkForDefects const FitObject fo,
const ModuleElement element,
DefectList d
const [protected, pure virtual]
 

checks fit for defects - add them to the defect list

virtual void SctFitter::FitAlgorithm::checkForDefects const TH1 &  hist,
const ModuleElement element,
DefectList defects
const throw (LogicError) [protected, pure virtual]
 

checks the element for defects.

Add them to the ModuleDefectList.

virtual void SctFitter::FitAlgorithm::createSummaryHistograms FitScanResult fits  )  const throw () [protected, pure virtual]
 

Makes set of summary histograms from the fitObject results.

Default implementation does nothing for convenience.

bool SctFitter::FitAlgorithm::debug  )  const [protected]
 

check if doing debug

Definition at line 24 of file FitAlgorithm.cpp.

References SctFitter::Fitter::debug(), and SctFitter::Fitter::instance().

Here is the call graph for this function:

void SctFitter::FitAlgorithm::doFit const TH1 &  hist,
FitObject fitObject,
const ModuleElement element,
DefectList defects
const throw (LogicError) [protected, virtual]
 

Attempts to do an individual fit.

Default implementation calls guessParameters and checkForDefects then uses the Fitter's FitStrategy to actually do the fit.

Definition at line 91 of file FitAlgorithm.cpp.

References SctData::SERIOUS.

auto_ptr< FitScanResult > SctFitter::FitAlgorithm::doFit const RawScanResult raw  )  const throw (Sct::LogicError) [virtual]
 

This is the entry point for the FittingService.

The default implementation checks the mode then call doFit for each link/chip/channel as appropriate. If any throw a ModuleDefect, they are added appropriately. Finally, if the mode says, then createSummaryHistograms is called.

Definition at line 34 of file FitAlgorithm.cpp.

References SctData::OccupancyProjector::getOccupancy().

Here is the call graph for this function:

int SctFitter::FitAlgorithm::findBin const TH1 &  h,
const float  fraction,
const bool  forward,
const bool  relative = true
throw (MathsError) [static]
 

Associated histogram utility routine.

If `forward' is true then returns the bin for which the bin content first is greater than `fraction' of its maximum

If `forward' is false then returns bin for which the cell content is last greater than `fraction' of its maximum.

  • relative if set false, then fraction is an absolute scale (i.e. is not relative to the maximum)
Throws an exception if the bin is not found.

Definition at line 136 of file FitAlgorithm.cpp.

float SctFitter::FitAlgorithm::findLevel const TH1 &  h,
const float  fraction,
const bool  forward
throw (MathsError) [static]
 

Associated histogram utility routine.

If `last' is true then returns the value of x for which the bin content first is greater than `fraction' of its maximum

If `last' is false then returns the value of x for which the cell content first is greater than `fraction' of its maximum.

Uses findBin function

Definition at line 161 of file FitAlgorithm.cpp.

boost::recursive_mutex& SctFitter::FitAlgorithm::getMutex  )  const [inline, protected]
 

access the mutex

Definition at line 125 of file FitAlgorithm.h.

References m_access.

Referenced by getMode().

virtual auto_ptr<FitObject> SctFitter::FitAlgorithm::getPrototype  )  const throw () [protected, pure virtual]
 

Returns a prototypical FitObject for this algorithm.

Implemented in SctFitter::StrobeDelayFitAlgorithm, SctFitter::ThresholdFitAlgorithm, and SctFitter::ThresholdFitAlgorithm2.

virtual void SctFitter::FitAlgorithm::guessParameters const TH1 &  hist,
FitObject fitOb
const throw (LogicError, MathsError) [protected, pure virtual]
 

guess the initial fit parameters from histogram prior to doing a fit : put them in FitObject.


Field Documentation

boost::recursive_mutex SctFitter::FitAlgorithm::m_access [mutable, private]
 

access to the mode can be locked for thread-safeness.

Definition at line 128 of file FitAlgorithm.h.

Referenced by getMutex().

FitterMode SctFitter::FitAlgorithm::mode [private]
 

The FitterMode used by this algorithm.

Definition at line 129 of file FitAlgorithm.h.

Referenced by getMode(), SctFitter::StrobeDelayFitAlgorithm::StrobeDelayFitAlgorithm(), SctFitter::ThresholdFitAlgorithm::ThresholdFitAlgorithm(), and SctFitter::ThresholdFitAlgorithm2::ThresholdFitAlgorithm2().


The documentation for this class was generated from the following files:
Generated on Mon Feb 6 14:09:39 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6