File indexing completed on 2024-04-06 12:04:40
0001 #ifndef DataFormats_LTCDigi_h
0002 #define DataFormats_LTCDigi_h
0003
0004 #include <vector>
0005 #include <ostream>
0006 #include <string>
0007
0008 #include "FWCore/Utilities/interface/typedefs.h"
0009
0010
0011
0012
0013
0014
0015 class LTCDigi {
0016 public:
0017
0018 LTCDigi() {}
0019 LTCDigi(const unsigned char *data);
0020
0021
0022
0023
0024 static cms_uint32_t GetEventNumberFromBuffer(const unsigned char *databuffer);
0025 static cms_uint32_t GetRunNumberFromBuffer(const unsigned char *databuffer);
0026 static std::string utcTime(cms_uint64_t t);
0027 static std::string locTime(cms_uint64_t t);
0028
0029
0030
0031 unsigned int eventNumber() const { return eventNumber_; };
0032 unsigned int eventID() const { return eventID_; };
0033 unsigned int runNumber() const { return runNumber_; };
0034
0035 unsigned int bunchNumber() const { return bunchNumber_; };
0036 cms_uint32_t orbitNumber() const { return orbitNumber_; };
0037
0038 int version() const { return versionNumber_; };
0039 int sourceID() const { return sourceID_; };
0040
0041 int daqPartition() const { return daqPartition_; };
0042
0043 cms_uint32_t triggerInputStatus() const { return trigInputStat_; };
0044 cms_uint32_t triggerInhibitNumber() const { return trigInhibitNumber_; };
0045
0046 cms_uint64_t bstGpsTime() const { return bstGpsTime_; };
0047
0048 unsigned int bxMask() const { return ((triggerInputStatus() >> 28) & 0x1); };
0049 unsigned int vmeTrigger() const { return ((triggerInputStatus() >> 27) & 0x1); };
0050 unsigned int ramTrigger() const { return ((triggerInputStatus() >> 26) & 0x1); };
0051 unsigned char externTriggerMask() const
0052 {
0053 return ((triggerInputStatus() >> 20) & 0x3FU);
0054 };
0055 unsigned char cyclicTriggerMask() const
0056 {
0057 return (triggerInputStatus() & 0x3FU);
0058 };
0059
0060 bool HasTriggered(int i) const {
0061 if (i > 5)
0062 return false;
0063 return ((externTriggerMask() & (0x1U << i)) != 0);
0064 }
0065
0066 private:
0067
0068 unsigned int trigType_;
0069
0070 unsigned int eventID_;
0071 unsigned int runNumber_;
0072
0073 unsigned int sourceID_;
0074
0075 unsigned int bunchNumber_;
0076 cms_uint32_t orbitNumber_;
0077
0078 int versionNumber_;
0079
0080 int daqPartition_;
0081
0082 cms_uint32_t eventNumber_;
0083
0084 cms_uint32_t trigInputStat_;
0085 cms_uint32_t trigInhibitNumber_;
0086 cms_uint64_t bstGpsTime_;
0087 };
0088
0089 std::ostream &operator<<(std::ostream &stream, const LTCDigi &myDigi);
0090
0091 typedef std::vector<LTCDigi> LTCDigiCollection;
0092
0093 #endif