00001 00002 // $Id: CandDeMuxDigit.h,v 1.7 2006/04/07 18:15:17 kordosky Exp $ 00003 // 00004 // CandDeMuxDigit.h 00005 // 00006 // Concrete CandDeMuxDigit class descended from CandDigit. 00007 // CandBase must grant friendship to class CandRefer. 00008 // 00009 // Each concrete CandBase must define a Dup function. 00010 // 00011 // Author: G. Irwin 1/2000 00013 00014 #ifndef CANDDEMUXDIGIT_H 00015 #define CANDDEMUXDIGIT_H 00016 00017 #include "CandDigit/CandDigit.h" 00018 00019 class AlgHandle; 00020 class CandContext; 00021 class CandDeMuxDigitHandle; 00022 00023 class CandDeMuxDigit : public CandDigit 00024 { 00025 00026 friend class CandDeMuxDigitHandle; 00027 00028 public: 00029 typedef enum EDeMuxDigitFlag { 00030 kDeMuxOK = 0x00, 00031 kXTalk = 0x01, 00032 kLowSignal = 0x02 00033 } DeMuxDigitFlag_t; 00034 00035 static 00036 CandDeMuxDigitHandle MakeCandidate(AlgHandle &ah, CandContext &cx); 00037 00038 CandDeMuxDigit(); // Public for I/O 00039 00040 virtual std::ostream& FormatToOStream(std::ostream& os, 00041 Option_t *option="") const; 00042 00043 static const char* AsString(DeMuxDigitFlag_t); 00044 00045 protected: 00046 Int_t fDeMuxDigitFlag; // DeMuxDigit quality flag enum-bit word 00047 00048 CandDeMuxDigit(AlgHandle &ah); 00049 CandDeMuxDigit(AlgHandle &ah, CandHandle &ch, CandContext &cx); 00050 CandDeMuxDigit(const CandDeMuxDigit &rhs); 00051 CandDeMuxDigit(const CandDigit &rhs); // Special copy constructor 00052 virtual ~CandDeMuxDigit(); 00053 virtual void CreateLocalHandle(); 00054 virtual CandDeMuxDigit *Dup() const; 00055 virtual Bool_t IsEquivalent(const TObject *rhs) const; 00056 00057 ClassDef(CandDeMuxDigit,1) // Concrete DeMuxDigit Candidate Class 00058 00059 }; 00060 00061 #endif // CANDDEMUXDIGIT_H
1.3.9.1