1 #ifndef EventFilter_CSCRawToDigi_CSCEventData_h 2 #define EventFilter_CSCRawToDigi_CSCEventData_h 24 #include <boost/dynamic_bitset.hpp> 57 std::vector<CSCStripDigi>
stripDigis(
unsigned idlayer,
unsigned icfeb)
const;
60 std::vector<std::vector<CSCStripDigi> >
stripDigis()
const;
62 std::vector<CSCWireDigi>
wireDigis(
unsigned ilayer)
const;
64 std::vector<std::vector<CSCWireDigi> >
wireDigis()
const;
102 void add(
const std::vector<CSCALCTDigi> &);
103 void add(
const std::vector<CSCCLCTDigi> &);
104 void add(
const std::vector<CSCCorrelatedLCTDigi> &);
106 void addShower(
const std::vector<CSCShowerDigi> &);
111 void add(
const std::vector<GEMPadDigiCluster> &,
const GEMDetId &);
118 boost::dynamic_bitset<>
pack();
void unpack_data(const uint16_t *buf)
void setEventInformation(int bxnum, int lvl1num)
unsigned short * alctZSErecovered
Auxiliary bufer to recove the ALCT raw payload from zero suppression.
uint16_t theFormatVersion
Output Format Version (2005, 2013)
void checkALCTClasses()
makes new ALCT classes, if needed
CSCCFEBData * theCFEBData[CSCConstants::MAX_CFEBS_RUN2]
for up to MAX_CFEB CFEB boards
void addComparatorInformation(std::vector< CSCStripDigi > &, int layer) const
adds the comparators to the strip digis
void addALCTStructures()
adds an empty ALCTHeader, trailer, and anode data
void checkTMBClasses()
makes new TMB classes, if needed
CSCAnodeData * alctData() const
user must check if nalct > 0
unsigned short size() const
size of the data buffer used, in bytes
const CSCCFEBData * cfebData(unsigned icfeb) const
unpacked in long mode: has overflow and error bits decoded
void addAnodeShower(const std::vector< CSCShowerDigi > &)
Add/pack anode CSCShower object (from OTMB header)
CSCComparatorData * comparatorData() const
user must check if nclct > 0
void addAnodeALCTShower(const std::vector< CSCShowerDigi > &)
Add/pack anode CSCShower objects (from ALCT board data)
bool isALCT(const uint16_t *buf)
if dealing with ALCT data
CSCDMBHeader theDMBHeader
const CSCDMBHeader * dmbHeader() const
the DAQ motherboard header. A good place for event and chamber info
int nalct() const
the flag for existence of ALCT data
void addShower(const std::vector< CSCShowerDigi > &)
Run3 CSC Shower HMT objects.
CSCALCTHeader * theALCTHeader
std::ostream & operator<<(std::ostream &os, const CSCEventData &evt)
CSCDMBHeader * dmbHeader()
const CSCDMBTrailer * dmbTrailer() const
DMB trailer.
CSCDMBTrailer theDMBTrailer
int chamberType() const
might not be set in real data
CSCEventData operator=(const CSCEventData &data)
CSCALCTTrailer * theALCTTrailer
void copy(const CSCEventData &)
bool isTMB(const uint16_t *buf)
if dealing with TMB data
std::vector< std::vector< CSCStripDigi > > stripDigis() const
deprecated. Use the above methods instead
CSCALCTTrailer * alctTrailer() const
user must check if nalct > 0
void add(const CSCStripDigi &, int layer)
routines to add digis to the data
int nclct() const
the number of CLCTs
char data[epos_bytes_allocation]
static std::atomic< bool > debug
CSCALCTHeader * alctHeader() const
user must check if nalct > 0
CSCTMBData * tmbData() const
user must check in nclct > 0
boost::dynamic_bitset pack()
returns the packed event data.
std::vector< std::vector< CSCWireDigi > > wireDigis() const
deprecated. Use the above method instead.
void addCathodeShower(const std::vector< CSCShowerDigi > &)
Add/pack cathode CSCShower object (from OTMB header)
uint16_t getFormatVersion() const
unsigned int calcALCTcrc(std::vector< std::pair< unsigned int, unsigned short *> > &vec)
static void setDebug(const bool value)
CSCTMBHeader * tmbHeader() const
user must check if nclct > 0
CSCAnodeData * theAnodeData