Transcript PowerPoint

The Pixel Detector
ByteStream Converter
M.Cobal(1), L. Santi(2)
(1)
(2)
University of Udine and INFN Trieste, Italy
University of Trieste and INFN Trieste, Italy
DataFlow for the Pixel Detector
 Future Data Flow for HLT/Offline:
RawDataObject
ReconstructionInputObject
G3/G4 Digits  ROD Input Digits  RDO  RIO
ByteStream
 Offline Release 5.0.0 goal:
G3/G4 Digits (Zebra)  RD event  RDO
Zebra converter
ByteStream
Definition of ByteStream
 ByteStream == file containing events in a format “as if it
was coming from the real electronics of the experiment”.
 Useful for LVL2 Trigger and Event Filter studies: data
flow, timing, unpacking etc.
 To build the ByteStream: need:
 The ROD data are structured as a block of ROD words,
each word contains a hit
 A map gives the correspondence between each detector
element (modules/pixels) in the ATLAS geometry (Off-line
Identifier) and its position and number in the read-out tree
 C++ code converts data to/from RawDataObjects
Definition of ByteStream
 ROD fragment:
 In Header: Source ID
• Subdetector ID, ROB ID,....
 Data element (RawDataWords array
+ Status elements array)
 Trailers
 Pixels:
 From Header:
• Subdetector ID: 4 (Barrel, Forward A,
Forward C, B-Layer)
• ROB ID: 120 (108 in barrel)
 From RawDataWord:
|mo|*|fe|row|col|tot
Definition of RawDataObject
 Uncalibrated RawData converted into an object representing a set
of readout channels. Historically: Digit.
 Offline Identifiers: DE and RDO levels
– Pixel (1744 DE):
barrel(endcap)/layer(disk)/phi_module/eta_module/phi_index/eta_index
ATL-SOFT-2001-004
Definition of Offline
Readout Identifiers for
the ATLAS detector
IdentifiableContainer
<CollectionT,
InDetDetElemHash>
CollectionT: class
InDetRawDataContainer
Plottable
Identifier
RawDataT: class
DataVector
InDetRawDataCollection
__________
-m_id: const Identifier
__________
+identify:Identifier
+type:std::string
InDetRawData
__________
-m_rdoId : Identifier
#m_word : unsigned int
__________
+identify : Identifier
+type:std::string
__________
word: unsigned int
PixelRDORawData
__________
__________
+type:std::string
__________
toT: int
Pixel1RawData
__________
__________
+type:std::string
__________
toT: int
SCT_RDORawData
__________
__________
+type:std::string
__________
groupSize: int
SCT1_RawData
__________
__________
+type:std::string
__________
groupSize: int
Identifiable
Identifier32
HashIdentifier
• Implementation Choices:
•Templates for Container,
Collection
•Inheritance Tree
•DataVector
TRT_RDORawData
__________
__________
+type:std::string
__________
TRT_LoLumRawData
__________
__________
+type:std::string
__________
Converters
 RDO to/from ByteStream Converters
 InnerDetector/InDetEventCnv/InDetRawDataByteStream
• Mapping from offline to online
• Making use of Karr et al. previous converter work
• Updates for DC1 geometry (e.g.: new Pixel mapping)
• Collection to ROBID, channel to online channel ID (ROD)
• AlgTool for converting RDO Container to BS
• AlgTool for converting BS to RDO collection
 Making use of ByteStreamCnvSvc
 Following eFormat library 2.2
 Following RDOs ordering when Writing BS
 Provide jobOptions for:
 Creating RDOs, Writing BS, Reading BS
Release 5.0.0
 As requested, we delivered the Pixel ByteStream converter
code for the offline Release 5.0
 Pixel detector alone and together with the other two ID subsystems tested: it works!
The Pixel ByteStream Converter
 /InnerDetector/InDetEventCnv/InDetRawDataByteStream/InDetRawDataByteStream
 PixelHid2RESrcID.h
 PixelRC2Bytes.h
 PixelRawCollByteStreamTool.h (read BS - write RDO)
 PixelRawCollByteStreamTool.h (read BS - write RDO)
 PixelRawContByteStreamCnv.h (read RDO - write BS)
 PixelRawContByteStreamTool.h (read RDO -write BS)
The Pixel ByteStream Converter
 /InnerDetector/InDetEventCnv/InDetRawDataByteStream/src
 PixelHid2RESrcID.cxx
 PixelRC2Bytes.cxx
 PixelRawContByteStreamCnv.cxx
 PixelRawContByteStreamTool.cxx
The Pixel ByteStream Converter
 /InnerDetector/InDetEventCnv/InDetRawDataByteStream/share
 PixelBarrelMUR2RESrcIdMapping.dat
half  mur  rob  ros
 PixelBarrelMUR2TEMapping.dat
mur  layer  phi module
layer  eta mod min  eta mod max
eta mod  half
layer  eta mod  num phi mod
 PixelEndcapMUR2RESrcIDMapping.dat
 PixelEndcapMUR2TEMapping.dat
The Pixel ByteStream Converter
A Module
(0,0)
(0,0)
(0,0)
(0,0)
(0,0)
F
E
D
C
B
17,159
17,159
17,159
17,159
17,159
17,159
0
(0,0)
17,159
1
(0,0)
17,159
17,159
2
3
(0,0)
(0,0)
17,159
(0,0)
A
17,159
9
17,159
17,159
17,159
5
6
4
(0,0)
(0,0)
(0,0)
(0,0)
(0,0)
8
17,159
17,159
7
(0,0)
 Each pixel is identified by a row and a column number.
Rows go from 0 to 159
Columns go from 0 to 17
B-Layer, slightly different structure: columns from 0 to 23.
(btw in final design all modules will be the same)
The Pixel ByteStream Converter
Barrel
3 layers: the inner one – B-layer or layer 0 –, layer 1 and layer 2.
All staves in the Barrel have the same structure (13 modules)
Each module contains 16 chips.
One stave: two semi-staves (one for each half-barrel).
In one semi-stave there can be six or seven modules.
8, 7 at more
negative z
F, 0 at more
positive z
Seen from positive z side
The Pixel ByteStream Converter
 BARREL
 B-Layer
22 semi-staves: each one read by one ROD  total of 44 RODs
RODs numbering starts from module on x-axis (ROD1)
continue in the anti clock-wise direction, until ROD22.
 Layer 1
38 semi-staves: two read by one ROD  total of 38 RODs
 Layer 2
52 semi-staves: four read by one ROD26  total of 26 RODs.
The Pixel ByteStream Converter
 END-CAPs
 Each end-caps made of 3 disks.
Each disk is divided in 8 sectors (of 6 modules)
One disk is read by 2 RODs  total of 12 RODs
8, 7
F, 00F
Future Plans
 Online to offline mapping needs to be optimised
(e.g. don’t use ascii files for maps)
Needs agreement in Detector Description
 Mapping to ROCs still to be done
 Remove RD event format from the chain (well known problems
inherited from Geant3)
Thanks
 Many thanks to:
 Véronique Boisvert (HLT and ID) and Hong Ma (LAr)
but also to:
 Nicole (pixels), for helping in our first approaches to
cvs and cmt
 Paolo, Kevin, Dario, Sasha (pixels), for helping in the
Pixel mapping
 Sasha (tiles), for many suggestions