https://wiki.nikhef.nl/atlas/api.php?action=feedcontributions&user=Gossie&feedformat=atomAtlas Wiki - User contributions [en]2024-03-29T01:59:33ZUser contributionsMediaWiki 1.35.3https://wiki.nikhef.nl/atlas/index.php?title=Thesis_page_ATLAS_Nikhef&diff=3294Thesis page ATLAS Nikhef2010-10-25T22:32:55Z<p>Gossie: </p>
<hr />
<div>This pages gives an overview of the theses produced in the Nikhef ATLAS group.<br />
<br />
'''How to add a new document to this list:''' <br />
<ol style="list-style-type:lower-roman"><br />
<li>Copy the pdf file to <font color=blue> /www/pub/experiments/atlas/Theses/ </font> at Nikhef</li><br />
<li>Edit this wiki page by adding a line to the corresponding category (or send a mail to Ivo)</li><br />
</ol><br />
<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | PhD theses<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
|-<br />
| Martijn Gosselink<br />
| 2010<br />
| Radiating Top Quarks<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/2010_MartijnGosselink.pdf (pdf)]<br />
|-<br />
| Zdenko van Kesteren<br />
| 2010<br />
| Identification of muons in ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/2010_ZdenkoVanKesteren.pdf (pdf)]<br />
|-<br />
| Jochem Snuverink<br />
| 2009<br />
| The ATLAS muon spectrometer: commissioning and tracking <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/2009_JochemSnuverink.pdf (pdf)]<br />
|-<br />
| Maaike Limper<br />
| 2009<br />
| Track and vertex reconstruction in the ATLAS inner detector <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/2009_MaaikeLimper.pdf (pdf)]<br />
|-<br />
| Niels van Eldik<br />
| 2007<br />
| The ATLAS muon spectrometer : calibration and pattern recognition <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/NielsVanEldik.pdf (pdf)]<br />
|-<br />
| Thijs Cornelissen <br />
| 2006<br />
| Track fitting in the ATLAS experiment <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ThijsCornelissen.pdf (pdf)]<br />
|-<br />
| Marcello Barisonzi<br />
| 2006<br />
| Mass measurements of the top quark in electroweak production channels at ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MarcelloBarisonzi.pdf (pdf)]<br />
|-<br />
| Rene Scholte <br />
| 2003<br />
| Data read-out and Bc production in ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ReneScholte.pdf (pdf)]<br />
|-<br />
| Marcel Vos <br />
| 2003<br />
| The ATLAS inner tracker and the detection of light supersymmetric Higgs bosons <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MarcelVos.pdf (pdf)]<br />
|-<br />
| Simon Peeters <br />
| 2003<br />
| The ATLAS semiconductor tracker endcap<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/SimonPeeters.pdf (pdf)]<br />
|-<br />
| Joost Visser<br />
| 2003<br />
| Muon tracks through ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/JoostVisser.pdf (pdf)]<br />
|-<br />
| Martin Woudstra <br />
| 2002<br />
| Precision of the ATLAS muon spectrometer <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MartinWoudstra.pdf (pdf)]<br />
|-<br />
| Ernst-Jan Buis<br />
| 2002<br />
| Detecting R-parity violation in the Atlas inner detector <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ErnstJanBuis.pdf (pdf)]<br />
|}<br />
<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | Master theses<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
| style ="background:#3399ff;" | Supervisor<br />
|-<br />
| Rosemarie Aben<br />
| 2010<br />
| Precision studies of the ATLAS MDT Chambers<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/2010_RosemarieAben.pdf (pdf)]<br />
| Peter Kluit<br />
|-<br />
| Merlin Kole<br />
| 2010<br />
| Phenomenology of Extra-Dimensional Higgsless Models<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/2010_MerlinKole.pdf (pdf)]<br />
| Bob van Eijk<br />
|-<br />
| Jeroen van Leerdam<br />
| 2010<br />
| Higher order QCD corrections in top-antitop production at the LHC<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/2010_JeroenVanLeerdam.pdf (pdf)]<br />
| Bob van Eijk<br />
|-<br />
| Joris Hartman<br />
| 2009<br />
| Timing and calibration of the ATLAS RPC trigger chambers<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/JorisHartman.pdf (pdf)]<br />
| Peter Kluit<br />
|-<br />
| Barbara Millan Mejias <br />
| 2008<br />
| Optimization of Vector Boson Fusion Higgs candidate selection<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/BarbaraMillanMejias.pdf (pdf)]<br />
| Max Baak and Peter Kluit<br />
|-<br />
| Irene Niessen <br />
| 2008<br />
| Supersymmetric Phenomenology in the mSUGRA Parameter Space<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/IreneNiessen.pdf (pdf)]<br />
| Wim Beenakker and Nicolo de Groot (RU Nijmegen)<br />
|-<br />
| Egge van der Poel <br />
| 2007<br />
| Dark current in Monitored Drift Tubes and RASNIK commissioning at Atlas<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/EggeVanDerPoel.pdf (pdf)]<br />
| Harry van der Graaf and Carel van Eijk (TU Delft)<br />
|-<br />
| Menelaos Tsiakiris<br />
| 2007<br />
| Online selection of fully hadronic tt decays with the ATLAS detector<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/MenelaosTsiakiris.pdf (pdf)]<br />
| Sander Klous<br />
|-<br />
| Sander van Til <br />
| 2007<br />
| Scalar top pair production in ATLAS<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/SanderVanTil.pdf (pdf)]<br />
| Paul de Jong<br />
|-<br />
| Nicole Ruckstuhl<br />
| 2007<br />
| Testing a mSUGRA dark matter annihilation model for the EGRET gamma ray excess with ATLAS<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/NicoleRuckstuhl.pdf (pdf)]<br />
| Ivo van Vulpen<br />
|-<br />
| Martijn Gosselink<br />
| 2006<br />
| Upsilon production in hadronic collisions<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/MartijnGosselink.pdf (pdf)]<br />
| Bob van Eijk<br />
|-<br />
| Alex Koutsman<br />
| 2005<br />
| Pulse Analysis for ATLAS MDT Twin Tubes<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/AlexKoutsman.ps (ps)]<br />
| Harry van der Graaf<br />
|-<br />
| Zdenko van Kesteren<br />
| 2004<br />
| Angular orientation reconstruction of a Hall sensor calibration setup <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/ZdenkoVanKesteren.pdf (pdf)]<br />
| Frank Linde<br />
|}<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | Bachelor projects<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
| style ="background:#3399ff;" | Supervisor<br />
|-<br />
| Mischa Reitsma<br />
| 2010<br />
| Fake electrons in the ATLAS detector<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/MischaReitsma_2010.pdf (pdf)]<br />
| Ivo van Vulpen & Marcel Vreeswijk<br />
|-<br />
| Roel Sluijter<br />
| 2010<br />
| Supersymmetry<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/RoelSluijter_2010.pdf (pdf)]<br />
| Robin van der Leeuw & Marcel Vreeswijk<br />
|-<br />
| Marco van Woerden <br />
| 2009<br />
| Pt-snede bij pionverval in de ATLAS detector (dutch)<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/MarcoVanWoerden_2009.pdf (pdf)]<br />
| Ivo van Vulpen & Marcel Vreeswijk<br />
|-<br />
| M.R. Willemse <br />
| 2009<br />
| The Discovery Potential of the Heavy W-Boson from Little Higgs Theory<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/Willemse.pdf (pdf)]<br />
| Marcel Vreeswijk<br />
|-<br />
| Bardo Bakker <br />
| 2008<br />
| Extra dimensies (dutch)<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/BardoBakker.pdf (pdf)]<br />
| Ivo van Vulpen<br />
|-<br />
|}</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2551Using GANGA with AMAAthena2008-11-04T21:26:29Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/PhysicsAnalysisTools?topic=AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_LOCAL'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] It is possible to change the LCG site where data is copied from by the FileStager by setting <tt>config.DQ2.DQ2_LOCAL_SITE_ID = 'SARA-MATRIX_MCDISK'</tt>.<br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2547Using GANGA with AMAAthena2008-11-03T10:08:55Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_LOCAL'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] It is possible to change the LCG site where data is copied from by the FileStager by changing the environment variable <tt>DQ2_LOCAL_SITE_ID</tt> to eg. <tt>SARA-MATRIX_MCDISK</tt> or <tt>NIKHEF-ELPROD_MCDISK</tt>. This way Ganga knows where it should get the AOD locations from.<br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2546Using GANGA with AMAAthena2008-11-03T09:15:45Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_LOCAL'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</ol><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] It is possible to change the LCG site where data is copied from by the FileStager by changing the environment variable <tt>DQ2_LOCAL_SITE_ID</tt> to eg. <tt>SARA-MATRIX_MCDISK</tt> or <tt>NIKHEF-ELPROD_MCDISK</tt>.<br />
</li><br />
</ol><br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2545Using GANGA with AMAAthena2008-11-03T09:15:26Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_LOCAL'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</ol><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] It is possible to change the LCG site where data is copied from by the FileStager by changing <tt>DQ2_LOCAL_SITE_ID</tt> to eg. <tt>SARA-MATRIX_MCDISK</tt> or <tt>NIKHEF-ELPROD_MCDISK</tt>.<br />
</li><br />
</ol><br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2544Using GANGA with AMAAthena2008-11-03T09:12:01Z<p>Gossie: /* Setting input data */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_LOCAL'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2543Using GANGA with AMAAthena2008-10-31T18:44:54Z<p>Gossie: /* Setting input data */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
<tt>DQ2_DOWNLOAD</tt> copies files from the SE to the local disk of the WN and then runs over them, <tt>DQ2_LOCAL</tt> runs directly over the files on the SE. The latter seems to be preferred.<br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2542Using GANGA with AMAAthena2008-10-31T18:38:23Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2541Using GANGA with AMAAthena2008-10-31T18:38:07Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li><tt>'''StagerDataset'''</tt></li><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li>Using local files with <tt>'''StagerDataset'''</tt></li><br />
<br />
You can also use <tt>'''StagerDataset'''</tt> to access the dataset files already existing on local disk. The following example assumes that you have dataset files already sitting in the directory <tt>/project/atlas/data/fdr2</tt><br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.type = 'LOCAL'<br />
In [n]: j.inputdata.dataset = ['/project/atlas/data/fdr2']<br />
</pre><br />
<br />
All the files with the name <tt>'*.root*'</tt> in this directory (and sub-directories) will be included.<br />
<br />
<li><tt>'''DQ2Dataset'''</tt></li><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] When submitting the job with Ganga, make sure you are working on a machine which has the <tt>qsub</tt> commando available, eg. <tt>ribble</tt> (aka <tt>login</tt>) or <tt>elel22</tt>.<br />
</il><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2529Using GANGA with AMAAthena2008-09-30T21:53:11Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically every time you start a new shell (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2523Using GANGA with AMAAthena2008-09-30T21:52:02Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<ol><br />
<li><br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Make sure the grid environment is set up automatically in you shell script (eg. in <tt>~/.profile</tt>) - as the <tt>FileStager</tt> needs the LCG tools like <tt>lcg-cp</tt>:<br />
<pre><br />
. /global/ices/lcg/current/etc/profile.d/grid_env.sh<br />
</pre><br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2522Using GANGA with AMAAthena2008-09-29T15:25:36Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2521Using GANGA with AMAAthena2008-09-29T15:22:37Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] To make your grid certificate usable for jobs running on STOOMBOOT you need to do the following to create a grid proxy before starting Ganga:<br />
<br />
<ol><br />
<li><br />
<pre><br />
$ voms-proxy-init -voms atlas -out ~/.globus/gridproxy.cert<br />
</pre><br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2520Using GANGA with AMAAthena2008-09-29T15:22:15Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] To make your grid certificate usable for jobs running on STOOMBOOT you need to do the following to create a grid proxy before starting Ganga:<br />
<br />
<ul><br />
<li><br />
<pre><br />
$ voms-proxy-init -voms atlas -out ~/.globus/gridproxy.cert<br />
</pre><br />
</li><br />
</ul><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2519Using GANGA with AMAAthena2008-09-29T15:21:38Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] To make your grid certificate usable for jobs running on STOOMBOOT you need to do the following to create a grid proxy before starting Ganga:<br />
<br />
<ol><br />
<li><br />
<pre><br />
$ voms-proxy-init -voms atlas -out ~/.globus/gridproxy.cert<br />
</pre><br />
</li><br />
</ol><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Using_GANGA_with_AMAAthena&diff=2518Using GANGA with AMAAthena2008-09-29T15:20:04Z<p>Gossie: /* Setting computing backend */</p>
<hr />
<div>== Introduction ==<br />
This guide provides step-by-step instructions for running AMAAthena through GANGA. Users will run GANGA on a NIKHEF desktop (e.g. <tt>ribble.nikhef.nl</tt>) and submit AMAAthena jobs to Stoomboot (a PBS cluster) and to the LCG.<br />
<br />
AMAAthena is an Athena package providing a framework for modular analysis. GANGA is an official tool for ATLAS distributed data analysis.<br />
<br />
== Preparation ==<br />
Please follow <br />
https://twiki.cern.ch/twiki/bin/view/Atlas/AMAMainPage<br />
to setup <tt>CMT</tt> and checkout <tt>AMAAthena</tt> package.<br />
<br />
== Starting GANGA session ==<br />
Typing the following commands within the directory: <tt>PhysicsAnalysis/AnalysisCommon/AMA/AMAAthena/cmt</tt> in a clean shell environment (i.e. no environment setup for <tt>Athena</tt> and <tt>CMT</tt>).<br />
<br />
<pre><br />
% source /project/atlas/nikhef/dq2/dq2_setup.sh.NIKHEF<br />
% export DPNS_HOST=tbn18.nikhef.nl<br />
% export LFC_HOST=lfc-atlas.grid.sara.nl<br />
% source /project/atlas/nikhef/ganga/etc/setup.[c]sh<br />
% ganga --config-path=/project/atlas/nikhef/ganga/config/Atlas.ini.nikhef<br />
</pre><br />
<br />
Every time you start with a clean shell, and you'll need to setup ganga with the lines given right above. <br />
<br />
The last command loads a system-wide ATLAS-specific configuration for your Ganga session. You can override the system-wide configuration by providing a <tt>~/.gangarc</tt> file. The template of the <tt>~/.gangarc</tt> file can be generated by:<br />
<br />
<pre><br />
% ganga -g<br />
</pre><br />
<br />
If you see the following prompt:<br />
<br />
<pre><br />
*** Welcome to Ganga ***<br />
Version: Ganga-5-0-6<br />
Documentation and support: http://cern.ch/ganga<br />
Type help() or help('index') for online help.<br />
<br />
This is free software (GPL), and you are welcome to redistribute it<br />
under certain conditions; type license() for details.<br />
<br />
In [1]:<br />
</pre><br />
<br />
you are already in a GANGA session. The GANGA session is actually an [http://ipython.scipy.org/moin/ IPython] shell with GANGA specific extensions (modules), meaning that you can do programming (python only, of course) inside the GANGA session.<br />
<br />
== Leaving GANGA session ==<br />
To quit from a GANGA session, just press CTRL-D.<br />
<br />
== Getting familiar with GANGA ==<br />
=== My first Grid job running a HelloWorld shell script ===<br />
<br />
Now go to your project directory<br />
<pre><br />
cd /project/atlas/Users/yourusernamehere<br />
</pre><br />
and create 'myscript.sh'<br />
<pre><br />
#!/bin/sh<br />
echo 'myscript.sh running...'<br />
echo "----------------------"<br />
/bin/hostname<br />
echo "HELLO PLANET!"<br />
echo "----------------------"<br />
</pre><br />
and the file 'gangaScript.py'. Do not forget to modify the following to your directory structure+<br />
<pre><br />
In[n]: j = Job()<br />
In[n]: j.application=Executable()<br />
In[n]: j.application.exe=File('/project/atlas/Users/yourusernamehere/myscript.sh')<br />
In[n]: j.backend=LCG()<br />
In[n]: j.submit() <br />
</pre><br />
<br />
This Ganga Job means the following<br />
* Line 1 defines the job<br />
* Line 2 sets it as an Executable<br />
* Line 3 tell which file to run<br />
* Line 4 Tell where the job should run<br />
* Line 5 submits the job<br />
The imprtant point is here that we have chosen LCG() as backend, i.e. the script will be executed on the grid.<br />
Now start ganga again and submit the job to the LCG-grid<br />
<pre><br />
In[n]: execfile("./gangaScript.py")<br />
</pre><br />
<br />
the status of the job can be monitored with <br />
<pre><br />
In[n]: jobs<br />
</pre><br />
<br />
After the job is submitted, GANGA is now responsible for monitoring your jobs when it's still running; and for downloading output files (e.g. stdout/stderr) to the local machine when the job is finished.<br />
<br />
When your job is <tt>completed</tt>, the job's output is automatically fetched from the Grid and stored in your <tt>gangadir</tt> directory. The exact output location can be found by:<br />
<pre><br />
In[n]: j.outputdir<br />
Out[n]: /project/atlas/Users/yourusernamehere/gangadir/workspace/yourusernamehere/LocalAMGA/0/output<br />
</pre><br />
<br />
if 0 was the job ID. This was our first grid-job submitted via ganga!<br />
<br />
=== Working with historical jobs ===<br />
GANGA internally archive your previously submitted jobs (historical jobs) in the local job repository (i.e. <tt>gangadir</tt>) so that you don't have to do bookkeeping by yourself. You can freely get in/out GANGA and still have your historical jobs ready for your future work.<br />
<br />
The first thing to work with your historical job is to get the job instance from the repository as the following:<br />
<br />
<pre><br />
In [n]: jobs<br />
Out[1]: <br />
Job slice: jobs (12 jobs)<br />
--------------<br />
# fqid status name subjobs application backend backend.actualCE <br />
# 17 submitted 1000 Executable LCG <br />
# 18 submitted 2000 Executable LCG <br />
# 20 completed 10 Executable LCG<br />
# 28 submitted Executable LCG<br />
# 29 submitted test_lcg Executable LCG <br />
</pre><br />
<br />
The table above lists the historical jobs in your GANGA repository indexed by <tt>fqid</tt>. For example, if you feel interest in the job with id <tt>29</tt>, you can get the job instance by<br />
<br />
<pre><br />
In [n]: j = jobs(29)<br />
</pre><br />
<br />
then you are all set to work with the job.<br />
<br />
Please note that you <b>CANNOT</b> change the attributes of a historical job.<br />
<br />
=== More GANGA jobs to run on different platforms ===<br />
Now try the following commands in the Ganga shell to gets your hands dirty :)<br />
Try to find where the second job runs.<br />
<br />
<pre><br />
In [n]: j = Job()<br />
In [n]: j.backend=Local()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
<br />
In [n]: j = j.copy()<br />
In [n]: j.backend=PBS()<br />
In [n]: j.submit()<br />
In [n]: jobs<br />
</pre><br />
<br />
== Running AMAAthena in GANGA ==<br />
<br />
The example below assumes:<br />
<ol><br />
<li/>Users have the following Athena job option files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>AMAAthena_jobOptions.py</tt><br />
<li/><tt>Trigger_jobOptions.py</tt><br />
</ul><br />
<br />
You can find them from the <tt>share</tt> directory of the AMAAthena package.<br />
<br />
<li/>Users have the following AMA driver configuration files in the <tt>run</tt> directory of the AMAAthena package<br />
<ul><br />
<li/><tt>exampleaod.conf</tt><br />
<li/><tt>reader.conf</tt><br />
</ul><br />
<br />
You can find them from the <tt>Config</tt> directory of the AMAAthena package.<br />
<br />
<li/>After copying them into the <tt>run</tt> directory, modify the <tt>exampleaod.conf</tt> by replacing<br />
<br />
<pre><br />
include_file = Config/reader.conf<br />
</pre><br />
<br />
with<br />
<br />
<pre><br />
include_file = reader.conf<br />
</pre><br />
<br />
<li/>Analysis is performed on dataset: <tt>fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10</tt><br />
</ol><br />
<br />
=== GANGA magic functions for cmtsetup ===<br />
Inside GANGA, one could deal with the complex CMT setup with two magic functions.<br />
<br />
The following example shows how to setup the CMT environment for Athena 14.2.20 in 32 bit mode.<br />
<br />
<pre><br />
In [n]: config.Athena.CMTHOME = '/path/to/your/cmthome'<br />
In [n]: cmtsetup 14.2.20,32<br />
In [n]: setup<br />
</pre><br />
<br />
=== GANGA magic function resolving python conflict at CERN ===<br />
This is specific for solving the python conflict between the LCG UI and the ATLAS release at CERN. If you plan to run jobs on lxplus (with the <tt>Local</tt> backend) or lxbatch (with the <tt>LSF</tt> backend), please apply the following magic function before <tt>j.submit()</tt> to resolve the issue:<br />
<br />
<pre><br />
In [n]: fixpython<br />
</pre><br />
<br />
=== Creating a new GANGA job ===<br />
<pre><br />
In [n]: j = Job()<br />
</pre><br />
<br />
=== Setting application ===<br />
From the <tt>AMAAthena/cmt</tt> directory, start ganga and do:<br />
<br />
<pre><br />
In [n]: j.application = AMAAthena()<br />
In [n]: j.application.option_file += [ File('../run/AMAAthena_jobOptions.py'), File('../run/Trigger_jobOptions.py') ]<br />
In [n]: j.application.driver_config.config_file = File('../run/exampleaod.conf')<br />
In [n]: j.application.driver_config.include_file += [ File('../run/reader.conf') ]<br />
In [n]: j.application.prepare()<br />
</pre><br />
<br />
=== Setting input data ===<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt><br />
<br />
When using the <tt>'''StagerDataset'''</tt>, the AMAAthena job will use the Athena <tt>'''FileStager'''</tt> to copy dataset files from a grid storage.<br />
<br />
<pre><br />
In [n]: j.inputdata = StagerDataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
</pre><br />
<br />
<li/><tt>'''DQ2Dataset'''</tt><br />
<br />
When using the <tt>'''DQ2Dataset'''</tt>, GANGA will handle the file access externally from Athena.<br />
<br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset += [ 'fdr08_run2.0052280.physics_Muon.merge.AOD.o3_f8_m10' ]<br />
In [n]: j.inputdata.type = 'DQ2_DOWNLOAD'<br />
</pre><br />
</ul><br />
<br />
=== Setting job splitter (optional) ===<br />
The examples below ask each subjob to process on 2 files in maximum.<br />
<br />
<ul><br />
<li/>using <tt>'''StagerJobSplitter'''</tt> with <tt>'''StagerDataset'''</tt><br />
<br />
<pre><br />
In [n]: j.splitter = StagerJobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
<li/>using <tt>'''DQ2JobSplitter'''</tt> with <tt>'''DQ2Dataset''' for jobs running on LCG</tt><br />
<br />
<pre><br />
In [n]: j.splitter = DQ2JobSplitter()<br />
In [n]: j.splitter.numfiles = 2<br />
</pre><br />
<br />
</ul><br />
<br />
=== Setting computing backend ===<br />
<br />
<ul><br />
<li/>using Stoomboot (PBS cluster) at NIKHEF<br />
<br />
<pre><br />
In [n]: j.backend = PBS()<br />
</pre><br />
<br />
For a long running job, please also do<br />
<br />
<pre><br />
In [n]: j.backend.queue = 'qlong'<br />
</pre><br />
<br />
to avoid running over the walltime limitation of the default PBS queue.<br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] To make your grid certificate usable for jobs running on STOOMBOOT you need to do the following when creating a grid proxy:<br />
<br />
<pre><br />
$ voms-proxy-init -voms atlas -out ~/.globus/gridproxy.cert<br />
</pre><br />
<br />
<li/>using lxbatch (LSF cluster) at CERN<br />
<br />
<pre><br />
In [n]: j.backend = LSF()<br />
</pre><br />
<br />
For a long running job, please also specify the queue name concerning the job's walltime. For example:<br />
<br />
<pre><br />
In [n]: j.backend.queue = '8nh'<br />
</pre><br />
<br />
<li/>using the world-wide grid (WLCG/EGEE)<br />
<br />
<pre><br />
In [n]: j.backend = LCG()<br />
</pre><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] <tt>'''StagerDataset'''</tt> is not yet supported for jobs on LCG. Please using <tt>'''DQ2Dataset'''</tt> instead. For example:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.inputdata = DQ2Dataset()<br />
In [n]: j.inputdata.dataset = []<br />
</pre><br />
</li><br />
</ol><br />
<br />
[[Image:32px-Nuvola apps important.svg.png|16px|Be careful]] Starting from Ganga 5.0.7, jobs submitted to LCG backend require users to specify one of the following requirements:<br />
<br />
<ol><br />
<li><br />
<pre><br />
In [n]: j.backend.requirements.cloud = 'NL'<br />
In [n]: j.splitter = DQ2JobSpliter()<br />
</pre><br />
meaning that <b><i>let Ganga distribute the jobs within a particular computing cloud.</i></b><br />
</li><br />
<br />
<li><br />
<pre><br />
In [n]: j.backend.CE = 'gazon.nikhef.nl:2119/jobmanager-pbs-atlas'<br />
</pre><br />
meaning that <b><i>I want the job to be run on a particular computing element (I know what I am doing now!!).</i></b><br />
</li><br />
</ol><br />
<br />
</ul><br />
<br />
=== Submitting job ===<br />
<pre><br />
In [n]: j.submit()<br />
</pre><br />
<br />
== After job submission ==<br />
<br />
=== Checking job status ===<br />
GANGA automatically polls the up-to-date status of your jobs and updates local repository accordingly. A notification will pop up to the user when the job status is changed.<br />
<br />
In addition, you can get a job summary table by:<br />
<br />
<pre><br />
In [n]: jobs<br />
</pre><br />
<br />
or a summary table for subjobs:<br />
<br />
<pre><br />
In [n]: j.subjobs<br />
</pre><br />
<br />
=== Result and output merging ===<br />
For the moment, the completed (sub-)job returns an root summary file. The file is stored in the <tt>summary</tt> sub-directory in the job's output directory.<br />
<br />
For jobs using <tt>'''StagerJobSplitter'''</tt>, the <tt>'''RootMerger'''</tt> is automatically attached with the job so that when the whole job is <tt>completed</tt>, the summary root files from sub-jobs are merged together.<br />
<br />
For jobs using <tt>'''DQ2Dataset'''</tt>, the merging process can be done manually when the whole job is <tt>completed</tt>. For example, assuming each sub-job produces a root summary file called <tt>summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root</tt>. To merge them, one can do:<br />
<br />
<pre><br />
In [n]: merger = RootMerger()<br />
In [n]: merger.files += ['summary/summary_mySample_confFile_exampleaod.conf_nEvts_1000.root']<br />
In [n]: merger.overwrite = True<br />
In [n]: merger.ignorefailed = True<br />
In [n]: merger.merge(j)<br />
</pre><br />
<br />
The merged root file has the same name and it will be created in the job's outputdir.<br />
<br />
=== Killing and removing jobs ===<br />
You can kill a job by calling<br />
<br />
<pre><br />
In [n]: j.kill()<br />
</pre><br />
<br />
or remove a job by<br />
<br />
<pre><br />
In [n]: j.remove()<br />
</pre><br />
<br />
== Advance usage ==<br />
=== Changing the default <tt>gangadir</tt> ===<br />
For each job, Ganga maintains the associate files (e.g. job's inputs, outputs, metadata, etc.) in <tt>gangadir</tt>. This may take space (or disk quota) if you have many jobs in Ganga. You may want Ganga to keep those files in another directory where more space is available. To do so, open the <tt>~/.gangarc</tt> file and change the directory as the following:<br />
<br />
<pre><br />
gangadir = /project/atlas/Users/yourusernamehere/gangadir<br />
</pre><br />
<br />
=== Restricting max. number of events ===<br />
<pre><br />
In [n]: j.application.max_events = '1000'<br />
</pre><br />
<br />
=== Running on more than one dataset ===<br />
The '''<tt>StagerDataset</tt>''' supports wildcard specification in the dataset name. For example, if you want to run on all FDR2 Muon stream datasets, you can set the inputdata like the following:<br />
<br />
<pre><br />
In [n]: j.inputdata.dataset += ['fdr08_run2*physics_Muon*']<br />
</pre><br />
<br />
=== Dealing with failed sub-jobs ===<br />
It's very possible to have some failed sub-jobs. In this case, GANGA reports the whole job as failed. There is no necessary to resubmit the whole job, you can just resubmit the failed subjobs. Assuming you have a failed job, <tt>j</tt>:<br />
<br />
<pre><br />
In [n]: j.subjobs.select(status='failed').resubmit()<br />
</pre><br />
<br />
=== Failing jobs manually ===<br />
Some unexpected issues in the job may cause Ganga unable to update the job status to <tt>failed</tt> as it should be. In this case, you can manually fail the job in force<br />
<br />
<pre><br />
In [n]: j.force_status("failed")<br />
</pre><br />
<br />
This can avoid Ganga to keep polling the status of the problematic job which may be gone from the backend system.<br />
<br />
=== The basic trouble shooting ===<br />
GANGA tries to bring the stdout/err back to the client side even when the job is failed remotely on the Grid. So for the failed jobs, you can check them as the following for trouble shooting:<br />
<br />
<pre><br />
In [n]: j.peek('stdout','less')<br />
In [n]: j.peek('stderr','cat')<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
In [n]: j.peek('stdout.gz','zcat')<br />
In [n]: j.peek('stdout.gz','zcat')<br />
</pre><br />
<br />
for the LCG jobs.<br />
<br />
== More information ==<br />
<ul><br />
<li/>[http://ganga.web.cern.ch/ganga/user/html/GangaIntroduction/ GANGA workbook ]<br />
<li/>[https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedAnalysisUsingGanga GANGA tutorials for ATLAS users ]<br />
<li/>[http://ddm-build.cern.ch/ddm/build/testing/doc/guides/dq2-clientapi-cli/html/user/enduser.html The users' guide of the DQ2 enduser tools ]<br />
</ul><br />
<br />
== Known issues/ToDo items ==<br />
<ul><br />
<li/><tt>'''StagerDataset'''</tt> not supported for jobs on LCG<br />
</ul><br />
<br />
--[[User:Hclee|Hclee]] 16:17, 13 Aug 2008 (MET DST)</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Thesis_page_ATLAS_Nikhef&diff=2629Thesis page ATLAS Nikhef2008-09-29T12:32:14Z<p>Gossie: </p>
<hr />
<div>This pages gives an overview of the theses produced in the Nikhef ATLAS group.<br />
<br />
'''Ho to add a new document to this list:''' <br />
<ol style="list-style-type:lower-roman"><br />
<li>Copy the pdf file to <font color=blue> /www/pub/experiments/atlas/Theses/ </font> at Nikhef</li><br />
<li>Edit this wiki page by adding a line to the corresponding category (or send a mail to Ivo)</li><br />
</ol><br />
<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | PhD theses<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
|-<br />
| Niels van Eldik<br />
| 2007<br />
| The ATLAS muon spectrometer : calibration and pattern recognition <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/NielsVanEldik.pdf (pdf)]<br />
|-<br />
| Thijs Cornelissen <br />
| 2006<br />
| Track fitting in the ATLAS experiment <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ThijsCornelissen.pdf (pdf)]<br />
|-<br />
| Marcello Barisonzi<br />
| 2006<br />
| Mass measurements of the top quark in electroweak production channels at ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MarcelloBarisonzi.pdf (pdf)]<br />
|-<br />
| Rene Scholte <br />
| 2003<br />
| Data read-out and Bc production in ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ReneScholte.pdf (pdf)]<br />
|-<br />
| Marcel Vos <br />
| 2003<br />
| The ATLAS inner tracker and the detection of light supersymmetric Higgs bosons <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MarcelVos.pdf (pdf)]<br />
|-<br />
| Simon Peeters <br />
| 2003<br />
| The ATLAS semiconductor tracker endcap<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/SimonPeeters.pdf (pdf)]<br />
|-<br />
| Joost Visser<br />
| 2003<br />
| Muon tracks through ATLAS <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/JoostVisser.pdf (pdf)]<br />
|-<br />
| Martin Woudstra <br />
| 2002<br />
| Precision of the ATLAS muon spectrometer <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/MartinWoudstra.pdf (pdf)]<br />
|-<br />
| Ernst-Jan Buis<br />
| 2002<br />
| Detecting R-parity violation in the Atlas inner detector <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/PhD/ErnstJanBuis.pdf (pdf)]<br />
|}<br />
<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | Master theses<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
| style ="background:#3399ff;" | Supervisor<br />
|-<br />
| Barbara Millan Mejias <br />
| 2008<br />
| Optimization of Vector Boson Fusion Higgs candidate selection<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/BarbaraMillanMejias.pdf (pdf)]<br />
| Max Baak and Peter Kluit<br />
|-<br />
| Irene Niessen <br />
| 2008<br />
| Supersymmetric Phenomenology in the mSUGRA Parameter Space<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/IreneNiessen.pdf (pdf)]<br />
| Wim Beenakker and Nicolo de Groot (RU Nijmegen)<br />
|-<br />
| Egge van der Poel <br />
| 2007<br />
| Dark current in Monitored Drift Tubes and RASNIK commissioning at Atlas<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/EggeVanDerPoel.pdf (pdf)]<br />
| Harry van der Graaf and Carel van Eijk (TU Delft)<br />
|-<br />
| Menelaos Tsiakiris<br />
| 2007<br />
| Online selection of fully hadronic tt decays with the ATLAS detector<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/MenelaosTsiakiris.pdf (pdf)]<br />
| Sander Klous<br />
|-<br />
| Sander van Til <br />
| 2007<br />
| Scalar top pair production in ATLAS<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/SanderVanTil.pdf (pdf)]<br />
| Paul de Jong<br />
|-<br />
| Nicole Ruckstuhl<br />
| 2007<br />
| Testing a mSUGRA dark matter annihilation model for the EGRET gamma ray excess with ATLAS<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/NicoleRuckstuhl.pdf (pdf)]<br />
| Ivo van Vulpen<br />
|-<br />
| Martijn Gosselink<br />
| 2006<br />
| Upsilon production in hadronic collisions<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/MartijnGosselink.pdf (pdf)]<br />
| Bob van Eijk<br />
|-<br />
| Alex Koutsman<br />
| 2005<br />
| Pulse Analysis for ATLAS MDT Twin Tubes<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/AlexKoutsman.ps (ps)]<br />
| Harry van der Graaf<br />
|-<br />
| Zdenko van Kesteren<br />
| 2004<br />
| Angular orientation reconstruction of a Hall sensor calibration setup <br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Master/ZdenkoVanKesteren.pdf (pdf)]<br />
| Frank Linde<br />
|}<br />
<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
! style="background:#ffba00;" | Bachelor projects<br />
|}<br />
<br />
{| border="1" cellpadding="2" cellspacing="0"<br />
|-<br />
| style ="background:#3399ff;" | Name <br />
| style ="background:#3399ff;" | Year<br />
| style ="background:#3399ff;" | Title<br />
| style ="background:#3399ff;" | Thesis <br />
| style ="background:#3399ff;" | Supervisor<br />
|-<br />
| Bardo Bakker <br />
| 2008<br />
| Extra dimensies (dutch)<br />
| [http://www.nikhef.nl/pub/experiments/atlas/Theses/Bachelor/BardoBakker.pdf (pdf)]<br />
| Ivo van Vulpen<br />
|-<br />
|}</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=AFS&diff=4808AFS2008-07-09T10:18:45Z<p>Gossie: </p>
<hr />
<div>To be able to access your homedir on /afs/cern.ch/user/... :<br />
<br />
<pre><br />
$ /usr/kerberos/bin/kinit -4 <afsusername><br />
$ /usr/kerberos/bin/kinit -5 <afsusername><br />
$ aklog -cell cern.ch<br />
</pre><br />
<br />
Be careful: just using <tt>'$ kinit'</tt> might call the wrong Kerberos version (check with <tt>which kinit</tt>).</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=AFS&diff=2224AFS2008-07-09T10:18:34Z<p>Gossie: </p>
<hr />
<div>To be able to access your homedir on /afs/cern.ch/user/... :<br />
<br />
<pre><br />
$ /usr/kerberos/bin/kinit -4 <afsusername><br />
$ /usr/kerberos/bin/kinit -5 <afsusername><br />
$ aklog -cell cern.ch<br />
</pre><br />
<br />
Be careful: just using <tt>'$ kinit'</tt> might call the wrong Kerberos version (check with <tt>which kinit</tt>.</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=AFS&diff=2223AFS2008-07-09T10:17:03Z<p>Gossie: </p>
<hr />
<div><pre><br />
$ /usr/kerberos/bin/kinit -4 <afsusername><br />
$ /usr/kerberos/bin/kinit -5 <afsusername><br />
$ aklog -cell cern.ch<br />
</pre></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Software&diff=2260Software2008-07-09T10:16:12Z<p>Gossie: /* Atlas Software Pages */</p>
<hr />
<div>==Atlas Software Pages==<br />
<br />
Here you will find the pages on software issues, specific for Atlas. In the past we tried to keep up with a number of pages, but unfortunately they have been outdated by now. Nevertheless you can have a look at them [http://www.nikhef.nl/pub/experiments/atlas/software/ here]<br />
<br />
<br />
----<br />
'''External software pages:'''<br />
*[http://www.nikhef.nl/~barison/Production.php Marcello Barisonzi Single top production page]<br />
*[http://www.nikhef.nl/~stanb/Production.php Stan's DC2 production page]<br />
<br />
----<br />
'''Tutorials'''<br />
*[[wouter_aod_example|Wouters ttbar AOD analysis example]]<br />
*[[MCatNLO_howto|MCatNLO howto for Rome]]<br />
*[http://www.nikhef.nl/~barison/AOD_Tutorial.ppt Marcellos AOD tutorial (ppt)]<br />
*[[Generating_Higgs_To_4_Muons_at_NIKHEF|Generating_Higgs_To_4_Muons_at_NIKHEF]]<br />
*[[Generating_Higgs_Events_on_the_grid|Generating_Higgs_Events_on_the_grid]]<br />
*[[FullChain_on_the_grid|FullChain_on_the_grid]]<br />
*[[Event display tutorial|Event display tutorial]]<br />
*[[MuonCalib_Tutorial|Muon calibration tutorial]]<br />
*[[Combined Reconstruction Recipes|Cosmic muon Reconstruction Recipes]]<br />
*[[athena_workshop|ATHENA workshop October 2006]]<br />
<br />
----<br />
'''Rome Data Sample (NIKHEF):'''<br />
*[[NIKHEF_Rome_MCatNLO_Samples| Location ttbar files at NIKHEF for Rome meeting]]<br />
*[https://uimon.cern.ch/twiki/bin/view/Atlas/RomeListOfSamples CERN Wiki for Rome data]<br />
*[http://atlfarm003.mi.infn.it/%7Enegri/rome_dataset.htm List of GRID jobs]<br />
*[http://phyweb.lbl.gov/AOD/10.0.1/ Web repository of reconstructed data]<br />
*[[aod_ntuple| Contents of the AOD-based Root ntuple (Woutuple)]]<br />
*[[ntuple_analysis_skeleton| Analyse the Ntuple (skeleton analysis)]]<br />
<br />
----<br />
'''TTbar analysis'''<br />
*[[location_datasample| Rome data sample (MCatNLO-input/Generator/AOD/Ntuples)]]<br />
*[[wouter_aod_example| TTbar AOD analysis & producing the TTbar Ntuple from an AOD]]<br />
*[[ttbar_analysis_skeleton| TTbar Ntuple Analysis Skeleton]]<br />
*[[producing_Woutuple_from_AOD | Producing a TTbar Ntuple from an AOD]]<br />
<br />
----<br />
'''CSC Data Analysis (NIKHEF):'''<br />
*[[Setting_up_1206 | Setting up Athena 12.0.7 and TopView ]]<br />
*[[TVModularAnalysis | TVModularAnalysis ]]<br />
*[[12.0.6_TopViewNtuples_and_AOD's_at_NIKHEF | 12.0.6 TopViewNtuples and AOD's at NIKHEF ]]<br />
*[[Location_Ntuples_and_AOD's_at_NIKHEF | Location Ntuples and AOD's at NIKHEF ]] (outdated)<br />
*[[CSC_PhysicsSamples| Location CSC files at NIKHEF]] (outdated)<br />
*[[Producing_CSC_Ntuples_From_AOD_11 | Producing CSC Ntuples from AOD (release 11)]] (outdated)<br />
*[[Analysing_CSC_Ntuples_From_AOD_11 | Analyzing CSC Ntuples from AOD (release 11)]] (outdated)<br />
----<br />
'''Athena release 13 (Nikhef):'''<br />
*[[Setting_up_13.0.30 at Nikhef | Setting up Athena 13.0.30 with slc3 and slc4 at Nikhef]]<br />
----<br />
'''Grid'''<br />
*[[Using_DQ2_at_NIKHEF | Using DQ2 at NIKHEF ]]<br />
*[[Using_ganga_at_NIKHEF | Using ganga at NIKHEF ]]<br />
*[[Access_to_data_at_NIKHEF_tier | Access to data at NIKHEF Tier ]]<br />
*[[CSC_Ntuple_production | Producing CSC ntuples ]]<br />
*[[Renew_Grid_Certificate | Renewing your Grid Certificate(s) ]]<br />
*[[Using_atlas_nl_group_membership | Using <tt>/atlas/nl</tt> group membership for proxy ]]<br />
*[[Using_RFIO_or_DCAP_to_access_files_on_Nikhef_Grid_disks | Using RFIO or DCAP to access files on Nikhef Grid disks ]]<br />
----<br />
'''SUSY tools:'''<br />
*[[Tools_to_scan_the_mSUGRA_phasespace | Tools to scan the mSUGRA phasespace ]]<br />
*[[Generating_AtlFast_SUSY_Events | Generating AtlFast SUSY Events ]]<br />
----<br />
'''AtlasModularAnalysis'''<br />
*[[ AMA_in_Athena_14_1_0 | Running AMA using Athena release 14.1.0 ]]<br />
----<br />
'''Miscelleaneous'''<br />
*[[ AFS | Accessing /afs/cern.ch from Nikhef]]</div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2259Detachment at CERN2008-07-01T22:33:24Z<p>Gossie: /* France */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office de non poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>statement from CERN saying you are a user at CERN and paid (CERN is a magic word). Can get this at the Users' Office.<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
</ul><br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
<ul><br />
<li>http://www.paruvendu.fr/immobilier/location<br />
<li>http://www.topannonces.fr/<br />
</ul><br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2219Detachment at CERN2008-06-23T14:01:25Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office de non poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>statement from CERN saying you are a user at CERN and paid (CERN is a magic word). Can get this at the Users' Office.<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
</ul><br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2214Detachment at CERN2008-06-23T14:00:47Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office de non poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>statement from CERN saying you are a user at CERN and paid (CERN is a magic word). Can get this at the Users' Office.<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
</ul><br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2213Detachment at CERN2008-06-23T14:00:26Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>statement from CERN saying you are a user at CERN and paid (CERN is a magic word). Can get this at the Users' Office.<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
</ul><br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2212Detachment at CERN2008-06-23T13:57:45Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
</ul><br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2211Detachment at CERN2008-06-23T13:57:30Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
<ul><br />
<li>get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>[http://www.swisscaution.ch/ Swiss caution] expensive form of loaning money<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2210Detachment at CERN2008-06-23T13:55:13Z<p>Gossie: /* Geneva */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies and a chaotic [http://docs.google.com google.docs] spreadsheet) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2209Detachment at CERN2008-06-23T13:54:15Z<p>Gossie: /* Geneva */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you. I spend ~ 1.5 weeks full time searching (resulting in 8 subscriptions at different regies) before getting a contract offer. Be nice to the people ;-)<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2208Detachment at CERN2008-06-23T13:52:28Z<p>Gossie: /* Geneva */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies in person to see what they have available (and keep track of the offers on internet). When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you.<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2207Detachment at CERN2008-06-23T13:51:57Z<p>Gossie: /* Geneva */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from... GHI/CERN market seems to have the best offers. Go to regies to see what they have available. When visiting houses, don't be surprised > 40 people show up. When visiting, take copies of the needed paperwork with you.<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2206Detachment at CERN2008-06-23T13:50:18Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
=====some regies=====<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2205Detachment at CERN2008-06-23T13:49:54Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
'some regies'<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz (many offers, via immostreet/GHI)<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2204Detachment at CERN2008-06-23T13:49:32Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
'some regies'<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.</i><br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2203Detachment at CERN2008-06-23T13:49:13Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
''some regies''<br />
<br><br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<br><br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2202Detachment at CERN2008-06-23T13:48:49Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
''some regies''<br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<i>Need a cosignataire/garant: someone with Permis de Sejour B/C/L living in Switzerland. Might try a CERN fellow (Permis de Sejours D), not sure this will be accepted. Don't try if you don't have someone to sign, waste of time.<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2201Detachment at CERN2008-06-23T13:46:31Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
''some regies''<br />
Be patient...<br />
<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2200Detachment at CERN2008-06-23T13:46:00Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
''some regies''<br />
'''good experiences'''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
'''not so good experiences'''<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
'''no opinion'''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2199Detachment at CERN2008-06-23T13:45:39Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
'''some regies'''<br />
''''good experiences''''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
<br />
''''not so good experiences''''<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
<br />
''''no opinion''''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2198Detachment at CERN2008-06-23T13:45:21Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
<li>[http://tools.cagi.ch/print/?TID=12965 list of regies]<br />
</ul><br />
<br />
'''some regies'''<br />
''''good experiences''''<br />
<ul><br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.tournier.ch/<br />
</ul><br />
''''not so good experiences''''<br />
<ul><br />
<li>Stutz<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
</ul><br />
'''''no opinion''''<br />
<ul><br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.homegate.ch/<br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2197Detachment at CERN2008-06-23T13:40:57Z<p>Gossie: /* Geneva */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
It might be smart to book the CERN hostel for a period. Expensive, though easy to start from...<br />
<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
'''some regies'''<br />
<ul><br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2196Detachment at CERN2008-06-23T13:39:53Z<p>Gossie: /* source */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
'''some regies'''<br />
<ul><br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
<br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2195Detachment at CERN2008-06-23T13:39:10Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
'''some regies'''<br />
<ul><br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2194Detachment at CERN2008-06-23T13:38:38Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
'''some regies'''<br />
<ul><br />
<li>http://abordier.ch/location/appartements.html<br />
<li>http://www.grange.ch/home_index.html<br />
<li>http://www.bory.ch/location/default.asp<br />
<li>http://www.brolliet.ch/<br />
<li>http://www.cagi.ch/<br />
<li>https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx<br />
<li>http://ch.foncia.com/foncia_swizerland_fr/index.htm<br />
<li>http://gerpar.ch/<br />
<li>http://www.ghi.ch/live/1/home/<br />
<li>http://www.moservernet.ch/structure/framesets/fr/frset_app.html<br />
<li>http://www.moservernet.ch/structure/navig_menus/fr/navig_app.html<br />
<li>http://www.rosset.ch/pages/location_geneve.php<br />
<li>http://www.regiecite.ch/Location/Logements/tabid/126/Default.aspx<br />
<li>http://www.naef.ch/index.php?mode=detail&id_rubrique=26250&id_objet=5157775<br />
<li>http://www.immostreet.ch/asp/base.asp?LAN_CODE=FRE&SKIN=is<br />
<li>http://www.burger-sa.ch/habitations.asp?typObj=1<br />
<li>http://www.simonin.ch/<br />
<li>http://www.spg.ch/<br />
<li>http://www.regiefonciere.ch/home_en.htm<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2193Detachment at CERN2008-06-23T13:34:10Z<p>Gossie: /* formalities */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments -> a statement from Nikhef PZ about your salary will do<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2192Detachment at CERN2008-06-23T13:33:37Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>[http://www.ghi.ch/ GHI] (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>[https://espace.cern.ch/cern-market/Lists/Messages/AllItems.aspx CERN market]<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2191Detachment at CERN2008-06-23T13:32:27Z<p>Gossie: /* France */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>GHI (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
===France===<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2190Detachment at CERN2008-06-23T13:32:10Z<p>Gossie: /* Formalities at CERN */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
<li>for French card: bring 7 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>GHI (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
===France===<br />
7 photo's for Frensh card!<br />
<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2189Detachment at CERN2008-06-23T13:31:34Z<p>Gossie: /* Formalities at CERN */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on [http://ph-dep.web.cern.ch/ph-dep/UsersOffice/UsersContractsInfo/EDHChecklistE.html EDH]<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>GHI (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
===France===<br />
7 photo's for Frensh card!<br />
<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossiehttps://wiki.nikhef.nl/atlas/index.php?title=Detachment_at_CERN&diff=2188Detachment at CERN2008-06-23T13:29:12Z<p>Gossie: /* sources */</p>
<hr />
<div>==Formalities at Nikhef==<br />
<br />
<ul><br />
<li>Talk to PZ to inform them and get information. Verhuiskosten, detacheringsvergoeding, huurkosten, extra verzekering, voorschotten, ...<br />
<li>if you want: unregister from the gemeente Amsterdam at your 'stadsdeelkantoor' (check whether this is a smart thing to do or not, this depends on several 'things')<br />
</ul><br />
<br />
==Formalities at CERN==<br />
Assuming you already registered at CERN (eg. you have a CERN card etc.) but not for permanent stay .<br />
<ul><br />
<li>fill in Users' Check List on EDH<br />
<li>for Swiss card: bring 3 photos to Users' Office<br />
</ul><br />
<br />
==Housing==<br />
<br />
===Geneva===<br />
====formalities====<br />
<ul><br />
<li>passport<br />
<li>attestation de functions:<br />
the Swiss card (you got already via CERN)<br />
<br />
<li>attestation office des poursuites:<br />
some kind of prove you do not have any debts in Geneva<br />
Office des poursuites<br />
Rue du Stand 46 (open till 15u30)<br />
CHF 17,-<br />
<li>copy of your 3 last salary payments<br />
<li>deposit:<br />
get a normal bank account at UBS (need to go to Users' Office first to be able to open an account) and then you can get a special 'deposit' account<br />
<li>cosignature: ...?<br />
</ul><br />
<br />
====sources====<br />
<ul><br />
<li>GHI (every Wednesday ~10am at Cornavin -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
===France===<br />
7 photo's for Frensh card!<br />
<br />
no experience... probably: get a car<br />
<br />
==Car==<br />
This is information about how to bring your (Dutch) car to CERN and drive it legally...<br />
Decide where you are going to life first. You need an adress in France or Switzerland<br />
to start any procedure. For help on the issue there is the [https://hr-dept.web.cern.ch/hr-dept/ Human Resources]<br />
and the folks at building 33 (above the micro-cosmos) are very helpful.<br />
<br />
===Switzerland===<br />
Once you have an adress, you will have to go to customs at the border (near entrace B) and import your car.<br />
With the forms you get, you can then go to building 33 and they will order the Swiss plates for you.<br />
<br />
===France===<br />
Once you have an adress and the French card, you can go directly to building 33 and order the green plates.<br />
At the moment they will take about 8 weeks.<br />
<br />
====source====<br />
<ul><br />
<li>GHI (every Wednesday -> be quick!)<br />
<li>CERN market<br />
</ul><br />
<br />
==Random tips to make life easy==<br />
<ul><br />
<li>Get a bank account at UBS if you are staying in Switzerland<br />
<li>Pinnen with Dutch pinpas kost money in Switzerland (~ EUR 1.82)<br />
<li>Yallo for cheap prepaid mobile phone cards at the CERN shop<br />
<li>Cartabonus/Unireso card for public transport<br />
<li>Free public transport ticket at luggage pick up hall on the left exit<br />
<li>They actually have a lot of information here: [https://hr-dept.web.cern.ch/hr-dept/ Human Resources Departement]<br />
</ul></div>Gossie