Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
howto:root:spascharmroot [2015/04/23 11:36] freez [Некоторые дополнения] |
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}} | + | {{howto:root:eclipse1.png}} |
| * Откроется страница "Обзор"(Overview). Можно ее закрыть, перейдя в рабочее пространство. | * Откроется страница "Обзор"(Overview). Можно ее закрыть, перейдя в рабочее пространство. | ||
| * Выбрать Файл -> Создать -> Проект (Или сразу C++ project) | * Выбрать Файл -> Создать -> Проект (Или сразу C++ project) | ||
| * Откроется диалог создания проекта | * Откроется диалог создания проекта | ||
| * Выбираем С++ Project, нажимаем Далее | * Выбираем С++ Project, нажимаем Далее | ||
| - | {{spascharm:eclipse2.png?x800}} | + | {{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?x800}} | + | {{howto:root:eclipse3.png?x800}} |
| * Нажимаем Готово | * Нажимаем Готово | ||
| * После этого проект настроен и код будет проиндексирован | * После этого проект настроен и код будет проиндексирован | ||
| * Если все ок к этому моменту вы должны увидеть следующее: | * Если все ок к этому моменту вы должны увидеть следующее: | ||
| - | {{spascharm:eclipse4.png?800}} | + | {{howto:root:eclipse4.png?800}} |
| - | {{spascharm:eclipse5.png?800}} | + | {{howto:root:eclipse5.png?800}} |
| ==== Настройка системы компоновки (компилятора) ==== | ==== Настройка системы компоновки (компилятора) ==== | ||
| Строка 101: | Строка 99: | ||
| * В открывшемся диалоговом окне выберите С/C++ Build | * В открывшемся диалоговом окне выберите С/C++ Build | ||
| * Во вкладке Builder Settings укажите свою директорию для компиляции (например spascharm_build): | * Во вкладке Builder Settings укажите свою директорию для компиляции (например spascharm_build): | ||
| - | {{spascharm:eclipse6.png?x600}} | + | {{howto:root:eclipse6.png?x600}} |
| * Во вкладке Tab Behaviour очистите поле "Build (incremental build)": | * Во вкладке Tab Behaviour очистите поле "Build (incremental build)": | ||
| - | {{spascharm:eclipse7.png?x600}} | + | {{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?x600}} | + | {{howto:root:eclipse10.png?x600}} |
| - | {{spascharm:eclipse11.png?1000}} | + | {{howto:root:eclipse11.png?1000}} |
| ==== Некоторые дополнения ==== | ==== Некоторые дополнения ==== | ||
| Строка 126: | Строка 124: | ||
| * Выбираем из меню Окно -> Параметры | * Выбираем из меню Окно -> Параметры | ||
| * В открывшемся диалоге раскрываем Общие -> Редакторы -> Текстовые редакторы и ставим галку на "Показать номера строк" | * В открывшемся диалоге раскрываем Общие -> Редакторы -> Текстовые редакторы и ставим галку на "Показать номера строк" | ||
| - | {{spascharm:eclipse12.png?x800}} | + | {{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 | ||
| Строка 135: | Строка 137: | ||
| === Запуск пакетной обработки файлов для анализа === | === Запуск пакетной обработки файлов для анализа === | ||
| + | В системе реализована пакетная обработка файлов. Существует два варианта такой обработки: | ||
| + | - Чтение .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 или пакетная обработка), второй параметр - директория из которой брать файлы. Директория также обрабатывается рекурсивно. | ||