CandDeMuxDigitList Class Reference

#include <CandDeMuxDigitList.h>

Inheritance diagram for CandDeMuxDigitList:

CandDigitList CandBase CandRefCounted List of all members.

Public Types

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

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

typedef enum CandDeMuxDigitList::EDeMuxDigitListFlag CandDeMuxDigitList::DeMuxDigitListFlag_t


Member Enumeration Documentation

enum CandDeMuxDigitList::EDeMuxDigitListFlag

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   )  [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, CandDigitList::FormatToOStream(), 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

Float_t CandDeMuxDigitList::fAvgTimeOffset [protected]

Definition at line 55 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Int_t CandDeMuxDigitList::fDeMuxDigitListFlag [protected]

Definition at line 50 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Int_t CandDeMuxDigitList::fNumStrayPlanesU [protected]

Definition at line 53 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Int_t CandDeMuxDigitList::fNumStrayPlanesV [protected]

Definition at line 54 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Int_t CandDeMuxDigitList::fNumValidPlanesU [protected]

Definition at line 51 of file CandDeMuxDigitList.h.

Referenced by FormatToOStream(), and IsEquivalent().

Int_t CandDeMuxDigitList::fNumValidPlanesV [protected]

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 Mon Aug 11 01:05:35 2014 for loon by  doxygen 1.4.7