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 
22  uint32_t runNumber;
23  uint32_t sectionNumber;
24  uint32_t bCMSLive;
25 
26  uint32_t timestamp;
27  uint32_t timestamp_micros;
28  };
29 
30  struct RUN_SUMMARY {
31 
32  char runSequenceName[128];
33  uint32_t HLTConfigId;
34  uint32_t timestamp;
35  uint32_t timestamp_micros;
36  uint32_t startOrbitNumber;
37  uint32_t endOrbitnumber;
38 
39  uint32_t runNumber;
40  uint32_t fillNumber;
41 
42  uint32_t numberCMSLumiSections; // number of lumi sections from the trigger
44  };
45 
46  struct RUN_QUALITY {
47  uint32_t runNumber;
48  uint32_t sectionNumber;
49 
50  int HLX;
51  int HFLumi;
52  int ECAL;
53  int HCAL;
54  int Tracker;
55  int RPC;
56  int DT;
57  int CSC;
58  };
59 
60  struct RCMS_CONFIG {
61 
62  uint32_t runNumber;
63 
64  char CMSSW_Tag[32];
65  char TriDAS_Tag[32];
66 
67  uint32_t FirmwareVersion;
69  char AddressTablePath[256];
70 
71  char CfgDBTag[64];
72  char CfgDBAccessor[64];
74 
75  uint32_t DestIPHigh;
76  uint32_t DestIPLow;
77 
78  uint32_t SrcIPBaseHigh;
79  uint32_t SrcIPBaseLow;
80 
81  uint32_t DestMacAddrHigh;
82  uint32_t DestMacAddrMed;
83  uint32_t DestMacAddrLow;
84 
85  uint32_t SrcMacAddrHigh;
86  uint32_t SrcMacAddrMed;
87  uint32_t SrcMacAddrLow;
88 
89  uint32_t SrcPort;
90  uint32_t DestPort;
91 
92  uint32_t DebugData;
93  uint32_t DebugReadout;
94  uint32_t DebugSingleCycle;
95 
96  uint32_t NumOrbits;
97  uint32_t OrbitPeriod;
98 
99  uint32_t Id;
100 
101  uint32_t TTCBC0Pattern;
102  uint32_t TTCSTARTPattern;
103  uint32_t TTCSTOPPattern;
104 
105  uint32_t BC0Delay;
106 
111 
113  uint32_t LHCThresholdTop;
114 
116  uint32_t ETSumCutoffTop;
117 
118  uint32_t OCCMaskBottom;
119  uint32_t OCCMaskTop;
120 
122  uint32_t LHCMaskLowTop;
124  uint32_t LHCMaskHighTop;
125 
127  uint32_t SumETMaskLowTop;
130  };
131 
132  struct LUMI_SUMMARY {
133 
135  float LHCNormalization; // recieved from LHC
136 
137  float InstantLumi;
140 
144  float ETNormalization; // Calculated
145 
146  float InstantOccLumi[2];
147  float InstantOccLumiErr[2];
148  int16_t InstantOccLumiQlty[2];
149  float OccNormalization[2];
150 
151  float lumiNoise[2];
152  };
153 
154  struct LUMI_DETAIL {
155 
156  float LHCLumi[HCAL_HLX_MAX_BUNCHES]; // Sum of LHC.data over all HLX's
157 
158  float ETLumi[HCAL_HLX_MAX_BUNCHES];
159  float ETLumiErr[HCAL_HLX_MAX_BUNCHES];
160  int16_t ETLumiQlty[HCAL_HLX_MAX_BUNCHES];
161  float ETBXNormalization[HCAL_HLX_MAX_BUNCHES];
162 
163  float OccLumi[2][HCAL_HLX_MAX_BUNCHES];
164  float OccLumiErr[2][HCAL_HLX_MAX_BUNCHES];
165  int16_t OccLumiQlty[2][HCAL_HLX_MAX_BUNCHES];
166  float OccBXNormalization[2][HCAL_HLX_MAX_BUNCHES];
167  };
168 
169  /**************** Trigger *********************/
170 
171  struct LEVEL1_PATH {
172 
173  char pathName[128];
176  };
177 
178  struct LEVEL1_TRIGGER {
179  uint32_t runNumber;
180  uint32_t sectionNumber; // Lumi section number recorded by the daq.
181 
182  uint32_t timestamp;
184 
186 
187  char GTLumiInfoFormat[32];
188 
189  LEVEL1_PATH GTAlgo[128];
190  LEVEL1_PATH GTTech[64];
191  };
192 
193  struct HLT_PATH { // only object that uses STL and is variable size.
194  char PathName[128]; //This is the name of trigger path
195  uint32_t L1Pass; //Number of times the path was entered
196  uint32_t PSPass; //Number after prescaling
197  uint32_t PAccept; //Number of accepts by the trigger path
198  uint32_t PExcept; //Number of exceptional event encountered
199  uint32_t PReject;
200  char PrescalerModule[64]; //Name of the prescale module in the path
201  uint32_t PSIndex; //Index into the set of pre defined prescales
202  uint32_t Prescale;
203 
204  uint32_t HLTConfigId;
205  };
206 
207  struct HLTRIGGER {
208  uint32_t runNumber;
209  uint32_t sectionNumber;
210  uint32_t numPaths;
211 
213  };
214 
215  /***************** Internal use ****************/
216  struct LUMI_RAW_HEADER { // Used in NibbleCollector
217  uint16_t marker;
218  uint8_t hlxID;
219  uint8_t packetID;
220  uint32_t startOrbit;
221  uint16_t numOrbits;
222  uint16_t startBunch; // Starting bunch in this packet
223  uint16_t numBunches; // Total number of bunches in histogram
224  uint8_t histogramSet;
226  uint16_t allA;
227  uint16_t allF;
228  };
229 
231  uint32_t startOrbit;
232  uint16_t numOrbits;
233  uint16_t numBunches; // Number of bunches histogrammed
234  bool bCMSLive;
235  bool bOC0;
236  };
237 
238  struct ET_SUM_NIBBLE {
241  };
242 
246  };
247 
248  struct LHC_NIBBLE {
251  };
252 
253  //***********************************************************
254 
256  uint32_t timestamp;
258 
259  uint32_t runNumber; // Run number
260  uint32_t sectionNumber; // Section number
261 
262  uint32_t startOrbit; // Start orbit of lumi section
263  uint32_t numOrbits; // Total number of orbits recorded in lumi section
264  uint16_t numBunches; // Total number of bunches (from start of orbit)
265  uint16_t numHLXs; // Number of HLXs in lumi section
266 
267  bool bCMSLive; // Is CMS taking data?
268  bool bOC0; // Was section initialised by an OC0?
269  };
270 
272  uint32_t numNibbles; // Number of nibbles in this histogram
273  bool bIsComplete; // Is this histogram complete (i.e. no missing nibbles)
274  };
275 
276  struct ET_SUM_SECTION {
279  };
280 
284  };
285 
286  struct LHC_SECTION {
289  };
290 
291  struct LUMI_SECTION {
295 
299  };
300 
301  struct DIP_STRUCT_BASE {
303  uint32_t timestamp;
305  uint32_t runNumber;
306  uint32_t sectionNumber;
307  };
308 
310  bool VdmMode; //True when a scan at one of the IPs is imminent, false otherwise
311  int IP;
312  bool RecordDataFlag; // True while data for one of the scan points at one of the IPs is being taken, false otherwise
313  double BeamSeparation; //separation in sigma for the scan point
314  bool isXaxis; //true if scanning xaxis, otherwise yaxis is being scanned
315  int Beam;
316  double StepProgress;
317  };
318 
319  struct BRAN_DATA: public DIP_STRUCT_BASE {
321  int AcqMode;
323  };
324 
325  struct BRAN_BX_DATA: public DIP_STRUCT_BASE {
326  double bunchByBunchLuminosity[3564];
327  int AcqMode;
328  };
329 
331  int beamConfig[3564];
332  };
333 
335  uint32_t FillNumber;
336  };
337 
338 
340  uint32_t numHLXs;
341  uint32_t startOrbit;
342  uint32_t numOrbits;
343  uint32_t numBunches;
344  float instantLumi;
346  };
347 
349  float lumiHisto[3564];
350  uint32_t numBunches;
351  };
352 
354  char status[64];
355  };
356 
358  char state[64];
359  uint32_t deadtime;
362 
363  };
364 
366  char beamMode[64];
367  };
368 
370  float singleBeamEnergy; //GeV
371  };
372 
374  double beamIntensity; //total num protons in beam summed over all bxs
377  };
378 
380  double bestLifetime;
382  float averageBunchIntensities[3564];
383  };
384 
386  double IntTime;
387  double CollRate;
388  double CollRateErr;
389  bool Preferred;
390  char Source[64];
391  };
392 
394  char mode[64];
395  };
396 
397  struct BEAM_INFO {
400  double bestLifeTime;
403  float averageBunchIntensities[3564];
404  int beamConfig[3564];
405  };
406 
407 
408  struct BRANA_INFO {
410  int acqMode;
412  double bunchByBunchLuminosity[3564];
413  };
414 
415  struct BRANP_INFO {
417  int acqMode;
422  double bunchByBunchLuminosity[3564];
423  };
424 
425  struct BRAN_INFO {
426 
429  };
430 
432 
433  char beamMode[128];
434 
435  float Energy;
436 
437  uint32_t FillNumber;
438 
439  BEAM_INFO Beam[2];
440 
445 
447 
448  };
449 
450 }//~namespace HCAL_HLX
451 
452 #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:15
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
LUMI_SECTION_SUB_HEADER hdr