CSCTMBMiniScope

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
//_______________________________________
//
//  Class for TMB Logic Analyzer Data
//  CSCTMBMiniScope   July 2010 Alexander Sakharov (Wayne State University)
//_______________________________________
//

#ifndef EventFilter_CSCRawToDigi_CSCTMBMiniScope_h
#define EventFilter_CSCRawToDigi_CSCTMBMiniScope_h
#include <vector>
#include <map>
#include <cstdint>

class CSCTMBMiniScope {
public:
  CSCTMBMiniScope() { size_ = 0; }  //default constructor
  CSCTMBMiniScope(const uint16_t *buf, int Line6b07, int Line6E07);
  int getSize() const { return size_; }
  int getTbinCount() const { return miniScopeTbinCount; }
  int getTbinPreTrigger() const { return miniScopeTbinPreTrigger; }
  std::vector<int> getAdr() const { return miniScopeAdress; }
  std::vector<int> getData() const { return miniScopeData; }
  std::vector<int> getChannelsInTbin(int data) const;

  void print() const;  /// Print the maped content of the miniscope

private:
  int UnpackMiniScope(const uint16_t *buf, int Line6b07, int Line6E07);

  std::vector<int> miniScopeAdress;  /// stores all mini scope adresses
  std::vector<int> miniScopeData;    /// stores all mini scope data
  int miniScopeTbinCount;
  int miniScopeTbinPreTrigger;
  unsigned size_;
};

#endif