CSidcCalibrator.h
//-----------------------------------------------------------------------------
// $Header: /asis/offline/ceres/cool/project/RCS/CSidcCalibrator.h,v 3.0 1996/10/02 09:40:09 voigt Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declaration of class CSidcCalibrator
//
//-----------------------------------------------------------------------------
#ifndef CSIDCCALIBRATOR_H
#define CSIDCCALIBRATOR_H
#include "cool.h"
#include "rw/tvvector.h"
class CSidc;
const int MaxParams = 4;
const int timeBinsInVector = 100;
static RWTValVector<double> timeBinVector(timeBinsInVector);
class CSidcCalibrator {
public:
CSidcCalibrator(CSidc*);
~CSidcCalibrator();
public:
inline double getFittedEdge() const { return minTimeBin + val[0] * binWidth; }
inline RWTValVector<double>& getTimeBinVector() const { return timeBinVector; }
void printCalibration();
public:
void update();
CBoolean doCalibration();
void resetVector();
private:
private:
//
// hold pointer to the SiDC
//
CSidc* sidc;
//
// parameters for 'histogram'
//
double minTimeBin;
double binWidth;
int numberOfEvents;
//
// MINUIT stuff
//
int nParams; // number of parameters for fit
double grad[MaxParams]; // gradient
double result[MaxParams]; // guessed(in)/fitted(out) values
double fmin; // value of min. chi2
int flag; // flag
int ierr;
int istat;
char names[MaxParams][10]; // array of MaxParams names for MINUIT
double val [MaxParams]; // for MINUIT
double step [MaxParams]; // for MINUIT
double dummy, fedm, errdef;
int idummy;
};
#endif /* CSIDCCALIBRATOR_H */