Dimuon arm, station 1Mapping, AliRoot
D. Guez, I. Hrivnacova, M. MacCormickIPN, Orsay
ALICE Offline Meeting, CERN, 10 March 2003
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
2
Outline
Mapping – What is mapping ?– Design, Implementation– File structure
AliRoot– MUONv2 – detailed geometry for Station 1– Segmentation and Response classes– Modifications to existing MUON code
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
3
Mapping
What is mapping ?
MUON St1 chamber– Composed of two cathode planes and anode
wires– Plane = 57344 pads– Each pad has its channel that passes the signal
to the electronics
For data analysis and detailed simulation – need the exact topology of the pads
Task of mapping:– Position (x, y) => Pad characteristics– Pad => Position in the plane
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
4
Mapping
Mapping Clients
Test-beam (TB2 – TestBeam ToolBox)– Used for online monitoring
Test-beam data analysis– Program “Offline” (Saclay)
Simulation program (AliRoot) User
– On the test bench a user can interactively interrogate the mapping program
The mapping package has been developed as an autonomous package based only on Root– Not included in AliRoot
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
5
Mapping
Design
Stations 1 and 2
Plane
Sector Motif
Pad
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
6
Row
Row segment
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
7
Mapping
Design
Class hierarchy follows the physical design of the cathode plane
Plane elements (entities): – Pad = smallest element (copper rectangle)– Motif = repeatedly placed ensemble of pads (in most
cases rectangular) with given characteristics– Row segment = a segment of a row of motifs
containing motifs of the same type– Row = row of motifs composed of row segments– Zone = region of the plane with pads of the same
dimension– Sector = plane quadrant– Plane = whole plane, composed of 4 sector positions
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
8
Mapping
Class categories
Basic – elementary and utility classes, abstract base classes– MIntPair, MArea, MPad, MVIterator, MVSegmentation,
MTransformer, MFiles Motif
– MVMotif, MMotif, MMotifSpecial, MMotifType, MMotifPosition, MMotifMap, …
Sector– MVRowSegment, MRowSegment, MRowSegmentSpecial,
MRow, MZone, MSubZone, MReader, MSector Plane
– MSectorPosition, MPlane Graphics
– MVPainter, MMotifPainter, MSectorPainter, …
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
9
Mapping
Class categories
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
10
Mapping
Segmentation classes
Front-end classes for the client code– MVSegmentation – interface– MSegmentation, MPlaneSegmentation
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
11
Mapping
Iterator classes
Iteration over pads– Over a rectangular area, in physical elements
(motif, sector, plane)– MVPadIterator - interface– MMotifTypePadIterator, MSectorPadIterator,
MPlaneAreaPlaneIterator, …
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
12
Mapping
Files structure
Mapping subdirectories:– config, doc, data, macro, source– tmp, lib – created at compilation time
Source– Structured according to class categories– Each subdirectory: makefile, include, src
Data– Input data files in two directories:
• bending_plane, non-bending_plane Config - common makefiles Macro - test Root macros Doc – history, README, DataFilesFormat
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
13
Mapping
Input Data Files
All input parameters in ASCII data files:– zones.dat
• layout of the sector– zones-special.dat
• layout of special zones– motifX.dat (where X = A, B, C, … (motif type))
• Motif type characteristics, electronics wiring– motifPosX.dat
• mapping between indices in motifX.dat to (i,j) local to motif
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
14
Mapping
Test Suite
When developing code – a test macro written for each new part of the code
15 test macros Automated testing procedure
– test_suite.pl– Perl script that runs all test macros and compares
the output with the reference output which is stored in macro/out_reference directory
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
15
Mapping
Graphics
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
16
Mapping
Installation Download
– From alisoft CVS server:– cvs -d :pserver:[email protected]:/soft/cvsroot co mapping
Environment– MINSTALL – path to mapping package– MPSYSTEM – platform + compiler (used G4 convention)– ROOTSYS – path to Root
Compilation– cd mapping/source– gmake install
Test– cd mapping/macro– root– root [0] .x testXYZ.C
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
17
AliRoot
New classes *MUONSt1* New classes for MUON Station1 have been
included in AliRoot Use of the mapping package
– Makes AliRoot dependent on this external software
New classes are included in AliRoot compilation only if the MINSTALL variable is set– No need to install mapping when running with the
default MUONv1 version– In AliRoot nightly builds the new classes could be
included
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
18
AliRoot
MUONv2
Detailed geometry of MUON Station1 and the frame
AliMUONv2 is derived from AliMUONv1– Geometry of the other stations is build by AliMUONv1
Verification of geometry– Visualization: Geant3 geometry GUI, GraXML– Geant4 geometry verification tests– Still going on
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
19
AliRoot
MUONv2Dimuon arm
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
20
AliRoot
MUONv2Dimuon arm Station1
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
21
AliRoot
MUONv2
Dimuon arm Station1 quadrant
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
22
AliRoot
MUONSt1Segmentation
Derived from AliSegmentation Use of mapping segmentation and iterator classes
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
23
AliRoot
MUONSt1Response
Derived from MUON response classes Use of mapping segmentation
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
24
AliRoot
MUONSt1Response
Utility classes– The MUONSt1Response configuration is defined via
ASCII data files using the ‘rules’ – A ‘rule’ is a relationship between electronic channels
and the parameter to be applied
Any electronics channel parameter can be individually (or collectively) controlled– Pedestals, noise levels, on/off
• Can come from DATE or be user generated– Can use ADC “sticky bits”
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
25
AliRoot
Modifications to existing classes (1)
AliMUONFactory– Completely redesigned– BuildStation(AliMUON* where, Int_t stationNumber)
• New public function• Enables each station to be configured separately
– Build(AliMUON* where, const char* what) • The long function (configuring all stations) has
been split into private functions for each station– The factory can now be used for configuring selected
chambers only
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
26
AliRoot
Modifications to existing classes (2)
AliMUONv1– A derived class can switch off geometry construction for
selected stations and provide its own geometry• In this approach the geometry can be overridden by
one derived class only – it is not possible to construct detailed geometry for each station in separate classes
– Separation of geometry construction for each station to a new class would be a better solution
• Proposed already by G. Martinez in dimuon offline mailing list
– Modification in StepManager()• Use of added protected function GetChamberId(volId)• To enable the definition of more than one sensitive
volume identifier per chamber
I. Hrivnacova ALICE Offline Meeting, CERN, 10 March 2003
27
Summary
New code for dimuon Station1 has been presented:– Mapping - as a stand-alone package– MUONv2, MUONSt1* classes in AliRoot
We would be interested to see if the mapping package can be reused also elsewhere
New code available from alisoft CVS– Thanks to Peter Hristov the mapping module has been
imported from our local CVS (keeping history/versions of all files)
Mapping installation is needed to run AliRoot with the new code– Not needed when running with the default Config.C