170 likes | 303 Views
The Pixel Detector ByteStream Converter. M.Cobal (1) , L. Santi (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
E N D
The Pixel Detector ByteStream Converter M.Cobal(1), L. Santi(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 Veronique’s slides • 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
Implementation Choices: • Templates for Container, Collection • Inheritance Tree • DataVector Veronique’s slides
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 sub- systems 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 F EDCBA98 0 12 34567 (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 17,159 (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) • Each pixel is identified by a row and a column number. Rows go from 0 to 159 Columnsgofrom 0 to 17 • B-Layer, slightly different structure: columns from 0 to 23. • (btw infinal 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 morenegative z Seen from positive z side F, 0 at more positive z
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