CMS 3D CMS Logo

BeamSpotOnline.cc
Go to the documentation of this file.
1 /*
2  * File: DataFormats/Scalers/src/BeamSpotOnline.cc (W.Badgett)
3  */
4 
7 #include <cstdio>
8 #include <ostream>
9 
11  : trigType_(0),
12  eventID_(0),
13  sourceID_(0),
14  bunchNumber_(0),
15  version_(0),
16  collectionTime_(0, 0),
17  x_((float)0.0),
18  y_((float)0.0),
19  z_((float)0.0),
20  dxdz_((float)0.0),
21  dydz_((float)0.0),
22  err_x_((float)0.0),
23  err_y_((float)0.0),
24  err_z_((float)0.0),
25  err_dxdz_((float)0.0),
26  err_dydz_((float)0.0),
27  width_x_((float)0.0),
28  width_y_((float)0.0),
29  sigma_z_((float)0.0),
30  err_width_x_((float)0.0),
31  err_width_y_((float)0.0),
32  err_sigma_z_((float)0.0) {}
33 
34 BeamSpotOnline::BeamSpotOnline(const unsigned char* rawData) {
36 
37  struct ScalersEventRecordRaw_v4 const* raw = reinterpret_cast<struct ScalersEventRecordRaw_v4 const*>(rawData);
38  trigType_ = (raw->header >> 56) & 0xFULL;
39  eventID_ = (raw->header >> 32) & 0x00FFFFFFULL;
40  sourceID_ = (raw->header >> 8) & 0x00000FFFULL;
41  bunchNumber_ = (raw->header >> 20) & 0xFFFULL;
42 
43  version_ = raw->version;
44  if (version_ >= 4) {
47  x_ = raw->beamSpotOnline.x;
48  y_ = raw->beamSpotOnline.y;
49  z_ = raw->beamSpotOnline.z;
50  dxdz_ = raw->beamSpotOnline.dxdz;
51  dydz_ = raw->beamSpotOnline.dydz;
63  }
64 }
65 
67 
69 std::ostream& operator<<(std::ostream& s, const BeamSpotOnline& c) {
70  char zeit[128];
71  constexpr size_t kLineBufferSize = 157;
72  char line[kLineBufferSize];
73  struct tm* hora;
74 
75  s << "BeamSpotOnline Version: " << c.version() << " SourceID: " << c.sourceID() << std::endl;
76 
77  timespec ts = c.collectionTime();
78  hora = gmtime(&ts.tv_sec);
79  strftime(zeit, sizeof(zeit), "%Y.%m.%d %H:%M:%S", hora);
80  snprintf(line, kLineBufferSize, " CollectionTime: %s.%9.9d", zeit, (int)ts.tv_nsec);
81  s << line << std::endl;
82 
83  snprintf(line,
84  kLineBufferSize,
85  " TrigType: %d EventID: %d BunchNumber: %d",
86  c.trigType(),
87  c.eventID(),
88  c.bunchNumber());
89  s << line << std::endl;
90 
91  snprintf(
92  line, kLineBufferSize, " x: %e +/- %e width: %e +/- %e", c.x(), c.err_x(), c.width_x(), c.err_width_x());
93  s << line << std::endl;
94 
95  snprintf(
96  line, kLineBufferSize, " y: %e +/- %e width: %e +/- %e", c.y(), c.err_y(), c.width_y(), c.err_width_y());
97  s << line << std::endl;
98 
99  snprintf(
100  line, kLineBufferSize, " z: %e +/- %e sigma: %e +/- %e", c.z(), c.err_z(), c.sigma_z(), c.err_sigma_z());
101  s << line << std::endl;
102 
103  snprintf(
104  line, kLineBufferSize, " dxdy: %e +/- %e dydz: %e +/- %e", c.dxdz(), c.err_dxdz(), c.dydz(), c.err_dydz());
105  s << line << std::endl;
106  return s;
107 }
BeamSpotOnline::~BeamSpotOnline
virtual ~BeamSpotOnline()
Definition: BeamSpotOnline.cc:66
BeamSpotOnline::trigType_
unsigned int trigType_
Definition: BeamSpotOnline.h:72
ScalersEventRecordRaw_v4
Definition: ScalersRaw.h:210
BeamSpotOnline::BeamSpotOnline
BeamSpotOnline()
Definition: BeamSpotOnline.cc:10
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
BeamSpotOnlineRaw_v4::err_y
float err_y
Definition: ScalersRaw.h:161
BeamSpotOnline::collectionTime_
TimeSpec collectionTime_
Definition: BeamSpotOnline.h:79
BeamSpotOnline::bunchNumber_
unsigned int bunchNumber_
Definition: BeamSpotOnline.h:75
BeamSpotOnlineRaw_v4::err_sigma_z
float err_sigma_z
Definition: ScalersRaw.h:170
BeamSpotOnlineRaw_v4::err_width_x
float err_width_x
Definition: ScalersRaw.h:168
BeamSpotOnline::err_width_x_
float err_width_x_
Definition: BeamSpotOnline.h:93
BeamSpotOnline::width_y_
float width_y_
Definition: BeamSpotOnline.h:91
BeamSpotOnline::sourceID_
unsigned int sourceID_
Definition: BeamSpotOnline.h:74
BeamSpotOnline::z_
float z_
Definition: BeamSpotOnline.h:82
BeamSpotOnline::err_dxdz_
float err_dxdz_
Definition: BeamSpotOnline.h:88
BeamSpotOnlineRaw_v4::collectionTime_nsec
unsigned int collectionTime_nsec
Definition: ScalersRaw.h:154
l1tstage2_dqm_sourceclient-live_cfg.rawData
rawData
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:162
BeamSpotOnline::eventID_
unsigned int eventID_
Definition: BeamSpotOnline.h:73
TimeSpec::set_tv_nsec
void set_tv_nsec(long value)
Definition: TimeSpec.h:19
BeamSpotOnline.h
ScalersRaw.h
watchdog.const
const
Definition: watchdog.py:83
alignCSCRings.s
s
Definition: alignCSCRings.py:92
TimeSpec::set_tv_sec
void set_tv_sec(long value)
Definition: TimeSpec.h:18
BeamSpotOnline::y_
float y_
Definition: BeamSpotOnline.h:81
BeamSpotOnlineRaw_v4::z
float z
Definition: ScalersRaw.h:157
BeamSpotOnline::x_
float x_
Definition: BeamSpotOnline.h:80
BeamSpotOnlineRaw_v4::err_z
float err_z
Definition: ScalersRaw.h:162
BeamSpotOnline::err_width_y_
float err_width_y_
Definition: BeamSpotOnline.h:94
BeamSpotOnline::sigma_z_
float sigma_z_
Definition: BeamSpotOnline.h:92
BeamSpotOnlineRaw_v4::dydz
float dydz
Definition: ScalersRaw.h:159
operator<<
std::ostream & operator<<(std::ostream &s, const BeamSpotOnline &c)
Pretty-print operator for BeamSpotOnline.
Definition: BeamSpotOnline.cc:69
BeamSpotOnline::dydz_
float dydz_
Definition: BeamSpotOnline.h:84
BeamSpotOnlineRaw_v4::width_y
float width_y
Definition: ScalersRaw.h:166
BeamSpotOnlineRaw_v4::sigma_z
float sigma_z
Definition: ScalersRaw.h:167
BeamSpotOnlineRaw_v4::collectionTime_sec
unsigned int collectionTime_sec
Definition: ScalersRaw.h:153
BeamSpotOnlineRaw_v4::y
float y
Definition: ScalersRaw.h:156
BeamSpotOnline::width_x_
float width_x_
Definition: BeamSpotOnline.h:90
BeamSpotOnline::err_dydz_
float err_dydz_
Definition: BeamSpotOnline.h:89
BeamSpotOnlineRaw_v4::err_x
float err_x
Definition: ScalersRaw.h:160
BeamSpotOnline::err_y_
float err_y_
Definition: BeamSpotOnline.h:86
BeamSpotOnline::err_z_
float err_z_
Definition: BeamSpotOnline.h:87
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
BeamSpotOnline::err_sigma_z_
float err_sigma_z_
Definition: BeamSpotOnline.h:95
BeamSpotOnline
Definition: BeamSpotOnline.h:28
BeamSpotOnlineRaw_v4::err_width_y
float err_width_y
Definition: ScalersRaw.h:169
ScalersEventRecordRaw_v4::header
unsigned long long header
Definition: ScalersRaw.h:211
ScalersEventRecordRaw_v4::version
int version
Definition: ScalersRaw.h:212
BeamSpotOnline::err_x_
float err_x_
Definition: BeamSpotOnline.h:85
BeamSpotOnlineRaw_v4::err_dxdz
float err_dxdz
Definition: ScalersRaw.h:163
ScalersEventRecordRaw_v4::beamSpotOnline
struct BeamSpotOnlineRaw_v4 beamSpotOnline
Definition: ScalersRaw.h:215
BeamSpotOnlineRaw_v4::dxdz
float dxdz
Definition: ScalersRaw.h:158
mps_splice.line
line
Definition: mps_splice.py:76
BeamSpotOnlineRaw_v4::err_dydz
float err_dydz
Definition: ScalersRaw.h:164
BeamSpotOnline::version_
int version_
Definition: BeamSpotOnline.h:77
BeamSpotOnline::dxdz_
float dxdz_
Definition: BeamSpotOnline.h:83
BeamSpotOnlineRaw_v4::x
float x
Definition: ScalersRaw.h:155
BeamSpotOnlineRaw_v4::width_x
float width_x
Definition: ScalersRaw.h:165