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