CRobustVertexFitter.h
//-----------------------------------------------------------------------------
// $Header: /asis/offline/ceres/cool/project/RCS/CRobustVertexFitter.h,v 1.6 1997/07/11 10:31:06 messer Exp $
//
// COOL Program Library
// Copyright (C) CERES collaboration, 1996
//
// Declaration of class CRobustVertexFitter.
//
//-----------------------------------------------------------------------------
#ifndef CROBUSTVERTEXFITTER_H
#define CROBUSTVERTEXFITTER_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"
class CRobustVertexFitter {
public:
CRobustVertexFitter(const char* = 0); // according to setup file
~CRobustVertexFitter();
public:
void listSetup(ostream& = cout) const; // list current setup parameters
CBoolean makeVertex(CSidc&, CSidc&); // reconstruct the vertex using robust fir
void refineVertex(CVertex&, CSortedList<CElectronTrack>&);
void fillVertex(CVertex&); // pass over reconstructed vertex
protected:
double getZOfNearestTargetDisk();
private:
CAngle vertexDeltaPhiRange;
int nFitPoints;
double variance;
CLabXYZCoord center;
private:
CVertexFitterSetup *setup;
CSortedList<CSidcHit> sidc1Hits;
CSortedList<CSidcHit> sidc2Hits;
RWTValOrderedVector<int> indexListLower; // lower Phi range SiDC1
RWTValOrderedVector<int> indexListUpper; // upper Phi range SiDC2
};
#endif /* CROBUSTVERTEXFITTER_H */