Лучший способ хранения объектов TFile через rootpy

Я пытаюсь сохранить класс Python (или только члены) в файле ROOT (CERN, TFileчерез rootpy.

Я могу легко сделать это с помощью Tree и TreeModel но это работает только для базовых типов и не приводит к структуре, которую я ищу. Я также быстро взглянул на rootpy.io.pickler но это не позволяет осмотр с TBrowser (сбой).

Мне было интересно, если есть лучший способ. Что бы я хотел иметь

Мой файл:

  • Каталог моего выбора
    • каталог с названием моего объекта
    • основные типы объектов (int, float, string)
    • гистограммы (это легко)
    • другие сложные объекты

Как вы видите, это не может быть реализовано с Tree и я не знаю, как добавить основные типы в Directory, Есть идеи?

Я хотел бы избежать, если возможно, логического обхода сохранения параметров объекта в дереве и гистограмм непосредственно в одном и том же Directory,

1 ответ

Единственная идея, которая у меня есть, - создать TDirectory, который вы хотите, в своем TFile и добавить содержимое в этот каталог. Гистограммы просты. Основные типы могут храниться в дереве. Для других сложных объектов вы могли бы взглянуть на рассол. Сериализованный объект (т.е. pickle_string = pickle.dumps(Foo)) можно затем сохранить в дереве в виде строки, не прерывая проверку через TBrowser. Это работает без rootpy, просто используя PyROOT. Я надеюсь, что это может помочь.

Другие вопросы по тегам