File indexing completed on 2024-04-06 12:08:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef DQM_SiStripMonitorHardware_CMHistograms_HH
0016 #define DQM_SiStripMonitorHardware_CMHistograms_HH
0017
0018 #include <sstream>
0019
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021
0022 #include "DQM/SiStripCommon/interface/TkHistoMap.h"
0023
0024 #include "DQMServices/Core/interface/DQMStore.h"
0025
0026 #include "DQM/SiStripMonitorHardware/interface/HistogramBase.hh"
0027
0028 class CMHistograms : public HistogramBase {
0029 public:
0030 struct CMvalues {
0031 unsigned int ChannelID;
0032
0033
0034 std::pair<uint16_t, uint16_t> Medians;
0035
0036 std::pair<uint16_t, uint16_t> PreviousMedians;
0037 };
0038
0039 CMHistograms();
0040
0041 ~CMHistograms() override;
0042
0043
0044 void initialise(const edm::ParameterSet& iConfig, std::ostringstream* pDebugStream) override;
0045
0046 void fillHistograms(const std::vector<CMvalues>& aVec, float aTime, unsigned int aFedId);
0047
0048
0049 void bookTopLevelHistograms(DQMStore::IBooker&, const TkDetMap*);
0050
0051
0052 void bookFEDHistograms(DQMStore::IBooker&, unsigned int fedId);
0053
0054 void bookChannelsHistograms(DQMStore::IBooker&, unsigned int fedId);
0055
0056 void bookAllFEDHistograms(DQMStore::IBooker&);
0057
0058 bool tkHistoMapEnabled(unsigned int aIndex = 0) override;
0059
0060 TkHistoMap* tkHistoMapPointer(unsigned int aIndex = 0) override;
0061
0062 protected:
0063 private:
0064
0065 std::vector<bool> histosBooked_;
0066
0067 bool doFed_[500];
0068
0069 HistogramConfig tkMapConfig_;
0070 std::unique_ptr<TkHistoMap> tkmapCM_[4];
0071
0072 HistogramConfig medianAPV1vsAPV0_;
0073 HistogramConfig medianAPV0minusAPV1_;
0074
0075 HistogramConfig meanCMPerFedvsFedId_;
0076 HistogramConfig meanCMPerFedvsTime_;
0077
0078
0079 HistogramConfig variationsPerFedvsFedId_;
0080 HistogramConfig variationsPerFedvsTime_;
0081
0082 HistogramConfig medianAPV1vsAPV0perFED_;
0083 HistogramConfig medianAPV0minusAPV1perFED_;
0084 HistogramConfig medianperChannel_;
0085 HistogramConfig medianAPV0minusAPV1perChannel_;
0086
0087 std::map<unsigned int, MonitorElement*> medianAPV1vsAPV0perFEDMap_;
0088 std::map<unsigned int, MonitorElement*> medianAPV0minusAPV1perFEDMap_;
0089 std::map<unsigned int, std::vector<MonitorElement*> > medianperChannelMap_;
0090 std::map<unsigned int, std::vector<MonitorElement*> > medianAPV0minusAPV1perChannelMap_;
0091
0092 };
0093
0094 #endif