Schema generale

Transcript

Schema generale
Schema generale
DATI:
----+------------+
+------+
+----------+
| ByteStream |- 1 ->| RDO |-2-->| PrepData |
+------------+
+------+
+----------+
1) conversione da ByteStream a RDO (Raw Data Objects), vedi dopo
2) conversione da RDO a PrepData, coinvolge il cabling (Di Mattia), possibile esperta: Stefania Spagnolo
Per il Monte Carlo lo schema è più complicato, chiedere ...
1 M. Corradi
converters
Conversione da bytestream (BS) a RDO (Raw Data Objects)
+-------------------------+
+---------------+
| MuonCnv/MuonByteStream/ |----->| RPCcablingSvc |lista di ROB id
| RpcRawDataProvider
|--+
+---------------+
|
(emoyse)
! !
+-------------------------+ |
+--------------------+
|
+-->| ROBDataProviderSvc |frammenti ROB
|
+--------------------+
|
|
| produce una vettore di frammenti di ROB da decodificare
|
V RPC_RawDataProviderTool chiamato attraverso IMuonRawDataProviderTool
+---------------------------+
| MuonCnv/MuonRPC_CnvTools/ | crea identified container per le Pad
| RPC_RawDataProviderTool | IdHash ...
|
(di mattia)
|
+---------------------------+
|
| per ogni ROB fragment
V
+---------------------------+
| MuonCnv/MuonRPC_CnvTools/ | conversione, vedi dopo
|
RpcROD_Decoder
|
|
(di mattia)
|
+---------------------------+
2 M. Corradi
converters
RpcROD Decoder
Internamente sceglie una versione del metodo di decodifica in base a ROBFragmen.version , quella
fillCollection_v302(BS data, const uint32_t data_size, RpcPad& v, const uint32_t& sourceId ) const;
(nb modifica recente (emoyse) in in AtlasTier0, non è più un template: codice da .h a .cxx)
Riempie le classi RDO in
------------------------
Usa i metodi di decodifica in
----------------------------Trigger/TrigT1/TrigT1RPChardware/
MuonRDO/
(nisati)
RpcPadContainer
RXReadOutStructure
RpcPad
PadReadOutStructure
RpcPadIdHash
SectorLogicRXReadOutStructure
RpcCoinMatrix
MatrixReadOutStructure
RpcFiredChannel
RPCRODStructure
RpcSectorLogicContainer
RPCRXRODDecode
RpcSectorLogic
RpcSLTriggerHit
3 M. Corradi
converters
attuale è
classi RDO per pad
RpcPadContainer
--------------IdentifiableContainer<RpcPad>
RpcPadIdHash (usa cabling service)
-----------(meccanismo HashId da capire!)
RpcPad
-----id
idHash
onlineId
lvl1Id
bcId
status
errorCode
sector
DataVector<RpcCoinMatrix>
4 M. Corradi
converters
RpcCoinMatrix
------------id
onlineId
crc
fel1Id
febcId
DataVector<RpcFiredChannel>
RpcFiredChannel
--------------bcid
time
ijk
channel (for ijk=0-6)
thr
(for ijk=7)
ovl
(for ijk=7)
classi RDO per sector logic
RpcSectorLogicContainer (rosati)
----------------------DataVector<RpcSectorLogic>
RpcSectorLogic (rosati)
----------------------sectorId
fel1Id
bcid
errorCode
crc
hasMoreThan2TriggerCand
DataVector<RpcSLTriggerHit>
RpcSLTriggerHit
--------------rowinBcid
padid
ptid
roi
outerPlane
overlapPhi
overlapEta
triggerBcid
isInput
( c’e’ tutto per l’output ? )
5 M. Corradi
converters
Ntupla di test
Ntupla con tutte le informazioni su RDO, PrepData e altro
• Istruzioni in
http://twiki.cern.ch/twiki/bin/view/Atlas/RecipeMuonCommRecExample
JobOption esempio:
MuonCommissioning/MuonCommRecExample
mie JobOption per avere solo RPC ~mcorradi/public/joboption
Codice che crea l’ntupla:
MuonCommissioning/MuonCommAlgs/MuonCommAlgs
• Funziona, produce ntuple sui dati di cosmici
Un po’ di tempo fa ero riuscito a processare anche il MC, con qualche problema (SL non implementata)
• Non funziona con la MAIN release ma con AtlasTier0 nightly:
in particolare AtlasTier0/14.2.20.8
• Formato uguale alla ntupla di monitor online di F. Pastore,
buono per fare confronti
6 M. Corradi
converters
Problemi BSconverter
A cui sto guardando: (con F.P.)
• lettura frammento Sector Logic “output body”, per ora non avviene
• check che pad.status sia OK (prima non lo era)
• informazioni SL (non hit) non piú in entupla
• lettura RX da updatare
Più in generale:
• perché il codice RPC RawDataProviderTool, RPCROD Decoder è cosı̀ complicato?
si può semplificare? a che serve qui il cabling ?
7 M. Corradi
converters