00001 #include<TMuiClusterMapO.h>
00002 #include<PHKeyIterator.h>
00003 #include<PHConstKeyIterator.h>
00004 
00005 
00006 TMuiClusterMapO::TMuiClusterMapO() : _count(0) {;}
00007 
00008 TMuiClusterMapO::TMuiClusterMapO(PHKey::map_key_type map_key) : PHMap<PHKey::key_type, TMuiClusterO, TMuiClusterO_v2>(map_key), _count(0){;}
00009 
00010 
00011 TMuiClusterMapO::iterator TMuiClusterMapO::insert_new(UShort_t arm,
00012                                               UShort_t plane,
00013                                               UShort_t panel,
00014                                               UShort_t orientation
00015                                               )
00016 {
00017   
00018   
00019   UShort_t index = get_roll_count();
00020   
00021   
00022   
00023   TMuiKeyGen::key_type key = TMuiKeyGen::get_key(arm,
00024                                                  plane,
00025                                                  panel,
00026                                                  orientation,
00027                                                  index);
00028   
00029   
00030   Key full_key(get_map_key(),key);
00031   
00032   
00033   
00034   insert(full_key, new value_imp_type(full_key,
00035                                       arm,
00036                                       plane,
00037                                       panel,
00038                                       orientation,
00039                                       index));
00040   
00041   
00042   
00043   return find(full_key);
00044 }
00045 
00046 
00047 TMuiClusterMapO::iterator 
00048 TMuiClusterMapO::get(UShort_t arm)              
00049 {
00050   
00051   
00052   TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00053   
00054   
00055   Key lower(get_map_key(),range.first);
00056   Key upper(get_map_key(),range.second);
00057   return find(lower,upper);
00058 }
00059 
00060 
00061 TMuiClusterMapO::const_iterator 
00062 TMuiClusterMapO::get(UShort_t arm) const                
00063 {
00064   
00065   
00066   TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00067   
00068   
00069   Key lower(get_map_key(),range.first);
00070   Key upper(get_map_key(),range.second);
00071   return find(lower,upper);
00072 }
00073 
00074 TMuiClusterMapO::iterator
00075 TMuiClusterMapO::get(UShort_t arm,
00076                  UShort_t plane,
00077                  UShort_t panel,
00078                  UShort_t orientation)
00079 {
00080   
00081   
00082   TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm,
00083                                                           plane,
00084                                                           panel,
00085                                                           orientation
00086                                                           );
00087   
00088   
00089   Key lower(get_map_key(),range.first);
00090   Key upper(get_map_key(),range.second);
00091   return find(lower,upper);
00092 }
00093 
00094 
00095 TMuiClusterMapO::const_iterator
00096 TMuiClusterMapO::get(UShort_t arm,
00097                  UShort_t plane,
00098                  UShort_t panel,
00099                  UShort_t orientation) const
00100 {
00101   
00102   
00103 TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm,
00104                                                         plane,
00105                                                         panel,
00106                                                         orientation
00107                                                         );
00108   
00109   
00110   Key lower(get_map_key(),range.first);
00111   Key upper(get_map_key(),range.second);
00112   return find(lower,upper);
00113 }