File indexing completed on 2024-04-06 12:07:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef _HLXMONITOR_H_
0021 #define _HLXMONITOR_H_
0022
0023
0024 #include <cstdlib>
0025 #include <iomanip>
0026 #include <iostream>
0027 #include <memory>
0028 #include <string>
0029 #include <sys/time.h>
0030
0031
0032 #include "FWCore/Framework/interface/Frameworkfwd.h" // Not included in example
0033
0034 #include "FWCore/Framework/interface/Event.h" // Not included in example
0035 #include "FWCore/Framework/interface/MakerMacros.h" // Not included in example
0036
0037 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0038
0039 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0040 #include "DQMServices/Core/interface/DQMStore.h"
0041
0042 #include "FWCore/ServiceRegistry/interface/Service.h"
0043
0044 #include "RecoLuminosity/TCPReceiver/interface/LumiStructures.hh"
0045 #include "RecoLuminosity/TCPReceiver/interface/TCPReceiver.h"
0046
0047 class HLXMonitor : public DQMEDAnalyzer {
0048 public:
0049 typedef HCAL_HLX::LUMI_SECTION LUMI_SECTION;
0050 typedef HCAL_HLX::TCPReceiver TCPReceiver;
0051 explicit HLXMonitor(const edm::ParameterSet &);
0052 ~HLXMonitor() override;
0053
0054 private:
0055 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0056 void analyze(const edm::Event &, const edm::EventSetup &) override;
0057
0058 void connectHLXTCP();
0059
0060 void SetupHists(DQMStore::IBooker &);
0061 void SetupEventInfo(DQMStore::IBooker &);
0062
0063 void FillHistograms(const LUMI_SECTION &);
0064 void FillHistoHFCompare(const LUMI_SECTION &);
0065 void FillReportSummary();
0066 void FillEventInfo(const LUMI_SECTION &, const edm::Event &e);
0067
0068 void EndRun();
0069
0070 double getUTCtime(timeval *a, timeval *b = nullptr);
0071
0072
0073 TCPReceiver HLXTCP;
0074
0075 MonitorElement *Set1Below[36];
0076 MonitorElement *Set1Between[36];
0077 MonitorElement *Set1Above[36];
0078 MonitorElement *Set2Below[36];
0079 MonitorElement *Set2Between[36];
0080 MonitorElement *Set2Above[36];
0081 MonitorElement *ETSum[36];
0082
0083 MonitorElement *HFCompareEtSum;
0084 MonitorElement *HFCompareOccBelowSet1;
0085 MonitorElement *HFCompareOccBetweenSet1;
0086 MonitorElement *HFCompareOccAboveSet1;
0087 MonitorElement *HFCompareOccBelowSet2;
0088 MonitorElement *HFCompareOccBetweenSet2;
0089 MonitorElement *HFCompareOccAboveSet2;
0090
0091 MonitorElement *AvgEtSum;
0092 MonitorElement *AvgOccBelowSet1;
0093 MonitorElement *AvgOccBetweenSet1;
0094 MonitorElement *AvgOccAboveSet1;
0095 MonitorElement *AvgOccBelowSet2;
0096 MonitorElement *AvgOccBetweenSet2;
0097 MonitorElement *AvgOccAboveSet2;
0098
0099
0100 MonitorElement *LumiAvgEtSum;
0101 MonitorElement *LumiAvgOccSet1;
0102 MonitorElement *LumiAvgOccSet2;
0103 MonitorElement *LumiInstantEtSum;
0104 MonitorElement *LumiInstantOccSet1;
0105 MonitorElement *LumiInstantOccSet2;
0106 MonitorElement *LumiIntegratedEtSum;
0107 MonitorElement *LumiIntegratedOccSet1;
0108 MonitorElement *LumiIntegratedOccSet2;
0109
0110
0111 MonitorElement *SumAllOccSet1;
0112 MonitorElement *SumAllOccSet2;
0113 MonitorElement *MissingDQMDataCheck;
0114
0115
0116 MonitorElement *MaxInstLumiBX1;
0117 MonitorElement *MaxInstLumiBX2;
0118 MonitorElement *MaxInstLumiBX3;
0119 MonitorElement *MaxInstLumiBX4;
0120
0121 MonitorElement *MaxInstLumiBXNum1;
0122 MonitorElement *MaxInstLumiBXNum2;
0123 MonitorElement *MaxInstLumiBXNum3;
0124 MonitorElement *MaxInstLumiBXNum4;
0125
0126
0127 MonitorElement *HistAvgEtSumHFP;
0128 MonitorElement *HistAvgEtSumHFM;
0129 MonitorElement *HistAvgOccBelowSet1HFP;
0130 MonitorElement *HistAvgOccBelowSet1HFM;
0131 MonitorElement *HistAvgOccBetweenSet1HFP;
0132 MonitorElement *HistAvgOccBetweenSet1HFM;
0133 MonitorElement *HistAvgOccAboveSet1HFP;
0134 MonitorElement *HistAvgOccAboveSet1HFM;
0135 MonitorElement *HistAvgOccBelowSet2HFP;
0136 MonitorElement *HistAvgOccBelowSet2HFM;
0137 MonitorElement *HistAvgOccBetweenSet2HFP;
0138 MonitorElement *HistAvgOccBetweenSet2HFM;
0139 MonitorElement *HistAvgOccAboveSet2HFP;
0140 MonitorElement *HistAvgOccAboveSet2HFM;
0141 MonitorElement *BXvsTimeAvgEtSumHFP;
0142 MonitorElement *BXvsTimeAvgEtSumHFM;
0143
0144 MonitorElement *HistAvgLumiEtSum;
0145 MonitorElement *HistAvgLumiOccSet1;
0146 MonitorElement *HistAvgLumiOccSet2;
0147 MonitorElement *HistInstantLumiEtSum;
0148 MonitorElement *HistInstantLumiOccSet1;
0149 MonitorElement *HistInstantLumiOccSet2;
0150 MonitorElement *HistInstantLumiEtSumError;
0151 MonitorElement *HistInstantLumiOccSet1Error;
0152 MonitorElement *HistInstantLumiOccSet2Error;
0153 MonitorElement *HistIntegratedLumiEtSum;
0154 MonitorElement *HistIntegratedLumiOccSet1;
0155 MonitorElement *HistIntegratedLumiOccSet2;
0156
0157 MonitorElement *RecentInstantLumiEtSum;
0158 MonitorElement *RecentInstantLumiOccSet1;
0159 MonitorElement *RecentInstantLumiOccSet2;
0160 MonitorElement *RecentIntegratedLumiEtSum;
0161 MonitorElement *RecentIntegratedLumiOccSet1;
0162 MonitorElement *RecentIntegratedLumiOccSet2;
0163
0164
0165
0166
0167
0168
0169 MonitorElement *runId_;
0170 MonitorElement *runStartTimeStamp_;
0171 MonitorElement *eventId_;
0172 MonitorElement *lumisecId_;
0173 MonitorElement *eventTimeStamp_;
0174
0175
0176
0177
0178 MonitorElement *nUpdates_;
0179 MonitorElement *processId_;
0180 MonitorElement *processStartTimeStamp_;
0181 MonitorElement *processTimeStamp_;
0182 MonitorElement *processLatency_;
0183 MonitorElement *processEventRate_;
0184
0185 MonitorElement *processEvents_;
0186 MonitorElement *hostName_;
0187 MonitorElement *processName_;
0188 MonitorElement *workingDir_;
0189 MonitorElement *cmsswVer_;
0190 MonitorElement *dqmPatch_;
0191 MonitorElement *errSummary_;
0192 MonitorElement *errSummaryEtaPhi_;
0193 MonitorElement *errSummarySegment_[10];
0194
0195
0196 MonitorElement *reportSummary_;
0197 MonitorElement *reportSummaryMap_;
0198
0199 unsigned int numActiveTowersSet1;
0200 unsigned int numActiveTowersSet2;
0201
0202 unsigned int counter;
0203 unsigned char *rData;
0204 short int SectionComplete;
0205
0206
0207 int listenPort;
0208 double XMIN, XMAX;
0209 unsigned int NBINS;
0210 bool Accumulate;
0211 std::string OutputFilePrefix;
0212 std::string OutputDir;
0213 std::string Style;
0214 int SavePeriod;
0215 unsigned int NUM_HLX;
0216 unsigned int NUM_BUNCHES;
0217 unsigned int MAX_LS;
0218 unsigned int AquireMode;
0219 unsigned int TriggerBX;
0220 unsigned int MinLSBeforeSave;
0221
0222 std::string monitorName_;
0223 int prescaleEvt_;
0224
0225 unsigned int reconnTime;
0226 std::string DistribIP1;
0227 std::string DistribIP2;
0228
0229 unsigned int set1BelowIndex;
0230 unsigned int set1BetweenIndex;
0231 unsigned int set1AboveIndex;
0232 unsigned int set2BelowIndex;
0233 unsigned int set2BetweenIndex;
0234 unsigned int set2AboveIndex;
0235
0236 std::string eventInfoFolderHLX_;
0237 std::string eventInfoFolder_;
0238 std::string subSystemName_;
0239
0240 unsigned int runNumLength;
0241 unsigned int secNumLength;
0242
0243 std::string OccXAxisTitle;
0244 std::string OccYAxisTitle;
0245 std::string EtXAxisTitle;
0246 std::string EtYAxisTitle;
0247
0248 HCAL_HLX::LUMI_SECTION lumiSection;
0249
0250 bool currentRunEnded_;
0251 unsigned int runNumber_;
0252 unsigned int expectedNibbles_;
0253 unsigned int totalNibbles_[36];
0254
0255 unsigned int HLXHFMap[36];
0256
0257 unsigned int previousSection;
0258 unsigned int lumiSectionCount;
0259 int lsBinOld;
0260 double sectionInstantSumEt;
0261 double sectionInstantErrSumEt;
0262 double sectionInstantSumOcc1;
0263 double sectionInstantErrSumOcc1;
0264 double sectionInstantSumOcc2;
0265 double sectionInstantErrSumOcc2;
0266 double sectionInstantNorm;
0267
0268
0269 timeval currentTime_, lastUpdateTime_, lastAvgTime_;
0270 timeval runStartTime_;
0271 float evtRateWindow_;
0272 int evtRateCount_;
0273 int pEvent_;
0274
0275
0276 double num4NibblePerLS_;
0277 };
0278
0279 #endif