CMS 3D CMS Logo

L1TriggerScalers.cc
Go to the documentation of this file.
1 
2 /*
3  * File: DataFormats/Scalers/src/L1TriggerScalers.cc (W.Badgett)
4  */
5 
8 
9 #include <iostream>
10 #include <cstdio>
11 
13  version_(0),
14  collectionTimeSpecial_(0,0),
15  orbitNumber_(0),
16  luminositySection_(0),
17  bunchCrossingErrors_(0),
18  collectionTimeSummary_(0,0),
19  triggerNumber_(0),
20  eventNumber_(0),
21  finalTriggersDistributed_(0),
22  calibrationTriggers_(0),
23  randomTriggers_(0),
24  totalTestTriggers_(0),
25  finalTriggersGenerated_(0),
26  finalTriggersInvalidBC_(0),
27  deadTime_(0),
28  lostFinalTriggers_(0),
29  deadTimeActive_(0),
30  lostFinalTriggersActive_(0),
31  deadTimeActivePrivate_(0),
32  deadTimeActivePartition_(0),
33  deadTimeActiveThrottle_(0),
34  deadTimeActiveCalibration_(0),
35  deadTimeActiveTimeSlot_(0),
36  numberResets_(0),
37  collectionTimeDetails_(0,0),
38  triggers_(nL1Triggers),
39  testTriggers_(nL1TestTriggers)
40 {
41 }
42 
43 L1TriggerScalers::L1TriggerScalers(const unsigned char * rawData)
44 {
46 
47  struct ScalersEventRecordRaw_v1 const * raw
48  = reinterpret_cast<struct ScalersEventRecordRaw_v1 const *>(rawData);
49 
50  trigType_ = ( raw->header >> 56 ) & 0xFULL;
51  eventID_ = ( raw->header >> 32 ) & 0x00FFFFFFULL;
52  sourceID_ = ( raw->header >> 8 ) & 0x00000FFFULL;
53  bunchNumber_ = ( raw->header >> 20 ) & 0xFFFULL;
54 
55  version_ = raw->version;
56  if ( ( version_ == 1 ) || ( version_ == 2 ) )
57  {
58  collectionTimeSpecial_.set_tv_sec( static_cast<long>(
65 
66  collectionTimeSummary_.set_tv_sec( static_cast<long>(
70 
72  eventNumber_ = raw->trig.EVENT_NR;
77 
80 
81  deadTime_ = raw->trig.DEADTIME;
91 
92  collectionTimeDetails_.set_tv_sec( static_cast<long>(
96 
97  for ( int i=0; i<ScalersRaw::N_L1_TRIGGERS_v1; i++)
98  { triggers_.push_back( raw->trig.ALGO_RATE[i]);}
99 
100  for ( int i=0; i<ScalersRaw::N_L1_TEST_TRIGGERS_v1; i++)
101  { testTriggers_.push_back( raw->trig.TEST_RATE[i]);}
102  }
103 }
104 
106 
107 
109 std::ostream& operator<<(std::ostream& s,L1TriggerScalers const &c)
110 {
111  s << "L1TriggerScalers Version:" << c.version() <<
112  " SourceID: " << c.sourceID() << std::endl;
113  constexpr size_t kLineBufferSize = 164;
114  char line[kLineBufferSize];
115  char zeitHeaven[128];
116  char zeitHell[128];
117  char zeitLimbo[128];
118  struct tm * horaHeaven;
119  struct tm * horaHell;
120  struct tm * horaLimbo;
121 
122  sprintf(line, " TrigType: %d EventID: %d BunchNumber: %d",
123  c.trigType(), c.eventID(), c.bunchNumber());
124  s << line << std::endl;
125 
126  timespec secondsToHeaven = c.collectionTimeSummary();
127  horaHeaven = gmtime(&secondsToHeaven.tv_sec);
128  strftime(zeitHeaven, sizeof(zeitHeaven), "%Y.%m.%d %H:%M:%S", horaHeaven);
129  snprintf(line, kLineBufferSize, " CollectionTimeSummary: %s.%9.9d" ,
130  zeitHeaven, (int)secondsToHeaven.tv_nsec);
131  s << line << std::endl;
132 
133  timespec secondsToHell= c.collectionTimeSpecial();
134  horaHell = gmtime(&secondsToHell.tv_sec);
135  strftime(zeitHell, sizeof(zeitHell), "%Y.%m.%d %H:%M:%S", horaHell);
136  snprintf(line, kLineBufferSize, " CollectionTimeSpecial: %s.%9.9d" ,
137  zeitHell, (int)secondsToHell.tv_nsec);
138  s << line << std::endl;
139 
140  timespec secondsToLimbo= c.collectionTimeDetails();
141  horaLimbo = gmtime(&secondsToLimbo.tv_sec);
142  strftime(zeitLimbo, sizeof(zeitLimbo), "%Y.%m.%d %H:%M:%S", horaLimbo);
143  snprintf(line, kLineBufferSize, " CollectionTimeDetails: %s.%9.9d" ,
144  zeitLimbo, (int)secondsToLimbo.tv_nsec);
145  s << line << std::endl;
146 
147  snprintf(line, kLineBufferSize,
148  " LuminositySection: %15d BunchCrossingErrors: %15d",
150  s << line << std::endl;
151 
152  snprintf(line, kLineBufferSize,
153  " TriggerNumber: %15d EventNumber: %15d",
154  c.triggerNumber(), c.eventNumber());
155  s << line << std::endl;
156 
157  snprintf(line, kLineBufferSize,
158  " TriggersDistributed: %10d TriggersGenerated: %15d",
161  s << line << std::endl;
162 
163  snprintf(line, kLineBufferSize,
164  " TriggersInvalidBC: %15d CalibrationTriggers: %15d",
166  s << line << std::endl;
167 
168  snprintf(line, kLineBufferSize,
169  " TestTriggers: %15d RandomTriggers: %15d",
171  s << line << std::endl;
172 
173  snprintf(line, kLineBufferSize,
174  " DeadTime: %15d DeadTimeActiveTimeSlot: %15ld",
175  c.numberResets(), (long int)c.deadTime());
176  s << line << std::endl;
177 
178  snprintf(line, kLineBufferSize,
179  " DeadTimeActive: %15ld DeadTimeActiveCalibration:%15ld",
180  (long int)c.deadTimeActive(),
181  (long int)c.deadTimeActiveCalibration());
182  s << line << std::endl;
183 
184  snprintf(line, kLineBufferSize,
185  " LostTriggers: %15ld DeadTimeActivePartition: %15ld",
186  (long int)c.lostFinalTriggers(),
187  (long int)c.deadTimeActivePartition());
188  s << line << std::endl;
189 
190  snprintf(line, kLineBufferSize,
191  " LostTriggersActive:%15ld DeadTimeActiveThrottle: %15ld",
192  (long int)c.lostFinalTriggersActive(),
193  (long int)c.deadTimeActiveThrottle());
194  s << line << std::endl;
195 
196  snprintf(line, kLineBufferSize,
197  " NumberResets: %15d DeadTimeActivePrivate: %15ld",
198  c.numberResets(),
199  (long int)c.deadTimeActivePrivate());
200  s << line << std::endl;
201 
202  s << "Physics Triggers" << std::endl;
203  std::vector<unsigned int> triggers = c.triggers();
204  int length = triggers.size() / 4;
205  for ( int i=0; i<length; i++)
206  {
207  snprintf(line, kLineBufferSize,
208  " %3.3d: %10d %3.3d: %10d %3.3d: %10d %3.3d: %10d",
209  i, triggers[i],
210  (i+length), triggers[i+length],
211  (i+(length*2)), triggers[i+(length*2)],
212  (i+(length*3)), triggers[i+(length*3)]);
213  s << line << std::endl;
214  }
215 
216  s << "Test Triggers" << std::endl;
217  std::vector<unsigned int> testTriggers = c.testTriggers();
218  length = testTriggers.size() / 4;
219  for ( int i=0; i<length; i++)
220  {
221  snprintf(line, kLineBufferSize,
222  " %3.3d: %10d %3.3d: %10d %3.3d: %10d %3.3d: %10d",
223  i, testTriggers[i],
224  (i+length), testTriggers[i+length],
225  (i+(length*2)), testTriggers[i+(length*2)],
226  (i+(length*3)), testTriggers[i+(length*3)]);
227  s << line << std::endl;
228  }
229  return s;
230 }
unsigned int EVENT_NR
Definition: ScalersRaw.h:57
unsigned long long deadTimeActive_
unsigned long long deadTimeActivePrivate_
unsigned long long PRIV_DEADTIMEA
Definition: ScalersRaw.h:68
TimeSpec collectionTimeSpecial_
unsigned int eventID_
unsigned long long deadTimeActivePartition() const
unsigned long long deadTimeActivePartition_
unsigned long long lostFinalTriggers() const
unsigned int eventNumber() const
void set_tv_nsec(long value)
Definition: TimeSpec.h:27
timespec collectionTimeSpecial() const
timespec collectionTimeSummary() const
unsigned int numberResets() const
unsigned long long header
Definition: ScalersRaw.h:190
unsigned int FINOR_GENERATED
Definition: ScalersRaw.h:62
unsigned int FINOR_IN_INVALID_BC
Definition: ScalersRaw.h:63
unsigned int eventID() const
unsigned int totalTestTriggers() const
unsigned int trigType_
unsigned int LUMINOSITY_SEGMENT
Definition: ScalersRaw.h:51
unsigned int CAL_TRIGGER
Definition: ScalersRaw.h:59
unsigned int triggerNumber() const
unsigned int ALGO_RATE[ScalersRaw::N_L1_TRIGGERS_v1]
Definition: ScalersRaw.h:77
unsigned long long LOST_FINOR
Definition: ScalersRaw.h:65
#define constexpr
struct TriggerScalersRaw_v1 trig
Definition: ScalersRaw.h:192
unsigned long long deadTimeActiveThrottle() const
unsigned int finalTriggersDistributed_
unsigned int eventNumber_
unsigned int numberResets_
unsigned int orbitNumber_
unsigned long long DEADTIMEA
Definition: ScalersRaw.h:66
unsigned int randomTriggers() const
unsigned long long deadTimeActive() const
unsigned long long lostFinalTriggersActive() const
std::vector< unsigned int > testTriggers() const
unsigned long long deadTimeActiveCalibration() const
unsigned long long TIMESLOT_DEADTIMEA
Definition: ScalersRaw.h:72
timespec collectionTimeDetails() const
virtual ~L1TriggerScalers()
unsigned long long deadTimeActiveTimeSlot_
unsigned int TRIGGER_NR
Definition: ScalersRaw.h:56
unsigned long long deadTime() const
unsigned int totalTestTriggers_
unsigned int sourceID() const
unsigned int finalTriggersDistributed() const
unsigned int finalTriggersGenerated() const
unsigned int bunchNumber() const
std::vector< unsigned int > testTriggers_
unsigned int luminositySection() const
unsigned long long LOST_FINORA
Definition: ScalersRaw.h:67
TimeSpec collectionTimeDetails_
unsigned int collectionTimeSummary_sec
Definition: ScalersRaw.h:54
unsigned int TEST_TRIGGER
Definition: ScalersRaw.h:61
unsigned short BC_ERRORS
Definition: ScalersRaw.h:52
unsigned int luminositySection_
unsigned int collectionTimeSpecial_sec
Definition: ScalersRaw.h:48
unsigned int ORBIT_NUMBER
Definition: ScalersRaw.h:50
unsigned long long THROTTLE_DEADTIMEA
Definition: ScalersRaw.h:70
unsigned long long deadTimeActiveCalibration_
unsigned int trigType() const
std::ostream & operator<<(std::ostream &s, L1TriggerScalers const &c)
Pretty-print operator for L1TriggerScalers.
unsigned int triggerNumber_
unsigned int FINOR_DISTRIBUTED
Definition: ScalersRaw.h:58
unsigned int collectionTimeSpecial_nsec
Definition: ScalersRaw.h:49
unsigned int bunchCrossingErrors() const
unsigned long long deadTimeActiveThrottle_
unsigned int collectionTimeDetails_nsec
Definition: ScalersRaw.h:76
unsigned long long lostFinalTriggers_
unsigned int finalTriggersInvalidBC_
unsigned int NR_OF_RESETS
Definition: ScalersRaw.h:73
unsigned long long PTCSTATUS_DEADTIMEA
Definition: ScalersRaw.h:69
unsigned int collectionTimeDetails_sec
Definition: ScalersRaw.h:75
unsigned int RANDOM_TRIGGER
Definition: ScalersRaw.h:60
unsigned long long deadTime_
unsigned int sourceID_
unsigned int bunchNumber_
std::vector< unsigned int > triggers() const
unsigned int calibrationTriggers() const
unsigned int TEST_RATE[ScalersRaw::N_L1_TEST_TRIGGERS_v1]
Definition: ScalersRaw.h:78
int version() const
void set_tv_sec(long value)
Definition: TimeSpec.h:26
TimeSpec collectionTimeSummary_
unsigned int collectionTimeSummary_nsec
Definition: ScalersRaw.h:55
unsigned int calibrationTriggers_
unsigned int finalTriggersInvalidBC() const
unsigned long long lostFinalTriggersActive_
unsigned int randomTriggers_
unsigned long long deadTimeActivePrivate() const
unsigned long long DEADTIME
Definition: ScalersRaw.h:64
unsigned long long CALIBRATION_DEADTIMEA
Definition: ScalersRaw.h:71
unsigned int finalTriggersGenerated_
unsigned short bunchCrossingErrors_
std::vector< unsigned int > triggers_