File indexing completed on 2025-08-05 08:16:05
0001
0002
0003 #ifndef PHPARAMETER_PHPARAMETERSCONTAINER_H
0004 #define PHPARAMETER_PHPARAMETERSCONTAINER_H
0005
0006 #include <phool/PHObject.h>
0007
0008 #include <map>
0009 #include <string>
0010 #include <utility>
0011
0012 class PHParameters;
0013 class PdbParameterMapContainer;
0014 class PHCompositeNode;
0015
0016 class PHParametersContainer : public PHObject
0017 {
0018 public:
0019 typedef std::map<int, PHParameters *> Map;
0020 typedef Map::iterator Iterator;
0021 typedef Map::const_iterator ConstIterator;
0022 typedef std::pair<Iterator, Iterator> Range;
0023 typedef std::pair<ConstIterator, ConstIterator> ConstRange;
0024
0025 explicit PHParametersContainer(const std::string &name = "NONE");
0026 ~PHParametersContainer() override;
0027
0028 void AddPHParameters(const int detid, PHParameters *params);
0029 const PHParameters *GetParameters(const int detid) const;
0030 PHParameters *GetParametersToModify(const int detid);
0031 int WriteToFile(const std::string &extension, const std::string &dir);
0032
0033 void set_name(const std::string &name) { superdetectorname = name; }
0034 const std::string &Name() const { return superdetectorname; }
0035
0036 ConstRange GetAllParameters() const { return std::make_pair(parametermap.begin(), parametermap.end()); }
0037 void Print(Option_t *option = "") const override;
0038 void SaveToNodeTree(PHCompositeNode *topNode, const std::string &nodename);
0039 void UpdateNodeTree(PHCompositeNode *topNode, const std::string &nodename);
0040 int ExistDetid(const int detid) const;
0041 void clear() { parametermap.clear(); }
0042 void FillFrom(const PdbParameterMapContainer *saveparamcontainer);
0043 void CreateAndFillFrom(const PdbParameterMapContainer *saveparamcontainer, const std::string &name);
0044
0045 private:
0046 void CopyToPdbParameterMapContainer(PdbParameterMapContainer *myparm);
0047 void UpdatePdbParameterMapContainer(PdbParameterMapContainer *myparm);
0048 std::string superdetectorname;
0049 std::map<int, PHParameters *> parametermap;
0050 };
0051
0052 #endif