Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:05

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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   //  std::pair<std::map<int, PHParameters *>::const_iterator,  std::map<int, PHParameters *>::const_iterator> GetAllParameters() {return std::make_pair(parametermap.begin(),parametermap.end());}
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  //  PHPARAMETER_PHPARAMETERSCONTAINER_H