00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00014
00015 #include "Algorithm/AlgHandle.h"
00016 #include "MessageService/MsgService.h"
00017 #include "RecoBase/CandClusterList.h"
00018 #include "RecoBase/CandClusterListHandle.h"
00019
00020 ClassImp(CandClusterList)
00021
00022
00023 CVSID("$Id: CandClusterList.cxx,v 1.6 2005/01/20 18:46:30 musser Exp $");
00024
00025
00026 CandClusterList::CandClusterList()
00027 {
00028 MSG("Cand", Msg::kDebug)
00029 << "Begin CandClusterList::CandClusterList() ctor: " << endl
00030 << "UidInt = " << GetUidInt()
00031 << ", ArchUidInt " << GetArchUidInt() << endl
00032 << "No. of links = " << GetNLinks() << endl
00033 << "End CandClusterList::CandClusterList() ctor." << endl;
00034 }
00035
00036
00037 CandClusterList::CandClusterList(AlgHandle &ah) :
00038 CandBase(ah)
00039 {
00040
00041
00042
00043
00044
00045
00046 }
00047
00048
00049 CandClusterList::CandClusterList(AlgHandle &ah, CandHandle &ch,
00050 CandContext &cx) :
00051 CandBase(ah)
00052 {
00053 CreateLocalHandle();
00054 MSG("Cand", Msg::kDebug)
00055 << "Begin CandClusterList::CandClusterList(AlgHandle &, CandHandle &, "
00056 << "CandContext &) ctor: " << endl
00057 << "UidInt = " << GetUidInt()
00058 << ", ArchUidInt " << GetArchUidInt() << endl
00059 << "No. of links = " << GetNLinks() << endl
00060 << "End CandClusterList::CandClusterList(AlgHandle &, CandHandle &, "
00061 << "CandContext &) ctor." << endl;
00062
00063
00064 {
00065 CandClusterListHandle cdh(this);
00066 ch = cdh;
00067 }
00068 ah.RunAlg(ch, cx);
00069 }
00070
00071
00072 CandClusterList::CandClusterList(const CandClusterList &rhs) :
00073 CandBase(rhs)
00074 {
00075
00076
00077 MSG("Cand", Msg::kDebug)
00078 << "Begin CandClusterList::CandClusterList"
00079 << "(const CandClusterList &rhs) ctor: " << endl
00080 << "UidInt = " << GetUidInt()
00081 << ", ArchUidInt " << GetArchUidInt() << endl
00082 << "No. of links = " << GetNLinks() << endl
00083 << "End CandClusterList::CandClusterList"
00084 << "(const CandClusterList &rhs) ctor." << endl;
00085 }
00086
00087
00088 CandClusterList::~CandClusterList()
00089 {
00090 MSG("Cand", Msg::kDebug)
00091 << "Begin CandClusterList::~CandClusterList() dtor: " << endl
00092 << "UidInt = " << GetUidInt()
00093 << ", ArchUidInt " << GetArchUidInt() << endl
00094 << "No. of links = " << GetNLinks() << endl
00095 << "End CandClusterList::~CandClusterList() dtor." << endl;
00096 }
00097
00098
00099 void CandClusterList::CreateLocalHandle()
00100 {
00101 SetLocalHandle(new CandClusterListHandle(this));
00102 }
00103
00104
00105 CandClusterList *CandClusterList::Dup() const
00106 {
00107
00108
00109
00110
00111
00112 CandClusterList *cb = new CandClusterList(*this);
00113 cb->CreateLocalHandle();
00114 cb->SetCandRecord(fCandRecord);
00115 TIter iterdau = GetDaughterIterator();
00116 CandHandle *dau;
00117 while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00118 return cb;
00119 }
00120
00121
00122 Bool_t CandClusterList::IsEquivalent(const TObject *rhs) const
00123 {
00124 Bool_t result = true;
00125 if (!CandBase::IsEquivalent(rhs)) result = false;
00126 TestDisplayCandBanner("CandClusterList");
00127 const CandClusterList* rCnd =
00128 dynamic_cast<const CandClusterList*>(rhs);
00129 if (rCnd == NULL) return false;
00130
00131 TestNothing("CandClusterList");
00132
00133 return result;
00134 }
00135
00136
00137 CandClusterListHandle CandClusterList::MakeCandidate(AlgHandle &ah,
00138 CandContext &cx)
00139 {
00140 CandClusterListHandle cdh;
00141 new CandClusterList(ah, cdh, cx);
00142 return cdh;
00143 }
00144