DQM
SiStripCommissioningClients
src
FedCablingHistograms.cc
Go to the documentation of this file.
1
#include "
DQM/SiStripCommissioningClients/interface/FedCablingHistograms.h
"
2
#include "
CondFormats/SiStripObjects/interface/FedCablingAnalysis.h
"
3
#include "
DQM/SiStripCommissioningAnalysis/interface/FedCablingAlgorithm.h
"
4
#include "
DQM/SiStripCommissioningSummary/interface/SummaryGenerator.h
"
5
#include "
DataFormats/SiStripCommon/interface/SiStripConstants.h
"
6
#include "
DataFormats/SiStripCommon/interface/SiStripEnumsAndStrings.h
"
7
#include "
DQM/SiStripCommon/interface/ExtractTObject.h
"
8
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
9
#include <iostream>
10
#include <sstream>
11
#include <iomanip>
12
#include "TProfile.h"
13
14
using namespace
std
;
15
using namespace
sistrip
;
16
17
// -----------------------------------------------------------------------------
19
FedCablingHistograms::FedCablingHistograms
(
const
edm::ParameterSet
&
pset
,
DQMStore
* bei)
20
:
CommissioningHistograms
(
pset
.getParameter<
edm
::
ParameterSet
>(
"FedCablingParameters"
), bei,
sistrip
::
FED_CABLING
),
21
factory_(new
Factory
) {
22
LogTrace
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
23
<<
" Constructing object..."
;
24
}
25
26
// -----------------------------------------------------------------------------
28
FedCablingHistograms::~FedCablingHistograms
() {
29
LogTrace
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
30
<<
" Destructing object..."
;
31
}
32
33
// -----------------------------------------------------------------------------
35
void
FedCablingHistograms::histoAnalysis
(
bool
debug
) {
36
LogTrace
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
;
37
38
uint16_t
valid
= 0;
39
HistosMap::const_iterator iter;
40
Analyses::iterator ianal;
41
42
// Clear map holding analysis objects
43
for
(ianal =
data_
.begin(); ianal !=
data_
.end(); ianal++) {
44
if
(ianal->second) {
45
delete
ianal->second;
46
}
47
}
48
data_
.clear();
49
50
// Iterate through map containing histograms
51
for
(iter =
histos
().
begin
(); iter !=
histos
().end(); iter++) {
52
// Check vector of histos is not empty
53
if
(iter->second.empty()) {
54
edm::LogWarning
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
55
<<
" Zero histograms found!"
;
56
continue
;
57
}
58
59
// Retrieve pointers to histos
60
std::vector<TH1*> profs;
61
Histos::const_iterator ihis = iter->second.begin();
62
for
(; ihis != iter->second.end(); ihis++) {
63
TProfile* prof =
ExtractTObject<TProfile>
().
extract
((*ihis)->me_);
64
if
(prof) {
65
profs.push_back(prof);
66
}
67
}
68
69
// Perform histo analysis
70
FedCablingAnalysis
*
anal
=
new
FedCablingAnalysis
(iter->first);
71
FedCablingAlgorithm
algo
(this->
pset
(), anal);
72
algo
.analysis(profs);
73
data_
[iter->first] =
anal
;
74
if
(
anal
->isValid()) {
75
valid
++;
76
}
77
}
78
79
if
(!
histos
().empty()) {
80
edm::LogVerbatim
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
81
<<
" Analyzed histograms for "
<<
histos
().size() <<
" FED channels, of which "
82
<<
valid
<<
" ("
<< 100 *
valid
/
histos
().size() <<
"%) are valid."
;
83
}
else
{
84
edm::LogWarning
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
85
<<
" No histograms to analyze!"
;
86
}
87
}
88
89
// -----------------------------------------------------------------------------
91
void
FedCablingHistograms::printAnalyses
() {
92
Analyses::iterator ianal =
data_
.begin();
93
Analyses::iterator janal =
data_
.end();
94
for
(; ianal != janal; ++ianal) {
95
if
(ianal->second) {
96
std::stringstream
ss
;
97
ianal->second->print(
ss
);
98
if
(ianal->second->isValid()) {
99
LogTrace
(
mlDqmClient_
) <<
ss
.str();
100
}
else
{
101
edm::LogWarning
(
mlDqmClient_
) <<
ss
.str();
102
}
103
}
104
}
105
}
106
107
// -----------------------------------------------------------------------------
109
void
FedCablingHistograms::createSummaryHisto
(
const
sistrip::Monitorable
&
histo
,
110
const
sistrip::Presentation
&
type
,
111
const
std::string
&
dir
,
112
const
sistrip::Granularity
& gran) {
113
LogTrace
(
mlDqmClient_
) <<
"[FedCablingHistograms::"
<< __func__ <<
"]"
;
114
115
// Check view
116
sistrip::View
view =
SiStripEnumsAndStrings::view
(
dir
);
117
if
(view ==
sistrip::UNKNOWN_VIEW
) {
118
return
;
119
}
120
121
// Analyze histograms if not done already
122
if
(
data_
.empty()) {
123
histoAnalysis
(
false
);
124
}
125
126
// Extract data to be histogrammed
127
uint32_t
xbins
=
factory_
->init(
histo
,
type
, view,
dir
, gran,
data_
);
128
129
// Create summary histogram (if it doesn't already exist)
130
TH1*
summary
=
histogram
(
histo
,
type
, view,
dir
,
xbins
);
131
132
// Fill histogram with data
133
factory_
->fill(*
summary
);
134
}
FedCablingAlgorithm
Histogram-based analysis for connection loop.
Definition:
FedCablingAlgorithm.h:16
sistrip::Granularity
Granularity
Definition:
ConstantsForGranularity.h:60
fw3dlego::xbins
const double xbins[]
Definition:
fw3dlego_xbins.cc:16
MessageLogger.h
sistrip::View
View
Definition:
ConstantsForView.h:26
CommissioningHistograms::pset
const edm::ParameterSet & pset() const
Definition:
CommissioningHistograms.h:163
edm
HLT enums.
Definition:
AlignableModifier.h:19
FedCablingHistograms::factory_
std::unique_ptr< Factory > factory_
Definition:
FedCablingHistograms.h:32
timingPdfMaker.histo
histo
Definition:
timingPdfMaker.py:279
ExtractTObject.h
FedCablingAlgorithm.h
ExtractTObject
Definition:
ExtractTObject.h:9
sistrip::mlDqmClient_
static const char mlDqmClient_[]
Definition:
ConstantsForLogger.h:19
validateGeometry_cfg.valid
valid
Definition:
validateGeometry_cfg.py:21
contentValuesCheck.ss
ss
Definition:
contentValuesCheck.py:33
cmsdt::algo
algo
Definition:
constants.h:164
sistrip::Monitorable
Monitorable
Definition:
ConstantsForMonitorable.h:200
debug
#define debug
Definition:
HDRShower.cc:19
sistrip::FED_CABLING
Definition:
ConstantsForRunType.h:81
dqm::legacy::DQMStore
Definition:
DQMStore.h:727
FedCablingHistograms.h
sistrip::Presentation
Presentation
Definition:
ConstantsForPresentation.h:28
FedCablingHistograms::histoAnalysis
void histoAnalysis(bool debug) override
Definition:
FedCablingHistograms.cc:35
CommissioningHistograms::histogram
TH1 * histogram(const sistrip::Monitorable &, const sistrip::Presentation &, const sistrip::View &, const std::string &directory, const uint32_t &xbins, const float &xlow=1. *sistrip::invalid_, const float &xhigh=1. *sistrip::invalid_)
Definition:
CommissioningHistograms.cc:656
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition:
MessageLogger.h:141
SiStripConstants.h
edm::ParameterSet
Definition:
ParameterSet.h:36
ParameterSet
Definition:
Functions.h:16
edmLumisInFiles.summary
summary
Definition:
edmLumisInFiles.py:39
SiStripEnumsAndStrings::view
static std::string view(const sistrip::View &)
Definition:
SiStripEnumsAndStrings.cc:5
edm::LogVerbatim
Definition:
MessageLogger.h:297
ExtractTObject::extract
static T * extract(MonitorElement *me)
Definition:
ExtractTObject.cc:21
CommissioningHistograms
Definition:
CommissioningHistograms.h:23
FedCablingHistograms::~FedCablingHistograms
~FedCablingHistograms() override
Definition:
FedCablingHistograms.cc:28
FedCablingHistograms::printAnalyses
void printAnalyses() override
Definition:
FedCablingHistograms.cc:91
sistrip::UNKNOWN_VIEW
Definition:
ConstantsForView.h:27
SummaryPlotFactory< CommissioningAnalysis * >
Definition:
CommissioningSummaryFactory.h:12
type
type
Definition:
HCALResponse.h:21
std
Definition:
JetResolutionObject.h:76
SiStripEnumsAndStrings.h
FedCablingHistograms::data_
Analyses data_
Definition:
FedCablingHistograms.h:30
CommissioningHistograms::histos
const HistosMap & histos() const
Definition:
CommissioningHistograms.h:161
SummaryGenerator.h
LogTrace
#define LogTrace(id)
Definition:
MessageLogger.h:671
sistrip
sistrip classes
Definition:
SiStripQualityHelpers.h:14
conversion_template_cfg.anal
anal
Definition:
conversion_template_cfg.py:16
FedCablingHistograms::createSummaryHisto
void createSummaryHisto(const sistrip::Monitorable &, const sistrip::Presentation &, const std::string &top_level_dir, const sistrip::Granularity &) override
Definition:
FedCablingHistograms.cc:109
begin
#define begin
Definition:
vmac.h:32
FedCablingHistograms::FedCablingHistograms
FedCablingHistograms(const edm::ParameterSet &pset, DQMStore *)
Definition:
FedCablingHistograms.cc:19
FedCablingAnalysis
Histogram-based analysis for connection loop.
Definition:
FedCablingAnalysis.h:16
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
DeadROC_duringRun.dir
dir
Definition:
DeadROC_duringRun.py:23
FedCablingAnalysis.h
Generated for CMSSW Reference Manual by
1.8.16