Skip to content

Commit

Permalink
Backport to 12_3_X for CSC unpacking update PR#37279
Browse files Browse the repository at this point in the history
  • Loading branch information
barvic committed Apr 6, 2022
1 parent 1ed9513 commit 8640be8
Show file tree
Hide file tree
Showing 40 changed files with 838 additions and 191 deletions.
77 changes: 77 additions & 0 deletions EventFilter/CSCRawToDigi/interface/CSCALCTHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#endif
#include "DataFormats/CSCDigi/interface/CSCALCTDigi.h"
#include "DataFormats/CSCDigi/interface/CSCALCTStatusDigi.h"
#include "DataFormats/CSCDigi/interface/CSCShowerDigi.h"
#include "EventFilter/CSCRawToDigi/interface/CSCALCTHeader2006.h"
#include "EventFilter/CSCRawToDigi/interface/CSCALCTHeader2007.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
Expand Down Expand Up @@ -135,11 +136,85 @@ class CSCALCTHeader {
unsigned short int Promote2() const { return header2006.promote2; }
unsigned short int LCTChipRead() const { return header2006.lctChipRead; }
unsigned short int alctFirmwareVersion() const { return firmwareVersion; }
unsigned short int alctFirmwareRevision() const {
#ifdef LOCAL_UNPACK
switch (firmwareVersion) {
#else
switch (firmwareVersion.load()) {
#endif
case 2006:
return 0;
case 2007:
return header2007.firmwareVersion;
default:
edm::LogError("CSCALCTHeader|CSCRawToDigi")
<< "trying to access ALCT firmware revision bits: ALCT firmware version is bad/not defined!";
return 0;
}
}

std::vector<CSCShowerDigi> alctShowerDigis() const {
std::vector<CSCShowerDigi> results;
results.clear();
#ifdef LOCAL_UNPACK
switch (firmwareVersion) {
#else
switch (firmwareVersion.load()) {
#endif
case 2006:
return results;
case 2007:
// if (alctFirmwareRevision() >= 0) // TODO: Need ALCT Run3 firmware revision to properly detect presense of HMT bits in data format
// {
if ((!theALCTs.empty()) && (theALCTs.size() == unsigned(header2007.lctBins * 2))) {
for (unsigned bx = 0; bx < header2007.lctBins; bx++) {
results.push_back(CSCShowerDigi(theALCTs[bx * 2].reserved & 0x3, 0, bx));
}
return results;
} else
return results;
// } else return results;
default:
edm::LogError("CSCALCTHeader|CSCRawToDigi")
<< "trying to access ALCT HMT Shower Digis bits: ALCT firmware version is bad/not defined!";
return results;
}
}

std::vector<unsigned short int> alctHMTs() const {
std::vector<unsigned short int> results;
results.clear();
#ifdef LOCAL_UNPACK
switch (firmwareVersion) {
#else
switch (firmwareVersion.load()) {
#endif
case 2006:
return results;
case 2007:
// if (alctFirmwareRevision() >= 0) // TODO: Need ALCT Run3 firmware revision to properly detect presense of HMT bits in data format
// {
if ((!theALCTs.empty()) && (theALCTs.size() == unsigned(header2007.lctBins * 2))) {
for (unsigned bx = 0; bx < header2007.lctBins; bx++) {
results.push_back(theALCTs[bx * 2].reserved & 0x3);
}
return results;
} else
return results;
// } else return results;
default:
edm::LogError("CSCALCTHeader|CSCRawToDigi")
<< "trying to access ALCT HMT bits: ALCT firmware version is bad/not defined!";
return results;
}
}

void setDAVForChannel(int wireGroup) {
if (firmwareVersion == 2006) {
header2006.setDAV((wireGroup - 1) / 16);
}
}

CSCALCTHeader2007 alctHeader2007() const { return header2007; }
CSCALCTHeader2006 alctHeader2006() const { return header2006; }

Expand Down Expand Up @@ -179,6 +254,8 @@ class CSCALCTHeader {
}

void add(const std::vector<CSCALCTDigi> &digis);
/// Add Run3 ALCT HMT shower bits
void addShower(const std::vector<CSCShowerDigi> &digis);

boost::dynamic_bitset<> pack();

Expand Down
5 changes: 3 additions & 2 deletions EventFilter/CSCRawToDigi/interface/CSCDCCExaminer.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,9 @@ class CSCDCCExaminer {
uint32_t ALCT_WordsSinceLastHeaderZeroSuppressed;
uint32_t ALCT_WordCount;
uint32_t ALCT_WordsExpected;
uint32_t ALCT_ZSE; /// check zero suppression mode
uint32_t nWG_round_up; /// to decode if zero suppression enabled
uint32_t ALCT_WordsBeforeRaw; /// number of ALCT words before anode raw data
uint32_t ALCT_ZSE; /// check zero suppression mode
uint32_t nWG_round_up; /// to decode if zero suppression enabled

uint32_t TMB_WordsSinceLastHeader;
uint32_t TMB_WordCount;
Expand Down
12 changes: 11 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCDigiToRaw.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ class CSCChamberMap;

class CSCDigiToRaw {
public:
/// CSC Shower HMT bits types
enum CSCShowerType { lctShower = 0, anodeShower = 1, cathodeShower = 2, anodeALCTShower = 3 };

/// Constructor
explicit CSCDigiToRaw(const edm::ParameterSet& pset);

Expand All @@ -38,6 +41,9 @@ class CSCDigiToRaw {
const CSCCLCTPreTriggerDigiCollection* preTriggerDigis,
const CSCCorrelatedLCTDigiCollection& correlatedLCTDigis,
const CSCShowerDigiCollection* showerDigis,
const CSCShowerDigiCollection* anodeShowerDigis,
const CSCShowerDigiCollection* cathodeShowerDigis,
const CSCShowerDigiCollection* anodeALCTShowerDigis,
const GEMPadDigiClusterCollection* padDigiClusters,
FEDRawDataCollection& fed_buffers,
const CSCChamberMap* theMapping,
Expand Down Expand Up @@ -66,7 +72,11 @@ class CSCDigiToRaw {
void add(const CSCALCTDigiCollection& alctDigis, FindEventDataInfo&) const;
void add(const CSCCLCTDigiCollection& clctDigis, FindEventDataInfo&) const;
void add(const CSCCorrelatedLCTDigiCollection& corrLCTDigis, FindEventDataInfo&) const;
void add(const CSCShowerDigiCollection& cscShowerDigis, FindEventDataInfo&) const;
/// Run3 packing of CSCShower objects depending on shower HMT type
void add(const CSCShowerDigiCollection& cscShowerDigis,
FindEventDataInfo&,
enum CSCShowerType shower = CSCShowerType::lctShower) const;
/// Run3 adding GEM GE11 Pad Clusters trigger objects
void add(const GEMPadDigiClusterCollection& gemPadClusters, FindEventDataInfo&) const;
/// pick out the correct data object for this chamber
CSCEventData& findEventData(const CSCDetId& cscDetId, FindEventDataInfo&) const;
Expand Down
7 changes: 6 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCEventData.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,12 @@ class CSCEventData {
void add(const std::vector<CSCALCTDigi> &);
void add(const std::vector<CSCCLCTDigi> &);
void add(const std::vector<CSCCorrelatedLCTDigi> &);
void add(const std::vector<CSCShowerDigi> &);
/// Run3 CSC Shower HMT objects
void addShower(const std::vector<CSCShowerDigi> &); // add LCT CSCShower
void addAnodeShower(const std::vector<CSCShowerDigi> &); // add Anode CSCShower
void addCathodeShower(const std::vector<CSCShowerDigi> &); // add Cathode CSCShower
void addAnodeALCTShower(const std::vector<CSCShowerDigi> &); // add Anode ALCT CSCShower
/// Run3 GEM Pad Clusters obecjts
void add(const std::vector<GEMPadDigiCluster> &, const GEMDetId &);

/// this will fill the DMB header, and change all related fields in
Expand Down
5 changes: 5 additions & 0 deletions EventFilter/CSCRawToDigi/interface/CSCGEMData.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ class CSCGEMData {
/// turns on the debug flag for this class
static void setDebug(bool debugValue) { debug = debugValue; }

/// Add and pack GEMPadDigiCluster digis
void addEtaPadCluster(const GEMPadDigiCluster &digi, int gem_chamber, int eta_roll);

unsigned short *data() { return theData; }

private:
int getPartitionNumber(int address, int nPads) const;
int getPartitionStripNumber(int address, int nPads, int etaPart) const;
Expand Down
4 changes: 2 additions & 2 deletions EventFilter/CSCRawToDigi/interface/CSCTMBData.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class CSCTMBData {
bool hasRPC() const { return theRPCDataIsPresent; }
CSCRPCData* rpcData() { return &theRPCData; }
bool hasGEM() const { return theGEMDataIsPresent; }
CSCGEMData* gemData() const;
CSCGEMData* gemData();

/// not const because it sets size int TMBTrailer

Expand All @@ -79,7 +79,7 @@ class CSCTMBData {
CSCTMBHeader theTMBHeader;
CSCComparatorData theComparatorData;
CSCRPCData theRPCData;
CSCGEMData* theGEMData;
CSCGEMData theGEMData;
/// The TMB scope is not present in most of data hence its dynamic
bool theTMBScopeIsPresent;
CSCTMBScope* theTMBScope;
Expand Down
14 changes: 12 additions & 2 deletions EventFilter/CSCRawToDigi/interface/CSCTMBHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,21 @@ class CSCTMBHeader {
uint16_t clct1_xky() const { return theHeaderFormat->clct1_xky(); }
uint16_t hmt_nhits() const { return theHeaderFormat->hmt_nhits(); }
uint16_t hmt_ALCTMatchTime() const { return theHeaderFormat->hmt_ALCTMatchTime(); }
uint16_t alctHMT() const { return theHeaderFormat->alctHMT(); }
uint16_t clctHMT() const { return theHeaderFormat->clctHMT(); }
uint16_t gem_enabled_fibers() const { return theHeaderFormat->gem_enabled_fibers(); }
uint16_t gem_fifo_tbins() const { return theHeaderFormat->gem_fifo_tbins(); }
uint16_t gem_fifo_pretrig() const { return theHeaderFormat->gem_fifo_pretrig(); }
uint16_t gem_zero_suppress() const { return theHeaderFormat->gem_zero_suppress(); }
uint16_t gem_sync_dataword() const { return theHeaderFormat->gem_sync_dataword(); }
uint16_t gem_timing_dataword() const { return theHeaderFormat->gem_timing_dataword(); }
uint16_t run3_CLCT_patternID() const { return theHeaderFormat->run3_CLCT_patternID(); }
///returns Run3 Shower Digi for HMT
///returns Run3 lct Shower Digi for HMT
CSCShowerDigi showerDigi(uint32_t idlayer) const { return theHeaderFormat->showerDigi(idlayer); }
///returns Run3 anode Shower Digi for HMT
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const { return theHeaderFormat->anodeShowerDigi(idlayer); }
///returns Run3 cathode Shower Digi for HMT
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const { return theHeaderFormat->cathodeShowerDigi(idlayer); }

///returns CLCT digis
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) { return theHeaderFormat->CLCTDigis(idlayer); }
Expand Down Expand Up @@ -118,8 +124,12 @@ class CSCTMBHeader {
void addALCT1(const CSCALCTDigi& digi) { theHeaderFormat->addALCT1(digi); }
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) { theHeaderFormat->addCorrelatedLCT0(digi); }
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) { theHeaderFormat->addCorrelatedLCT1(digi); }
// Add Run3 Shower digi for HMT
// Add Run3 lct Shower digi for HMT
void addShower(const CSCShowerDigi& digi) { theHeaderFormat->addShower(digi); }
// Add Run3 anode Shower digi for HMT
void addAnodeShower(const CSCShowerDigi& digi) { theHeaderFormat->addAnodeShower(digi); }
// Add Run3 cathode Shower digi for HMT
void addCathodeShower(const CSCShowerDigi& digi) { theHeaderFormat->addCathodeShower(digi); }

/// these methods need more brains to figure which one goes first
void add(const std::vector<CSCCLCTDigi>& digis);
Expand Down
10 changes: 9 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCTMBHeader2006.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ struct CSCTMBHeader2006 : public CSCVTMBHeaderFormat {
uint16_t clct1_xky() const override { return 0; }
uint16_t hmt_nhits() const override { return 0; }
uint16_t hmt_ALCTMatchTime() const override { return 0; }
uint16_t alctHMT() const override { return 0; }
uint16_t clctHMT() const override { return 0; }
uint16_t gem_enabled_fibers() const override { return 0; }
uint16_t gem_fifo_tbins() const override { return 0; }
uint16_t gem_fifo_pretrig() const override { return 0; }
Expand All @@ -45,8 +47,12 @@ struct CSCTMBHeader2006 : public CSCVTMBHeaderFormat {
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) override;
///returns CorrelatedLCT digis
std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const override;
///returns HMT Shower digi
///returns lct HMT Shower digi
CSCShowerDigi showerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns anode HMT Shower digi
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns cathode HMT Shower digi
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }

/// in 16-bit words. Add olne because we include beginning(b0c) and
/// end (e0c) flags
Expand All @@ -65,6 +71,8 @@ struct CSCTMBHeader2006 : public CSCVTMBHeaderFormat {
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) override;
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) override;
void addShower(const CSCShowerDigi& digi) override {}
void addAnodeShower(const CSCShowerDigi& digi) override {}
void addCathodeShower(const CSCShowerDigi& digi) override {}

void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);

Expand Down
10 changes: 9 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCTMBHeader2007.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ struct CSCTMBHeader2007 : public CSCVTMBHeaderFormat {
uint16_t clct1_xky() const override { return 0; }
uint16_t hmt_nhits() const override { return 0; }
uint16_t hmt_ALCTMatchTime() const override { return 0; }
uint16_t alctHMT() const override { return 0; }
uint16_t clctHMT() const override { return 0; }
uint16_t gem_enabled_fibers() const override { return 0; }
uint16_t gem_fifo_tbins() const override { return 0; }
uint16_t gem_fifo_pretrig() const override { return 0; }
Expand All @@ -45,8 +47,12 @@ struct CSCTMBHeader2007 : public CSCVTMBHeaderFormat {
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) override;
///returns CorrelatedLCT digis
std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const override;
///returns HMT Shower digi
///returns lct HMT Shower digi
CSCShowerDigi showerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns anode HMT Shower digi
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns cathode HMT Shower digi
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }

/// in 16-bit words. Add olne because we include beginning(b0c) and
/// end (e0c) flags
Expand All @@ -65,6 +71,8 @@ struct CSCTMBHeader2007 : public CSCVTMBHeaderFormat {
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) override;
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) override;
void addShower(const CSCShowerDigi& digi) override {}
void addAnodeShower(const CSCShowerDigi& digi) override {}
void addCathodeShower(const CSCShowerDigi& digi) override {}

void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);

Expand Down
10 changes: 9 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCTMBHeader2007_rev0x50c3.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ struct CSCTMBHeader2007_rev0x50c3 : public CSCVTMBHeaderFormat {
uint16_t clct1_xky() const override { return 0; }
uint16_t hmt_nhits() const override { return 0; }
uint16_t hmt_ALCTMatchTime() const override { return 0; }
uint16_t alctHMT() const override { return 0; }
uint16_t clctHMT() const override { return 0; }
uint16_t gem_enabled_fibers() const override { return 0; }
uint16_t gem_fifo_tbins() const override { return 0; }
uint16_t gem_fifo_pretrig() const override { return 0; }
Expand All @@ -45,8 +47,12 @@ struct CSCTMBHeader2007_rev0x50c3 : public CSCVTMBHeaderFormat {
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) override;
///returns CorrelatedLCT digis
std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const override;
///returns HMT Shower digi
///returns lct HMT Shower digi
CSCShowerDigi showerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns anode HMT Shower digi
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns cathode HMT Shower digi
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }

/// in 16-bit words. Add olne because we include beginning(b0c) and
/// end (e0c) flags
Expand All @@ -65,6 +71,8 @@ struct CSCTMBHeader2007_rev0x50c3 : public CSCVTMBHeaderFormat {
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) override;
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) override;
void addShower(const CSCShowerDigi& digi) override {}
void addAnodeShower(const CSCShowerDigi& digi) override {}
void addCathodeShower(const CSCShowerDigi& digi) override {}

void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);

Expand Down
10 changes: 9 additions & 1 deletion EventFilter/CSCRawToDigi/interface/CSCTMBHeader2013.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ struct CSCTMBHeader2013 : public CSCVTMBHeaderFormat {
uint16_t clct1_xky() const override { return 0; }
uint16_t hmt_nhits() const override { return 0; }
uint16_t hmt_ALCTMatchTime() const override { return 0; }
uint16_t alctHMT() const override { return 0; }
uint16_t clctHMT() const override { return 0; }
uint16_t gem_enabled_fibers() const override { return 0; }
uint16_t gem_fifo_tbins() const override { return 0; }
uint16_t gem_fifo_pretrig() const override { return 0; }
Expand All @@ -45,8 +47,12 @@ struct CSCTMBHeader2013 : public CSCVTMBHeaderFormat {
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) override;
///returns CorrelatedLCT digis
std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const override;
///returns HMT Shower digi
///returns lct HMT Shower digi
CSCShowerDigi showerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns anode HMT Shower digi
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }
///returns cathode HMT Shower digi
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const override { return CSCShowerDigi(); }

/// in 16-bit words. Add olne because we include beginning(b0c) and
/// end (e0c) flags
Expand All @@ -65,6 +71,8 @@ struct CSCTMBHeader2013 : public CSCVTMBHeaderFormat {
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) override;
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) override;
void addShower(const CSCShowerDigi& digi) override {}
void addAnodeShower(const CSCShowerDigi& digi) override {}
void addCathodeShower(const CSCShowerDigi& digi) override {}

void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);

Expand Down
14 changes: 10 additions & 4 deletions EventFilter/CSCRawToDigi/interface/CSCTMBHeader2020_CCLUT.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ struct CSCTMBHeader2020_CCLUT : public CSCVTMBHeaderFormat {
((bits.hmt_nhits_bits_high & 0x1F) << 2));
}
uint16_t hmt_ALCTMatchTime() const override { return bits.hmt_match_win; }

uint16_t alctHMT() const override { return bits.anode_hmt; }
uint16_t clctHMT() const override { return bits.cathode_hmt; }
uint16_t gem_enabled_fibers() const override { return 0; }
uint16_t gem_fifo_tbins() const override { return 0; }
uint16_t gem_fifo_pretrig() const override { return 0; }
Expand All @@ -53,8 +54,12 @@ struct CSCTMBHeader2020_CCLUT : public CSCVTMBHeaderFormat {
std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) override;
///returns CorrelatedLCT digis
std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const override;
///returns HMT Shower digi
///returns lct HMT Shower digi
CSCShowerDigi showerDigi(uint32_t idlayer) const override;
///returns anode HMT Shower digi
CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const override;
///returns cathode HMT Shower digi
CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const override;

/// in 16-bit words. Add olne because we include beginning(b0c) and
/// end (e0c) flags
Expand All @@ -73,6 +78,8 @@ struct CSCTMBHeader2020_CCLUT : public CSCVTMBHeaderFormat {
void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) override;
void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) override;
void addShower(const CSCShowerDigi& digi) override;
void addAnodeShower(const CSCShowerDigi& digi) override;
void addCathodeShower(const CSCShowerDigi& digi) override;

void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);

Expand Down Expand Up @@ -144,8 +151,7 @@ struct CSCTMBHeader2020_CCLUT : public CSCVTMBHeaderFormat {
unsigned activeCFEBs_2 : 2, readCFEBs_2 : 2, cfeb_badbits_found_2 : 2, parity_err_cfeb_ram_2 : 2,
CFEBsEnabled_2 : 2, buf_fence_cnt_is_peak : 1, mxcfeb : 1, trig_source_vec : 2, tmb_trig_pulse : 1, flag40 : 1;
unsigned run3_trig_df : 1, gem_enable : 1, hmt_match_win : 4, tmb_alct_only_ro : 1, tmb_clct_only_ro : 1,
tmb_match_ro : 1, tmb_trig_keep : 1, tmb_non_trig_keep : 1, lyr_thresh_pretrig : 3, layer_trig_en : 1,
flag41 : 1;
tmb_match_ro : 1, tmb_trig_keep : 1, tmb_non_trig_keep : 1, cathode_hmt : 2, anode_hmt : 2, flag41 : 1;
unsigned e0bline : 16;
} bits;
};
Expand Down
Loading

0 comments on commit 8640be8

Please sign in to comment.