Back to home page

sPhenix code displayed by LXR

 
 

    


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