File indexing completed on 2025-10-16 08:21:02
0001 #ifndef TRUTHNEUTRALMESONCONTAINER_H
0002 #define TRUTHNEUTRALMESONCONTAINER_H
0003
0004 #include "TruthNeutralMeson.h"
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <iostream>
0009 #include <map>
0010 #include <utility>
0011
0012 class TruthNeutralMesonContainer : public PHObject
0013 {
0014 public:
0015 using Map = std::map<unsigned int, TruthNeutralMeson*>;
0016 using Iterator = Map::iterator;
0017 using ConstIterator = Map::const_iterator;
0018 using Range = std::pair<Iterator, Iterator>;
0019 using ConstRange = std::pair<ConstIterator, ConstIterator>;
0020
0021 TruthNeutralMesonContainer() = default;
0022 ~TruthNeutralMesonContainer() override = default;
0023
0024 void Reset() override;
0025 int isValid() const override { return 1; }
0026 void identify(std::ostream& os = std::cout) const override;
0027
0028 ConstIterator AddMeson(TruthNeutralMeson* meson);
0029
0030 TruthNeutralMeson* getMeson(unsigned int id);
0031 const TruthNeutralMeson* getMeson(unsigned int id) const;
0032
0033 ConstRange getMesons() const;
0034 Range getMesons();
0035
0036 const Map& getMesonMap() const { return _mesons; }
0037 Map& getMesonMap() { return _mesons; }
0038
0039 unsigned int size() const { return _mesons.size(); }
0040
0041 private:
0042 Map _mesons{};
0043
0044 ClassDefOverride(TruthNeutralMesonContainer, 1)
0045 };
0046
0047 #endif