Main Page
Namespaces
Classes
Package Documentation
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
{
NO_TYPE
= 0,
26
GROUPBY
= 1,
27
EXTEND_X
= 2,
28
EXTEND_Y
= 3,
29
COUNT
= 4,
30
REDUCE
= 5,
31
SAVE
= 6,
32
USE_X
= 8,
33
USE_Y
= 9,
34
USE_Z
= 10,
35
PROFILE
= 11
36
};
37
Type
type
=
NO_TYPE
;
38
// STAGE1 is DQM step1, STAGE2 step2. STAGE1_2 is somewhere in between, it runs
39
// in the analyze()-method (step1) but does a sort of harvesting (per-event).
40
// STAGE1_2 is for ndigis-like counters.
41
// FIRST is the first group-by, which is special.
42
enum
Stage
{
NO_STAGE
,
FIRST
,
STAGE1
,
STAGE2
};
43
Stage
stage
=
NO_STAGE
;
44
45
int
nbins
{-1};
46
int
xmin
{0};
47
int
xmax
{0};
48
49
std::vector<GeometryInterface::Column>
columns
;
50
51
// more parameters. Not very elegant but good enough for step2.
52
std::string
arg
;
53
};
54
55
struct
SummationSpecification
{
56
std::vector<SummationStep>
steps
;
57
SummationSpecification
() {};
58
SummationSpecification
(
edm::ParameterSet
const
&,
GeometryInterface
&);
59
60
template
<
class
stream,
class
GI>
61
void
dump
(stream&
out
, GI& gi) {
62
for
(
auto
&
s
: steps) {
63
out <<
"Step: type "
<<
s
.type <<
" stage "
<<
s
.stage <<
" col "
;
64
for
(
auto
c
:
s
.columns) out << gi.pretty(
c
) <<
" "
;
65
out <<
" arg "
<<
s
.arg <<
"\n"
;
66
}
67
}
68
private
:
69
GeometryInterface::Column
parse_columns(
std::string
name
,
GeometryInterface
&);
70
};
71
72
#endif
SummationStep::xmax
int xmax
Definition:
SummationSpecification.h:47
type
type
Definition:
HCALResponse.h:21
SummationSpecification::SummationSpecification
SummationSpecification()
Definition:
SummationSpecification.h:57
SummationStep::arg
std::string arg
Definition:
SummationSpecification.h:52
SummationStep::stage
Stage stage
Definition:
SummationSpecification.h:43
SummationStep::STAGE2
Definition:
SummationSpecification.h:42
SummationSpecification::dump
void dump(stream &out, GI &gi)
Definition:
SummationSpecification.h:61
SummationStep::columns
std::vector< GeometryInterface::Column > columns
Definition:
SummationSpecification.h:49
SummationStep::nbins
int nbins
Definition:
SummationSpecification.h:45
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
alignCSCRings.s
s
Definition:
alignCSCRings.py:91
EnergyCorrector.c
c
Definition:
EnergyCorrector.py:43
SummationSpecification
Definition:
SummationSpecification.h:55
SummationStep::USE_X
Definition:
SummationSpecification.h:32
SummationStep::STAGE1
Definition:
SummationSpecification.h:42
SummationSpecification::steps
std::vector< SummationStep > steps
Definition:
SummationSpecification.h:56
SummationStep::NO_STAGE
Definition:
SummationSpecification.h:42
SummationStep::xmin
int xmin
Definition:
SummationSpecification.h:46
GeometryInterface
Definition:
GeometryInterface.h:24
GeometryInterface.h
SummationStep::Type
Type
Definition:
SummationSpecification.h:25
SummationStep::REDUCE
Definition:
SummationSpecification.h:30
SummationStep::EXTEND_X
Definition:
SummationSpecification.h:27
SummationStep::Stage
Stage
Definition:
SummationSpecification.h:42
SummationStep::SAVE
Definition:
SummationSpecification.h:31
SummationStep::FIRST
Definition:
SummationSpecification.h:42
SummationStep::USE_Z
Definition:
SummationSpecification.h:34
SummationStep::PROFILE
Definition:
SummationSpecification.h:35
SummationStep::USE_Y
Definition:
SummationSpecification.h:33
MillePedeFileConverter_cfg.out
out
Definition:
MillePedeFileConverter_cfg.py:31
GeometryInterface::Column
ID Column
Definition:
GeometryInterface.h:30
SummationStep::EXTEND_Y
Definition:
SummationSpecification.h:28
SummationStep
Definition:
SummationSpecification.h:20
SummationStep::COUNT
Definition:
SummationSpecification.h:29
edm::ParameterSet
Definition:
ParameterSet.h:36
SummationStep::GROUPBY
Definition:
SummationSpecification.h:26
dataset.name
name
Definition:
dataset.py:45
SummationStep::NO_TYPE
Definition:
SummationSpecification.h:25
Generated for CMSSW Reference Manual by
1.8.11