00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00014 #ifndef CANDDEMUXDIGITLIST_H
00015 #define CANDDEMUXDIGITLIST_H
00016
00017 #include "CandDigit/CandDigitList.h"
00018
00019 class AlgHandle;
00020 class CandContext;
00021 class CandDeMuxDigitListHandle;
00022
00023 class CandDeMuxDigitList : public CandDigitList
00024 {
00025
00026 friend class CandDeMuxDigitListHandle;
00027
00028 public:
00029 typedef enum EDeMuxDigitListFlag {
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;
00039
00040 static CandDeMuxDigitListHandle MakeCandidate(AlgHandle &ah,
00041 CandContext &cx);
00042 CandDeMuxDigitList();
00043
00044 virtual std::ostream& FormatToOStream(std::ostream& os,
00045 Option_t *option) const;
00046
00047 static const char* AsString(DeMuxDigitListFlag_t);
00048
00049 protected:
00050 Int_t fDeMuxDigitListFlag;
00051 Int_t fNumValidPlanesU;
00052 Int_t fNumValidPlanesV;
00053 Int_t fNumStrayPlanesU;
00054 Int_t fNumStrayPlanesV;
00055 Float_t fAvgTimeOffset;
00056
00057 CandDeMuxDigitList(AlgHandle &ah);
00058 CandDeMuxDigitList(AlgHandle &ah, CandHandle &ch, CandContext &cx);
00059 CandDeMuxDigitList(const CandDeMuxDigitList &rhs);
00060 virtual ~CandDeMuxDigitList();
00061 virtual void CreateLocalHandle();
00062 virtual CandDeMuxDigitList *Dup() const;
00063 virtual Bool_t IsEquivalent(const TObject *rhs) const;
00064
00065 ClassDef(CandDeMuxDigitList,3)
00066
00067 };
00068
00069 #endif // CANDDEMUXDIGITLIST_H