450 likes | 581 Views
The status of the SDD detector - OFFLINE -. Francesco Prino INFN Sezione di Torino. ALICE CLUB – October 14th 2008. Raw Data Format. Raw Data Format. Empty event size from the CarlosRX acquisition card: Headers+Footers (6 words x 32 bit x Nmodules): 6 kB/event
E N D
The status of the SDD detector- OFFLINE - Francesco Prino INFN Sezione di Torino ALICE CLUB – October 14th 2008
Raw Data Format • Empty event size from the CarlosRX acquisition card: • Headers+Footers (6 words x 32 bit x Nmodules): 6 kB/event • End Of Row Summary (21 bit x 512 anodes x Nmodules): 350 kB/event • Fifo words: 160 kB/event • Total: 516 kB/event • Two solutions to reduce data size have been investigated: • HLT SOLUTION: decode the data from the CarlosRX in the HLT PCs and write them in a different format • Tested and validated in september 2008. • HARDWARE SOLUTION: decode the data in the FPGAs of the CarlosRX and write them in a different format • Under investigation
New (compressed) data format • Base requirements: • Reduce the data size by a factor 20 or more • Interface with the SDD Cluster Finder in the same way as the previous format • In order to minimize the changes in the reconstruction software • Proposed solution: • 1 data word (32 bit) for each firing cell (anode/time bin) • 1 control word (32 bit) at the end of the data of each module (needed by the Cluster Finder) • 1 jitter word (32 bit) at the end of each DDL to store the JITTER • Empty event size: • DATA: 4 Bytes * number of cells firing (≈4000) • CONTROL: 4 Bytes * 288 (24 DDL * 12 Carlos per DDL) • JITTER: 4 Bytes * 24 (DDLs) • Total: ≈ 17 kB/event
Implementation • Code modifications (all in v4-15-Release): • New class AliITSCompressRawDataSDD • Used by the HLT to decode data and encode in the new format • New class AliITSRawStreamSDDCompressed • Read and decode data written in the new format • Possibility to write the simulated raw data in the new format • Tested and validated at P2, event rate ≈ 600-800 Hz • Example Plots from test runs: event 25 from run 62157 with HLT mode B (both data formats available in the raw data)
SDD Calibration runs and DAs 3 DAs to extract SDD calibration parameters • Run Type: PEDESTAL, DA: ITSSDDBASda.cxx • Analyzes special SDD calibration runs taken without zero suppression during LHC fill periods (every ≈24h) • Provides: Baselines, Noise, Common Mode Corrected Noise, Noisy anodes • Run Type: PULSER, DA: ITSSDDGAINda.cxx • Analyzes special SDD calibration runs taken with Test Pulse signal to front-end electronics during LHC fill periods (every ≈24h) • Provides: Anode gain, Dead anodes • Run Type: INJECTOR, DA: ITSSDDINJda.cxx • Analyzes injector events collected every ≈ 10 min. during physics runs • Provides Drift speed (anode dependent)
Pedestal runs • Used to measure • baselines • noise (raw and common mode corrected) for each anode
Pulser runs • Used to measure gain for each anode sending Test Pulse to the input of front-end electronics Test Pulse Signal
Pulser results vs. time ADC sampling set at 20 MHz
Injector runs • Used to measure drift speed • 33 (1 each 8 anodes) x 3 injectors on each half module • Drift speed extracted from measured drift time vs. known drift distance fit • Drift speed depends on anode coordinate • Drift speed depends on temperature: vdrift = meE , meT-2.4 • Heat sources (voltage dividers) on the edges
Drift speed vs. module • Average drift speed over 60 events (1 minute) • Error bar = drift speed RMS • Fluctuations in 1 minute below 0.15% for most of the modules
Temperature vs. module • Drift speed depends on • Dopant concentration • Temperature:
Drift speed stability • From run 24906 collected with muon trigger • about 5 triggers/minute, 200 analyzed events from 1 raw data file • Drift speed constant on a time scale of 1 hour of data taking Timestamp=1204592726 Tue, 04 Mar 2008 01:05:26 GMT Timestamp=1204588292 Mon, 03 Mar 2008 23:51:32 GMT
Drift speed vs. time (I) Layer 3 was off less heating Layer 3, Ladder 6, Mod 275, Anode 200 Layer 4, Ladder 14, Mod 428, Anode 200 July 11th 2008 October 14th 2008
Drift speed vs. time (I) Layer 3, Ladder 6, Mod 275, Anode 200 July 11th 2008 October 14th 2008
SDD Calibration objects (I) • DDLMapSDD • One AliITSDDLModuleMapSDD object with the DDL map • Contains: conversion from DDL/Carlos (hardware) numbers to aliroot module number • Updated: at the beginning of each data taking period (last update June 2008) • HLTforSDD • One AliITSHLTforSDD object with the HLT mode which defines the data format • Contains: flag for HLT mode • Updated: by the preprocessor at each PHYSICS run
SDD Calibration objects (II) • CalibSDD • One array of 260 AliITSCalibrationSDD objects (one for each SDD detector) with the calibration parameters used in both simulation and reconstruction • Contains: baselines, noise and gain for each anode + flag for bad module, bad chip, bad anode + flag for zero suppression and sampling frequency • Updated: by the preprocessor after each PEDESTAL+PULSER runs • RespSDD • One AliITSresponseSDD object with calibration parameters (common to all the 260 SDD detectors) used only in reconstrucion • Contains: time offset, conversion factor ADCkeV • Updated: after offline analysis of reconstructed points
SDD Calibration objects (III) • DriftSpeedSDD • One array of 520 AliITSDriftSpeedArraySDD objects (one for each drift side of the 260 SDD detectors) • Contains: drift speed (parametrized) vs. anode number • Updated: by the preprocessor after each INJECTOR run. In the future also at each PHYSICS runs using the dedicated injector triggers • DCS data points (only for reference) • Contains: • 260 HV values 1 per module • 260 MV values 1 per module • 520 temperature values 1 per hybrid • + Status values • Updated: every 2 minutes only if the value exits from confidence band around last stored value backup estimation of drift speed Calculate drift field
SDD Calibration objects (IV) • MapTimeSDD: • One array of 520 AliITSMapSDD objects (one for each drift side of the 260 SDD detectors) • Contains: matrices with systematic deviations on the drift time coordinate of the reconstructed points • Used to correct for systematic effects due to non-constant drift field or dopant inhomogeneities • Measured during the testing phase for all SDD modules by means of laser scans • Updated: never (static objects)
SDD Quality Assurance (& DQM) Approach: same code for Online & Offline, in AliRoot Online: amoreAgent as wrapper Offline: AliRoot standard QA Same classes Status Online DQM Successfully tested during the cosmic run Being upgraded (optimisation, long term stability) Offline QA DataMaker(Sim/Rec): generates distributions Checker: test implementation, which will evolve in parallel to the understanding of the detector behaviour/performance If possible, it will be self-consistent (i.e., no use of Reference distributions) Plans upgrade online iteratively upgrade QA Checker iteratively 26
Status of the Offline QA • Histograms in expert mode: • 1081 from raw data + 8 from RecPoints • Histograms for the offline shifter: • 2 from raw data (Z-phi occupancy x 2 layers) • 4 from Rec Points (Z-phi + charge x 2 layers) SOURCE Definition of monitored objects Code implementation Code in SVN Warnings Comparison with ref. data READY Online - RAW IN PROGRESS Online - RecP NOT STARTED Offline - RAW Offline - RecPoints Offline - ESD Offline - Digits
Example plots from Offline QA Z-phi raw occupancy from beam dump RecPoint transverse coordinates Module occupancy from noise run
SDD Cluster Finder • Apply further noise suppression • same algorithm used on-line, with thresholds set according to the measured noise of each anode (from OCDB/ITS/Calib/CalibSDD) • Parameters to be tuned: • Charge conversion ADCkeV factor • Time Zero = time measured for particles with zero drift distance without SDD noise correction with SDD noise correction run 37603 ev. 126
Charge calibration • Distribution of charge of clusters from cosmic tracks • Fitted with a convolution of Landau+Gaussian • Possible to extract with good precision the conversion factor from ADC units to keV • Using the knowledge of the most probable value for energy deposition of a MIP in 200 mm of silicon (=82 keV)
Charge vs. drift distance (I) • Collected charge depends on drift distance • Charge loss due to trapping of electrons in the silicon ? • Or effect of the zero suppression algorithm which cuts the tails of the clusters ?
Charge vs. drift distance (II) • Two hints that the effect comes from zero suppression: • Simulated data (where the trapping effects are not there) show the same slope of charge vs. drift distance as the cosmic data • In the laser test data, taken without zero suppression, the cluster charge is independent of the drift distance
Time Zero calibration Two strategies have been developed on simulated data • Minimum drift time • Time offset extracted from time distribution of all the measured clusters • Advantages: • Time directly measured, no need to use calibration quantities (e.g. drift speed) • SDD standaalone measurement, no need to use information from other layers • Disadvantages: • Large statistics of RecPoints required • NOTE: time offset as a first approximation is equal for all modules a part from simple corrections for module dependent differences on cable lengths which can be easily introduced • Analysis of track-cluster residuals • Time offset extracted by exploiting the opposite sign of residuals in the two detector sides • Advantages: • Less statistics required • Disadvantages: • Requires use of drift speed and correction maps • Requires track reconstruction in the SPD(SSD), might be some bias from SPD(SSD) mis-alignment?
t0 tMAX=t0 + dMAX / vDRIFT where dMAX = max. drift path = 3.5 cm Drift Time (ns) Time Zero from minimum drift time • Very simple idea: particles crossing the detector on the anodes have drift distance = 0 , so they should be measured at time = 0. • The minimum drift time observed (t0 > 0) is the time offset which should be subtracted from measured drift time • Ideal case: • Real case: vDRIFT anode and module dependent
Time Zero from minimum drift time • Simulated statistics = 10000 clusters Correct value for offset = 54.3 ns Simulated data ZOOM in the t0 region (bin size = 5 ns)
Time Zero from residuals True position • Local X coordinate from the drift path L calculated as: L = ( tMEAS –t0 ) vDRIFT • a bad calibrated time offset would lead to overestimate / underestimate the drift path on both sides and therefore to residuals XMEAS – XTRUE of opposite sign in the two sides Reco position
Time Zero from residuals • Calculate the residuals between track crossing point and cluster coordinates separately for the two drift sides peak distance = 2vDRIFT t0 Simulated data In agreement with estimation from minimum drift time
Time Zero from cosmic data • Method of minimum drift time not applicable • Reason: the delay applied to the L0 trigger in the acquisition chain was slightly too large (by about 40 ns) and therefore the particles crossing close to the anodes are out of the acquired time window • Results from the track-cluster residuals: • Track fitted in SPD and SSD, residuals calculated in SDD • Difference between Time Zero in side A and C (partly) due to different cable lengths Side A Side C
Conclusions • DA and preprocessor performed well during the cosmic data taking • Only minor modifications are expected, essentially related to the introduction of the INJECTOR triggers in the PHYSICS runs • Detector Calibration quantities extracted from online DAs (noise, gain, drift speed) are under control • no further offline processing expected • QA and online DQM implemented and tested • Minor upgrades and checker ready for the next data taking • Presently working on reconstructed clusters to calibrate the “second-step” parameters • Charge calibration and dependence on drift speed expected to be addressed in the next 4-6 weeks thanks to the cosmic data that we are collecting in Turin on few modules without zero suppression • Time Zero issue being investigated. Needed for the alignment procedures
Raw Data Format • SDD acquisition chain: • 260 Modules, each reading 512 anodes x 256(128) time bin cells • 260 Carlos cards (1 for each module, inside the ITS) • Apply Zero Suppression, data format • 24 CarlosRX cards (DDLs) each treating the data of 12 Carlos • Each CarlosRX has 4 FIFOs each treating the data of 3 Carlos • Control words written by CARLOS in the raw data: • 21 bit of End of Row summary for each anode • 260(modules)* 512 (anodes)*21 bit = 2795 kbit/event = 350 kBytes/event • 3 Headers (32 bit words) for each Carlos • 3 Footers (32 bit words) for each Carlos • 246(modules) * 6 * 32 = 47 kbit/event = 6 kBytes/event • Other words are added by the CarlosRX to manage the (frequent) changes of FIFO transmitting the data
Carlos+CarlosRX data format • Headers (red: FIFO words, blu: Carlos Headers, black: data words): 64) 30000010300000123000000820018006 | ...0 ...0 ...0 ... | 80) 20018006 20018006 f3e01810 e0044b94| ... ... .... .K.. | 96) 30000013 3000000920018006 20018006 | ...0 ...0 ... ... | 112) 200180063000000a20018006 20018006| ... ...0 ... ... | 128) 2001800687200439 c72084393000000b| ... 9. . 9. . ...0 | • Data (red: FIFO words, black: data words): 592)30000001b98221c8 f98221c830000011| ...0 .!.. .!.. ...0 | 608)b98021c8 f98221c830000003b98021c8| .!.. .!.. ...0 .!.. | 624)f98021c830000004b98221c8 f98221c8 | .!.. ...0 .!.. .!.. | 640)30000012 30000008a21c8010 ce408873 | ...0 ...0 .... s.@. | 656)30000006821c8010 c21c801030000007| ...0 .... .... ...0 | • Footers (red: FIFO words, blu: Carlos Footers, green: CarlosRX footers, black: data words): 27552)30000008c00010443fffffff 3fffffff| ...0 D... ...? ...? | 27568) 3fffffff300000063fffffff 3fffffff| ...? ...0 ...? ...? | 27584) 3fffffff3f1f1f1f 3f1f1f1f 3f1f1f1f| ...? ...? ...? ...? | 27600) 300000133000000a3fffffff 3fffffff| ...0 ...0 ...? ...? | 27616) 3fffffff3f1f1f1f 3f1f1f1f 3f1f1f1f| ...? ...? ...? ...? |
New (compressed) data format • Data word: 31 30 29 28 2726 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 109 8 7 6 5 4 3 2 1 0 Control bit Anode number (0-255) ADC counts (10 bits) Carlos identifier (0-11) Time bin number (0-255) Detector side (0-1)