Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

16
Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004

Transcript of Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

Page 1: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

Framework forRaw Data

Thomas Kuhr

Offline Week

29/06/2004

Page 2: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

2

Motivation

Why do we need simulated raw data?Reasonable estimate of data volume

and structure for Computing Data Challenge

Development and verification of reconstruction code starting from raw data Reconstruction of real data Next Physics Data Challenge

Page 3: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

3

SDigits

Overview

Detector

Trigger

DAQ Raw Data

Clusters Tracks ESD

DigitsSDigitsHits

HLT

Simulation Reconstruction

Online Offline

Mon

te C

arl

oR

eal D

ata

Particles

Page 4: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

4

Raw Data Format• DDL Files:

– One directory per event: rawN– One binary file per DDL: DET_DDLID.ddl– File contains DDL data header and payloadEquivalent to data sent over DDL

• DATE:– One date file with many events– Equipment and event headers addedEquivalent to DAQ output (without alimdc)

• Root:– One root file with many eventsEquivalent to recorded raw data

Page 5: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

5

User Interface

• Run full simulation and write raw data for all detectors: AliSimulation sim; sim.SetWriteRawData(“ALL”); sim.Run();

• Optional second argument:raw data file name (date or root)

• Shortcut method: sim.WriteRawData(“TRD PMD”,“raw.root”);

• Equivalent to: sim.WriteRawFiles(“TRD PMD”); sim.ConvertRawFilesToDate(“raw.date”); sim.ConvertDateToRoot(“raw.date”, “raw.root”);

Page 6: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

6

Implementation

• AliSimulation calls virtual method of detector: void AliModule::Digits2Raw();

• Digits2Raw method:– Create one file per DDL: DET_DDLID.ddl– Write DDL data header (AliRawDataHeader)

• Set data size (AliRawDataHeader.fSize)• Indicate valid data

(AliRawDataHeader.SetAttribute(0))– Write raw data of current event

• Order of channels?

• Raw data DDL files → DATE file: program dateStream (put it on afs?)

• DATE file → root file: program alimdc

Page 7: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

7

Statushttp://aliweb.cern.ch/people/cheshkov/rawdata.html

Page 8: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

8

Reading of Raw Data

Separate two tasks:

• Reading of raw data (stored in different formats) into memory→ Independent of content Raw reader classes

• Interpretation of raw data→ Specific to each detector Raw stream classes

Page 9: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

9

AliRawReader

• Base class for reading raw data of one event• Virtual methods: Bool_t ReadHeader(); Bool_t ReadNextData(UChar_t*& data); Bool_t ReadNextInt(UInt_t& data); Bool_t Reset(); void Select(Int_t detectorID, …); UInt_t GetType() const; Int_t GetDDLID() const; Int_t GetDataSize() const; …

• Derived classes: AliRawReaderFiles, AliRawReaderDate, AliRawReaderRoot

Page 10: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

10

AliDETRawStream

• Interpretation of detector specific raw data• Iterator over digits AliDETRawStream(AliRawReader*); Bool_t Next(); Int_t GetSector() const; Int_t GetRow() const; Int_t GetPad() const; Int_t GetTime() const; Int_t GetSignal() const;

• Raw stream classes for TPC and ITS in RAW module, for TRD and PMD in detector modules

Page 11: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

11

Raw Data Reading Classes

AliRawReader

AliRawReaderFiles

AliRawReaderDate

AliRawReaderRoot

AliTPCRawStream

AliPMDRawStream

AliDETRawStream

TPC digits

PMD digits

DET digits

TPC_0.ddlTRD_1024.ddlPMD_3072.ddl

raw.date

raw.root

Page 12: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

12

SDigits

Reconstruction of Real Data

Detector

Trigger

DAQ Raw Data

Clusters Tracks ESD

DigitsSDigitsHits

HLT

Simulation Reconstruction

Online Offline

Mon

te C

arl

oR

eal D

ata

Particles

Page 13: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

13

Proposal: User Interface

• Use raw data DDL files in directory dir: AliReconstruction rec; rec.Run(“dir/”);

• Use DATE file raw.date: rec.Run(“raw.date”);

• Use root file raw.root (extension “.root”): rec.Run(“raw.root”);

Page 14: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

14

Proposal: Implementation

• Extend virtual interface of AliReconstructor: void Reconstruct(AliRunLoader*, AliRawReader*) const; void FillESD(AliRunLoader*, AliRawReader*, AliESD*) const;

• Loop over events inside or outside Reconstruct method?

• Functionality of AliRawReader has to be extended for inside loop

Page 15: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

15

Open Questions

galice.root file has to be created with

- Loaders

- Detector parameters / geometries

- Magnetic field

- AliRun object ?

- …

Run database ?

Page 16: Framework for Raw Data Thomas Kuhr Offline Week 29/06/2004.

16

Summary

• Simulation of raw data is vital• 3 formats of raw data:

DDL files, DATE, root• AliSimulation provides framework for

raw data simulation• Reading of raw data with

AliRawReader and raw stream classes• Framework for reconstruction of real

data proposed• Some open questions to be solved