00001 #ifndef Cluster_h 00002 #define Cluster_h 1 00003 00004 #include "LHCbID.h" 00005 #include "DetectorElement.h" 00006 00007 00008 // #include "HepVector.h" 00009 // #include "HepSymMatrix.h" 00010 00011 00013 class Cluster { 00014 public: 00015 00016 enum ClusterType {RVelo,PhiVelo,TT,ST,OT}; 00017 00018 protected: 00019 00021 ClusterType m_type; 00022 00024 double m_measurement; 00025 00027 double m_resolution; 00028 00030 // [optional] we want to have a double only?, is enought? 00031 // HepVector m_measurement; 00032 00035 // HepSymMatrix m_resoludion; 00036 00038 std::vector<LHCbID> m_ids; 00039 00041 // DetectorElement* m_detElement; 00042 00043 public: 00044 00046 Cluster() {} 00047 00049 virtual ~Cluster() {} 00050 00052 void setType(ClusterType type) 00053 {m_type = type;} 00054 00056 ClusterType type() const 00057 {return m_type;} 00058 00060 void setMeasurement(double meas) 00061 {m_measurement = meas;} 00062 00064 double measurement() const 00065 {return m_measurement;} 00066 00068 void setMeasurementError(double error) 00069 {m_error = error;} 00070 00072 double measurementError() const 00073 {return m_error;} 00074 00076 void setLHCbIDs(const std::vector<LHCbID>& ids) 00077 {m_ids = ids;} 00078 00080 std::vector<LHCbID>& ids() 00081 {return m_ids;} 00082 00084 const std::vector<LHCbID>& ids() const 00085 {return m_ids;} 00086 00088 00089 }; 00090 #endif 00091