CandSlice Class Reference

#include <CandSlice.h>

Inheritance diagram for CandSlice:
CandBase CandRefCounted FarDetSlice

List of all members.

Public Member Functions

 CandSlice ()
virtual std::ostream & FormatToOStream (std::ostream &os, Option_t *option="") const

Static Public Member Functions

static CandSliceHandle MakeCandidate (AlgHandle &ah, CandContext &cx)

Protected Member Functions

 CandSlice (AlgHandle &ah)
 CandSlice (AlgHandle &ah, CandHandle &ch, CandContext &cx)
 CandSlice (const CandSlice &rhs)
virtual ~CandSlice ()
virtual void CreateLocalHandle ()
virtual CandSliceDup () const
virtual Bool_t IsEquivalent (const TObject *rhs) const

Friends

class CandSliceHandle

Detailed Description

Definition at line 20 of file CandSlice.h.


Constructor & Destructor Documentation

CandSlice::CandSlice (  ) 

Definition at line 29 of file CandSlice.cxx.

References CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), Msg::kDebug, and MSG.

Referenced by Dup(), and MakeCandidate().

00030 {
00031   MSG("Cand", Msg::kDebug)
00032                         << "Begin CandSlice::CandSlice() ctor: " << endl
00033                                            << "UidInt = " << GetUidInt()
00034                            << ", ArchUidInt " << GetArchUidInt() << endl
00035                              << "No. of links = " << GetNLinks() << endl
00036                           << "End CandSlice::CandSlice() ctor." << endl;
00037 }

CandSlice::CandSlice ( AlgHandle ah  )  [protected]

Definition at line 40 of file CandSlice.cxx.

00040                                   :
00041   CandBase(ah)      // Should be the next class up on inheritance chain
00042  
00043 {
00044 
00045 // The sole purpose of this constructor is to transmit the AlgHandle
00046 // up the inheritance chain to CandBase without having to invoke the
00047 // full constructor of an intermediate Candidate type which the highest
00048 // level Candidate might inherit from.  One only wants to create the
00049 // LocalHandle and invoke the RunAlg() method in the lowest level class.
00050 }

CandSlice::CandSlice ( AlgHandle ah,
CandHandle ch,
CandContext cx 
) [protected]

Definition at line 53 of file CandSlice.cxx.

References CreateLocalHandle(), CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), Msg::kDebug, MSG, and AlgHandle::RunAlg().

00053                                                                    :
00054   CandBase(ah)      // Should be the next class up on inheritance chain
00055  
00056 {
00057   CreateLocalHandle();
00058   MSG("Cand", Msg::kDebug)
00059              << "Begin CandSlice::CandSlice(AlgHandle &, CandHandle &, "
00060                                       << "CandContext &) ctor: " << endl
00061                                            << "UidInt = " << GetUidInt()
00062                            << ", ArchUidInt " << GetArchUidInt() << endl
00063                              << "No. of links = " << GetNLinks() << endl
00064                << "End CandSlice::CandSlice(AlgHandle &, CandHandle &, "
00065                                       << "CandContext &) ctor." << endl;
00066 
00067 // Run Algorithm to construct Candidate
00068    {                                                  // Start of scope.
00069      CandSliceHandle cdh(this);              // cdh will go out of scope
00070      ch = cdh;                                      // after setting ch.
00071    }                                                    // End of scope.
00072    ah.RunAlg(ch, cx);
00073 }

CandSlice::CandSlice ( const CandSlice rhs  )  [protected]

Definition at line 76 of file CandSlice.cxx.

References CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), Msg::kDebug, and MSG.

00076                                          :
00077   CandBase(rhs)     // Should be the next class up on inheritance chain
00078 
00079 {
00080 
00081 //CreateLocalHandle(); // Moved to Dup function following copy-ctor call
00082   MSG("Cand", Msg::kDebug)
00083     << "Begin CandSlice::CandSlice(const CandSlice &rhs) ctor: " << endl
00084                                            << "UidInt = " << GetUidInt()
00085                            << ", ArchUidInt " << GetArchUidInt() << endl
00086                              << "No. of links = " << GetNLinks() << endl
00087       << "End CandSlice::CandSlice(const CandSlice &rhs) ctor." << endl;
00088 }

CandSlice::~CandSlice (  )  [protected, virtual]

Definition at line 91 of file CandSlice.cxx.

References CandBase::GetArchUidInt(), CandRefCounted::GetNLinks(), CandBase::GetUidInt(), Msg::kDebug, and MSG.

00092 {
00093   MSG("Cand", Msg::kDebug)
00094                        << "Begin CandSlice::~CandSlice() dtor: " << endl
00095                                            << "UidInt = " << GetUidInt()
00096                            << ", ArchUidInt " << GetArchUidInt() << endl
00097                              << "No. of links = " << GetNLinks() << endl
00098                          << "End CandSlice::~CandSlice() dtor." << endl;
00099 }


Member Function Documentation

void CandSlice::CreateLocalHandle (  )  [protected, virtual]

Implements CandBase.

Reimplemented in FarDetSlice.

Definition at line 102 of file CandSlice.cxx.

References CandSliceHandle, and CandBase::SetLocalHandle().

Referenced by CandSlice(), and Dup().

00103 {
00104   SetLocalHandle(new CandSliceHandle(this));
00105 }

CandSlice * CandSlice::Dup (  )  const [protected, virtual]

Implements CandBase.

Reimplemented in FarDetSlice.

Definition at line 108 of file CandSlice.cxx.

References CandBase::AddDaughterLink(), CandSlice(), CreateLocalHandle(), and CandBase::GetDaughterIterator().

00109 {
00110 
00111 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00112 // Daughter List copy is made in the derived class Dup() function.
00113 // This is because base class copy constructor hasn't yet created
00114 // fLocalHandle with a CandHandle* of the full derived type.
00115   CandSlice *cb = new CandSlice(*this);           // Copy-ctor dups ptrs
00116   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00117   TIter iterdau = GetDaughterIterator();
00118   CandHandle *dau;
00119   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00120   return cb;
00121 }

std::ostream & CandSlice::FormatToOStream ( std::ostream &  os,
Option_t *  option = "" 
) const [virtual]

Reimplemented from CandBase.

Definition at line 145 of file CandSlice.cxx.

00147 {
00148   CandBase::FormatToOStream(os,option);
00149   return os;
00150   
00151 }

Bool_t CandSlice::IsEquivalent ( const TObject *  rhs  )  const [protected, virtual]

Reimplemented from CandBase.

Definition at line 124 of file CandSlice.cxx.

References CandBase::IsEquivalent(), and CandBase::TestDisplayCandBanner().

00125 {
00126   Bool_t result = true;
00127   if (!CandBase::IsEquivalent(rhs)) result = false;   // superclass test
00128   TestDisplayCandBanner("CandSlice");
00129   const CandSlice* rCnd = dynamic_cast<const CandSlice*>(rhs);
00130   if (rCnd == NULL) return false;
00131 
00132   
00133   return result;
00134 }

CandSliceHandle CandSlice::MakeCandidate ( AlgHandle ah,
CandContext cx 
) [static]

Reimplemented in FarDetSlice.

Definition at line 137 of file CandSlice.cxx.

References CandSlice().

Referenced by AlgSliceSRList::PassAll(), AlgSliceListFromChopList::RunAlg(), AlgSliceSRList::SlicetheSnarl(), AlgSliceSRList::SlicetheSnarl_ASAP(), and AlgSliceSRList::SlicetheSnarl_MST().

00138 {
00139   CandSliceHandle cdh;
00140   new CandSlice(ah, cdh, cx);              // cdh owns the new CandSlice
00141   return cdh;
00142 }


Friends And Related Function Documentation

friend class CandSliceHandle [friend]

Definition at line 22 of file CandSlice.h.

Referenced by CreateLocalHandle().


The documentation for this class was generated from the following files:

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1