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

CandDeMuxDigitHandle.cxx

Go to the documentation of this file.
00001 
00002 // $Id: CandDeMuxDigitHandle.cxx,v 1.4 2003/06/20 20:57:09 rhatcher Exp $
00003 //
00004 // CandDeMuxDigitHandle.cxx
00005 //
00006 // CandDeMuxDigitHandle is the specialized access handle to
00007 // CandDeMuxDigit.
00008 //
00009 // Each concrete CandHandle must define a DupHandle function.
00010 //
00011 // Author:  G. Irwin 5/2002
00013 
00014 #include <cassert>
00015 #include <iostream>
00016 
00017 #include "CandDigit/CandDeMuxDigitHandle.h"
00018 #include "MessageService/MsgService.h"
00019 
00020 ClassImp(CandDeMuxDigitHandle)
00021 
00022 //______________________________________________________________________
00023 CVSID("$Id: CandDeMuxDigitHandle.cxx,v 1.4 2003/06/20 20:57:09 rhatcher Exp $");
00024 
00025 //______________________________________________________________________
00026 CandDeMuxDigitHandle::CandDeMuxDigitHandle()
00027 {
00028 }
00029 
00030 //______________________________________________________________________
00031 CandDeMuxDigitHandle::CandDeMuxDigitHandle(const
00032                                            CandDeMuxDigitHandle &cddh) :
00033   CandDigitHandle(cddh)
00034 {
00035 }
00036 
00037 //______________________________________________________________________
00038 CandDeMuxDigitHandle::CandDeMuxDigitHandle(CandDeMuxDigit *cdd) :
00039   CandDigitHandle(cdd)
00040 {
00041 }
00042 
00043 //______________________________________________________________________
00044 CandDeMuxDigitHandle::~CandDeMuxDigitHandle()
00045 {
00046 }
00047 
00048 //______________________________________________________________________
00049 CandDeMuxDigitHandle CandDeMuxDigitHandle::DupCandFromBase(
00050                                              const CandDigitHandle &cdh)
00051 {
00052 // Static factory method for dup'ing Candidate from its own base class.
00053 // Base copy ctor dups owned pointers, but defers copying Daughter List.
00054 // Daughter List copy is made in the derived class Dup() function.
00055 // This is because base class copy constructor hasn't yet created
00056 // fLocalHandle with a CandHandle* of the full derived type.
00057    CandDeMuxDigit *cb =
00058       new CandDeMuxDigit(*((CandDigit *) cdh.GetCandBase())); // Special
00059    cb->CreateLocalHandle();  // Initializes fLocalHandle after copy-ctor
00060    TIter iterdau = cdh.GetDaughterIterator();
00061    CandHandle *dau;
00062    while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau);
00063    return CandDeMuxDigitHandle(cb);
00064 }
00065 
00066 //______________________________________________________________________
00067 CandDeMuxDigitHandle *CandDeMuxDigitHandle::DupHandle() const
00068 {
00069    return (new CandDeMuxDigitHandle(*this));
00070 }
00071 
00072 //______________________________________________________________________
00073 Int_t CandDeMuxDigitHandle::GetDeMuxDigitFlagWord() const
00074 {
00075    return ((CandDeMuxDigit *) GetCandBase())->fDeMuxDigitFlag;
00076 }
00077 
00078 //______________________________________________________________________
00079 void CandDeMuxDigitHandle::SetDeMuxDigitFlagBit(
00080                                 CandDeMuxDigit::DeMuxDigitFlag_t ddflag)
00081 {
00082 
00083 // Turn indicated bit(s) on
00084    ((CandDeMuxDigit *) GetOwnedCandBase())->fDeMuxDigitFlag =
00085            ((CandDeMuxDigit *) GetCandBase())->fDeMuxDigitFlag | ddflag;
00086 }
00087 
00088 //______________________________________________________________________
00089 void CandDeMuxDigitHandle::SetDeMuxDigitFlagWord(Int_t ddflag)
00090 {
00091 
00092 // Set whole word
00093    ((CandDeMuxDigit *) GetOwnedCandBase())->fDeMuxDigitFlag = ddflag;
00094 }
00095 
00096 //______________________________________________________________________
00097 void CandDeMuxDigitHandle::UnSetDeMuxDigitFlagBit(
00098                                 CandDeMuxDigit::DeMuxDigitFlag_t ddflag)
00099 {
00100 
00101 // Turn indicated bit(s) off
00102      ((CandDeMuxDigit *) GetOwnedCandBase())->fDeMuxDigitFlag =
00103           ((CandDeMuxDigit *) GetCandBase())->fDeMuxDigitFlag & ~ddflag;
00104 }
00105 
00106 //______________________________________________________________________
00107 void CandDeMuxDigitHandle::Trace(const char *c) const
00108 {
00109   MSG("Cand", Msg::kDebug)
00110        << "**********Begin CandDeMuxDigitHandle::Trace(\"" << c << "\")"
00111        << endl
00112           << "Information from CandDeMuxDigitHandle's CandDigitHandle: "
00113           << endl;
00114   CandDigitHandle::Trace(c);
00115   MSG("Cand", Msg::kDebug)
00116          << "**********End CandDeMuxDigitHandle::Trace(\"" << c << "\")"
00117          << endl;
00118 }
00119 
00120 XXXITRIMP(CandDeMuxDigitHandle)

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