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