00001 #ifndef DTSEGMENTEXTENDEDCAND_H 00002 #define DTSEGMENTEXTENDEDCAND_H 00003 00017 /* Base Class Headers */ 00018 #include "RecoLocalMuon/DTSegment/src/DTSegmentCand.h" 00019 00020 /* Collaborating Class Declarations */ 00021 #include "DataFormats/DTRecHit/interface/DTSLRecCluster.h" 00022 00023 /* C++ Headers */ 00024 #include <vector> 00025 00026 /* ====================================================================== */ 00027 00028 /* Class DTSegmentExtendedCand Interface */ 00029 00030 class DTSegmentExtendedCand : public DTSegmentCand { 00031 00032 public: 00033 struct DTSLRecClusterForFit ; 00034 00035 /* Constructor */ 00036 DTSegmentExtendedCand(DTSegmentCand* cand ): DTSegmentCand(*cand), 00037 theClus(std::vector<DTSLRecClusterForFit>()) { 00038 } 00039 00040 /* Destructor */ 00041 virtual ~DTSegmentExtendedCand() {} 00042 00043 /* Operations */ 00044 void addClus(const DTSegmentExtendedCand::DTSLRecClusterForFit& clus) { 00045 theClus.push_back(clus); 00046 } 00047 00048 std::vector<DTSegmentExtendedCand::DTSLRecClusterForFit> clusters() const { 00049 return theClus; 00050 } 00051 00052 //DTSegmentCand* cand() const { return theCand; } 00053 00054 bool isCompatible(const DTSegmentExtendedCand::DTSLRecClusterForFit& clus) ; 00055 00056 virtual unsigned int nHits() const ; 00057 00058 virtual bool good() const ; 00059 00060 struct DTSLRecClusterForFit { 00061 public: 00062 DTSLRecClusterForFit(const DTSLRecCluster& c, 00063 const LocalPoint& p, 00064 const LocalError& e) : clus(c), pos(p), err(e) {} 00065 DTSLRecCluster clus; 00066 LocalPoint pos; 00067 LocalError err; 00068 }; 00069 00070 private: 00071 //DTSegmentCand* theCand; 00072 std::vector<DTSLRecClusterForFit> theClus; 00073 //double theChi2; 00074 00075 protected: 00076 00077 }; 00078 #endif // DTSEGMENTEXTENDEDCAND_H 00079