Added a README file to explain things a bit
[u/mrichter/AliRoot.git] / FMD / README
1     README file for ALICE Forward Multiplicity Detector Off-line Code
2     =================================================================
3
4 Introduction:
5 -------------
6
7 This file contains a short overview of the FMD code.   It is by no
8 means authoritative  - only the code is good for that.  However, I'll
9 try to explain things a bit here. 
10
11 Structure:
12 ----------
13
14 There are 4 libraries build for the FMD.  These are 
15
16 * libFMDbase:
17   This contains the basic stuff, like data classes and managers. 
18
19 * libFMDsim: 
20   This contains code used by the simulation only.  That includes the
21   detector class AliFMD and it's derivatives.  It also contains the
22   code for building the geometry, as well as the digitisers and raw
23   data writer. 
24
25 * libFMDrec:
26   Code needed for the reconstruction.  This include the reconstruction
27   code itself, as well as a raw data reader.
28
29 * libFMDutil:
30   This is a special library that contains various utility classes for
31   the FMD expert/developer/tester.  It includes code to read all data
32   produced by the FMD, a simple event display, and code to make fake
33   calibration and alignment data.  This library is _not_ loaded by
34   aliroot automatically. The user has to load it herself:
35
36      gSystem->Load("libFMDutil.so");
37
38 The content of these libraries is detailed more below. 
39
40 libFMDbase:
41 -----------
42
43 This currently (18th or March 2006) contains the classes 
44
45   AliFMDBaseDigit
46   AliFMDDigit
47   AliFMDSDigit
48         Base class for digits, real digits, and summable digits.  The
49         are all data classes that holds the ADC value(s) for a single
50         strip. 
51   
52   AliFMDBoolMap:
53         A map of booleans, one for each strip.
54   
55   AliFMDUShortMap:
56         A map of unsigned short integers, one for each strip. 
57   
58   AliFMDDetector
59   AliFMD1
60   AliFMD2
61   AliFMD3:
62         3 classes that holds the parameters for each of the 3
63         FMD sub-detectors.  These derive from AliFMDDetector, and are
64         managed by AliFMDGeometry.  Each of these also contains the
65         translation from sensor reference frame to global reference
66         frame. 
67
68   AliFMDRing:
69         Parameters for the FMD rings (inner and outer type).  These are
70         managed by AliFMDGeometry. 
71   
72   AliFMDGeometry: 
73         Manager of FMD geometry data. All code queries this manager
74         for geometry parameters, so that the data is always consistent. 
75   
76   AliFMDParameters:
77         Manager of FMD parameters, like calibration parameters.  This
78         class fetches data from CDB if necessary.   All code queries
79         this manager for parameters, so that the data is always
80         consistent. 
81   
82   AliFMDCalibPedestal
83   AliFMDCalibGain
84   AliFMDCalibSampleRate
85   AliFMDAltroMapping:
86         Containers of calibration parameters.  These correspond to the
87         pedestal and its width, the gain of each strip, the
88         oversampling rate used in read-out, and the map from hardware
89         address to detector. 
90   
91
92 libFMDsim:
93 ----------
94
95 This currently (18th or March 2006) contains the classes 
96
97   AliFMDEdepMap  
98         Cache of energy deposited and total number of hits for each
99         strip.  The digitiser AliFMDDigitizer uses this to store
100         simulation data before making digits. 
101
102   AliFMDHit  
103         A hit in the FMD active elements, as described by the
104         simulation back-end during transport. 
105
106   AliFMD  
107   AliFMDv0  
108   AliFMDv1  
109         Simulation drivers for the FMD.  AliFMD is the base
110         class. AliFMDv0 corresponds to a simulation where no hits are
111         created, but the material distribution is right.   AliFMDv1 is
112         like AliFMDv0, except that hits are produced. 
113
114   AliFMDGeometryBuilder  
115         Build the FMD geometry in terms of TGeo objects.  The
116         information for building the geometry is retrieved from
117         AliFMDGeometry. 
118
119   AliFMDBaseDigitizer  
120   AliFMDDigitizer  
121   AliFMDSDigitizer 
122         Base class for the digitisers.  AliFMDDigitizer makes `real'
123         digits (AliFMDDigit) from hits, and AliFMDSDigitizer makes
124         summable digits from hits. 
125  
126   AliFMDRawWriter  
127         Writes a pseudo raw data file from the digits created by the
128         digitisers.  It uses the AliFMDAltroMapping from
129         AliFMDParameters to make the mapping from detector coordinates
130         to hardware addresses. 
131
132 libFMDrec:
133 ----------
134
135 This currently (18th or March 2006) contains the classes 
136
137   AliFMDReconstructor  
138         Reconstruct (in a naiive way) the charged particle
139         multiplicity in the FMD strips.   This also writes an
140         AliESDFMD object to the ESD files (that class is in libESD). 
141
142   AliFMDRecPoint  
143         Reconstructed point in the FMD.  These objects are made
144         AliFMDReconstructor. 
145
146   AliFMDRawStream  
147   AliFMDRawReader  
148         Classes to read raw data files. 
149
150 libFMDutil:
151 -----------
152
153 This currently (18th or March 2006) contains the classes 
154
155   AliFMDInput  
156   AliFMDInputHits  
157   AliFMDInputDigits  
158   AliFMDInputSDigits  
159   AliFMDInputRecPoints  
160         Base class, and concrete classes to read in FMD generated
161         data.  These provide a simple and unified way of getting the
162         data.  Hooks are defined to process hits, tracks, digits, and
163         reconstructed points, as well as geometry and ESD data.   See
164         for example the scripts `DrawHits.C', `DrawHitsDigits.C',
165         `DrawHitsRecs.C', `DrawDigitsRecs.C' in the `scripts'
166         sub-directory.
167
168   AliFMDDisplay  
169         Simple event display for FMD data, including hits, digits,
170         reconstructed points and ESD data. 
171
172   AliFMDCalibFaker  
173   AliFMDAlignFaker  
174         Classes to write fake (or dummy) calibration and alignment
175         data.  These derive from TTask.  The usage of these classes
176         is simple:
177
178                 AliFMDCalibFaker f;
179                 f.Set... // Set parameters if needed 
180                 f.Exec();
181
182 Authors:
183 --------
184
185   Alla Maevskaya                <Alla.Maevskaia@cern.ch>        
186   Christian Holm Christensen    <cholm@nbi.dk>
187
188 ----------------------------------------------------------------------
189 Local Variables:
190         mode: text
191 End:
192
193  LocalWords:  libFMDbase libFMDsim AliFMD libFMDutil aliroot gSystem naiive ESD
194  LocalWords:  CDB AliFMDGeometry AliFMDDetector AliFMDUShortMap AliFMDBoolMap
195  LocalWords:  AliFMDBaseDigit AliFMDDigit AliFMDSDigit AliFMDRing AliFMDEdepMap
196  LocalWords:  AliFMDParameters AliFMDCalibPedestal AliFMDCalibGain AliFMDHit
197  LocalWords:  AliFMDCalibSampleRate AliFMDAltroMapping AliFMDv AliFMDDigitizer
198  LocalWords:  AliFMDGeometryBuilder AliFMDBaseDigitizer AliFMDSDigitizer TGeo
199  LocalWords:  AliFMDRawWriter libFMDrec AliESDFMD AliFMDReconstructor libESD
200  LocalWords:  AliFMDRecPoint AliFMDRawStream AliFMDRawReader AliFMDInput TTask
201  LocalWords:  AliFMDInputHits AliFMDInputDigits AliFMDInputSDigits Maevskaya
202  LocalWords:  AliFMDInputRecPoints AliFMDDisplay AliFMDCalibFaker Holm booleans
203  LocalWords:  AliFMDAlignFaker