WTools
Набор инструментов, служащий базой для разработки различных программ обработки данных.
WROOTStyle
Инструмент, упрощающий создание однотипных с точки зрения оформления гистограмм и окон.
Пример использования:
WROOTStyle hist_att();
hist_att.SetDefaultPreset(WROOTStyle::ALL);
TH1I histogram;
hist_att.ApplyAtt(&histogram);
Если не применялись изменения аспекта, то они останутся такими же, как и в ROOT. Есть встроенные настройки. Загрузка через SetDefaultPreset(WROOTStyle::ALL). Также можно получить доступ через WROOTStyle::Defaults::<parameter>.
SefDefaultPreset(opt)
Входной параметр - что нужно инициализировать при старте. Имеющиеся варианты инициализации:
ALL - всё,
FONT - шрифты
FILL - заливка
LINE - линии
OFFSET - отступы заголовков
PAD - размер плитки в окне
ApplyAtt(<объект>)
Применение изменённых параметров к объекту. Можно передать TH1*, TH2*, TH3*, TStack*, TPad*, TLegend*, TLatex*.
SetFill()
Параметры заливки.
SetFont()
Параметры шрифта подписей осей.
SetPad()
Параметры панели (в окне).
SetLine()
Параметры описывающей линии гистограмм.
SetTitleOffset()
Параметры отступа подписей осей.
WRun
Фреймворк, реализующий логику для чтения/записи событий в .root файл.
Подходит для FERSRun и LRun с доработками на уровне traits.
Open(“файл.root”)
Открыть файл (.root).
GetNextEvent()
Взять следующее событие.
GetEvent()
Взять текущее событие.
SetOutFile(“файл.root”)
Задать файл для записи (.root).
WriteEvent(Event*)
Записать событие в файл.
CloseOutFile()
Закрыть файл для записи. Это сохранит дерево и запишет в файл Хэдер.
WRunHistScheduler
Планировщик гистограмм для проектов на базе WRun.
Позволяет добавить гистограммы, которые нужно заполнить, в список, чтобы затем заполнить их при однократном проходе по файлу, что даёт значительный прирост в производительности.
AddHist(<параметры>)
Добавить гистограмму в список. <параметры> - отдельный класс. Имеется шаблонный класс с параметрами гистограмм - WRunHistParGeneric, можно использовать его или создать свой. Необходимо использовать подход с небольшими функциями для гистограммирования.
ProcessHists()
Пробежать по файлу и записать нужные данные в добавленные гистограммы.
WLibCompiler
Позволяет легко компилировать библиотеки, которые поддерживают ROOT.
Предоставьте файл Event.h без расширения, будет создан файл с именем Event.so
WLibCompiler::Instance()->CompileLib(“Event”);
WSingleton
Типовой класс синглтона. Создаётся объект, к которому можно получить доступ из любого места программы. Хранит в себе указатель на любой другой объект.
В первой функции можно написать:
WSingleton<Run>::Set( new Run() );
Во второй функции можно получить доступ к объекту:
Run* run = WSingleton<Run>::Get();
run->GetNextEvent();
Instance()
Возвращает указатель на сам инстанс (синглтон).
Set(<объект>)
Устанавливает объект сразу в инстанс.
Можно также вызвать через WSingleton::Instance()->ISet(<объект>).
Get()
Возвращает указатель на объект в инстансе.
Можно также вызвать через WSingleton::Instance()->IGet().
WLogicalCalculator
Класс, позволяющий быстро считать однотипные логические выражения.
Предоставляем логическое выражение:
WLogicalCalculator trigger(“(X & Y) | !(Z ^ F)”);
Передаём значения операндов и вычисляем результат:
trigger.ValuesToBool( vector<bool>{1, 0, 1, 1} );
Класс позволяет использовать следующие операторы:
& - И
| - ИЛИ
! - ОТРИЦАНИЕ
^ - ИСКЛЮЧАЮЩЕЕ ИЛИ
()- СКОБКИ
# - сумматор-компаратор, 4 элемента, сравнивает с 1
$ - сумматор-компаратор, 8 элементов, сравнивает с 1
@ - сумматор-компаратор, 16 элементов, сравнивает с 1
WLogger
Класс, позволяющий красиво отобразить вызовы функций.
В начале функции прописываем:
WLogger log(__PRETTY_FUNCTION__);
или WLoggerStart;
Это выведет в терминал название функции со смещением, соответствующим уровню вложенности.
Можно глобально модифицировать некоторые статические параметры:
WLogger::SetReferenceTime(<time in s>); - изменяет длительность, при котором начинает выводиться время. затраченное на функцию
WLogger::SetLevelString(<string>); - устанавливает строку одного уровня
Также можно вытащить из этого класса полезные данные для вывода других логов:
WLogger::GetNestingLevelString() - возвращает строку, отображающую уровень вложенности
WLogger::PrintNestingLevelString() - выводит в терминал строку, отображающую уровень вложенности
WLogger::GetLevelString(); - выводит в терминал строку одного уровеня.