5 \page README_geometry README geometry
8 \section geometry_s1 General Information about MUON Geometry
10 Our geometry is described in the geometry builder classes.
11 Main geometrical constants are set in the class AliMUONConstants.
12 The code can then generate the geometry data files
13 transform.dat and svmap.dat (see description below) via the macro
14 MUONGenerateGeometryData.C (more info below).
16 The geometry data files have to be recreated each time the code
17 of the geometry is modified. The info (well updated) in this files
18 (svmap) is need during the simulation.
19 We can also decide to use the transform.dat file as input of our
20 geometry. This allows for changing the position of our detection elements
21 and/or half-planes (half-chambers in code jargon) without modifying
22 and recompiling the code.
24 First step in the official aliroot simulation process is to create
25 the geometry.root file from the builders to build the MUON geometry
26 within the geometrical modeler framework of root.
27 Then aliroot takes the geometry.root file as a unique geometrical
28 info of our apparatus during the generation and the reconstruction
29 and analysis (if needed)
31 Misalignments are in the official AliRoot code applied to the geometry.root
35 \section geometry_s2 How to check the Geometry with the new Geometrical modeler
37 \see ftp://root.cern.ch/root/doc/chapter16.pdf
38 \see http://agenda.cern.ch/fullAgenda.php?ida=a05212
41 gAlice->Init("$ALICE_ROOT/MUON/Config.C");
42 gGeoManager->GetMasterVolume()->Draw();
46 \section geometry_s3 How to check the overlap with the new Geometrical modeler
48 \see ftp://root.cern.ch/root/doc/chapter16.pdf
49 \see http://agenda.cern.ch/fullAgenda.php?ida=a05212
52 gAlice->Init("$ALICE_ROOT/MUON/Config.C");
53 gGeoManager->CheckOverlaps();
54 gGeoManager->PrintOverlaps();
58 \section geometry_s4 Macro MUONGenerateGeometryData.C
60 Macro for generating the geometry data files
63 - MUON/data/transform.dat file contains the transformations
64 data (translation and rotation) for all alignable objects
65 (modules & detection elements)
66 - MUON/data/svmap.dat file contains all the information to link
67 each geant volume (it can be extended to other virtual MC) with
68 a detection element. The point here is that a given detection
69 element, i.e. a slat chamber can consist of more geant volumes.
70 the correspondence is then defined in an input file.
71 Each time there is a change in the definition of MC geometry, these
72 input files must be re-generated via the macro
73 MUONGenerateGeometryData.C
75 To be run from aliroot:
77 .x MUONGenerateGeometryData.C
80 The generated files do not replace the existing ones
81 but have different names (with extension ".out").
82 Replacement with new files has to be done manually.
85 \section geometry_s5 Macros to generate Mis-alignment data
87 Macros for generating the geometry mis-alignment data:
88 - MakeMUONFullMisAlignment.C
89 - MakeMUONResMisAlignment.C
90 - MakeMUONZeroMisAlignment.C
92 To be run from aliroot:
94 .x MakeMUONFullMisAlignment.C etc.
97 If the environment variable TOCDB is not set to "kTRUE",
98 the misalignment data are generated in a local file:
99 (MUONFullMisalignment.root, etc.)
101 If the data are stored in CDB, the storage can be specified in
102 the environment variable STORAGE. The misalignment data are then
103 generated in the CDB folder (defaults are ResMisAlignCDB and FullMisAlignCDB
104 in the working directory). Inside the local CDB the path for the
105 alignment data is (and must be) "MUON/Align/Data/".
106 Residual misalignment: Default is our current estimate of
107 misalignment after all our alignment procedure has been applied.
108 Full misalignment: Default is our current estimate of initial
112 \section geometry_s6 How to check the alignment software
114 The script AlirootRun_MUONtestAlign.sh allows you to check the software for
115 the alignment with physics tracks. The script will:
116 - Generate a misaligned geometry in a local CDB (default FullMisAlignCDB)
117 - Simulate 1000 events using previously misaligned geometry
118 - Reconstruct the events using perfect geometry
119 - Run the alignment code over the above events using MUONAlignment.C
121 To run you need to type:
123 $ALICE_ROOT/MUON/AlirootRun_MUONtestAlign.sh
126 The results of the test are saved in test_align/ directory. The file measShifts.root
127 contains useful graphs for studying the alignment performances. A local CDB
128 containing the realigned geometry is also created (default is ReAlignCDB). The
129 file $ALICE_ROOT/MUON/data/transform2ReAlign.dat contains the
130 transformations describing the realigned geometry to be compared with the
131 used misaligned geometry $ALICE_ROOT/MUON/data/transform2.dat.
133 IMPORTANT NOTE: For a useful test of the alignment performances, the
134 order of 100 000 tracks is needed, it is then advisable to generate and
135 reconstruct enough events separately and run MUONAlignment.C providing a file list
138 \section geometry_s7 Macro MUONCheckMisAligner.C
140 The macro MUONCheckMisAligner.C performs the misalignment on an existing muon
141 arm geometry based on the standard definition of the detector elements.
143 It uses AliMUONGeometryAligner :
144 - creates a new AliMUONGeometryTransformer and AliMUONGeometryAligner
145 - reads the transformations in from the transform.dat file (make sure that
146 this file is the _standard_ one by comparing it to the one in CVS)
147 - creates a second AliMUONGeometryTransformer by misaligning the existing
148 one using AliMUONAligner::MisAlign
150 User has to specify the magnitude of the alignments, in the Cartesian
151 co-ordiantes (which are used to apply translation misalignments) and in the
152 spherical co-ordinates (which are used to apply angular displacements)
154 User can also set misalignment ranges by hand using the methods :
155 SetMaxCartMisAlig, SetMaxAngMisAlig, SetXYAngMisAligFactor
156 (last method takes account of the fact that the misalingment is greatest in
157 the XY plane, since the detection elements are fixed to a support structure
158 in this plane. Misalignments in the XZ and YZ plane will be very small
159 compared to those in the XY plane, which are small already - of the order
162 Default behavior generates a "residual" misalignment using gaussian
163 distributions. Uniform distributions can still be used, see
164 AliMUONGeometryAligner.
166 User can also generate module misalignments using SetModuleCartMisAlig
167 and SetModuleAngMisAlig
168 Note : If the detection elements are allowed to be misaligned in all
169 directions, this has consequences for the alignment algorithm, which
170 needs to know the number of free parameters. Eric only allowed 3 :
171 x,y,theta_xy, but in principle z and the other two angles are alignable
175 \section geometry_s8 Geometry data files description
177 \subsection geometry_s8_sub1 transform.dat
179 List of transformations for chambers geometry modules and detection
182 KEY ID [nofDE] pos: posX posY posZ rot: theX phiX theY phiY theZ phiZ
185 ID = chamberId or detElemId
186 pos: posX posY posZ = position in cm
187 rot: theX phiX theY phiY theZ phiZ = rotation angles as in Geant3 in deg
190 \subsection geometry_s8_sub2 svmap.dat
192 Map of sensitive volumes to detction element Ids;
196 KEY volpath detElemId
199 volpath = volume path in format /volname1_copyNo1/volname2_copyNo2/...
200 detElemId = detection element Id