Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IFitter.h

Go to the documentation of this file.
00001 // 
00002 // Copyright (C) CERN, Geneva 
00003 // 
00004 // Header file for classes IFitter, IFitParameter 
00005 // Created  by: Andreas Pfeiffer  at Fri Sep  3 19:11:35 1999
00006 // Modified by: Jakub T. Moscicki
00007 //
00008 // Last update: Time-stamp: <2002-01-21 14:22:31 moscicki>
00009 // 
00010 //      ap, 29-jan-01 : default arguments back, as otherwise the interface
00011 //                      can't be used without them ....
00012 //      ap, 16-jan-01 : removed default arguments
00013 // 
00014 
00015 #ifndef INTERFACE_IFITTER_H
00016 #define INTERFACE_IFITTER_H 1
00017 
00018 #include <iostream>
00019 #include <string>
00020 
00021 namespace Anaphe
00022 {
00023 
00024 class IVector;
00025 class IVectorManager;
00026 
00027 
00039 class IFitParameter  { 
00040 
00041   // read-only attributes of fit parameter
00042 public:                 
00043   virtual double value() const = 0;
00044   virtual double error() const = 0;
00045 
00046 #ifdef AIDA_DONT_USE_STD
00047   virtual      string nameId() const = 0;
00048 #else
00049   virtual std::string nameId() const = 0;
00050 #endif
00051 
00052   virtual double start() const = 0;
00053   virtual double step()  const = 0;
00054   virtual double upperBound() const = 0;
00055   virtual double lowerBound() const = 0;
00056   virtual bool isBound() const = 0;
00057   virtual bool isFixed() const = 0;
00058 
00059   // modifiable attributes of fit parameter
00060 public:                 
00061   virtual void setStart(double start) = 0;
00062   virtual void setStep(double step) = 0;
00063   virtual void setBounds(double lo, double up) = 0;
00064   virtual void release() = 0;
00065 
00070   virtual double noUpperBound() const = 0;
00071 
00076   virtual double noLowerBound() const = 0;
00077 
00078   // PENDING: removed for the time being
00079   //virtual void fix(double x)     = 0;
00080   //virtual void free()    = 0;
00081 
00082 public: 
00083   virtual ~IFitParameter() { /* nop */; }
00084 };
00085 
00086 /**********************************************************************/
00097 class IFitter  { 
00098 
00099 public:
00100 
00109   virtual void setModel(const char *)   = 0;
00110 
00114   virtual void setData(const IVector *)  = 0;
00115 
00123   virtual bool chiSquareFit()   = 0;
00124 
00131   virtual bool setParameter(const char *nameId, double start, double step=1.0) = 0;
00132 
00137   virtual IFitParameter* fitParameter(const char *nameId) = 0;
00138 
00143   virtual bool includePoint(int i) = 0;
00144 
00149   virtual bool excludePoint(int i) = 0;
00150 
00155   virtual bool includeRange(int iMin, int iMax) = 0;
00156 
00161   virtual bool excludeRange(int iMin, int iMax) = 0;
00162 
00166   virtual void includeAll() = 0;
00167 
00172   virtual void excludeAll() = 0;
00173 
00174 #ifdef AIDA_DONT_USE_STD
00175   virtual void printParameters(     ostream &os =      cout) = 0;
00176   virtual void printResult    (     ostream &os =      cout) = 0;
00177 #else
00178   virtual void printParameters(std::ostream &os = std::cout) = 0;
00179   virtual void printResult    (std::ostream &os = std::cout) = 0;
00180 #endif
00181 
00182 public:
00187   virtual IVector * fittedVector(IVectorManager*) = 0;
00188 
00189 public: 
00190   virtual ~IFitter() { /* nop */; }
00191 }; 
00192 
00193 
00194 extern "C" {
00195   IFitter * createIFitter();
00196 }
00197 
00198 } // end namespace Anaphe
00199 
00200 #endif /* INTERFACE_FITTER_H */ 


Anaphe documentation generated by Doxygen (www.doxygen.org)