00001 #include "MessageService/MsgService.h"
00002 #include "JobControl/JobCModuleRegistry.h"
00003 #include "Algorithm/AlgHandle.h"
00004 #include "CandAtNuReco.h"
00005 #include "CandAtNuRecoHandle.h"
00006 #include "CandTrackAtNuHandle.h"
00007 #include "CandShowerAtNuHandle.h"
00008
00009
00010
00011
00012
00013 ClassImp(CandAtNuReco)
00014
00015 CVSID("$ Id: CandAtNuReco.cxx,v 1.0 2002/00/00 00:00:00 blake Exp $");
00016
00017 CandAtNuReco::CandAtNuReco() :
00018 fAtNuRecoScore(0.0),
00019 fCPUTime(0.0),
00020 fNBlocks(0)
00021 {
00022 MSG("CandAtNuReco", Msg::kDebug) << " " << endl;
00023 }
00024
00025 CandAtNuReco::CandAtNuReco(AlgHandle &ah) :
00026 CandReco(ah),
00027 fAtNuRecoScore(0.0),
00028 fCPUTime(0.0),
00029 fNBlocks(0)
00030 {
00031
00032 }
00033
00034 CandAtNuReco::CandAtNuReco(AlgHandle &ah, CandHandle &ch, CandContext &cx) :
00035 CandReco(ah),
00036 fAtNuRecoScore(0.0),
00037 fCPUTime(0.0),
00038 fNBlocks(0)
00039 {
00040 this->SetLocalHandle(new CandAtNuRecoHandle(this));
00041 { CandAtNuRecoHandle cth(this); ch = cth; }
00042 ah.RunAlg(ch, cx);
00043 }
00044
00045 CandAtNuReco::CandAtNuReco(const CandAtNuReco &rhs) :
00046 CandReco(rhs),
00047 fAtNuRecoScore(rhs.fAtNuRecoScore),
00048 fCPUTime(rhs.fCPUTime),
00049 fNBlocks(rhs.fNBlocks)
00050 {
00051
00052 }
00053
00054 CandAtNuReco::~CandAtNuReco()
00055 {
00056
00057 }
00058
00059 CandAtNuReco* CandAtNuReco::Dup() const
00060 {
00061 CandAtNuReco *cb = new CandAtNuReco(*this);
00062 cb->CreateLocalHandle();
00063 TIter iterdau = GetDaughterIterator();
00064 CandHandle *dau;
00065 while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00066 return cb;
00067 }
00068
00069 void CandAtNuReco::CreateLocalHandle()
00070 {
00071 this->SetLocalHandle(new CandAtNuRecoHandle(this));
00072 }
00073
00074 CandAtNuRecoHandle CandAtNuReco::MakeCandidate(AlgHandle &ah, CandContext &cx)
00075 {
00076 CandAtNuRecoHandle csh;
00077 new CandAtNuReco(ah, csh, cx);
00078 return csh;
00079 }