ATLAS Offline Software
Loading...
Searching...
No Matches
LArFebHeaderReader.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9
11 const LArRodBlockStructure* rodBlock, //input
12 const ROBFragment& rob) { //input
13 larFebHeader->SetFormatVersion(rob.rod_version());
14 larFebHeader->SetSourceId(rob.rod_source_id());
15 larFebHeader->SetRunNumber(rob.rod_run_no());
16 larFebHeader->SetELVL1Id(rob.rod_lvl1_id());
17 larFebHeader->SetBCId(rob.rod_bc_id());
18 larFebHeader->SetLVL1TigType(rob.rod_lvl1_trigger_type());
19 larFebHeader->SetDetEventType(rob.rod_detev_type());
20
21 //set DSP data
22 const unsigned nsample=rodBlock->getNumberOfSamples();
23 larFebHeader->SetRodStatus(rodBlock->getStatus());
24 larFebHeader->SetDspCodeVersion(rodBlock->getDspCodeVersion());
25 larFebHeader->SetDspEventCounter(rodBlock->getDspEventCounter());
26 larFebHeader->SetRodResults1Size(rodBlock->getResults1Size());
27 larFebHeader->SetRodResults2Size(rodBlock->getResults2Size());
28 larFebHeader->SetRodRawDataSize(rodBlock->getRawDataSize());
29 larFebHeader->SetNbSweetCells1(rodBlock->getNbSweetCells1());
30 larFebHeader->SetNbSweetCells2(rodBlock->getNbSweetCells2());
31 larFebHeader->SetNbSamples(nsample);
32 larFebHeader->SetOnlineChecksum(rodBlock->onlineCheckSum());
33 larFebHeader->SetOfflineChecksum(rodBlock->offlineCheckSum());
34
35 if(!rodBlock->hasControlWords()) {
36 larFebHeader->SetFebELVL1Id(rob.rod_lvl1_id());
37 larFebHeader->SetFebBCId(rob.rod_bc_id());
38 } else {
39 const uint16_t evtid = rodBlock->getCtrl1(0) & 0x1f;
40 const uint16_t bcid = rodBlock->getCtrl2(0) & 0x1fff;
41 larFebHeader->SetFebELVL1Id(evtid);
42 larFebHeader->SetFebBCId(bcid);
43 for(int iadc=0;iadc<16;iadc++) {
44 larFebHeader->SetFebCtrl1(rodBlock->getCtrl1(iadc));
45 larFebHeader->SetFebCtrl2(rodBlock->getCtrl2(iadc));
46 larFebHeader->SetFebCtrl3(rodBlock->getCtrl3(iadc));
47 }
48 for(unsigned int i = 0; i<nsample; i++ ) {
49 larFebHeader->SetFebSCA(rodBlock->getRadd(0,i) & 0xff);
50 }
51 }//end else no control words
52
53 return;
54}
Holds information from the FEB Header.
void SetRodResults1Size(const uint16_t size)
set the ROD block sizes
void SetOnlineChecksum(const uint32_t checksum)
void SetNbSweetCells2(const uint16_t n)
void SetRodStatus(const uint32_t status)
set the ROD Status
void SetFebBCId(const uint16_t bcid)
set the FEB Bunch Crossing ID
void SetFebCtrl2(const uint16_t ctrl2)
set the FEB Control Word #2
void SetFormatVersion(const uint32_t formatVersion)
set the format version
void SetOfflineChecksum(const uint32_t checksum)
void SetFebSCA(const uint16_t sca)
set the SCA's
void SetDetEventType(const uint32_t detEvType)
set the Detector event type ID
void SetDspEventCounter(const uint32_t eventCounter)
set the Event number counted by the DSP code
void SetLVL1TigType(const uint32_t lvl1ttype)
set the Level1 trigger type ID
void SetRodRawDataSize(const uint16_t size)
void SetFebCtrl3(const uint16_t ctrl3)
set the FEB Control Word #3
void SetFebCtrl1(const uint16_t ctrl1)
set the FEB Control Word #1
void SetBCId(const uint16_t bcid)
set the Bunch Crossing ID
void SetFebELVL1Id(const uint16_t elvl1Id)
set the FEB Event ID
void SetRunNumber(const uint32_t runNumber)
set the run number
void SetSourceId(const uint32_t sourceID)
set the source Id
void SetRodResults2Size(const uint16_t size)
void SetDspCodeVersion(const uint32_t codeVersion)
set the version of the DSP code
void SetNbSweetCells1(const uint16_t n)
set the number of samples and cells above thresholds
void SetNbSamples(const uint16_t n)
void SetELVL1Id(const uint16_t elvl1Id)
set the EventID
virtual uint16_t getCtrl1(uint32_t adc) const
virtual uint16_t getCtrl3(uint32_t adc) const
virtual uint16_t getResults1Size() const
virtual uint16_t getRawDataSize() const
virtual uint32_t getDspCodeVersion() const
virtual uint16_t getCtrl2(uint32_t adc) const
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
virtual uint32_t offlineCheckSum() const
virtual uint16_t getNbSweetCells2() const
virtual uint32_t getNumberOfSamples() const
virtual uint32_t hasControlWords() const
virtual uint32_t getStatus() const
virtual uint16_t getResults2Size() const
virtual uint16_t getNbSweetCells1() const
virtual int32_t getDspEventCounter() const
virtual uint32_t onlineCheckSum() const
void fillFebHeader(LArFebHeader *lfh, const LArRodBlockStructure *bl, const ROBFragment &robFrag)
Fill info for one FEB Header.
eformat::ROBFragment< PointerType > ROBFragment
Definition RawEvent.h:27