////////////////////////////////////////////////////////////////////////
//
// $Id: CandFitTrackSAHandle.cxx,v 1.9 2006/02/04 07:14:12 avva Exp $
//
// CandFitTrackSA
//
// Package: CandFitTrackSA
//
// Handle for Candidate track, fit with an iterative least squares method
//
// Contact: avva@fnal.gov
//
// Created on: Thu May 22 16:33:50 CDT 2003
// (generated by avva@unknown with rkp_init_cand.pl)
//
////////////////////////////////////////////////////////////////////////
#include "MessageService/MsgService.h"

#include "CandFitTrackSA/CandFitTrackSAHandle.h"
#include "CandFitTrackSA/CandFitTrackSA.h"
#include "CandFitTrackSA/TracerSA.h"

CVSID("$Id: CandFitTrackSAHandle.cxx,v 1.9 2006/02/04 07:14:12 avva Exp $");

ClassImp(CandFitTrackSAHandle)

CandFitTrackSAHandle::CandFitTrackSAHandle()
{
}

CandFitTrackSAHandle::CandFitTrackSAHandle(const CandFitTrackSAHandle& handle)
    : CandFitTrackHandle(handle)
{
}

CandFitTrackSAHandle::CandFitTrackSAHandle(CandFitTrackSA* candidate)
    : CandFitTrackHandle(candidate)
{
    TracerSA trace(
        "CandFitTrackSAHandle::CandFitTrackSAHandle(CandFitTrackSA*)"
    );
}

CandFitTrackSAHandle::~CandFitTrackSAHandle()
{
}

CandFitTrackSAHandle* CandFitTrackSAHandle::DupHandle() const
{
    return new CandFitTrackSAHandle(*this);
}


// Implement interface methods here

const TClonesArray& CandFitTrackSAHandle::GetFits()  const
{
   return dynamic_cast<const CandFitTrackSA *>(GetCandBase())->fFits;
}

void CandFitTrackSAHandle::AddNtpFitSA(const NtpFitSA& fit)
{
   TClonesArray& fits = dynamic_cast<CandFitTrackSA *>(GetCandBase())->fFits;
   Int_t i = fits.GetEntriesFast();
   NtpFitSA* ntpfitsa;
   ntpfitsa = new((fits)[i]) NtpFitSA(fit);
}
