Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CandRmMuList.cxx

Go to the documentation of this file.
00001 
00002 // $Id: CandRmMuList.cxx,v 1.1 2006/06/27 13:44:34 cbs Exp $
00003 //
00004 // CandRmMuList
00005 //
00007 
00008 #include "Algorithm/AlgHandle.h"
00009 #include "MuonRemoval/CandRmMuList.h"
00010 #include "MuonRemoval/CandRmMuListHandle.h"
00011 #include "MessageService/MsgService.h"
00012 
00013 ClassImp(CandRmMuList)
00014 
00015 //______________________________________________________________________
00016 CVSID("$Id: CandRmMuList.cxx,v 1.1 2006/06/27 13:44:34 cbs Exp $");
00017 
00018 //______________________________________________________________________
00019 CandRmMuList::CandRmMuList()
00020 {
00021   MSG("Cand", Msg::kDebug)
00022           << "Begin CandRmMuList::CandRmMuList() ctor: " << endl
00023                                            << "UidInt = " << GetUidInt()
00024                            << ", ArchUidInt " << GetArchUidInt() << endl
00025                              << "No. of links = " << GetNLinks() << endl
00026             << "End CandRmMuList::CandRmMuList() ctor." << endl;
00027 }
00028 
00029 //______________________________________________________________________
00030 CandRmMuList::CandRmMuList(AlgHandle &ah) :
00031   CandBase(ah) // Should be the next class up on inheritance chain
00032 {
00033 
00034 // The sole purpose of this constructor is to transmit the AlgHandle
00035 // up the inheritance chain to CandBase without having to invoke the
00036 // full constructor of an intermediate Candidate type which the highest
00037 // level Candidate might inherit from.  One only wants to create the
00038 // LocalHandle and invoke the RunAlg() method in the lowest level class.
00039 }
00040 
00041 //______________________________________________________________________
00042 CandRmMuList::CandRmMuList(AlgHandle &ah, CandHandle &ch,
00043                            CandContext &cx) :
00044   CandBase(ah) // Should be the next class up on inheritance chain
00045 {
00046   CreateLocalHandle();
00047   MSG("Cand", Msg::kDebug)
00048                            << "Begin CandRmMuList::CandRmMuList"
00049     << "(AlgHandle &, CandHandle &, " << "CandContext &) ctor: " << endl
00050                                            << "UidInt = " << GetUidInt()
00051                            << ", ArchUidInt " << GetArchUidInt() << endl
00052                              << "No. of links = " << GetNLinks() << endl
00053                              << "End CandRmMuList::CandRmMuList"
00054     << "(AlgHandle &, CandHandle &, " << "CandContext &) ctor." << endl;
00055 
00056 // Run Algorithm to construct Candidate
00057    {                                                   // Start of scope
00058      CandRmMuListHandle cshl(this);     // cshl will go out of scope
00059      ch = cshl;                                     // after setting ch.
00060    }                                                     // End of scope
00061    ah.RunAlg(ch, cx);
00062 }
00063 
00064 //______________________________________________________________________
00065 CandRmMuList::CandRmMuList(const CandRmMuList &rhs) :
00066   CandBase(rhs) //Should be the next class up on inheritance chain
00067 {
00068 
00069   //CreateLocalHandle(); // Moved to Dup function following copy-ctor call
00070   MSG("Cand", Msg::kDebug)
00071                            << "Begin CandRmMuList::CandRmMuList"
00072                        << "(const CandRmMuList &rhs) ctor: " << endl
00073                                            << "UidInt = " << GetUidInt()
00074                            << ", ArchUidInt " << GetArchUidInt() << endl
00075                              << "No. of links = " << GetNLinks() << endl
00076                              << "End CandRmMuList::CandRmMuList"
00077                        << "(const CandRmMuList &rhs) ctor." << endl;
00078 }
00079 
00080 //______________________________________________________________________
00081 CandRmMuList::~CandRmMuList()
00082 {
00083   MSG("Cand", Msg::kDebug)
00084          << "Begin CandRmMuList::~CandRmMuList() dtor: " << endl
00085                                            << "UidInt = " << GetUidInt()
00086                            << ", ArchUidInt " << GetArchUidInt() << endl
00087                              << "No. of links = " << GetNLinks() << endl
00088            << "End CandRmMuList::~CandRmMuList() dtor." << endl;
00089 }
00090 
00091 //______________________________________________________________________
00092 void CandRmMuList::CreateLocalHandle()
00093 {
00094   SetLocalHandle(new CandRmMuListHandle(this));
00095 }
00096 
00097 //______________________________________________________________________
00098 CandRmMuList *CandRmMuList::Dup() const
00099 {
00100 
00101 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00102 // Daughter List copy is made in the derived class Dup() function.
00103 // This is because base class copy constructor hasn't yet created
00104 // fLocalHandle with a CandHandle* of the full derived type.
00105   CandRmMuList *cb = new CandRmMuList(*this);       // Copy-ctor
00106   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00107   TIter iterdau = GetDaughterIterator();
00108   CandHandle *dau;
00109   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00110   return cb;
00111 }
00112 
00113 //______________________________________________________________________
00114 Bool_t CandRmMuList::IsEquivalent(const TObject *rhs) const
00115 {
00116   Bool_t result = true;
00117   if (!CandBase::IsEquivalent(rhs)) result = false;  // superclass
00118   TestDisplayCandBanner("CandRmMuList");
00119   const CandRmMuList* rCnd = dynamic_cast<const CandRmMuList*>(rhs);
00120   if (rCnd == NULL) return false;
00121   TestNothing("CandRmMuList");
00122   return result;  
00123 }
00124 
00125 //______________________________________________________________________
00126 CandRmMuListHandle CandRmMuList::MakeCandidate(AlgHandle &ah,
00127                                                CandContext &cx)
00128 {
00129   CandRmMuListHandle cshl;
00130   new CandRmMuList(ah, cshl, cx);  // cshl owns new CandRmMuList
00131   return cshl;
00132 }

Generated on Mon Feb 15 11:06:29 2010 for loon by  doxygen 1.3.9.1