Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
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
std::vector<GeometryInterface::Column>
columns
;
46
47
// more parameters. Not very elegant but good enough for step2.
48
std::string
arg
;
49
};
50
51
struct
SummationSpecification
{
52
std::vector<SummationStep>
steps
;
53
SummationSpecification
() {};
54
SummationSpecification
(
edm::ParameterSet
const
&,
GeometryInterface
&);
55
56
template
<
class
stream,
class
GI>
57
void
dump
(stream&
out
, GI& gi) {
58
for
(
auto
&
s
:
steps
) {
59
out <<
"Step: type "
<<
s
.type <<
" stage "
<<
s
.stage <<
" col "
;
60
for
(
auto
c
:
s
.columns) out << gi.pretty(
c
) <<
" "
;
61
out <<
" arg "
<<
s
.arg <<
"\n"
;
62
}
63
}
64
private
:
65
GeometryInterface::Column
parse_columns
(
std::string
name
,
GeometryInterface
&);
66
};
67
68
#endif
type
type
Definition:
HCALResponse.h:21
SummationSpecification::SummationSpecification
SummationSpecification()
Definition:
SummationSpecification.h:53
SummationStep::arg
std::string arg
Definition:
SummationSpecification.h:48
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:57
SummationStep::columns
std::vector< GeometryInterface::Column > columns
Definition:
SummationSpecification.h:45
SummationSpecification
Definition:
SummationSpecification.h:51
SummationStep::USE_X
Definition:
SummationSpecification.h:32
SummationStep::STAGE1
Definition:
SummationSpecification.h:42
EnergyCorrector.c
tuple c
Definition:
EnergyCorrector.py:43
mergeVDriftHistosByStation.name
string name
Definition:
mergeVDriftHistosByStation.py:77
SummationSpecification::steps
std::vector< SummationStep > steps
Definition:
SummationSpecification.h:52
SummationStep::NO_STAGE
Definition:
SummationSpecification.h:42
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
SummationSpecification::parse_columns
GeometryInterface::Column parse_columns(std::string name, GeometryInterface &)
Definition:
SummationSpecification.cc:16
GeometryInterface
Definition:
GeometryInterface.h:27
GeometryInterface.h
SummationStep::Type
Type
Definition:
SummationSpecification.h:25
SummationStep::REDUCE
Definition:
SummationSpecification.h:30
SummationStep::EXTEND_X
Definition:
SummationSpecification.h:27
fileinputsource_cfi.out
tuple out
Definition:
fileinputsource_cfi.py:62
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
alignCSCRings.s
list s
Definition:
alignCSCRings.py:91
GeometryInterface::Column
ID Column
Definition:
GeometryInterface.h:33
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
SummationStep::NO_TYPE
Definition:
SummationSpecification.h:25
Generated for CMSSW Reference Manual by
1.8.5