CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LumiScalers.cc
Go to the documentation of this file.
1 
2 /*
3  * File: DataFormats/Scalers/src/LumiScalers.cc (W.Badgett)
4  */
5 
8 #include <cstdio>
9 #include <ostream>
10 
12  trigType_(0),
13  eventID_(0),
14  sourceID_(0),
15  bunchNumber_(0),
16  version_(0),
17  normalization_(0.0),
18  deadTimeNormalization_(0.0),
19  lumiFill_(0.0),
20  lumiRun_(0.0),
21  liveLumiFill_(0.0),
22  liveLumiRun_(0.0),
23  instantLumi_(0.0),
24  instantLumiErr_(0.0),
25  instantLumiQlty_(0),
26  lumiETFill_(0.0),
27  lumiETRun_(0.0),
28  liveLumiETFill_(0.0),
29  liveLumiETRun_(0.0),
30  instantETLumi_(0.0),
31  instantETLumiErr_(0.0),
32  instantETLumiQlty_(0),
33  lumiOccFill_(nOcc),
34  lumiOccRun_(nOcc),
35  liveLumiOccFill_(nOcc),
36  liveLumiOccRun_(nOcc),
37  instantOccLumi_(nOcc),
38  instantOccLumiErr_(nOcc),
39  instantOccLumiQlty_(nOcc),
40  lumiNoise_(nOcc),
41  sectionNumber_(0),
42  startOrbit_(0),
43  numOrbits_(0)
44 {
45 }
46 
47 LumiScalers::LumiScalers(const unsigned char * rawData)
48 {
49  LumiScalers();
50 
52  = (struct ScalersEventRecordRaw_v1 *)rawData;
53  trigType_ = ( raw->header >> 56 ) & 0xFULL;
54  eventID_ = ( raw->header >> 32 ) & 0x00FFFFFFULL;
55  sourceID_ = ( raw->header >> 8 ) & 0x00000FFFULL;
56  bunchNumber_ = ( raw->header >> 20 ) & 0xFFFULL;
57  version_ = raw->version;
58 
59  struct LumiScalersRaw_v1 * lumi = NULL;
60 
61  if ( version_ >= 1 )
62  {
63  if ( version_ <= 2 )
64  {
65  lumi = & (raw->lumi);
66  }
67  else
68  {
69  struct ScalersEventRecordRaw_v3 * raw3
70  = (struct ScalersEventRecordRaw_v3 *)rawData;
71  lumi = & (raw3->lumi);
72  }
73  collectionTime_.set_tv_sec(static_cast<long>(lumi->collectionTime_sec));
77  lumiFill_ = lumi->LumiFill;
78  lumiRun_ = lumi->LumiRun;
80  liveLumiRun_ = lumi->LiveLumiRun;
81  instantLumi_ = lumi->InstantLumi;
84  lumiETFill_ = lumi->LumiETFill;
85  lumiETRun_ = lumi->LumiETRun;
91  for ( int i=0; i<ScalersRaw::N_LUMI_OCC_v1; i++)
92  {
93  lumiOccFill_.push_back(lumi->LumiOccFill[i]);
94  lumiOccRun_.push_back(lumi->LumiOccRun[i]);
95  liveLumiOccFill_.push_back(lumi->LiveLumiOccFill[i]);
96  liveLumiOccRun_.push_back(lumi->LiveLumiOccRun[i]);
97  instantOccLumi_.push_back(lumi->InstantOccLumi[i]);
98  instantOccLumiErr_.push_back(lumi->InstantOccLumiErr[i]);
99  instantOccLumiQlty_.push_back(lumi->InstantOccLumiQlty[i]);
100  lumiNoise_.push_back(lumi->lumiNoise[i]);
101  }
103  startOrbit_ = lumi->startOrbit;
104  numOrbits_ = lumi->numOrbits;
105  }
106 }
107 
109 
110 
112 std::ostream& operator<<(std::ostream& s, const LumiScalers& c)
113 {
114  char zeit[128];
115  char line[128];
116  struct tm * hora;
117 
118  s << "LumiScalers Version: " << c.version() <<
119  " SourceID: "<< c.sourceID() << std::endl;
120 
121  timespec ts = c.collectionTime();
122  hora = gmtime(&ts.tv_sec);
123  strftime(zeit, sizeof(zeit), "%Y.%m.%d %H:%M:%S", hora);
124  sprintf(line, " CollectionTime: %s.%9.9d", zeit,
125  (int)ts.tv_nsec);
126  s << line << std::endl;
127 
128  sprintf(line, " TrigType: %d EventID: %d BunchNumber: %d",
129  c.trigType(), c.eventID(), c.bunchNumber());
130  s << line << std::endl;
131 
132  sprintf(line," SectionNumber: %10d StartOrbit: %10d NumOrbits: %10d",
133  c.sectionNumber(), c.startOrbit(), c.numOrbits());
134  s << line << std::endl;
135 
136  sprintf(line," Normalization: %e DeadTimeNormalization: %e",
138  s << line << std::endl;
139 
140  // Integrated Luminosity
141 
142  sprintf(line," LumiFill: %e LumiRun: %e",
143  c.lumiFill(), c.lumiRun());
144  s << line << std::endl;
145  sprintf(line," LiveLumiFill: %e LiveLumiRun: %e",
146  c.liveLumiFill(), c.liveLumiRun());
147  s << line << std::endl;
148 
149  sprintf(line," LumiETFill: %e LumiETRun: %e",
150  c.lumiFill(), c.lumiRun());
151  s << line << std::endl;
152 
153  sprintf(line," LiveLumiETFill: %e LiveLumETiRun: %e",
154  c.liveLumiETFill(), c.liveLumiETRun());
155  s << line << std::endl;
156 
157  int length = c.instantOccLumi().size();
158  for (int i=0; i<length; i++)
159  {
160  sprintf(line,
161  " LumiOccFill[%d]: %e LumiOccRun[%d]: %e",
162  i, c.lumiOccFill()[i], i, c.lumiOccRun()[i]);
163  s << line << std::endl;
164 
165  sprintf(line,
166  " LiveLumiOccFill[%d]: %e LiveLumiOccRun[%d]:v %e",
167  i, c.liveLumiOccFill()[i], i, c.liveLumiOccRun()[i]);
168  s << line << std::endl;
169  }
170 
171  // Instantaneous Luminosity
172 
173  sprintf(line," InstantLumi: %e Err: %e Qlty: %d",
175  s << line << std::endl;
176 
177  sprintf(line," InstantETLumi: %e Err: %e Qlty: %d",
179  s << line << std::endl;
180 
181  for (int i=0; i<length; i++)
182  {
183  sprintf(line," InstantOccLumi[%d]: %e Err: %e Qlty: %d",
184  i, c.instantOccLumi()[i], c.instantOccLumiErr()[i],
185  c.instantOccLumiQlty()[i]);
186  s << line << std::endl;
187  sprintf(line," LumiNoise[%d]: %e", i, c.lumiNoise()[i]);
188  s << line << std::endl;
189  }
190 
191  return s;
192 }
unsigned char InstantETLumiQlty
Definition: ScalersRaw.h:136
unsigned int collectionTime_sec
Definition: ScalersRaw.h:117
int i
Definition: DBlmapReader.cc:9
std::vector< unsigned char > instantOccLumiQlty_
Definition: LumiScalers.h:138
std::vector< float > lumiOccFill() const
Definition: LumiScalers.h:75
unsigned int trigType() const
Definition: LumiScalers.h:48
unsigned char instantETLumiQlty() const
Definition: LumiScalers.h:73
unsigned char instantLumiQlty_
Definition: LumiScalers.h:121
float LiveLumiOccFill[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:140
unsigned int sectionNumber() const
Definition: LumiScalers.h:91
unsigned int bunchNumber() const
Definition: LumiScalers.h:51
float LumiOccRun[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:139
virtual ~LumiScalers()
Definition: LumiScalers.cc:108
int version() const
Definition: LumiScalers.h:53
std::vector< float > liveLumiOccRun_
Definition: LumiScalers.h:135
void set_tv_nsec(long value)
Definition: TimeSpec.h:27
std::vector< float > liveLumiOccFill_
Definition: LumiScalers.h:134
tuple lumi
Definition: fjr2json.py:41
float lumiETRun_
Definition: LumiScalers.h:124
unsigned char instantETLumiQlty_
Definition: LumiScalers.h:130
float liveLumiETRun_
Definition: LumiScalers.h:126
std::vector< float > instantOccLumi_
Definition: LumiScalers.h:136
float liveLumiFill_
Definition: LumiScalers.h:117
unsigned long long header
Definition: ScalersRaw.h:185
float normalization() const
Definition: LumiScalers.h:55
#define NULL
Definition: scimark2.h:8
float instantETLumi() const
Definition: LumiScalers.h:71
std::vector< float > instantOccLumiErr() const
Definition: LumiScalers.h:85
std::vector< float > lumiOccRun_
Definition: LumiScalers.h:133
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
float liveLumiETFill_
Definition: LumiScalers.h:125
float DeadtimeNormalization
Definition: ScalersRaw.h:119
float LumiOccFill[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:138
float liveLumiRun_
Definition: LumiScalers.h:118
std::vector< float > lumiNoise_
Definition: LumiScalers.h:139
float instantLumi() const
Definition: LumiScalers.h:63
unsigned int numOrbits
Definition: ScalersRaw.h:149
float instantLumiErr_
Definition: LumiScalers.h:120
unsigned char InstantOccLumiQlty[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:144
float deadTimeNormalization_
Definition: LumiScalers.h:113
float lumiETFill_
Definition: LumiScalers.h:123
float lumiNoise[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:145
float lumiFill_
Definition: LumiScalers.h:115
float liveLumiETRun() const
Definition: LumiScalers.h:70
float normalization_
Definition: LumiScalers.h:112
float liveLumiRun() const
Definition: LumiScalers.h:62
float instantETLumiErr_
Definition: LumiScalers.h:128
unsigned int numOrbits() const
Definition: LumiScalers.h:93
float lumiFill() const
Definition: LumiScalers.h:59
unsigned int collectionTime_nsec
Definition: ScalersRaw.h:118
timespec collectionTime() const
Definition: LumiScalers.h:54
unsigned int sectionNumber_
Definition: LumiScalers.h:141
float instantETLumiErr() const
Definition: LumiScalers.h:72
float instantETLumi_
Definition: LumiScalers.h:127
std::vector< float > lumiOccRun() const
Definition: LumiScalers.h:77
float InstantOccLumiErr[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:143
unsigned int startOrbit
Definition: ScalersRaw.h:148
std::vector< float > lumiNoise() const
Definition: LumiScalers.h:89
std::vector< float > instantOccLumiErr_
Definition: LumiScalers.h:137
std::vector< unsigned char > instantOccLumiQlty() const
Definition: LumiScalers.h:87
float liveLumiETFill() const
Definition: LumiScalers.h:69
float LiveLumiOccRun[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:141
std::vector< float > lumiOccFill_
Definition: LumiScalers.h:132
float lumiRun() const
Definition: LumiScalers.h:60
float lumiRun_
Definition: LumiScalers.h:116
unsigned int eventID() const
Definition: LumiScalers.h:49
unsigned char instantLumiQlty() const
Definition: LumiScalers.h:65
float instantLumi_
Definition: LumiScalers.h:119
float liveLumiFill() const
Definition: LumiScalers.h:61
unsigned int startOrbit() const
Definition: LumiScalers.h:92
float instantLumiErr() const
Definition: LumiScalers.h:64
unsigned int sourceID() const
Definition: LumiScalers.h:50
std::vector< float > instantOccLumi() const
Definition: LumiScalers.h:83
unsigned char InstantLumiQlty
Definition: ScalersRaw.h:128
unsigned int bunchNumber_
Definition: LumiScalers.h:106
TimeSpec collectionTime_
Definition: LumiScalers.h:110
string s
Definition: asciidump.py:422
unsigned int startOrbit_
Definition: LumiScalers.h:142
std::vector< float > liveLumiOccRun() const
Definition: LumiScalers.h:81
void set_tv_sec(long value)
Definition: TimeSpec.h:26
float InstantOccLumi[ScalersRaw::N_LUMI_OCC_v1]
Definition: ScalersRaw.h:142
struct LumiScalersRaw_v1 lumi
Definition: ScalersRaw.h:209
unsigned int sourceID_
Definition: LumiScalers.h:105
float InstantETLumiErr
Definition: ScalersRaw.h:135
unsigned int eventID_
Definition: LumiScalers.h:104
unsigned int numOrbits_
Definition: LumiScalers.h:143
unsigned int trigType_
Definition: LumiScalers.h:103
struct LumiScalersRaw_v1 lumi
Definition: ScalersRaw.h:188
unsigned int sectionNumber
Definition: ScalersRaw.h:147
float deadTimeNormalization() const
Definition: LumiScalers.h:56
std::vector< float > liveLumiOccFill() const
Definition: LumiScalers.h:79