the pixel detector bytestream converter m.cobal (1), l. santi (2) (1) university of udine and infn...
TRANSCRIPT
The Pixel Detector The Pixel Detector ByteStream ConverterByteStream Converter
M.CobalM.Cobal(1)(1), L. Santi, L. Santi(2)(2)
(1)(1) University of Udine and INFN Trieste, ItalyUniversity of Udine and INFN Trieste, Italy
(2)(2) University of Trieste and INFN Trieste, ItalyUniversity of Trieste and INFN Trieste, Italy
DataFlow for the Pixel DetectorDataFlow 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 RDOZebra converter
ByteStream
Definition of ByteStreamDefinition 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 ByteStreamDefinition 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 RawDataObjectDefinition of RawDataObject Uncalibrated RawData converted into an object representing a set
of readout channels. Historically: Digit. Offline Identifiers: Offline Identifiers: DEDE and and RDORDO levels levels– PixelPixel (1744 DE): (1744 DE):
barrel(endcap)/layer(disk)/phi_module/eta_modulebarrel(endcap)/layer(disk)/phi_module/eta_module//phi_index/eta_indexphi_index/eta_index
ATL-SOFT-2001-004 Definition of Offline Readout Identifiers for the ATLAS detector
Veronique’s slides
IdentifiableContainer <CollectionT,
InDetDetElemHash>
InDetRawData __________
-m_rdoId : Identifier #m_word : unsigned int
__________ +identify : Identifier +type:std::string
__________ word: unsigned int
Identifier
Identifier32Identifiable
HashIdentifier
Plottable
DataVector
InDetRawDataCollection __________
-m_id: const Identifier __________
+identify:Identifier +type:std::string
InDetRawDataContainer
CollectionT: class
RawDataT: class
PixelRDORawData __________ __________
+type:std::string __________
toT: int
Pixel1RawData __________ __________
+type:std::string __________
toT: int
SCT_RDORawData __________ __________
+type:std::string __________
groupSize: int
TRT_RDORawData __________ __________
+type:std::string __________
SCT1_RawData __________ __________
+type:std::string __________
groupSize: int
TRT_LoLumRawData __________ __________
+type:std::string __________
• Implementation Choices:
•Templates for Container, Collection
•Inheritance Tree
•DataVectorVero
nique’s sli
des
ConvertersConverters
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.0Release 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 sub- systems tested: it works!
The Pixel ByteStream ConverterThe 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 ConverterThe Pixel ByteStream Converter
/InnerDetector/InDetEventCnv/InDetRawDataByteStream/src
PixelHid2RESrcID.cxx PixelRC2Bytes.cxx PixelRawContByteStreamCnv.cxx PixelRawContByteStreamTool.cxx
The Pixel ByteStream ConverterThe 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 ConverterThe Pixel ByteStream Converter
A Module
F E D C B A 9 8
0 1 2 3 4 5 6 7
(0,0)
(0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0)(0,0)
(0,0)(0,0)(0,0)(0,0)(0,0) (0,0)(0,0)
17,159
17,159
17,159
17,15917,15917,159
17,15917,159 17,159 17,159 17,159 17,159
17,159 17,159 17,159 17,159
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 ConverterThe 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.
F, 0 at more
positive z
8, 7 at more
negative zSeen from positive z side
The Pixel ByteStream ConverterThe 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 ConverterThe 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
F, 00F
8, 7
Future PlansFuture 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)
ThanksThanks
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