00001
00002
00003
00004
00005
00006 #ifndef _TMUICLUSTERO_H_
00007 #define _TMUICLUSTERO_H_
00008
00009
00010
00011 #include<TDataType.h>
00012 #include<PHKey.hh>
00013 #include<PHException.h>
00014 #include<MUIOO.h>
00015 #include<PHPoint.h>
00016 #include<PHLine.h>
00017
00018
00020
00021
00033 class TMuiClusterO : public PHKey {
00034
00035 public:
00036
00038
00039
00041 TMuiClusterO(){;}
00042
00044 virtual ~TMuiClusterO(){;}
00045
00047 TMuiClusterO(const Key& key) :
00048 PHKey(key){;}
00049
00051 TMuiClusterO(const Key&,
00052 UShort_t arm,
00053 UShort_t plane,
00054 UShort_t panel,
00055 UShort_t orientation,
00056 UShort_t index){;}
00057
00059
00060
00062 virtual void set_size(UShort_t size) {}
00064 virtual void set_centroidpos(const PHPoint& point) {}
00066 virtual void set_centroidsigma(const PHPoint& point) {}
00067
00069 virtual UShort_t get_size() const {return 0;}
00071 virtual PHPoint get_centroidpos() const {return PHPoint();}
00073 virtual PHPoint get_centroidsigma() const {return PHPoint();}
00074
00076 virtual void set_coord(const PHLine& line) {}
00078 virtual void set_coord_end(const PHPoint& point) {}
00080 virtual void set_coord_begin(const PHPoint& point) {}
00081
00083 virtual PHLine get_coord() const{return PHLine();}
00085 virtual PHPoint get_coord_end() const { return PHPoint();}
00087 virtual PHPoint get_coord_begin() const { return PHPoint();}
00088
00090
00092
00093
00094 virtual void set_arm( UShort_t arm) {}
00096 virtual void set_plane( UShort_t plane) {}
00098 virtual void set_panel( UShort_t panel) {}
00100 virtual void set_orientation( UShort_t orientation) {}
00101
00103 virtual UShort_t get_arm() const {return 0;}
00105 virtual UShort_t get_plane() const {return 0;}
00107 virtual UShort_t get_panel() const {return 0;}
00109 virtual UShort_t get_orientation() const {return 0;}
00111 virtual UShort_t get_index() const {return 0;}
00112
00114
00116
00117
00118 virtual void print(std::ostream& os = std::cout) const {}
00119
00121
00122 ClassDef(TMuiClusterO,1)
00123
00124 };
00125
00127 class TMuiClusterO_v1 : public TMuiClusterO {
00128
00129 public:
00130
00131 TMuiClusterO_v1();
00132
00133 virtual ~TMuiClusterO_v1(){;}
00134
00135 TMuiClusterO_v1(const Key&,
00136 UShort_t arm,
00137 UShort_t plane,
00138 UShort_t panel,
00139 UShort_t orientation,
00140 UShort_t index);
00141
00142 TMuiClusterO_v1(const TMuiClusterO*);
00143 TMuiClusterO_v1(const TMuiClusterO&);
00144
00145 void set_arm( UShort_t arm) { _arm=arm;}
00146 void set_plane( UShort_t plane) { _plane=plane;}
00147 void set_panel( UShort_t panel) { _panel=panel;}
00148 void set_orientation( UShort_t orientation) { _orientation=orientation;}
00149 void set_index( UShort_t index) { _index=index;}
00150
00151 UShort_t get_arm() const {return _arm;}
00152 UShort_t get_plane() const {return _plane;}
00153 UShort_t get_panel() const {return _panel;}
00154 UShort_t get_orientation() const {return _orientation;}
00155 UShort_t get_index() const {return _index;}
00156
00157 void set_size(UShort_t size) {_size=size;}
00158 void set_centroidpos(const PHPoint& point);
00159 void set_centroidsigma(const PHPoint& point);
00160
00161 UShort_t get_size() const {return 0;}
00162 PHPoint get_centroidpos() const;
00163 PHPoint get_centroidsigma() const;
00164
00165 void print(std::ostream& os = std::cout) const {
00166 MUIOO::PRINT(os,GetName());
00167 os << " index: " << _index << std::endl;
00168 os << " arm: " << _arm << std::endl;
00169 os << " plane: " << _plane << std::endl;
00170 os << " panel: " << _panel << std::endl;
00171 os << " orientation: " << _orientation << std::endl;
00172 os << " centroidpos: (" << _centroidpos[0] << ","
00173 << _centroidpos[1] << ","
00174 << _centroidpos[2] <<")" << std::endl;
00175 MUIOO::PRINT(os,"**");
00176 }
00177
00178 private:
00179
00180 UShort_t _arm;
00181 UShort_t _plane;
00182 UShort_t _panel;
00183 UShort_t _orientation;
00184 UShort_t _size;
00185 UShort_t _index;
00186
00187 enum {POINT_SIZE=3};
00188 double _centroidpos[POINT_SIZE];
00189 double _centroidsigma[POINT_SIZE];
00190
00191 ClassDef(TMuiClusterO_v1,1)
00192 };
00193
00195 class TMuiClusterO_v2 : public TMuiClusterO {
00196
00197 public:
00198
00199 TMuiClusterO_v2();
00200
00201 virtual ~TMuiClusterO_v2(){;}
00202
00203 TMuiClusterO_v2(const Key&,
00204 UShort_t arm,
00205 UShort_t plane,
00206 UShort_t panel,
00207 UShort_t orientation,
00208 UShort_t index);
00209
00210 TMuiClusterO_v2(const TMuiClusterO*);
00211 TMuiClusterO_v2(const TMuiClusterO&);
00212
00213 void set_arm( UShort_t arm) { _arm=arm;}
00214 void set_plane( UShort_t plane) { _plane=plane;}
00215 void set_panel( UShort_t panel) { _panel=panel;}
00216 void set_orientation( UShort_t orientation) { _orientation=orientation;}
00217 void set_index( UShort_t index) { _index=index;}
00218
00219 UShort_t get_arm() const {return _arm;}
00220 UShort_t get_plane() const {return _plane;}
00221 UShort_t get_panel() const {return _panel;}
00222 UShort_t get_orientation() const {return _orientation;}
00223 UShort_t get_index() const {return _index;}
00224
00225 void set_size(UShort_t size) {_size=size;}
00226 void set_centroidpos(const PHPoint& point);
00227 void set_centroidsigma(const PHPoint& point);
00228
00229 UShort_t get_size() const {return 0;}
00230 PHPoint get_centroidpos() const;
00231 PHPoint get_centroidsigma() const;
00232
00233 void set_coord(const PHLine& line);
00234 void set_coord_end(const PHPoint& point);
00235 void set_coord_begin(const PHPoint& point);
00236
00237 PHLine get_coord() const;
00238 PHPoint get_coord_end() const;
00239 PHPoint get_coord_begin() const;
00240
00241 void print(std::ostream& os = std::cout) const {
00242 MUIOO::PRINT(os,GetName());
00243 os << " index: " << _index << std::endl;
00244 os << " arm: " << _arm << std::endl;
00245 os << " plane: " << _plane << std::endl;
00246 os << " panel: " << _panel << std::endl;
00247 os << " orientation: " << _orientation << std::endl;
00248 os << " centroidpos: (" << _centroidpos[0] << ","
00249 << _centroidpos[1] << ","
00250 << _centroidpos[2] <<")" << std::endl;
00251 os << " centroidsigma: (" << _centroidsigma[0] << ","
00252 << _centroidsigma[1] << ","
00253 << _centroidsigma[2] <<")" << std::endl;
00254 os << " x1: " << _point_1[0] << " y1: " << _point_1[1]
00255 << " z1: " << _point_1[2] << std::endl;
00256 os << " x2: " << _point_2[0] << " y2: " << _point_2[1]
00257 << " z2: " << _point_2[2] << std::endl;
00258 MUIOO::PRINT(os,"**");
00259 }
00260
00261 private:
00262
00263 UShort_t _arm;
00264 UShort_t _plane;
00265 UShort_t _panel;
00266 UShort_t _orientation;
00267 UShort_t _size;
00268 UShort_t _index;
00269
00270 enum {POINT_SIZE=3};
00271 double _centroidpos[POINT_SIZE];
00272 double _centroidsigma[POINT_SIZE];
00273 double _point_1[POINT_SIZE];
00274 double _point_2[POINT_SIZE];
00275
00276 ClassDef(TMuiClusterO_v2,1)
00277 };
00278
00279 #endif