////////////////////////////////////////////////////////////////////////
// $Id: CandFitShowerEMHandle.cxx,v 1.1 2004/08/11 13:18:04 cbs Exp $
//
// CandFitShowerEMHandle.cxx
//
// CandFitShowerEMHandle is the specialized access handle to CandFitShowerEM.
//
////////////////////////////////////////////////////////////////////////

#include <cassert>
#include <iostream>

#include "MessageService/MsgService.h"
#include "RecoBase/CandSliceHandle.h"
#include "CandFitShowerEM/CandFitShowerEMHandle.h"
#include "CandFitShowerEM/CandFitShowerEM.h"
#include "UgliGeometry/UgliGeomHandle.h"

ClassImp(CandFitShowerEMHandle)

//______________________________________________________________________
CVSID("$Id: CandFitShowerEMHandle.cxx,v 1.1 2004/08/11 13:18:04 cbs Exp $");

//______________________________________________________________________
CandFitShowerEMHandle::CandFitShowerEMHandle()
{
}

//______________________________________________________________________
CandFitShowerEMHandle::CandFitShowerEMHandle(const CandFitShowerEMHandle &cdh) :
  CandShowerEMHandle(cdh)
{
}

//______________________________________________________________________
CandFitShowerEMHandle::CandFitShowerEMHandle(CandFitShowerEM *cd) :
  CandShowerEMHandle(cd)
{
}

//______________________________________________________________________
CandFitShowerEMHandle::~CandFitShowerEMHandle()
{
}

//______________________________________________________________________
CandFitShowerEMHandle *CandFitShowerEMHandle::DupHandle() const
{
   return (new CandFitShowerEMHandle(*this));
}


//______________________________________________________________________
void CandFitShowerEMHandle::Trace(const char *c) const
{
  MSG("Cand", Msg::kDebug)
    << "**********Begin CandFitShowerEMHandle::Trace(\"" << c << "\")" << endl
           << "Information from CandFitShowerEMHandle's CandHandle: " << endl;
  CandHandle::Trace(c);
  MSG("Cand", Msg::kDebug)
     << "**********End CandFitShowerEMHandle::Trace(\"" << c << "\")" << endl;
}


NavKey CandFitShowerEMHandle::KeyFromSlice(const CandFitShowerEMHandle *reco)
{
  if (reco->GetCandSlice()) {
    return static_cast<Int_t>(reco->GetCandSlice()->GetUidInt());
  }
  return 0;

}

Double_t CandFitShowerEMHandle::GetChi2() const
{
  return dynamic_cast<const CandFitShowerEM*>(GetCandBase())->fChi2;
}

void CandFitShowerEMHandle::SetChi2(Double_t chi2)
{
  dynamic_cast<CandFitShowerEM*>(GetOwnedCandBase())->fChi2 = chi2;
}

Double_t CandFitShowerEMHandle::GetMomentum() const
{
  return dynamic_cast<const CandFitShowerEM*>(GetCandBase())->fMomentum;
}

void CandFitShowerEMHandle::SetMomentum(Double_t momentum)
{
  dynamic_cast<CandFitShowerEM*>(GetOwnedCandBase())->fMomentum = momentum;
}

Bool_t CandFitShowerEMHandle::GetPass() const
{
  return dynamic_cast<const CandFitShowerEM*>(GetCandBase())->fPass;
}

void CandFitShowerEMHandle::SetPass(Bool_t pass)
{
  dynamic_cast<CandFitShowerEM*>(GetOwnedCandBase())->fPass = pass;
}

//----------------------------------------------------------------------
void CandFitShowerEMHandle::SetNIterate(Int_t n)
{
  dynamic_cast<CandFitShowerEM *>(GetOwnedCandBase())->fNIterate = n;
}

//----------------------------------------------------------------------
Int_t CandFitShowerEMHandle::GetNIterate() const
{
  return dynamic_cast<const CandFitShowerEM *>(GetCandBase())->fNIterate;
}

//----------------------------------------------------------------------
void CandFitShowerEMHandle::SetNDOF(Int_t ndof)
{
  dynamic_cast<CandFitShowerEM *>(GetOwnedCandBase())->fNDOF = ndof;
}

//----------------------------------------------------------------------
Int_t CandFitShowerEMHandle::GetNDOF() const
{
  return dynamic_cast<const CandFitShowerEM *>(GetCandBase())->fNDOF;
}

//----------------------------------------------------------------------
void CandFitShowerEMHandle::SetCPUTime(Double_t cputime)
{
  dynamic_cast<CandFitShowerEM *>(GetOwnedCandBase())->fCPUTime = cputime;
}

//----------------------------------------------------------------------
Double_t CandFitShowerEMHandle::GetCPUTime() const
{
  return dynamic_cast<const CandFitShowerEM *>(GetCandBase())->fCPUTime;
}

XXXITRIMP(CandFitShowerEMHandle)
