CMS 3D CMS Logo

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 
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  };
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.
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.
54 };
55 
57  std::vector<SummationStep> steps;
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:
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:47
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
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
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