////////////////////////////////////////////////////////////////////////
// $Id: CandTrackSR.h,v 1.15 2006/06/21 00:49:25 rhatcher Exp $
//
// CandTrackSR
//
// Concrete CandTrackSR class descended from CandTrack.
//
// Author:  R. Lee 2001.02.26
////////////////////////////////////////////////////////////////////////

#ifndef CANDTRACKSR_H
#define CANDTRACKSR_H

#include "CandTrackSR/Track2DSR.h"
#include "RecoBase/CandClusterHandle.h"
#include "RecoBase/CandTrack.h"

#include <map>

using namespace std;

class AlgHandle;
class CandContext;
class CandTrackSRHandle;

class CandTrackSR : public CandTrack
{
  friend class CandTrackSRHandle;

public:
  static CandTrackSRHandle MakeCandidate(AlgHandle &ah,
                                                       CandContext &cx);
  CandTrackSR();

protected:
  CandTrackSR(AlgHandle &ah);
  CandTrackSR(AlgHandle &ah, CandHandle &ch, CandContext &cx);
  CandTrackSR(const CandTrackSR &rhs);
  virtual ~CandTrackSR();
  virtual void CreateLocalHandle();
  virtual CandTrackSR *Dup() const;
  virtual Bool_t IsEquivalent(const TObject *rhs) const;

  TObjArray *fClusterList;   // Components owned from CandTrackSR vers 6

  Track2DSR *fUTrack;
  Track2DSR *fVTrack;

  Int_t fNTrackStrip;               // # of strips that have InShower<=1
  Int_t fNTrackDigit;               // # of digits that have InShower<=1
  Int_t fNTimeFitDigit;          // # of digits used to determine timing

  Double_t fTimeFitChi2;

ClassDef(CandTrackSR,6)
};

#endif                                                  // CANDTRACKSR_H
