CandTrackSR Class Reference

#include <CandTrackSR.h>

Inheritance diagram for CandTrackSR:
CandTrack CandReco CandBase CandRefCounted

List of all members.

Public Member Functions

 CandTrackSR ()

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

TObjArray * fClusterList
Track2DSRfUTrack
Track2DSRfVTrack
Int_t fNTrackStrip
Int_t fNTrackDigit
Int_t fNTimeFitDigit
Double_t fTimeFitChi2

Friends

class CandTrackSRHandle

Detailed Description

Definition at line 26 of file CandTrackSR.h.


Constructor & Destructor Documentation

CandTrackSR::CandTrackSR (  ) 

Definition at line 31 of file CandTrackSR.cxx.

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

Referenced by Dup(), and MakeCandidate().

00031                          :
00032   fClusterList(0),
00033   fUTrack(0),
00034   fVTrack(0),
00035   fNTrackStrip(0),
00036   fNTrackDigit(0),
00037   fNTimeFitDigit(0),
00038   fTimeFitChi2(0.)
00039 {
00040   MSG("Cand", Msg::kDebug)
00041                     << "Begin CandTrackSR::CandTrackSR() ctor: " << endl
00042                                            << "UidInt = " << GetUidInt()
00043                            << ", ArchUidInt " << GetArchUidInt() << endl
00044                              << "No. of links = " << GetNLinks() << endl
00045                       << "End CandTrackSR::CandTrackSR() ctor." << endl;
00046 }

CandTrackSR::CandTrackSR ( AlgHandle ah  )  [protected]

Definition at line 49 of file CandTrackSR.cxx.

00049                                       :
00050   CandTrack(ah),     // Should be the next class up on inheritance chain
00051   fClusterList(0),
00052   fUTrack(0),
00053   fVTrack(0),
00054   fNTrackStrip(0),
00055   fNTrackDigit(0),
00056   fNTimeFitDigit(0),
00057   fTimeFitChi2(0.)
00058 {
00059 
00060 // The sole purpose of this constructor is to transmit the AlgHandle
00061 // up the inheritance chain to CandBase without having to invoke the
00062 // full constructor of an intermediate Candidate type which the highest
00063 // level Candidate might inherit from.  One only wants to create the
00064 // LocalHandle and invoke the RunAlg() method in the lowest level class.
00065 }

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

Definition at line 68 of file CandTrackSR.cxx.

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

00069                                                                        :
00070   CandTrack(ah),     // Should be the next class up on inheritance chain
00071   fClusterList(0),
00072   fUTrack(0),
00073   fVTrack(0),
00074   fNTrackStrip(0),
00075   fNTrackDigit(0),
00076   fNTimeFitDigit(0),
00077   fTimeFitChi2(0.)
00078 {
00079   CreateLocalHandle();
00080   MSG("Cand", Msg::kDebug)
00081          << "Begin CandTrackSR::CandTrackSR(AlgHandle &, CandHandle &, "
00082                                       << "CandContext &) ctor: " << endl
00083                                            << "UidInt = " << GetUidInt()
00084                            << ", ArchUidInt " << GetArchUidInt() << endl
00085                              << "No. of links = " << GetNLinks() << endl
00086            << "End CandTrackSR::CandTrackSR(AlgHandle &, CandHandle &, "
00087                                       << "CandContext &) ctor." << endl;
00088 
00089   fClusterList = new TObjArray;
00090 
00091 // Run Algorithm to construct Candidate
00092   {                                                   // Start of scope.
00093     CandTrackSRHandle csh(this);             // csh will go out of scope
00094     ch = csh;                                       // after setting ch.
00095   }                                                     // End of scope.
00096   ah.RunAlg(ch, cx);
00097 }

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

Definition at line 100 of file CandTrackSR.cxx.

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

00100                                                :
00101   CandTrack(rhs)     // Should be the next class up on inheritance chain
00102 , fClusterList(0)                        // Made a deep copy from vers 6
00103 , fUTrack(new Track2DSR(*rhs.fUTrack))     //gmi: Supposedly a deep copy
00104 , fVTrack(new Track2DSR(*rhs.fVTrack))     //gmi: Supposedly a deep copy
00105 , fNTrackStrip(rhs.fNTrackStrip)
00106 , fNTrackDigit(rhs.fNTrackDigit)
00107 , fNTimeFitDigit(rhs.fNTimeFitDigit)
00108 , fTimeFitChi2(rhs.fTimeFitChi2)
00109 {
00110 
00111 //CreateLocalHandle(); // Moved to Dup function following copy-ctor call
00112   MSG("Cand", Msg::kDebug)
00113        << "Begin CandTrackSR::CandTrackSR(const CandTrackSR &rhs) ctor:"
00114                                    << endl << "UidInt = " << GetUidInt()
00115                            << ", ArchUidInt " << GetArchUidInt() << endl
00116                              << "No. of links = " << GetNLinks() << endl
00117          << "End CandTrackSR::CandTrackSR(const CandTrackSR &rhs) ctor."
00118                                                                 << endl;
00119 
00120 // fClusterList contents owned from CandTrackSR version 6
00121   if (rhs.fClusterList) {
00122     fClusterList = new TObjArray;
00123     CandHandle *ch;
00124     TIter cliter(rhs.fClusterList);
00125     while ((ch = dynamic_cast<CandHandle *>(cliter())))
00126       fClusterList->Add(ch->DupHandle());
00127   }
00128 }

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

Definition at line 131 of file CandTrackSR.cxx.

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

00132 {
00133   MSG("Cand", Msg::kDebug)
00134                    << "Begin CandTrackSR::~CandTrackSR() dtor: " << endl
00135                                            << "UidInt = " << GetUidInt()
00136                            << ", ArchUidInt " << GetArchUidInt() << endl
00137                              << "No. of links = " << GetNLinks() << endl
00138                      << "End CandTrackSR::~CandTrackSR() dtor." << endl;
00139 
00140   if (fClusterList) {
00141     fClusterList->Delete();  // Owned CandHandle*'s from CandTrackSR v 6
00142     delete fClusterList;
00143   }
00144     delete fUTrack;
00145     delete fVTrack;
00146 }


Member Function Documentation

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

Reimplemented from CandTrack.

Definition at line 149 of file CandTrackSR.cxx.

References CandTrackSRHandle, and CandBase::SetLocalHandle().

Referenced by CandTrackSR(), and Dup().

00150 {
00151   SetLocalHandle(new CandTrackSRHandle(this));
00152 }

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

Reimplemented from CandTrack.

Definition at line 155 of file CandTrackSR.cxx.

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

00156 {
00157 
00158 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00159 // Daughter List copy is made in the derived class Dup() function.
00160 // This is because base class copy constructor hasn't yet created
00161 // fLocalHandle with a CandHandle* of the full derived type.
00162   CandTrackSR *cb = new CandTrackSR(*this);       // Copy-ctor dups ptrs
00163   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00164   TIter iterdau = GetDaughterIterator();
00165   CandHandle *dau;
00166   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00167   return cb;
00168 }

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

Reimplemented from CandTrack.

Definition at line 171 of file CandTrackSR.cxx.

References fClusterList, fNTimeFitDigit, fNTrackDigit, fNTrackStrip, fTimeFitChi2, fUTrack, fVTrack, CandTrack::IsEquivalent(), CandBase::TestDisplayCandBanner(), CandBase::TestEquality(), and CandBase::TestPtrEquivalence().

00172 {
00173   Bool_t result = true;
00174   if (!CandTrack::IsEquivalent(rhs)) result = false;  // superclass test
00175   TestDisplayCandBanner("CandTrackSR");
00176   const CandTrackSR* rCnd = dynamic_cast<const CandTrackSR*>(rhs);
00177   if (rCnd == NULL) return false;
00178 
00179   result = TestGenericElemPtrTObjArrayPtrEquality<CandClusterHandle>(
00180                                         "fClusterList",
00181                                         this->fClusterList,
00182                                         rCnd->fClusterList)   && result;
00183   result = TestPtrEquivalence("fUTrack",
00184                                         this->fUTrack,
00185                                         rCnd->fUTrack)        && result;
00186   result = TestPtrEquivalence("fVTrack",
00187                                         this->fVTrack,
00188                                         rCnd->fVTrack)        && result;
00189   result = TestEquality("fNTrackStrip", this->fNTrackStrip,
00190                                         rCnd->fNTrackStrip)   && result;
00191   result = TestEquality("fNTrackDigit", this->fNTrackDigit,
00192                                         rCnd->fNTrackDigit)   && result;
00193   result = TestEquality("fNTimeFitDigit",
00194                                         this->fNTimeFitDigit,
00195                                         rCnd->fNTimeFitDigit) && result;
00196   result = TestEquality("fTimeFitChi2", this->fTimeFitChi2,
00197                                         rCnd->fTimeFitChi2)   && result;
00198 
00199   return result;
00200 }

CandTrackSRHandle CandTrackSR::MakeCandidate ( AlgHandle ah,
CandContext cx 
) [static]

Reimplemented from CandTrack.

Definition at line 203 of file CandTrackSR.cxx.

References CandTrackSR().

Referenced by AlgTrackSRList::FormCandTrackSR().

00205 {
00206   CandTrackSRHandle csh;
00207   new CandTrackSR(ah, csh, cx);          // csh owns the new CandTrackSR
00208   return csh;
00209 }


Friends And Related Function Documentation

friend class CandTrackSRHandle [friend]

Definition at line 28 of file CandTrackSR.h.

Referenced by CreateLocalHandle().


Member Data Documentation

TObjArray* CandTrackSR::fClusterList [protected]

Definition at line 44 of file CandTrackSR.h.

Referenced by CandTrackSR(), IsEquivalent(), and ~CandTrackSR().

Int_t CandTrackSR::fNTimeFitDigit [protected]

Reimplemented from CandTrack.

Definition at line 51 of file CandTrackSR.h.

Referenced by IsEquivalent().

Int_t CandTrackSR::fNTrackDigit [protected]

Reimplemented from CandTrack.

Definition at line 50 of file CandTrackSR.h.

Referenced by IsEquivalent().

Int_t CandTrackSR::fNTrackStrip [protected]

Reimplemented from CandTrack.

Definition at line 49 of file CandTrackSR.h.

Referenced by IsEquivalent().

Double_t CandTrackSR::fTimeFitChi2 [protected]

Reimplemented from CandTrack.

Definition at line 53 of file CandTrackSR.h.

Referenced by IsEquivalent().

Definition at line 46 of file CandTrackSR.h.

Referenced by IsEquivalent(), and ~CandTrackSR().

Definition at line 47 of file CandTrackSR.h.

Referenced by IsEquivalent(), and ~CandTrackSR().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1