CVertexFitter.h
//-----------------------------------------------------------------------------
// $Header: /tmp_mnt/asis/offline/ceres/cool/project/RCS/CVertexFitter.h,v 3.2 1996/12/18 11:34:08 messer Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declaration of class CVertexFitter.
//
//-----------------------------------------------------------------------------
#ifndef CVERTEXFITTER_H
#define CVERTEXFITTER_H
#include "cool.h"
#include "CVertex.h"
#include "CSidcHit.h"
#include "CSidc1.h"
#include "CSidc2.h"
#include "CVertexFitterSetup.h"
#define C_SETUPFILE_VERTEXFITTER "setup.vertex"
const int MaxFitParameters = 3;
class CVertexFitter {
public:
CVertexFitter(const char* = 0); // according to setup file
~CVertexFitter();
public:
void listSetup(ostream& = cout) const; // list current setup parameters
CBoolean makeVertex(CSidc&, CSidc&); // reconstruct the vertex using MINUIT
void fillVertex(CVertex&); // pass over reconstructed vertex
protected:
double getZofNearestTargetDisk();
double vertexDeltaPhiRange;
double vertexScanSteps;
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[MaxFitParameters][10]; // array of 3 names for MINUIT
double val[MaxFitParameters]; // for MINUIT
double step[MaxFitParameters]; // for MINUIT
int nFitPoints;
private:
double findDisk();
CVertexFitterSetup *setup;
};
#endif /* CVERTEXFITTER_H */