CandDeMuxDigitList Class Reference

#include <CandDeMuxDigitList.h>

Inheritance diagram for CandDeMuxDigitList:
CandDigitList CandBase CandRefCounted

List of all members.

Public Types

enum  EDeMuxDigitListFlag {
  kDeMuxOK = 0x00, kNoVertex = 0x01, kTooFewValidPlanes = 0x02, kNonPhysicalStripSolution = 0x04,
  kEventFailedFilter = 0x08, kEventFailedFilterUViewOnly = 0x10, kEventFailedFilterVViewOnly = 0x20, kMultipleMuonEvent = 0x40
}
typedef enum
CandDeMuxDigitList::EDeMuxDigitListFlag 
DeMuxDigitListFlag_t

Public Member Functions

 CandDeMuxDigitList ()
virtual std::ostream & FormatToOStream (std::ostream &os, Option_t *option) const

Static Public Member Functions

static CandDeMuxDigitListHandle MakeCandidate (AlgHandle &ah, CandContext &cx)
static const char * AsString (DeMuxDigitListFlag_t)

Protected Member Functions

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

Protected Attributes

Int_t fDeMuxDigitListFlag
Int_t fNumValidPlanesU
Int_t fNumValidPlanesV
Int_t fNumStrayPlanesU
Int_t fNumStrayPlanesV
Float_t fAvgTimeOffset

Friends

class CandDeMuxDigitListHandle

Detailed Description

Definition at line 23 of file CandDeMuxDigitList.h.


Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
kDeMuxOK 
kNoVertex 
kTooFewValidPlanes 
kNonPhysicalStripSolution 
kEventFailedFilter 
kEventFailedFilterUViewOnly 
kEventFailedFilterVViewOnly 
kMultipleMuonEvent 

Definition at line 29 of file CandDeMuxDigitList.h.

00029                                     {
00030      kDeMuxOK = 0x00,
00031      kNoVertex = 0x01,
00032      kTooFewValidPlanes = 0x02,
00033      kNonPhysicalStripSolution = 0x04,
00034      kEventFailedFilter = 0x08,
00035      kEventFailedFilterUViewOnly = 0x10,
00036      kEventFailedFilterVViewOnly = 0x20,
00037      kMultipleMuonEvent = 0x40
00038    } DeMuxDigitListFlag_t;


Constructor & Destructor Documentation

CandDeMuxDigitList::CandDeMuxDigitList (  ) 

Definition at line 30 of file CandDeMuxDigitList.cxx.

References Msg::kDebug, and MSG.

Referenced by Dup(), and MakeCandidate().

00030                                        :
00031   fDeMuxDigitListFlag(0)
00032 , fNumValidPlanesU(0)
00033 , fNumValidPlanesV(0)
00034 , fNumStrayPlanesU(0)
00035 , fNumStrayPlanesV(0)
00036 , fAvgTimeOffset(0.)
00037 {
00038   MSG("Cand", Msg::kDebug)
00039       << "Begin CandDeMuxDigitList::CandDeMuxDigitList() ctor: " << endl
00040                                            << "UidInt = " << GetUidInt()
00041                            << ", ArchUidInt " << GetArchUidInt() << endl
00042                              << "No. of links = " << GetNLinks() << endl
00043         << "End CandDeMuxDigitList::CandDeMuxDigitList() ctor." << endl;
00044 }

CandDeMuxDigitList::CandDeMuxDigitList ( AlgHandle ah  )  [protected]

Definition at line 47 of file CandDeMuxDigitList.cxx.

00047                                                     :
00048   CandDigitList(ah)  // Should be the next class up on inheritance chain
00049 , fDeMuxDigitListFlag(0)
00050 , fNumValidPlanesU(0)
00051 , fNumValidPlanesV(0)
00052 , fNumStrayPlanesU(0)
00053 , fNumStrayPlanesV(0)
00054 , fAvgTimeOffset(0.)
00055 {
00056 
00057 // The sole purpose of this constructor is to transmit the AlgHandle
00058 // up the inheritance chain to CandBase without having to invoke the
00059 // full constructor of an intermediate Candidate type which the highest
00060 // level Candidate might inherit from.  One only wants to create the
00061 // LocalHandle and invoke the RunAlg() method in the lowest level class.
00062 
00063 }

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

Definition at line 66 of file CandDeMuxDigitList.cxx.

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

00067                                                                        :
00068   CandDigitList(ah)  // Should be the next class up on inheritance chain
00069 , fDeMuxDigitListFlag(0)
00070 , fNumValidPlanesU(0)
00071 , fNumValidPlanesV(0)
00072 , fNumStrayPlanesU(0)
00073 , fNumStrayPlanesV(0)
00074 , fAvgTimeOffset(0.)
00075 {
00076   CreateLocalHandle();
00077   MSG("Cand", Msg::kDebug)
00078    << "Begin CandDeMuxDigitList::CandDeMuxDigitList(AlgHandle &, CandHandle &, "
00079                                       << "CandContext& ) ctor: " << endl
00080                                            << "UidInt = " << GetUidInt()
00081                            << ", ArchUidInt " << GetArchUidInt() << endl
00082                              << "No. of links = " << GetNLinks() << endl
00083    << "End CandDeMuxDigitList::CandDeMuxDigitList(AlgHandle &, CandHandle &, "
00084                                      << "CandContext& ) ctor: " << endl;
00085 
00086 // Run Algorithm to construct Candidate
00087    {                                                  // Start of scope.
00088      CandDeMuxDigitListHandle cdlh(this);   // cdlh will go out of scope
00089      ch = cdlh;                                     // after setting ch.
00090    }                                                    // End of scope.
00091    ah.RunAlg(ch, cx);
00092 }

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

Definition at line 95 of file CandDeMuxDigitList.cxx.

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

00095                                                                     :
00096   CandDigitList(rhs) // Should be the next class up on inheritance chain
00097 , fDeMuxDigitListFlag(rhs.fDeMuxDigitListFlag)
00098 , fNumValidPlanesU(rhs.fNumValidPlanesU)
00099 , fNumValidPlanesV(rhs.fNumValidPlanesV)
00100 , fNumStrayPlanesU(rhs.fNumStrayPlanesU)
00101 , fNumStrayPlanesV(rhs.fNumStrayPlanesV)
00102 , fAvgTimeOffset(rhs.fAvgTimeOffset)
00103 {
00104   MSG("Cand", Msg::kDebug)
00105 << "Begin CandDeMuxDigitList::CandDeMuxDigitList(const CandDeMuxDigitList &) "
00106                                                      << "ctor: " << endl
00107                                            << "UidInt = " << GetUidInt()
00108                            << ", ArchUidInt " << GetArchUidInt() << endl
00109                              << "No. of links = " << GetNLinks() << endl
00110 << "End CandDeMuxDigitList::CandDeMuxDigitList(const CandDeMuxDigitList &) ctor."
00111                                                                 << endl;
00112 }

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

Definition at line 115 of file CandDeMuxDigitList.cxx.

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

00116 {
00117   MSG("Cand", Msg::kDebug)
00118        << "Begin CandDeMuxDigitList::~CandDeMuxDigitList() " << "dtor: "
00119        << endl
00120                                            << "UidInt = " << GetUidInt()
00121                            << ", ArchUidInt " << GetArchUidInt() << endl
00122                              << "No. of links = " << GetNLinks() << endl
00123        << "End CandDeMuxDigitList::~CandDeMuxDigitList() dtor." << endl;
00124 }


Member Function Documentation

const char * CandDeMuxDigitList::AsString ( DeMuxDigitListFlag_t  dlflag  )  [static]

Definition at line 225 of file CandDeMuxDigitList.cxx.

References Form(), kDeMuxOK, kEventFailedFilter, kEventFailedFilterUViewOnly, kEventFailedFilterVViewOnly, kMultipleMuonEvent, kNonPhysicalStripSolution, kNoVertex, and kTooFewValidPlanes.

Referenced by FormatToOStream().

00226 {
00227 
00228   if (dlflag == kDeMuxOK) return "=DeMuxOKList=";
00229 
00230   std::string result("=");
00231   if (dlflag & kNoVertex                  ) result += "NoVertex,";
00232   if (dlflag & kTooFewValidPlanes         ) result += "TooFewValidPlanes,";
00233   if (dlflag & kNonPhysicalStripSolution  ) result += "NonPhysicalStripSolution,";
00234   if (dlflag & kEventFailedFilter         ) result += "EventFailedFilter,";
00235   if (dlflag & kEventFailedFilterUViewOnly) result += "EventFailedFilterUViewOnly,";
00236   if (dlflag & kEventFailedFilterVViewOnly) result += "EventFailedFilterVViewOnly,";
00237   if (dlflag & kMultipleMuonEvent         ) result += "MultipleMuonEvent,";
00238 
00239   static Int_t unknownBits = 
00240     ~(kNoVertex|
00241       kTooFewValidPlanes|
00242       kNonPhysicalStripSolution|
00243       kEventFailedFilter|
00244       kEventFailedFilterUViewOnly|
00245       kEventFailedFilterVViewOnly|
00246       kMultipleMuonEvent);
00247   if ( dlflag & unknownBits ) return Form("0x%8.8x",dlflag);  // dump hex if unknown bits
00248 
00249   // replace trailing ',' with = delimiter
00250   result.replace(result.size()-1,1,"=");
00251   return Form("%s",result.c_str());
00252 }

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

Reimplemented from CandDigitList.

Definition at line 127 of file CandDeMuxDigitList.cxx.

References CandDeMuxDigitListHandle, and CandBase::SetLocalHandle().

Referenced by CandDeMuxDigitList(), and Dup().

00128 {
00129   SetLocalHandle(new CandDeMuxDigitListHandle(this));
00130 }

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

Reimplemented from CandDigitList.

Definition at line 133 of file CandDeMuxDigitList.cxx.

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

00134 {
00135 
00136 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00137 // Daughter List copy is made in the derived class Dup() function.
00138 // This is because base class copy constructor hasn't yet created
00139 // fLocalHandle with a CandHandle* of the full derived type.
00140 // Copy-ctor dups ptrs
00141   CandDeMuxDigitList *cb = new CandDeMuxDigitList(*this);
00142   cb->CreateLocalHandle();   // Initializes fLocalHandle after copy-ctor
00143   TIter iterdau = GetDaughterIterator();
00144   CandHandle *dau;
00145   while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00146   return cb;
00147 }

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

Reimplemented from CandDigitList.

Definition at line 192 of file CandDeMuxDigitList.cxx.

References AsString(), fAvgTimeOffset, fDeMuxDigitListFlag, fNumStrayPlanesU, fNumStrayPlanesV, fNumValidPlanesU, fNumValidPlanesV, CandBase::GetDataIndent(), and CandBase::GetIndentString().

00194 {
00195   CandDigitList::FormatToOStream(os,option);
00196 
00197   TString opt(option);
00198   if (!opt.Contains("v0")) { // v0 means suppress the data values
00199     const TString& indent = GetIndentString();
00200     
00201     static MsgFormat i4("i4");
00202     static MsgFormat timefmt("f18.9");
00203 
00204     os << indent << GetDataIndent()
00205        << "NValidPlanes U: " << i4(fNumValidPlanesU)
00206        << " V: " << i4(fNumValidPlanesV)
00207        << "   NStrayPlanes U: " << i4(fNumStrayPlanesU)
00208        << " V: " << i4(fNumStrayPlanesV)
00209        << endl;
00210     
00211     CandDeMuxDigitList::DeMuxDigitListFlag_t dlflag = 
00212       (CandDeMuxDigitList::DeMuxDigitListFlag_t)fDeMuxDigitListFlag;
00213     
00214     os << indent << GetDataIndent()
00215        << "AvgTimeOffset " << timefmt(fAvgTimeOffset)
00216        << " FlagWord " 
00217        << CandDeMuxDigitList::AsString(dlflag)
00218        << endl;
00219   };
00220   return os;
00221   
00222 }

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

Reimplemented from CandDigitList.

Definition at line 150 of file CandDeMuxDigitList.cxx.

References fAvgTimeOffset, fDeMuxDigitListFlag, fNumStrayPlanesU, fNumStrayPlanesV, fNumValidPlanesU, fNumValidPlanesV, CandDigitList::IsEquivalent(), CandBase::TestDisplayCandBanner(), and CandBase::TestEquality().

00151 {
00152   Bool_t result = true;
00153   if (!CandDigitList::IsEquivalent(rhs)) result = false;   // superclass
00154   TestDisplayCandBanner("CandDeMuxDigitList");
00155   const CandDeMuxDigitList* rCnd =
00156                            dynamic_cast<const CandDeMuxDigitList*>(rhs);
00157   if (rCnd == NULL) return false;
00158 
00159   result = TestEquality("fDeMuxDigitListFlag",
00160                                    this->fDeMuxDigitListFlag, 
00161                                    rCnd->fDeMuxDigitListFlag) && result;
00162   result = TestEquality("fNumValidPlanesU",
00163                                    this->fNumValidPlanesU, 
00164                                    rCnd->fNumValidPlanesU)    && result;
00165   result = TestEquality("fNumValidPlanesV",
00166                                    this->fNumValidPlanesV,
00167                                    rCnd->fNumValidPlanesV)    && result;
00168   result = TestEquality("fNumStrayPlanesU",
00169                                    this->fNumStrayPlanesU, 
00170                                    rCnd->fNumStrayPlanesU)    && result;
00171   result = TestEquality("fNumStrayPlanesV",
00172                                    this->fNumStrayPlanesV, 
00173                                    rCnd->fNumStrayPlanesV)    && result;
00174   result = TestEquality("fAvgTimeOffset",
00175                                    this->fAvgTimeOffset, 
00176                                    rCnd->fAvgTimeOffset)      && result;
00177 
00178   return result;
00179 }

CandDeMuxDigitListHandle CandDeMuxDigitList::MakeCandidate ( AlgHandle ah,
CandContext cx 
) [static]

Reimplemented from CandDigitList.

Definition at line 182 of file CandDeMuxDigitList.cxx.

References CandDeMuxDigitList().

Referenced by DeMuxDigitListModule::Reco().

00184 {
00185 
00186 //cdlh owns new CandDeMuxDigitList
00187   CandDeMuxDigitListHandle cdlh;
00188   new CandDeMuxDigitList(ah, cdlh, cx);  return cdlh;
00189 }


Friends And Related Function Documentation

friend class CandDeMuxDigitListHandle [friend]

Definition at line 26 of file CandDeMuxDigitList.h.

Referenced by CreateLocalHandle().


Member Data Documentation

Definition at line 55 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Definition at line 50 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Definition at line 53 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Definition at line 54 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Definition at line 51 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Definition at line 52 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().


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

Generated on 14 Dec 2017 for loon by  doxygen 1.6.1