Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:19:55

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef GLOBALVERTEX_GLOBALVERTEXMAPV1_H
0004 #define GLOBALVERTEX_GLOBALVERTEXMAPV1_H
0005 
0006 #include "GlobalVertexMap.h"
0007 
0008 #include "GlobalVertex.h"
0009 
0010 #include <cstddef>  // for size_t
0011 #include <iostream>
0012 #include <map>
0013 
0014 class GlobalVertexMapv1 : public GlobalVertexMap
0015 {
0016  public:
0017   GlobalVertexMapv1() = default;
0018   ~GlobalVertexMapv1() override;
0019 
0020   void identify(std::ostream& os = std::cout) const override;
0021   void Reset() override { clear(); }
0022   int isValid() const override { return _map.size(); }
0023   PHObject* CloneMe() const override { return new GlobalVertexMapv1(*this); }
0024   void CopyTo(GlobalVertexMap*) override;
0025 
0026   bool empty() const override { return _map.empty(); }
0027   size_t size() const override { return _map.size(); }
0028   size_t count(unsigned int idkey) const override { return _map.count(idkey); }
0029   // cppcheck-suppress virtualCallInConstructor
0030   void clear() override;
0031 
0032   const GlobalVertex* get(unsigned int idkey) const override;
0033   GlobalVertex* get(unsigned int idkey) override;
0034   std::vector<GlobalVertex*> get_gvtxs_with_type(std::vector<GlobalVertex::VTXTYPE> types) override;
0035   GlobalVertex* insert(GlobalVertex* vertex) override;
0036   size_t erase(unsigned int idkey) override
0037   {
0038     delete _map[idkey];
0039     return _map.erase(idkey);
0040   }
0041 
0042   ConstIter begin() const override { return _map.begin(); }
0043   ConstIter find(unsigned int idkey) const override { return _map.find(idkey); }
0044   ConstIter end() const override { return _map.end(); }
0045 
0046   Iter begin() override { return _map.begin(); }
0047   Iter find(unsigned int idkey) override { return _map.find(idkey); }
0048   Iter end() override { return _map.end(); }
0049 
0050  private:
0051   std::map<unsigned int, GlobalVertex*> _map;
0052 
0053   ClassDefOverride(GlobalVertexMapv1, 1);
0054 };
0055 
0056 #endif  // G4VERTEX_GLOBALVERTEXMAPv1_H