////////////////////////////////////////////////////////////////////////
// $Id: CandFitTrackMS.h,v 1.4 2006/06/21 00:50:26 rhatcher Exp $
//
// Concrete CandFitTrackMS class descended from CandFitTrack.
//
// Tom Bringley
// ttb2@duke.edu
// 6/13/2001
////////////////////////////////////////////////////////////////////////

#ifndef CANDFITTRACKMS_H
#define CANDFITTRACKMS_H

#include "RecoBase/CandFitTrack.h"

#include "TMatrixD.h"
#include "TVectorD.h"

class AlgHandle;
class CandContext;
class CandFitTrackMSHandle;

class CandFitTrackMS : public CandFitTrack
{

  friend class CandFitTrackMSHandle;

public:
  static CandFitTrackMSHandle MakeCandidate(AlgHandle &ah, CandContext &cx);
  CandFitTrackMS();

protected:

  CandFitTrackMS(AlgHandle &ah);
  CandFitTrackMS(AlgHandle &ah, CandHandle &ch, CandContext &cx);
  CandFitTrackMS(const CandFitTrackMS &rhs);
  virtual ~CandFitTrackMS();
  virtual void CreateLocalHandle();
  virtual CandFitTrackMS *Dup() const;

  void Init();

  //  TObjArray *fPlaneList;

  //  KalmanPlaneSR *fCurrent;
  //  KalmanPlaneSR *fCurrentU;
  //  KalmanPlaneSR *fCurrentV;

  Int_t    fFlag;
  Double_t fMomentumL;
  Double_t fMomentumBF;
  Double_t fMomentumMS;
  Double_t fMomentumBoth;
  Double_t fMomentumAlt;

  Double_t fChi2L;
  Double_t fChi2BF;
  Double_t fChi2MS;
  Double_t fChi2Both;
  Double_t fChi2Alt;
  
  Double_t fEMChargeD;

  Int_t fIter;

//rwh:  Double_t fSHitsX[2][500];
//rwh:  Double_t fSHitsY[2][500];
//rwh:  Double_t fSHitsZ[2][500];

ClassDef(CandFitTrackMS,1)                  // CandFitTrackMS

};

#endif
