DQM
SiPixelPhase1Common
interface
SummationSpecification.h
Go to the documentation of this file.
1
#ifndef SiPixel_SummationSpecification
2
#define SiPixel_SummationSpecification
3
// -*- C++ -*-
4
//
5
// Package: SiPixelPhase1Common
6
// Class: SummationSpecification
7
//
8
// This class represents a sequence of steps that produce histograms by summing
9
// up other histograms. This can be considered a domain-specific language for
10
// DQM. This class has no intelligence, it just manages the "program". It is
11
// not encapsulated, the structure is exposed.
12
//
13
// Original Author: Marcel Schneider
14
15
#include <vector>
16
#include <string>
17
18
#include "
DQM/SiPixelPhase1Common/interface/GeometryInterface.h
"
19
20
struct
SummationStep
{
21
// For step1, all the necessary information should be in the type and columns
22
// to allow fill() to exectute it very quickly.
23
// For step2 stuff (after the first SAVE), we can also keep strings, since
24
// step2 will only be executed once by an executor.
25
enum
Type
{
26
NO_TYPE
= 0,
27
GROUPBY
= 1,
28
EXTEND_X
= 2,
29
EXTEND_Y
= 3,
30
COUNT
= 4,
31
REDUCE
= 5,
32
SAVE
= 6,
33
USE_X
= 8,
34
USE_Y
= 9,
35
USE_Z
= 10,
36
PROFILE
= 11
37
};
38
Type
type
=
NO_TYPE
;
39
// STAGE1 is DQM step1, STAGE2 step2. STAGE1_2 is somewhere in between, it runs
40
// in the analyze()-method (step1) but does a sort of harvesting (per-event).
41
// STAGE1_2 is for ndigis-like counters.
42
// FIRST is the first group-by, which is special.
43
enum
Stage
{
NO_STAGE
,
FIRST
,
STAGE1
,
STAGE2
};
44
Stage
stage
=
NO_STAGE
;
45
46
int
nbins
{-1};
47
int
xmin
{0};
48
int
xmax
{0};
49
50
std::vector<GeometryInterface::Column>
columns
;
51
52
// more parameters. Not very elegant but good enough for step2.
53
std::string
arg
;
54
};
55
56
struct
SummationSpecification
{
57
std::vector<SummationStep>
steps
;
58
SummationSpecification
(){};
59
SummationSpecification
(
edm::ParameterSet
const
&,
GeometryInterface
&);
60
61
template
<
class
stream,
class
GI>
62
void
dump
(
stream
&
out
, GI& gi) {
63
for
(
auto
&
s
:
steps
) {
64
out
<<
"Step: type "
<<
s
.type <<
" stage "
<<
s
.stage <<
" col "
;
65
for
(
auto
c
:
s
.columns)
66
out
<< gi.pretty(
c
) <<
" "
;
67
out
<<
" arg "
<<
s
.arg <<
"\n"
;
68
}
69
}
70
71
private
:
72
GeometryInterface::Column
parse_columns
(
std::string
name
,
GeometryInterface
&);
73
};
74
75
#endif
SummationSpecification::dump
void dump(stream &out, GI &gi)
Definition:
SummationSpecification.h:62
SummationStep::xmin
int xmin
Definition:
SummationSpecification.h:47
SummationSpecification::steps
std::vector< SummationStep > steps
Definition:
SummationSpecification.h:57
SummationStep::STAGE2
Definition:
SummationSpecification.h:43
cms::cuda::stream
cudaStream_t stream
Definition:
HistoContainer.h:57
SummationSpecification::SummationSpecification
SummationSpecification()
Definition:
SummationSpecification.h:58
SummationStep::USE_X
Definition:
SummationSpecification.h:33
SummationSpecification::parse_columns
GeometryInterface::Column parse_columns(std::string name, GeometryInterface &)
Definition:
SummationSpecification.cc:15
GeometryInterface.h
SummationStep::STAGE1
Definition:
SummationSpecification.h:43
alignCSCRings.s
s
Definition:
alignCSCRings.py:92
SummationStep::NO_STAGE
Definition:
SummationSpecification.h:43
SummationStep::REDUCE
Definition:
SummationSpecification.h:31
SummationStep::EXTEND_X
Definition:
SummationSpecification.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
SummationStep::SAVE
Definition:
SummationSpecification.h:32
edm::ParameterSet
Definition:
ParameterSet.h:36
SummationStep::FIRST
Definition:
SummationSpecification.h:43
SummationStep::USE_Z
Definition:
SummationSpecification.h:35
SummationStep::USE_Y
Definition:
SummationSpecification.h:34
HltBtagPostValidation_cff.c
c
Definition:
HltBtagPostValidation_cff.py:31
GeometryInterface::Column
ID Column
Definition:
GeometryInterface.h:40
SummationStep::PROFILE
Definition:
SummationSpecification.h:36
SummationStep::EXTEND_Y
Definition:
SummationSpecification.h:29
SummationStep::xmax
int xmax
Definition:
SummationSpecification.h:48
SummationStep::Stage
Stage
Definition:
SummationSpecification.h:43
type
type
Definition:
HCALResponse.h:21
SummationStep::Type
Type
Definition:
SummationSpecification.h:25
SummationStep::columns
std::vector< GeometryInterface::Column > columns
Definition:
SummationSpecification.h:50
SummationStep::stage
Stage stage
Definition:
SummationSpecification.h:44
SummationSpecification
Definition:
SummationSpecification.h:56
SummationStep
Definition:
SummationSpecification.h:20
SummationStep::COUNT
Definition:
SummationSpecification.h:30
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
SummationStep::nbins
int nbins
Definition:
SummationSpecification.h:46
MillePedeFileConverter_cfg.out
out
Definition:
MillePedeFileConverter_cfg.py:31
GeometryInterface
Definition:
GeometryInterface.h:34
SummationStep::arg
std::string arg
Definition:
SummationSpecification.h:53
SummationStep::GROUPBY
Definition:
SummationSpecification.h:27
SummationStep::NO_TYPE
Definition:
SummationSpecification.h:26
Generated for CMSSW Reference Manual by
1.8.16