00001 #include<TMuiRoadO.h> 00002 #include<TDataType.h> 00003 #include<TMuiClusterMapO.h> 00004 #include<TMutTrackUtil.h> 00005 00006 ClassImp(TMuiRoadO) 00007 ClassImp(TMuiRoadO_v1) 00008 00009 TMuiRoadO_v1::TMuiRoadO_v1() : 00010 _arm(0), 00011 _index(0), 00012 _fit_par(), 00013 _depth(0), 00014 _nhit(0), 00015 _max_hit_plane(0), 00016 _road_quality(0.0), 00017 _freedom(0), 00018 _ghost_flag(0), 00019 _gapbit(0), 00020 _group(0), 00021 _golden(0) 00022 {;} 00023 00024 TMuiRoadO_v1::TMuiRoadO_v1(const Key& key, 00025 UShort_t arm, 00026 UShort_t index) : 00027 TMuiRoadO(key), 00028 _arm(arm), 00029 _index(index), 00030 _fit_par(), 00031 _depth(0), 00032 _nhit(0), 00033 _max_hit_plane(0), 00034 _road_quality(0.0), 00035 _freedom(0), 00036 _ghost_flag(0), 00037 _gapbit(0), 00038 _group(0), 00039 _golden(0) 00040 {;} 00041 00042 00043 TMuiRoadO_v1::TMuiRoadO_v1(const TMuiRoadO* base_ptr) : 00044 TMuiRoadO(*base_ptr), 00045 _arm(base_ptr->get_arm()), 00046 _index(base_ptr->get_index()), 00047 _fit_par(base_ptr->get_fit_par()), 00048 _depth(base_ptr->get_depth()), 00049 _nhit(base_ptr->get_nhit()), 00050 _max_hit_plane(base_ptr->get_max_hit_plane()), 00051 _road_quality(base_ptr->get_road_quality()), 00052 _freedom(base_ptr->get_freedom()), 00053 _ghost_flag(base_ptr->get_ghost_flag()), 00054 _gapbit(base_ptr->get_gapbit()), 00055 _group(base_ptr->get_group()), 00056 _golden(base_ptr->get_golden()) 00057 {;} 00058 00059 TMuiRoadO_v1::TMuiRoadO_v1(const TMuiRoadO& base_ref) : 00060 TMuiRoadO(base_ref), 00061 _arm(base_ref.get_arm()), 00062 _index(base_ref.get_index()), 00063 _fit_par(base_ref.get_fit_par()), 00064 _depth(base_ref.get_depth()), 00065 _nhit(base_ref.get_nhit()), 00066 _max_hit_plane(base_ref.get_max_hit_plane()), 00067 _road_quality(base_ref.get_road_quality()), 00068 _freedom(base_ref.get_freedom()), 00069 _ghost_flag(base_ref.get_ghost_flag()), 00070 _gapbit(base_ref.get_gapbit()), 00071 _group(base_ref.get_group()), 00072 _golden(base_ref.get_golden()) 00073 00074 {;} 00075 00076 PHPoint 00077 TMuiRoadO_v1::get_gap0_point() const { 00078 00079 float mini_z = 10000000.0; 00080 float mini_z_abs = 10000000.0; 00081 00082 TMuiClusterMapO::const_key_iterator clus_iter = get_associated<TMuiClusterO>(); 00083 while(TMuiClusterMapO::const_pointer clust_ptr = clus_iter.next()){ 00084 if(abs((clust_ptr->get()->get_centroidpos()).getZ())<mini_z_abs) { 00085 mini_z = (clust_ptr->get()->get_centroidpos()).getZ(); 00086 mini_z_abs = abs(mini_z); 00087 } 00088 } 00089 return TMutTrackUtil::linear_track_model(get_const_fitpar(), 00090 mini_z); 00091 } 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102