AliRoot Core  3dc7879 (3dc7879)
ALICE FMD Off-line code



This file contains a short overview of the FMD code. It is by no means authoritative - only the code is good for that. However, I'll try to explain things a bit here.

See also Forward Multiplicity Detector


There are 4 libraries build for the FMD. These are

  • libFMDbase: This contains the basic stuff, like data classes and managers.
  • libFMDsim: This contains code used by the simulation only. That includes the detector class AliFMD and it's derivatives. It also contains the code for building the geometry, as well as the digitisers and raw data writer.
  • libFMDrec: Code needed for the reconstruction. This include the reconstruction code itself, as well as a raw data reader.
  • libFMDutil: This is a special library that contains various utility classes for the FMD expert/developer/tester. It includes code to read all data produced by the FMD, a simple event display, and code to make fake calibration and alignment data. This library is not loaded by aliroot automatically. The user has to load it herself:
    The content of these libraries is detailed more below.


This currently (18th or March 2006) contains the classes

  • AliFMDBaseDigit, AliFMDDigit, AliFMDSDigit: Base class for digits, real digits, and summable digits. The are all data classes that holds the ADC value(s) for a single strip.
  • AliFMDBoolMap: A map of booleans, one for each strip.
  • AliFMDUShortMap: A map of unsigned short integers, one for each strip.
  • AliFMDDetector, AliFMD1, AliFMD2, AliFMD3: 3 classes that holds the parameters for each of the 3 FMD sub-detectors. These derive from AliFMDDetector, and are managed by AliFMDGeometry. Each of these also contains the translation from sensor reference frame to global reference frame.
  • AliFMDRing: Parameters for the FMD rings (inner and outer type). These are managed by AliFMDGeometry.
  • AliFMDGeometry: Manager of FMD geometry data. All code queries this manager for geometry parameters, so that the data is always consistent.
  • AliFMDParameters: Manager of FMD parameters, like calibration parameters. This class fetches data from CDB if necessary. All code queries this manager for parameters, so that the data is always consistent.
  • AliFMDCalibPedestal, AliFMDCalibGain, AliFMDCalibSampleRate, AliFMDAltroMapping: Containers of calibration parameters. These correspond to the pedestal and its width, the gain of each strip, the oversampling rate used in read-out, and the map from hardware address to detector.
  • AliFMDAltroIO, AliFMDAltroReader, AliFMDAltroWriter: Low-level classes to do input/output on ALTRO formated buffers.


This currently (18th or March 2006) contains the classes


This currently (18th or March 2006) contains the classes


This library contains flow analysis code that works similar to histograms.


This library contains analysis code.


This currently (18th or March 2006) contains the classes

  • AliFMDInput, AliFMDInputHits, AliFMDInputDigits, AliFMDInputSDigits, AliFMDInputRecPoints: Base class, and concrete classes to read in FMD generated data. These provide a simple and unified way of getting the data. Hooks are defined to process hits, tracks, digits, and reconstructed points, as well as geometry and ESD data. See for example the scripts DrawHits.C, DrawHitsDigits.C, DrawHitsRecs.C, DrawDigitsRecs.C in the FMD/scripts sub-directory.
  • AliFMDDisplay: Simple event display for FMD data, including hits, digits, reconstructed points and ESD data.
  • AliFMDCalibFaker, AliFMDAlignFaker: Classes to write fake (or dummy) calibration and alignment data.


Most scripts live in FMD/scripts. The notiable exceptions are Simulate.C, Reconstruct.C, and Config.C

Quick start

First, install ROOT. Then Install TGeant3:

> cd ~/
> mkdir alice
> cd alice
> cvs -d login 
Password: cvs
> cvs -d co geant3
> cd geant3
> make 

Now you can install AliRoot

> cd ../
> cvs -d login
Password: <empty>
> cvs -d co AliRoot
> cd AliRoot
> export ALICE_TARGET=`root-config --arch`
> export ALICE=${HOME}/alice
> export ALICE_ROOT=${ALICE}/AliRoot
> export ALICE_LEVEL=new
> export PATH=${ALICE_ROOT}/bin/tgt_${ALICE_TERGET}:${PATH}
> export G3SYS=${ALICE}/geant3
> make 

To simulate one event, do something like

> aliroot ${ALICE_ROOT}/FMD/Simulate.C

To reconstruct the generated event, do

> aliroot ${ALICE_ROOT}/FMD/Reconstruct.C

Now, open the file `AliESDs.root' in AliRoot, and browse through that.