////////////////////////////////////////////////////////////////////////
// $Id: CandFitTrackMSHandle.cxx,v 1.5 2003/06/20 21:04:11 rhatcher Exp $
//
// CandFitTrackMSHandle is the specialized access handle to CandFitTrackMS.
//
// Each concrete CandHandle must define a DupHandle function.
//
// Tom Bringley
// ttb2@duke.edu
// 6/13/2001
////////////////////////////////////////////////////////////////////////

#include <cassert>
#include <iostream>

#include "CandFitTrackMS/CandFitTrackMSHandle.h"

#include "Algorithm/AlgHandle.h"
#include "CandFitTrackMS/CandFitTrackMS.h"
#include "Conventions/Mphysical.h"
#include "MessageService/MsgService.h"
#include "Plex/PlexStripEndId.h"
#include "RecoBase/CandStripHandle.h"
#include "UgliGeometry/UgliGeomHandle.h"
#include "UgliGeometry/UgliScintPlnHandle.h"
#include "UgliGeometry/UgliSteelPlnHandle.h"


ClassImp(CandFitTrackMSHandle)

//______________________________________________________________________
CVSID("$Id: CandFitTrackMSHandle.cxx,v 1.5 2003/06/20 21:04:11 rhatcher Exp $");

//______________________________________________________________________
CandFitTrackMSHandle::CandFitTrackMSHandle()
{
}

//______________________________________________________________________
CandFitTrackMSHandle::CandFitTrackMSHandle(const CandFitTrackMSHandle &cdh) :
  CandFitTrackHandle(cdh)
{
}

//______________________________________________________________________
CandFitTrackMSHandle::CandFitTrackMSHandle(CandFitTrackMS *cd) :
  CandFitTrackHandle(cd)
{
}

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

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


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

Double_t CandFitTrackMSHandle::GetMomentumL() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fMomentumL;
}

void CandFitTrackMSHandle::SetMomentumL(Double_t momentumL)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fMomentumL = momentumL;
}

Double_t CandFitTrackMSHandle::GetMomentumBF() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fMomentumBF;
}

void CandFitTrackMSHandle::SetMomentumBF(Double_t momentumBF)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fMomentumBF = momentumBF;
}
Double_t CandFitTrackMSHandle::GetMomentumMS() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fMomentumMS;
}

void CandFitTrackMSHandle::SetMomentumMS(Double_t momentumMS)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fMomentumMS = momentumMS;
}

Double_t CandFitTrackMSHandle::GetMomentumBoth() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fMomentumBoth;
}

void CandFitTrackMSHandle::SetMomentumBoth(Double_t momentumBoth)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fMomentumBoth
    = momentumBoth;
}

Double_t CandFitTrackMSHandle::GetMomentumAlt() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fMomentumAlt;
}

void CandFitTrackMSHandle::SetMomentumAlt(Double_t momentumAlt)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fMomentumAlt
    = momentumAlt;
}


Int_t CandFitTrackMSHandle::GetFlag() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fFlag;
}

void CandFitTrackMSHandle::SetFlag(Int_t flag)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fFlag = flag;
}

Double_t CandFitTrackMSHandle::GetEMChargeD() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fEMChargeD;
}

void CandFitTrackMSHandle::SetEMChargeD(Double_t EMChargeD)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fEMChargeD
    = EMChargeD;
}

Int_t CandFitTrackMSHandle::GetIter() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fIter;
}

void CandFitTrackMSHandle::SetIter(Int_t iter)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fIter = iter;
}

Double_t CandFitTrackMSHandle::GetChi2L() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fChi2L;
}

void CandFitTrackMSHandle::SetChi2L(Double_t Chi2L)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fChi2L
    = Chi2L;
}
Double_t CandFitTrackMSHandle::GetChi2BF() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fChi2BF;
}

void CandFitTrackMSHandle::SetChi2BF(Double_t Chi2BF)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fChi2BF
    = Chi2BF;
}
Double_t CandFitTrackMSHandle::GetChi2MS() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fChi2MS;
}

void CandFitTrackMSHandle::SetChi2MS(Double_t Chi2MS)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fChi2MS
    = Chi2MS;
}
Double_t CandFitTrackMSHandle::GetChi2Both() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fChi2Both;
}

void CandFitTrackMSHandle::SetChi2Both(Double_t Chi2Both)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fChi2Both
    = Chi2Both;
}
Double_t CandFitTrackMSHandle::GetChi2Alt() const
{
  return dynamic_cast<const CandFitTrackMS*>(GetCandBase())->fChi2Alt;
}

void CandFitTrackMSHandle::SetChi2Alt(Double_t Chi2Alt)
{
  dynamic_cast<CandFitTrackMS*>(GetOwnedCandBase())->fChi2Alt
    = Chi2Alt;
}

XXXITRIMP(CandFitTrackMSHandle)
