CMS 3D CMS Logo

LumiRawDataStructures.h
Go to the documentation of this file.
1 #ifndef RecoLuminosity_LumiProducer_LUMIRAWDATASTRUCTURES_H
2 #define RecoLuminosity_LumiProducer_LUMIRAWDATASTRUCTURES_H
3 //Note: this header file corresponds to svn.cern.ch/reps/Luminosity/HLXReadOut/HLXCoreLibs/include/LumiStructures.hh - Revision 512 LumiDAQ
4 /*
5  LumiNibble structure definitions
6 */
7 
8 // The string and stream definitions
9 // Type definitions used by the HAL, etc...
10 
11 #define HCAL_HLX_MAX_BUNCHES 4096
12 #define HCAL_HLX_MAX_HLXS 36
13 
14 // Changes
15 // Namespace for the HCAL HLX
16 #include <cstdint>
17 
18 namespace HCAL_HLX {
19 
20  struct DAQ_HEART_BEAT {
21  uint32_t runNumber;
22  uint32_t sectionNumber;
23  uint32_t bCMSLive;
24 
25  uint32_t timestamp;
26  uint32_t timestamp_micros;
27  };
28 
29  struct RUN_SUMMARY {
30  char runSequenceName[128];
31  uint32_t HLTConfigId;
32  uint32_t timestamp;
33  uint32_t timestamp_micros;
34  uint32_t startOrbitNumber;
35  uint32_t endOrbitnumber;
36 
37  uint32_t runNumber;
38  uint32_t fillNumber;
39 
40  uint32_t numberCMSLumiSections; // number of lumi sections from the trigger
42  };
43 
44  struct RUN_QUALITY {
45  uint32_t runNumber;
46  uint32_t sectionNumber;
47 
48  int HLX;
49  int HFLumi;
50  int ECAL;
51  int HCAL;
52  int Tracker;
53  int RPC;
54  int DT;
55  int CSC;
56  };
57 
58  struct RCMS_CONFIG {
59  uint32_t runNumber;
60 
61  char CMSSW_Tag[32];
62  char TriDAS_Tag[32];
63 
64  uint32_t FirmwareVersion;
66  char AddressTablePath[256];
67 
68  char CfgDBTag[64];
69  char CfgDBAccessor[64];
71 
72  uint32_t DestIPHigh;
73  uint32_t DestIPLow;
74 
75  uint32_t SrcIPBaseHigh;
76  uint32_t SrcIPBaseLow;
77 
78  uint32_t DestMacAddrHigh;
79  uint32_t DestMacAddrMed;
80  uint32_t DestMacAddrLow;
81 
82  uint32_t SrcMacAddrHigh;
83  uint32_t SrcMacAddrMed;
84  uint32_t SrcMacAddrLow;
85 
86  uint32_t SrcPort;
87  uint32_t DestPort;
88 
89  uint32_t DebugData;
90  uint32_t DebugReadout;
91  uint32_t DebugSingleCycle;
92 
93  uint32_t NumOrbits;
94  uint32_t OrbitPeriod;
95 
96  uint32_t Id;
97 
98  uint32_t TTCBC0Pattern;
99  uint32_t TTCSTARTPattern;
100  uint32_t TTCSTOPPattern;
101 
102  uint32_t BC0Delay;
103 
108 
110  uint32_t LHCThresholdTop;
111 
113  uint32_t ETSumCutoffTop;
114 
115  uint32_t OCCMaskBottom;
116  uint32_t OCCMaskTop;
117 
119  uint32_t LHCMaskLowTop;
121  uint32_t LHCMaskHighTop;
122 
124  uint32_t SumETMaskLowTop;
127  };
128 
129  struct LUMI_SUMMARY {
131  float LHCNormalization; // recieved from LHC
132 
133  float InstantLumi;
136 
140  float ETNormalization; // Calculated
141 
142  float InstantOccLumi[2];
143  float InstantOccLumiErr[2];
144  int16_t InstantOccLumiQlty[2];
145  float OccNormalization[2];
146 
147  float lumiNoise[2];
148  };
149 
150  struct LUMI_DETAIL {
151  float LHCLumi[HCAL_HLX_MAX_BUNCHES]; // Sum of LHC.data over all HLX's
152 
153  float ETLumi[HCAL_HLX_MAX_BUNCHES];
154  float ETLumiErr[HCAL_HLX_MAX_BUNCHES];
155  int16_t ETLumiQlty[HCAL_HLX_MAX_BUNCHES];
156  float ETBXNormalization[HCAL_HLX_MAX_BUNCHES];
157 
158  float OccLumi[2][HCAL_HLX_MAX_BUNCHES];
159  float OccLumiErr[2][HCAL_HLX_MAX_BUNCHES];
160  int16_t OccLumiQlty[2][HCAL_HLX_MAX_BUNCHES];
161  float OccBXNormalization[2][HCAL_HLX_MAX_BUNCHES];
162  };
163 
164  /**************** Trigger *********************/
165 
166  struct LEVEL1_PATH {
167  char pathName[128];
170  };
171 
172  struct LEVEL1_TRIGGER {
173  uint32_t runNumber;
174  uint32_t sectionNumber; // Lumi section number recorded by the daq.
175 
176  uint32_t timestamp;
178 
180 
181  char GTLumiInfoFormat[32];
182 
183  LEVEL1_PATH GTAlgo[128];
184  LEVEL1_PATH GTTech[64];
185  };
186 
187  struct HLT_PATH { // only object that uses STL and is variable size.
188  char PathName[128]; //This is the name of trigger path
189  uint32_t L1Pass; //Number of times the path was entered
190  uint32_t PSPass; //Number after prescaling
191  uint32_t PAccept; //Number of accepts by the trigger path
192  uint32_t PExcept; //Number of exceptional event encountered
193  uint32_t PReject;
194  char PrescalerModule[64]; //Name of the prescale module in the path
195  uint32_t PSIndex; //Index into the set of pre defined prescales
196  uint32_t Prescale;
197 
198  uint32_t HLTConfigId;
199  };
200 
201  struct HLTRIGGER {
202  uint32_t runNumber;
203  uint32_t sectionNumber;
204  uint32_t numPaths;
205 
207  };
208 
209  /***************** Internal use ****************/
210  struct LUMI_RAW_HEADER { // Used in NibbleCollector
211  uint16_t marker;
212  uint8_t hlxID;
213  uint8_t packetID;
214  uint32_t startOrbit;
215  uint16_t numOrbits;
216  uint16_t startBunch; // Starting bunch in this packet
217  uint16_t numBunches; // Total number of bunches in histogram
218  uint8_t histogramSet;
220  uint16_t allA;
221  uint16_t allF;
222  };
223 
225  uint32_t startOrbit;
226  uint16_t numOrbits;
227  uint16_t numBunches; // Number of bunches histogrammed
228  bool bCMSLive;
229  bool bOC0;
230  };
231 
232  struct ET_SUM_NIBBLE {
235  };
236 
240  };
241 
242  struct LHC_NIBBLE {
245  };
246 
247  //***********************************************************
248 
250  uint32_t timestamp;
252 
253  uint32_t runNumber; // Run number
254  uint32_t sectionNumber; // Section number
255 
256  uint32_t startOrbit; // Start orbit of lumi section
257  uint32_t numOrbits; // Total number of orbits recorded in lumi section
258  uint16_t numBunches; // Total number of bunches (from start of orbit)
259  uint16_t numHLXs; // Number of HLXs in lumi section
260 
261  bool bCMSLive; // Is CMS taking data?
262  bool bOC0; // Was section initialised by an OC0?
263  };
264 
266  uint32_t numNibbles; // Number of nibbles in this histogram
267  bool bIsComplete; // Is this histogram complete (i.e. no missing nibbles)
268  };
269 
270  struct ET_SUM_SECTION {
273  };
274 
278  };
279 
280  struct LHC_SECTION {
283  };
284 
285  struct LUMI_SECTION {
289 
293  };
294 
297  uint32_t timestamp;
299  uint32_t runNumber;
300  uint32_t sectionNumber;
301  };
302 
303  struct VDM_SCAN_DATA : public DIP_STRUCT_BASE {
304  bool VdmMode; //True when a scan at one of the IPs is imminent, false otherwise
305  int IP;
306  bool RecordDataFlag; // True while data for one of the scan points at one of the IPs is being taken, false otherwise
307  double BeamSeparation; //separation in sigma for the scan point
308  bool isXaxis; //true if scanning xaxis, otherwise yaxis is being scanned
309  int Beam;
310  double StepProgress;
311  };
312 
313  struct BRAN_DATA : public DIP_STRUCT_BASE {
315  int AcqMode;
317  };
318 
319  struct BRAN_BX_DATA : public DIP_STRUCT_BASE {
320  double bunchByBunchLuminosity[3564];
321  int AcqMode;
322  };
323 
325  int beamConfig[3564];
326  };
327 
328  struct LHC_FILL_DATA : public DIP_STRUCT_BASE {
329  uint32_t FillNumber;
330  };
331 
333  uint32_t numHLXs;
334  uint32_t startOrbit;
335  uint32_t numOrbits;
336  uint32_t numBunches;
337  float instantLumi;
339  };
340 
342  float lumiHisto[3564];
343  uint32_t numBunches;
344  };
345 
347  char status[64];
348  };
349 
351  char state[64];
352  uint32_t deadtime;
355  };
356 
358  char beamMode[64];
359  };
360 
362  float singleBeamEnergy; //GeV
363  };
364 
366  double beamIntensity; //total num protons in beam summed over all bxs
369  };
370 
372  double bestLifetime;
374  float averageBunchIntensities[3564];
375  };
376 
378  double IntTime;
379  double CollRate;
380  double CollRateErr;
381  bool Preferred;
382  char Source[64];
383  };
384 
386  char mode[64];
387  };
388 
389  struct BEAM_INFO {
392  double bestLifeTime;
395  float averageBunchIntensities[3564];
396  int beamConfig[3564];
397  };
398 
399  struct BRANA_INFO {
401  int acqMode;
403  double bunchByBunchLuminosity[3564];
404  };
405 
406  struct BRANP_INFO {
408  int acqMode;
413  double bunchByBunchLuminosity[3564];
414  };
415 
416  struct BRAN_INFO {
419  };
420 
422  char beamMode[128];
423 
424  float Energy;
425 
426  uint32_t FillNumber;
427 
428  BEAM_INFO Beam[2];
429 
434 
436  };
437 
438 } // namespace HCAL_HLX
439 
440 #endif //RecoLuminosity_LumiProducer_LUMIRAWDATASTRUCTURES_H
#define HCAL_HLX_MAX_HLXS
#define HCAL_HLX_MAX_BUNCHES
LUMI_SECTION_SUB_HEADER hdr
unsigned long long uint64_t
Definition: Time.h:13
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
LUMI_SECTION_SUB_HEADER hdr