File indexing completed on 2025-08-03 08:16:35
0001 #ifndef PHHEPMC_PHHEPMCGENEVENTMAP_H
0002 #define PHHEPMC_PHHEPMCGENEVENTMAP_H
0003
0004 #include "PHHepMCGenEvent.h"
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <cstddef> // for size_t
0009 #include <iostream> // for cout, ostream
0010 #include <map>
0011
0012
0013
0014
0015
0016
0017 class PHHepMCGenEventMap : public PHObject
0018 {
0019 public:
0020
0021
0022
0023
0024 typedef std::map<int, PHHepMCGenEvent*> HepMCGenEventMap;
0025 typedef std::map<int, PHHepMCGenEvent*>::const_iterator ConstIter;
0026 typedef std::map<int, PHHepMCGenEvent*>::iterator Iter;
0027 typedef std::map<int, PHHepMCGenEvent*>::const_reverse_iterator ConstReverseIter;
0028 typedef std::map<int, PHHepMCGenEvent*>::reverse_iterator ReverseIter;
0029
0030 PHHepMCGenEventMap() = default;
0031 PHHepMCGenEventMap(const PHHepMCGenEventMap& eventmap);
0032 PHHepMCGenEventMap& operator=(const PHHepMCGenEventMap& eventmap);
0033
0034 ~PHHepMCGenEventMap() override;
0035
0036 void identify(std::ostream& os = std::cout) const override;
0037
0038 void Reset() override;
0039 int isValid() const override { return 1; }
0040 PHHepMCGenEventMap* CloneMe() const override { return new PHHepMCGenEventMap(*this); }
0041
0042 bool empty() const { return _map.empty(); }
0043 size_t size() const { return _map.size(); }
0044 size_t count(int idkey) const { return _map.count(idkey); }
0045 void clear() { Reset(); }
0046
0047 const PHHepMCGenEvent* get(int idkey) const;
0048 PHHepMCGenEvent* get(int idkey);
0049
0050
0051 PHHepMCGenEvent* insert(const PHHepMCGenEvent* event) { return insert_active_event(event); }
0052
0053 PHHepMCGenEvent* insert_active_event(const PHHepMCGenEvent* event = nullptr);
0054
0055 PHHepMCGenEvent* insert_background_event(const PHHepMCGenEvent* event = nullptr);
0056
0057 PHHepMCGenEvent* insert_event(const int embedding_id, const PHHepMCGenEvent* event = nullptr);
0058
0059 size_t erase(int idkey)
0060 {
0061 delete _map[idkey];
0062 return _map.erase(idkey);
0063 }
0064
0065
0066 ConstIter find(unsigned int idkey) const { return _map.find(idkey); }
0067 Iter find(int idkey) { return _map.find(idkey); }
0068
0069 ConstIter begin() const { return _map.begin(); }
0070 ConstIter end() const { return _map.end(); }
0071 Iter begin() { return _map.begin(); }
0072 Iter end() { return _map.end(); }
0073
0074 ConstReverseIter rbegin() const { return _map.rbegin(); }
0075 ConstReverseIter rend() const { return _map.rend(); }
0076 ReverseIter rbegin() { return _map.rbegin(); }
0077 ReverseIter rend() { return _map.rend(); }
0078
0079
0080 const HepMCGenEventMap& get_map() const { return _map; }
0081 HepMCGenEventMap& get_map() { return _map; }
0082
0083 private:
0084 HepMCGenEventMap _map;
0085
0086 ClassDefOverride(PHHepMCGenEventMap, 4);
0087 };
0088
0089 #endif