Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

TMuiHitMapO.cxx

Go to the documentation of this file.
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   // Get the new index from the roll count;
00020   //
00021   UShort_t index = get_roll_count();
00022   
00023   // get the key for the new cluster
00024   //
00025   TMuiKeyGen::key_type key = TMuiKeyGen::get_key(arm,
00026                                                  plane,
00027                                                  panel,
00028                                                  orientation,
00029                                                  index);
00030   // full key
00031   //
00032   Key full_key(get_map_key(),key);
00033   
00034   // insert cluster
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   // okay not so efficient 
00045   //
00046   return find(full_key);
00047 }
00048 
00049 TMuiHitMapO::iterator 
00050 TMuiHitMapO::insert_clone(const TMuiHitMapO::pointer hit_ptr)
00051 {
00052   // Full key is object key from to be cloned object and
00053   // map key from this map.
00054   //
00055   Key full_key(get_map_key(),hit_ptr->get()->get_key().get_obj_key());
00056   
00057   // Construct cloned from input hit
00058   //
00059   insert(full_key, new value_imp_type(hit_ptr->get()));
00060   
00061   // Cloned object still has the wrong map key so we
00062   // we fix that.
00063   //
00064   TMuiHitMapO::iterator hit_iter = find(full_key);
00065   hit_iter->get()->set_key(full_key);
00066   
00067   // Return the cloned object
00068   //
00069   return hit_iter;
00070 }
00071 
00072 TMuiHitMapO::iterator 
00073 TMuiHitMapO::get(UShort_t arm)          
00074 {
00075   // Range 
00076   //
00077   TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00078 
00079   // return the iterator with specified range
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   // Range 
00091   //
00092   TMuiKeyGen::key_range range = TMuiKeyGen::get_key_range(arm);
00093 
00094   // return the iterator with specified range
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 

MUIOO: PHENIX Muon Identifier Analysis Framework. Documentation by doxygen
Last modified: