#ifndef HRTFUNCTIONAL_H
#define HRTFUNCTIONAL_H

#include "TObject.h"
#include "hrtmatrix.h"
#include "hrttypes.h"
#include "hrtmeasurement.h"
#include "hrtsavgolmanager.h"
#include "hrtsavgolpar.h"
#include "hrtdata.h"
#include "hrtgrid.h"
#include <math.h>


class HRtFunctional : public TObject {
protected:
  HRtData *fData;    //!Reference trajectories
  HRtSavGolManager *fSavGol;  //! Savitzky-Golay coefficients
  HRtSavGolPar *fPolinomPar;//Parameters for savitzky-golay filter
  UInt_t *fPoint;  //! Current point
  HRtGrid *fCurrentGrid; //! for polarity
  HRtMeasurement *fPointValue; //!
  Float_t partialDerivative(Int_t pi,Int_t pj);
  enum ESide {kLeft, kRight} fSectorSide; //! Current sector side
  Float_t fDeg2Rad; //!
public:
  HRtFunctional(void);
  ~HRtFunctional(void);
  Bool_t setPoint(HRtVector &p, Int_t pol);
  UInt_t getPointId(void) { return fCurrentGrid->getCurrentAddress(); }
  void calcDerivatives(HRtMatrix &result);
  void calcValue(HRtVector &result);
  Float_t guessValue(Int_t coord) { return fCurrentGrid->getMidValue(coord); }
  inline Bool_t withinResolution(HRtVector &v);
  Bool_t init(void);
  Bool_t reinit(void);
  
  ClassDef(HRtFunctional,1)
};

inline Bool_t HRtFunctional::withinResolution(HRtVector &v) {
  Bool_t r = kFALSE;
  if ( (fabs(v(0)) < fCurrentGrid->getBinSize(0)/2.) &&
       (fabs(v(1)) < fCurrentGrid->getBinSize(1)/2.) &&
       (fabs(v(2)) < fCurrentGrid->getBinSize(2)/2.) &&
       (fabs(v(3)) < fCurrentGrid->getBinSize(3)/2.) &&
       (fabs(v(4)) < fCurrentGrid->getBinSize(4)/2.) )
    r = kTRUE;
  return r;
}

#endif

Last change: Sat May 22 13:11:38 2010
Last generated: 2010-05-22 13:11

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.