Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
howto:root:spascharmroot [2014/10/28 19:45] sergey |
howto:root:spascharmroot [2019/10/27 01:12] (текущий) sergey [Документация по SpascharmRoot] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | + | ====== SpascharmRoot ====== | |
- | ~~ODT~~ | + | |
- | + | ||
- | ====== Документация по SpascharmRoot ====== | + | |
===== Введение ===== | ===== Введение ===== | ||
- | Система SpascharmRoot основана на PandaRoot, используемая сотрудничеством ПАНДА. На данный момент за основу взят последний релиз PandaRoot -> jan14. По мере выходов новых релизов PandaRoot, планируется обновлять этот "базовый" для нас пакет. | + | Система SpascharmRoot основана на PandaRoot, используемая сотрудничеством ПАНДА. На данный момент за основу взят последний релиз PandaRoot -> jan16. По мере выходов новых релизов PandaRoot, планируется обновлять этот "базовый" для нас пакет. |
- | Для удобства совместной разработки создан репозиторий [[http://svnbook.red-bean.com/en/1.7/svn-book.html|subversion]], который расположен по адресу: http://star-kes.ihep.su/svn/SpascharmRoot/trunk (основная ветка разработки). Для работы с репозиторием рекомендуется установить на локальную машину svn версии 1.7. | + | Для удобства совместной разработки создан репозиторий [[http://svnbook.red-bean.com/en/1.7/svn-book.html|subversion]], который расположен по адресу: [[svn+ssh://svn.ihep.su/svn/SpascharmRoot/trunk]] (основная ветка разработки) (старый адрес http://star-kes.ihep.su/svn/SpascharmRoot/trunk вскоре будет отключен. Не делайте коммиты пожалуйста сюда). Для работы с репозиторием рекомендуется установить на локальную машину svn версии 1.7 или выше. |
Структура проекта выглядит следующим образом: | Структура проекта выглядит следующим образом: | ||
Строка 32: | Строка 29: | ||
Чтобы установить SpascharmRoot у себя на машине нужно проделать несколько шагов: | Чтобы установить SpascharmRoot у себя на машине нужно проделать несколько шагов: | ||
- | - Установить external packages ([[http://fairroot.gsi.de/|fairroot]]), который является внешним для всех систем в FAIR. На данный момент последней версией является [[http://fairroot.gsi.de/?q=node/79|dec13]]. Установка описана по приведенным ссылкам. | + | - Установить external packages ([[http://fairroot.gsi.de/|fairroot]]), который является внешним для всех систем в FAIR. На данный момент они состоят из двух подпакетов и последние их версии таковы: FairSoft - [[http://fairroot.gsi.de/?q=node/104|nov15]], FairRoot - [[https://github.com/FairRootGroup/FairRoot/releases|v-15.11a]] (Для ревизии SpascharmRoot 109 и ниже основной версией внешних пакетов была [[http://fairroot.gsi.de/?q=node/79|dec13]]). Установка описана на wiki PandaRoot [[https://panda-wiki.gsi.de/foswiki/bin/view/Computing/PandaRootInstallGit|PandaRoot wiki]]. |
- | - Скачать на локальную машину исходные коды системы SpascharmRoot (в первый раз потребуется ввести имя пользователя и пароль svn): <code Bash> svn co http://star-kes.ihep.su/svn/SpascharmRoot/trunk SpascharmRoot/trunk </code> | + | - Скачать на локальную машину исходные коды системы SpascharmRoot (потребуется ввести имя пользователя и пароль на кластере ИФВЭ): <code Bash> svn co svn+ssh://<username>@svn.ihep.su/svn/SpascharmRoot/trunk SpascharmRoot/trunk </code>, где <username> необходимо заменить на свое имя пользователя на КЛАСТЕРЕ ИФВЭ. |
- Перейти в директорию с исходниками: <code Bash> cd SpascharmRoot/trunk </code> | - Перейти в директорию с исходниками: <code Bash> cd SpascharmRoot/trunk </code> | ||
- | - Установить переменную среды SIMPATH на путь до директории, где установлен FairRoot (директория инсталляции, не исходники!). Например: <code Bash> bash</code> <code Bash> export SIMPATH=/path_to_fairroot/fairsoft/Install </code> | + | - Установить переменную среды SIMPATH на путь до директории, где установлен FairSoft (директория инсталляции, не исходники!). Например: <code Bash> bash</code> <code Bash> export SIMPATH=/path_to_fairroot/fairsoft_nov15/buildFairSoft </code> |
+ | - Установить переменную среды FAIRROOTPATH на путь до директории, где установлен FairRoot (директория инсталляции, не исходники!). Например: <code Bash> bash</code> <code Bash> export FAIRROOTPATH=/path_to_fairroot/fairsoft_nov15/buildFairRoot </code> | ||
- Создать директорию для компиляции системы: <code Bash> cd ../.. </code> <code Bash> mkdir spascharmroot_build </code> <code Bash> cd spascharmroot_build </code> | - Создать директорию для компиляции системы: <code Bash> cd ../.. </code> <code Bash> mkdir spascharmroot_build </code> <code Bash> cd spascharmroot_build </code> | ||
- Выполнить конфигурацию (создание Makefile) с помощью утилиты cmake: <code Bash> cmake /path_to_dir/SpascharmRoot/trunk </code> | - Выполнить конфигурацию (создание Makefile) с помощью утилиты cmake: <code Bash> cmake /path_to_dir/SpascharmRoot/trunk </code> | ||
Строка 74: | Строка 72: | ||
* Установить Java JRE [[http://www.java.com/|Java JRE]] | * Установить Java JRE [[http://www.java.com/|Java JRE]] | ||
* Установить Eclipse for C++ Developers | * Установить Eclipse for C++ Developers | ||
- | * Установить плагин для SVN, например tigris.org (часто в дистрибутивах Linux - eclipse уже идет с этим плагином) | + | * Установить плагин для SVN, лучше всего [[http://www.eclipse.org/subversive/|subversive]] (иногда в дистрибутивах Linux - eclipse уже идет с этим плагином). Не рекомендую плагин subclipse от tigris.org - мне так и не удалось через него авторизоваться на нашем кластере, subversive намного более гибкий. |
==== Создание проекта SpascharmRoot, начиная с текущей рабочей версии из svn ==== | ==== Создание проекта SpascharmRoot, начиная с текущей рабочей версии из svn ==== | ||
Строка 81: | Строка 79: | ||
* Запустите Eclipse перейдя в его директорию установки <code Bash> ./eclipse </code>. Можно также запустить его из меню. | * Запустите Eclipse перейдя в его директорию установки <code Bash> ./eclipse </code>. Можно также запустить его из меню. | ||
* Появится запрос выбора рабочей области (можно оставить название по умолчанию или назвать по-своему) | * Появится запрос выбора рабочей области (можно оставить название по умолчанию или назвать по-своему) | ||
- | {{spascharm:eclipse1.png?1000}} | + | {{howto:root:eclipse1.png}} |
* Откроется страница "Обзор"(Overview). Можно ее закрыть, перейдя в рабочее пространство. | * Откроется страница "Обзор"(Overview). Можно ее закрыть, перейдя в рабочее пространство. | ||
* Выбрать Файл -> Создать -> Проект (Или сразу C++ project) | * Выбрать Файл -> Создать -> Проект (Или сразу C++ project) | ||
* Откроется диалог создания проекта | * Откроется диалог создания проекта | ||
* Выбираем С++ Project, нажимаем Далее | * Выбираем С++ Project, нажимаем Далее | ||
- | {{spascharm:eclipse2.png?1000}} | + | {{howto:root:eclipse2.png?x800}} |
* Указываем Имя проекта, например spascharmroot | * Указываем Имя проекта, например spascharmroot | ||
* Снимаем галку "Расположение по умолчанию" и выбираем вашу директорию с исходниками SpascharmRoot | * Снимаем галку "Расположение по умолчанию" и выбираем вашу директорию с исходниками SpascharmRoot | ||
* Выбираем Project Type: Makefile project и Toolchain: Linux GCC | * Выбираем Project Type: Makefile project и Toolchain: Linux GCC | ||
- | {{spascharm:eclipse3.png?1000}} | + | {{howto:root:eclipse3.png?x800}} |
* Нажимаем Готово | * Нажимаем Готово | ||
* После этого проект настроен и код будет проиндексирован | * После этого проект настроен и код будет проиндексирован | ||
* Если все ок к этому моменту вы должны увидеть следующее: | * Если все ок к этому моменту вы должны увидеть следующее: | ||
- | {{spascharm:eclipse4.png?1000}} | + | {{howto:root:eclipse4.png?800}} |
- | {{spascharm:eclipse5.png?1000}} | + | {{howto:root:eclipse5.png?800}} |
==== Настройка системы компоновки (компилятора) ==== | ==== Настройка системы компоновки (компилятора) ==== | ||
Строка 101: | Строка 99: | ||
* В открывшемся диалоговом окне выберите С/C++ Build | * В открывшемся диалоговом окне выберите С/C++ Build | ||
* Во вкладке Builder Settings укажите свою директорию для компиляции (например spascharm_build): | * Во вкладке Builder Settings укажите свою директорию для компиляции (например spascharm_build): | ||
- | {{spascharm:eclipse6.png?1000}} | + | {{howto:root:eclipse6.png?x600}} |
* Во вкладке Tab Behaviour очистите поле "Build (incremental build)": | * Во вкладке Tab Behaviour очистите поле "Build (incremental build)": | ||
- | {{spascharm:eclipse7.png?1000}} | + | {{howto:root:eclipse7.png?x600}} |
* Теперь проект должен собраться (откомпилироваться). Можно наблюдать прогресс сборки во вкладке "Косносль" внизу окна IDE. | * Теперь проект должен собраться (откомпилироваться). Можно наблюдать прогресс сборки во вкладке "Косносль" внизу окна IDE. | ||
* Для запуска процесса компиляции нажмите на значок "Молотка" в панели инcтрументов IDE. | * Для запуска процесса компиляции нажмите на значок "Молотка" в панели инcтрументов IDE. | ||
* Все готово для работы в Eclipse! | * Все готово для работы в Eclipse! | ||
- | {{spascharm:eclipse8.png?1000}} | + | {{howto:root:eclipse8.png?1000}} |
- | {{spascharm:eclipse9.png?1000}} | + | {{howto:root:eclipse9.png?1000}} |
==== Добавление в проект исходных кодов ROOT ==== | ==== Добавление в проект исходных кодов ROOT ==== | ||
Строка 118: | Строка 116: | ||
* Нажать кнопку "Дополнительно" | * Нажать кнопку "Дополнительно" | ||
* Выбрать в списке "Link to alternate location (Linked Folder)" и укажите папку, где установлен ROOT - например /data/fairsoft/tools/root. Так как ROOT - это монстро-подобная программа, то индексация займет довольно продолжительное время. Более легкий вариант - указать только папку include из инсталляции ROOT (будут доступны только заголовочные файлы ROOT). | * Выбрать в списке "Link to alternate location (Linked Folder)" и укажите папку, где установлен ROOT - например /data/fairsoft/tools/root. Так как ROOT - это монстро-подобная программа, то индексация займет довольно продолжительное время. Более легкий вариант - указать только папку include из инсталляции ROOT (будут доступны только заголовочные файлы ROOT). | ||
- | {{spascharm:eclipse10.png?1000}} | + | {{howto:root:eclipse10.png?x600}} |
- | {{spascharm:eclipse11.png?1000}} | + | {{howto:root:eclipse11.png?1000}} |
==== Некоторые дополнения ==== | ==== Некоторые дополнения ==== | ||
Строка 126: | Строка 124: | ||
* Выбираем из меню Окно -> Параметры | * Выбираем из меню Окно -> Параметры | ||
* В открывшемся диалоге раскрываем Общие -> Редакторы -> Текстовые редакторы и ставим галку на "Показать номера строк" | * В открывшемся диалоге раскрываем Общие -> Редакторы -> Текстовые редакторы и ставим галку на "Показать номера строк" | ||
- | {{spascharm:eclipse12.png?1000}} | + | {{howto:root:eclipse12.png?x800}} |
=== Поддержка SVN === | === Поддержка SVN === | ||
- | Если Eclipse уже имеет плагин поддержки SVN то среда сама разберется, что папка проекта, который вы добавили находится под контролем версий SVN и сама подцепится к репозиторию. При этом в "Структуре проекта" напротив файлов будут показаны номер ревизии, дата и автор последнего изменения, кроме этого файлы и папки будут иметь иконки, указывающие на различные состояния svn (есть, нет отличий от версии в репозитории и тп). И также становятся доступны все команды svn из меню Team. | + | Если Eclipse уже имеет плагин поддержки SVN то среда сама разберется, что папка проекта, который вы добавили находится под контролем версий SVN и сама подцепится к репозиторию. При этом в "Структуре проекта" напротив файлов будут показаны номер ревизии, дата и автор последнего изменения, кроме этого файлы и папки будут иметь иконки, указывающие на различные состояния svn (есть, нет отличий от версии в репозитории и тп). И также становятся доступны все команды svn из меню Team. |
+ | |||
+ | Если этого не произошло, то самый простой способ такой - сделать checkout проекта напрямую из svn: | ||
+ | - Подключить новый репозиторий через [[https://eclipse.org/subversive/documentation/teamSupport/new_location_wiz.php|subversive]] | ||
+ | - Сделать checkout проекта: меню Создать → Проект → SVN → Project from SVN. | ||
Как говорится в подобных случаях: "Happy coding!" 8-O | Как говорится в подобных случаях: "Happy coding!" 8-O | ||
+ | |||
+ | === Запуск пакетной обработки файлов для анализа === | ||
+ | |||
+ | В системе реализована пакетная обработка файлов. Существует два варианта такой обработки: | ||
+ | - Чтение .dat файлов ("сырые" файлы из daq) и запись деревьев в .root файлы; | ||
+ | - Чтение деревьев из .root файлов для отображения гистограмм в online-мониторе online_gui_sm. | ||
+ | |||
+ | Для запуска варианта 1) необходимо выполнить следующие команды (пример приведен для машины lab3onl): | ||
+ | |||
+ | <code Bash> cd spascharmroot_exec </code> | ||
+ | <code Bash> ./batchRawToRoot.sh test </code>, где "test" - директория для обработки. | ||
+ | Директория, переданная как параметр будет обрабатываться рекурсивно. То есть, можно например указать весь run0XX и обработаются также файлы из поддиректорий, в которых лежат файлы, разбитые по часам. | ||
+ | |||
+ | Для запуска варианта 2), то есть отображение онлайн-гистограмм на уже записанных данных, необходимо выполнить: | ||
+ | <code Bash> root 'online_gui_sm.C(kFALSE, "test")' </code>, где первый параметр: kTRUE/kFALSE - мода работы (online или пакетная обработка), второй параметр - директория из которой брать файлы. Директория также обрабатывается рекурсивно. | ||