00001 #include<TMuiHitMapO.h>
00002 #include<PHKeyIterator.h>
00003 #include<PHConstKeyIterator.h>
00004
00005
00006 TMuiHitMapO::TMuiHitMapO() : _count(0) {;}
00007
00008
00009 TMuiHitMapO::TMuiHitMapO(PHKey::map_key_type map_key) : PHMap<PHKey::key_type, TMuiHitO, TMuiHitO_v1>(map_key), _count(0){;}
00010
00011
00012 TMuiHitMapO::iterator TMuiHitMapO::insert_new(UShort_t arm,
00013 UShort_t plane,
00014 UShort_t panel,
00015 UShort_t orientation,
00016 UShort_t twopack
00017 )
00018 {
00019
00020
00021 UShort_t index = get_roll_count();
00022
00023
00024
00025 TMuiKeyGen::key_type key = TMuiKeyGen::get_key(arm,
00026 plane,
00027 panel,
00028 orientation,
00029 index);
00030
00031
00032 Key full_key(get_map_key(),key);
00033
00034
00035
00036 insert(full_key, new value_imp_type(full_key,
00037 arm,
00038 plane,
00039 panel,
00040 orientation,
00041 twopack,
00042 index));
00043
00044
00045
00046 return find(full_key);
00047 }
00048
00049 TMuiHitMapO::iterator
00050 TMuiHitMapO::insert_clone(const TMuiHitMapO::pointer hit_ptr)
00051 {
00052
00053
00054
00055 Key full_key(get_map_key(),hit_ptr->get()->get_key().get_obj_key());
00056
00057
00058
00059 insert(full_key, new value_imp_type(hit_ptr->get()));
00060
00061
00062
00063
00064 TMuiHitMapO::iterator hit_iter = find(full_key);
00065 hit_iter->get()->set_key(full_key);
00066
00067
00068
00069 return hit_iter;
00070 }
00071
00072 TMuiHitMapO::iterator
00073 TMuiHitMapO::get(UShort_t arm)
00074 {
00075
00076
00077 TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00078
00079
00080
00081 Key lower(get_map_key(),range.first);
00082 Key upper(get_map_key(),range.second);
00083 return find(lower,upper);
00084 }
00085
00086
00087 TMuiHitMapO::const_iterator
00088 TMuiHitMapO::get(UShort_t arm) const
00089 {
00090
00091
00092 TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00093
00094
00095
00096 Key lower(get_map_key(),range.first);
00097 Key upper(get_map_key(),range.second);
00098 return find(lower,upper);
00099 }
00100
00101 TMuiHitMapO::iterator
00102 TMuiHitMapO::get(UShort_t arm,
00103 UShort_t plane,
00104 UShort_t panel,
00105 UShort_t orientation)
00106 {
00107 TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm,
00108 plane,
00109 panel,
00110 orientation);
00111 Key lower(get_map_key(),range.first);
00112 Key upper(get_map_key(),range.second);
00113 return find(lower,upper);
00114 }
00115
00116
00117 TMuiHitMapO::const_iterator
00118 TMuiHitMapO::get(UShort_t arm,
00119 UShort_t plane,
00120 UShort_t panel,
00121 UShort_t orientation) const
00122 {
00123 TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm,
00124 plane,
00125 panel,
00126 orientation);
00127 Key lower(get_map_key(),range.first);
00128 Key upper(get_map_key(),range.second);
00129
00130 return find(lower,upper);
00131 }
00132
00133 TMuiHitMapO::iterator
00134 TMuiHitMapO::get(UShort_t arm,
00135 UShort_t plane,
00136 UShort_t panel,
00137 UShort_t orientation,
00138 UShort_t twopack)
00139 {
00140 TMuiKeyGen::key_type key = TMuiKeyGen::get_key(arm,
00141 plane,
00142 panel,
00143 orientation,
00144 twopack);
00145 Key full_key(get_map_key(), key);
00146 return find(full_key);
00147 }
00148
00149 TMuiHitMapO::const_iterator
00150 TMuiHitMapO::get(UShort_t arm,
00151 UShort_t plane,
00152 UShort_t panel,
00153 UShort_t orientation,
00154 UShort_t twopack) const
00155 {
00156 TMuiKeyGen::key_type key = TMuiKeyGen::get_key(arm,
00157 plane,
00158 panel,
00159 orientation,
00160 twopack);
00161 Key full_key(get_map_key(), key);
00162 return find(full_key);
00163 }
00164
00165
00166
00167
00168
00169
00170
00171