CSCVTMBHeaderFormat

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
#ifndef EventFilter_CSCRawToDigi_CSCVTMBHeaderFormat_h
#define EventFilter_CSCRawToDigi_CSCVTMBHeaderFormat_h

#include "DataFormats/CSCDigi/interface/CSCCLCTDigi.h"
#include "DataFormats/CSCDigi/interface/CSCALCTDigi.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h"
#include "DataFormats/CSCDigi/interface/CSCShowerDigi.h"
#include "DataFormats/MuonDetId/interface/CSCDetId.h"
#include "DataFormats/CSCDigi/interface/CSCConstants.h"
#include <vector>
#include <iosfwd>
#include <strings.h>
class CSCDMBHeader;

class CSCVTMBHeaderFormat {
public:
  virtual ~CSCVTMBHeaderFormat() {}

  virtual void setEventInformation(const CSCDMBHeader&) = 0;
  virtual uint16_t BXNCount() const = 0;
  virtual uint16_t ALCTMatchTime() const = 0;
  virtual void setALCTMatchTime(uint16_t alctmatchtime) = 0;
  virtual uint16_t CLCTOnly() const = 0;
  virtual uint16_t ALCTOnly() const = 0;
  virtual uint16_t TMBMatch() const = 0;
  virtual uint16_t Bxn0Diff() const = 0;
  virtual uint16_t Bxn1Diff() const = 0;
  virtual uint16_t L1ANumber() const = 0;
  virtual uint16_t syncError() const = 0;
  virtual uint16_t syncErrorCLCT() const = 0;
  virtual uint16_t syncErrorMPC0() const = 0;
  virtual uint16_t syncErrorMPC1() const = 0;
  virtual uint16_t L1AMatchTime() const = 0;

  /// == Run 3 CSC-GEM Trigger Format
  virtual uint16_t clct0_ComparatorCode() const = 0;
  virtual uint16_t clct1_ComparatorCode() const = 0;
  virtual uint16_t clct0_xky() const = 0;
  virtual uint16_t clct1_xky() const = 0;
  virtual uint16_t hmt_nhits() const = 0;
  virtual uint16_t hmt_ALCTMatchTime() const = 0;
  virtual uint16_t alctHMT() const = 0;
  virtual uint16_t clctHMT() const = 0;
  virtual uint16_t gem_enabled_fibers() const = 0;
  virtual uint16_t gem_fifo_tbins() const = 0;
  virtual uint16_t gem_fifo_pretrig() const = 0;
  virtual uint16_t gem_zero_suppress() const = 0;
  virtual uint16_t gem_sync_dataword() const = 0;
  virtual uint16_t gem_timing_dataword() const = 0;
  virtual uint16_t run3_CLCT_patternID() const = 0;

  uint16_t sizeInBytes() const { return sizeInWords() * 2; }
  virtual uint16_t NTBins() const = 0;
  virtual uint16_t NCFEBs() const = 0;
  virtual void setNCFEBs(uint16_t ncfebs) = 0;
  virtual uint16_t firmwareRevision() const = 0;
  ///returns CLCT digis
  virtual std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) = 0;
  ///returns CorrelatedLCT digis
  virtual std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const = 0;
  ///returns Run3 lct HMT Shower digi
  virtual CSCShowerDigi showerDigi(uint32_t idlayer) const = 0;
  ///returns Run3 anode HMT Shower digi
  virtual CSCShowerDigi anodeShowerDigi(uint32_t idlayer) const = 0;
  ///returns Run3 cathode HMT Shower digi
  virtual CSCShowerDigi cathodeShowerDigi(uint32_t idlayer) const = 0;

  /// in 16-bit words.  Add olne because we include beginning(b0c) and
  /// end (e0c) flags
  virtual unsigned short int sizeInWords() const = 0;

  virtual unsigned short int NHeaderFrames() const = 0;
  virtual unsigned short* data() = 0;
  virtual bool check() const = 0;

  /// for data packing
  virtual void addCLCT0(const CSCCLCTDigi& digi) = 0;
  virtual void addCLCT1(const CSCCLCTDigi& digi) = 0;
  virtual void addALCT0(const CSCALCTDigi& digi) = 0;
  virtual void addALCT1(const CSCALCTDigi& digi) = 0;
  virtual void addCorrelatedLCT0(const CSCCorrelatedLCTDigi& digi) = 0;
  virtual void addCorrelatedLCT1(const CSCCorrelatedLCTDigi& digi) = 0;
  virtual void addShower(const CSCShowerDigi& digi) = 0;
  virtual void addAnodeShower(const CSCShowerDigi& digi) = 0;
  virtual void addCathodeShower(const CSCShowerDigi& digi) = 0;

  virtual void print(std::ostream& os) const = 0;

protected:
  void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);
};

#endif