CTrackFitter.h
//-----------------------------------------------------------------------------
// $Header: /asis/offline/ceres/cool/project/RCS/CTrackFitter.h,v 3.0 1996/10/02 09:39:56 voigt Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declaration of class ...
//
//-----------------------------------------------------------------------------
#ifndef CTRACKFITTER_H
#define CTRACKFITTER_H
#define C_SETUPFILE_TRACKFITTER "setup.trackfitter"
#include <iostream.h>
#include "cool.h"
#include "CList.h"
#include "CTrack.h"
class CTrackFitterSetup;
//
// List of fit parameters:
// x,y,z, thetaPre, phiPre, thetaPost, phiPost, deltaZDeflectionPoint
//
const int MaxFitParameters = 8;
class CTrackFitter {
public:
CTrackFitter(const char* = 0);
~CTrackFitter();
CTrackFitter(const CTrackFitter &);
CTrackFitter & operator = (const CTrackFitter &);
public:
void listSetup(ostream& = cout) const;
CBoolean fitTracks(CList<CTrack>&);
void compareTracksAndFitResults(CList<CTrack>&, ostream& = cout);
CBoolean fitOneTrack(CTrack&);
protected:
int nParams; // number of parameters for fit
double grad[MaxFitParameters]; // gradient
double result[MaxFitParameters]; // guessed(in)/fitted(out) values
double fmin; // value of min. chi2
int flag; // flag
int ierr;
int istat;
char names[10][MaxFitParameters]; // array of 3 names for MINUIT
double val[MaxFitParameters]; // for MINUIT
double step[MaxFitParameters]; // for MINUIT
double lowerBounds[MaxFitParameters]; // for MINUIT
double upperBounds[MaxFitParameters]; // for MINUIT
int nFitPoints;
private:
CTrackFitterSetup *setup;
};
#endif /* CTRACKFITTER_H */