README.md

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(); - выводит в терминал строку одного уровеня.


Описание

Набор инструментов для моих различных проектов (IHM, FERSRun). Гистограммирование, логирование, ввод/вывод и прочее.

Релизы
v0.8 2025-04-16
Конвейеры
0 успешных
0 с ошибкой