CMSSW no Sprace
O objetivo desta página é ensinar como se faz o setup básico de um área de desenvolvimento CMSSW no Sprace. Para os efeitos desta página, assume-se o uso da shell bash.
Setup do CMSSW no Sprace
A framework de software do CMS - CMSSW - fica localizada em diretórios centrais no cluster. Para ter acesso a essa framework, você deve primeiro localizar esses diretórios através de variáveis de ambiente. Tendo feito isso, o próximo passo fazer o setup de uma área de desenvolvimento CMSSW (CMSSW developer area) em um diretório no qual você tenha acesso de escrita (normalmente em um subdiretório do seu
$HOME
), através do uso do comando
scramv1
. Para criar uma CMSSW developer area da versão x_y_z do CMSSW, utiliza-se o comando
scramv1 project CMSSW CMSSW_x_y_z
.
Localizando o diretório do CMSSW.
Para CMSSW < 1_6_0
Estes comandos indicam onde estão as releases do CMSSW, e permitem o uso do comando
scramv1
.
export OSG_APP=/usr/local/share/OSG/app
export SCRAM_ARCH=slc3_ia32_gcc323
source $OSG_APP/cmssoft/cms/cmsset_default.sh
Para CMSSW >= 1_6_0
export OSG_APP=/usr/local/share/OSG/app
export SCRAM_ARCH=slc4_ia32_gcc345
source $OSG_APP/cmssoft/cms/cmsset_default.sh
Estes conjunto de três comandos deve ser utilizado sempre que você planejar utilizar o comando
scramv1
. Como isso é bastante comum, (por exemplo, sempre que se compila código pra utilizar com a CMSSW), é interessante colocar esses comandos em um script de inicialização como o
.bashrc
.
Verificando as versões disponíveis, executando o setup de uma delas.
scramv1 list | grep CMSSW
scramv1 project CMSSW CMSSW_x_y_z
, onde
x_y_z
é a versão a instalar.
Preparando sua área de trabalho.
cd CMSSW_x_y_z/src
eval `scramv1 runtime -sh`
---> Note o uso de acento grave (
`
), NÃO de aspas simples (
'
).
Preparando o ROOT.
Crie um arquivo chamado
$HOME/rootlogon.C
, com o seguinte conteúdo:
{
gSystem->Load("libFWCoreFWLite.so");
//or gSystem->Load("libPhysicsToolsFWLite.so"); for CMSSW < 0.8.0
AutoLibraryLoader::enable();
}
e um outro chamado
$HOME/.rootrc
, com no mínimo o seguinte conteúdo:
# Tell ROOT where to find rootlogon.C:
Rint.Logon: $(HOME)/rootlogon.C
--
ThiagoTomei - 16 Nov 2007