CMS 3D CMS Logo

BSTRecord.h
Go to the documentation of this file.
1 #ifndef DATAFORMATS_TCDS_BSTRECORD_H
2 #define DATAFORMATS_TCDS_BSTRECORD_H
3 
4 //---------------------------------------------------------------------------
15 //---------------------------------------------------------------------------
16 
17 #include <ostream>
18 #include <cstdint>
19 
21 
22 
23 class BSTRecord
24 {
25 public:
26 
27  enum BeamMode {
28  NOMODE = 0,
29  SETUP = 1,
30  INJPILOR = 3,
31  INJINTR = 4,
32  INJNOMN = 5,
33  PRERAMP = 6,
34  RAMP = 7,
35  FLATTOP = 8,
36  SQUEEZE = 9,
37  ADJUST = 10,
38  STABLE = 11,
39  UNSTABLE = 12,
40  BEAMDUMP = 13,
41  RAMPDOWN = 14,
42  RECOVERY = 15,
43  INJDUMP = 16,
44  CIRCDUMP = 17,
45  ABORT = 18,
46  CYCLING = 19,
47  WBDUMP = 20,
48  NOBEAM = 21,
49  };
50 
51  enum Particle {
52  PROTON = 0,
53  LEAD = 1,
54  };
55 
56  BSTRecord();
57 
58  BSTRecord(const tcds::BST_v1&);
59 
60  // Microseconds since Epoch
61  uint64_t const getGpsTime() const { return m_gpstime; }
62 
63  // BST beam master
64  uint8_t const getBstMaster() const { return m_bstMaster; }
65 
66  // Turn count
67  uint32_t const getTurnCount() const { return m_turnCount; }
68 
69  // Fill number
70  uint32_t const getLhcFill() const { return m_lhcFill; }
71 
72  // Beam Mode. The return value corresponds to BSTRecord::BeamMode
73  uint16_t const getBeamMode() const { return m_beamMode; }
74 
75  // Particle type BSTRecord::Particle in beam 1
76  uint8_t const getParticleBeam1() const { return m_particleBeam1; }
77 
78  // Particle type BSTRecord::Particle in beam 2
79  uint8_t const getParticleBeam2() const { return m_particleBeam2; }
80 
81  // Beam momentum (GeV/c). Returns -1 if no valid value is available
82  int32_t const getBeamMomentum() const { return m_beamMomentum; }
83 
84  // Intensity of Beam 1 (10E10 charges)
85  uint32_t const getIntensityBeam1() const { return m_intensityBeam1; }
86 
87  // Intensity of Beam 2 (10E10 charges)
88  uint32_t const getIntensityBeam2() const { return m_intensityBeam2; }
89 
90 
91  private:
92 
94  uint32_t m_turnCount;
95  uint32_t m_lhcFill;
96  uint32_t m_intensityBeam1;
97  uint32_t m_intensityBeam2;
98  int32_t m_beamMomentum;
99  uint16_t m_beamMode;
102  uint8_t m_bstMaster;
103 
104 };
105 
106 
108 std::ostream& operator<<(std::ostream&, const BSTRecord&);
109 
110 #endif // DATAFORMATS_TCDS_BSTRECORD_H
std::ostream & operator<<(std::ostream &, const BSTRecord &)
Pretty-print operator for BSTRecord.
Definition: BSTRecord.cc:37
uint32_t m_intensityBeam1
Definition: BSTRecord.h:96
BSTRecord()
Definition: BSTRecord.cc:4
uint16_t const getBeamMode() const
Definition: BSTRecord.h:73
int32_t const getBeamMomentum() const
Definition: BSTRecord.h:82
uint64_t m_gpstime
Definition: BSTRecord.h:93
Class representing the Beam Synchronous Timing (BST) information included in the TCDS record...
Definition: BSTRecord.h:23
uint32_t m_turnCount
Definition: BSTRecord.h:94
uint8_t const getParticleBeam1() const
Definition: BSTRecord.h:76
uint32_t const getIntensityBeam2() const
Definition: BSTRecord.h:88
uint8_t m_particleBeam2
Definition: BSTRecord.h:101
uint32_t const getTurnCount() const
Definition: BSTRecord.h:67
unsigned long long uint64_t
Definition: Time.h:15
uint64_t const getGpsTime() const
Definition: BSTRecord.h:61
int32_t m_beamMomentum
Definition: BSTRecord.h:98
uint8_t m_particleBeam1
Definition: BSTRecord.h:100
uint32_t m_intensityBeam2
Definition: BSTRecord.h:97
uint8_t const getParticleBeam2() const
Definition: BSTRecord.h:79
uint16_t m_beamMode
Definition: BSTRecord.h:99
uint8_t const getBstMaster() const
Definition: BSTRecord.h:64
uint32_t const getLhcFill() const
Definition: BSTRecord.h:70
uint8_t m_bstMaster
Definition: BSTRecord.h:102
uint32_t m_lhcFill
Definition: BSTRecord.h:95
uint32_t const getIntensityBeam1() const
Definition: BSTRecord.h:85