Это старая версия документа!
Система SpascharmRoot основана на PandaRoot, используемая сотрудничеством ПАНДА. На данный момент за основу взят последний релиз PandaRoot → jan14. По мере выходов новых релизов PandaRoot, планируется обновлять этот «базовый» для нас пакет.
Для удобства совместной разработки создан репозиторий subversion, который расположен по адресу: http://star-kes.ihep.su/svn/SpascharmRoot/trunk (основная ветка разработки). Для работы с репозиторием рекомендуется установить на локальную машину svn версии 1.7.
Структура проекта выглядит следующим образом:
Предполагается вести разработку в директориях U70xxx (для детекторов) - любые алгоритмы/коды из PandaRoot можно смело копировать и/или наследовать и модифицировать в своем классе.
Чтобы установить SpascharmRoot у себя на машине нужно проделать несколько шагов:
svn co http://star-kes.ihep.su/svn/SpascharmRoot/trunk SpascharmRoot/trunk
cd SpascharmRoot/trunk
bash
export SIMPATH=/path_to_fairroot/fairsoft/Install
cd ../..
mkdir spascharmroot_build
cd spascharmroot_build
cmake /path_to_dir/SpascharmRoot/trunk
make
Чтобы обновить исходные коды в рабочей копии (в своей рабочей директории - кто-то другой мог что-то изменить в репозитории), необходимо выполнить команду:
cd SpascharmRoot/trunk
svn update
Чтобы посмотреть состояние рабочей копии (узнать какие изменения есть по сравнению с последней редакцией на сервере можно выполнить команду:
svn status
Чтобы получить общую информацию о svn репозитории (тип, пути до рабочей копии, репозитория, номер, дату и пользователя последней редакции) можно выполнить команду
svn info
После того, как работа на кодом завершена можно выкладывать свои изменения на сервер svn (репозиторий).
Внимание! Большая просьба! Выкладывать изменения только, если вы убедились, что код компилируется!.
Для фиксирования своих изменений достаточно выполнить команду:
svn commit
Замечание: При этом могут возникнуть конфликты, которые необходимо будет справить (svn сообщит какие и где). В документации по subversion написано как это делать.
Довольно удобно (даже очень) использовать для разработки такого большого проекта интегрированную среду разработки (IDE), например eclipse. Eclipse снабжен такими полезными функциями как:
//!TODO
среда напомнит об этом.
Приведем пример, как настроить проект SpascharmRoot в eclipse. Пример описан для Eclipse версии «Kepler» 4.3.1. Для более старых версий процесс примерно похож.
Необходимо установить C++ версию на вашей системе:
./eclipse
. Можно также запустить его из меню.
Для того, чтобы иметь доступ к описаниям классов ROOT (для автозаполнения и тд) нужно сделать следующее:
Для удобства работы с кодом и отладки в редакторе хорошо бы видеть номера строк. Для этого надо сделать следующее:
Если Eclipse уже имеет плагин поддержки SVN то среда сама разберется, что папка проекта, который вы добавили находится под контролем версий SVN и сама подцепится к репозиторию. При этом в «Структуре проекта» напротив файлов будут показаны номер ревизии, дата и автор последнего изменения, кроме этого файлы и папки будут иметь иконки, указывающие на различные состояния svn (есть, нет отличий от версии в репозитории и тп). И также становятся доступны все команды svn из меню Team.
Как говорится в подобных случаях: «Happy coding!»
В системе реализована пакетная обработка файлов. Существует два варианта такой обработки:
Для запуска варианта 1) необходимо выполнить следующие команды (пример приведен для машины lab3onl):
cd spascharmroot_exec
./batchRawToRoot.sh test
, где «test» - директория для обработки. Директория, переданная как параметр будет обрабатываться рекурсивно. То есть, можно например указать весь run0XX и обработаются также файлы из поддиректорий, в которых лежат файлы, разбитые по часам.