ATLAS Offline Software
AFPSiLayerSummaryManager.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef AFPSILAYERSUMMARYMANAGER_H
6 #define AFPSILAYERSUMMARYMANAGER_H
7 
10 
11 #include <xAODForward/AFPSiHit.h>
12 
13 #include<vector>
14 
15 class AFPHitsMonitorTool;
19 class IAFPSiLayerMonitor;
20 
23 {
24 public:
27 
29  void book () const;
30 
32  void fillHits (const std::string& binName, const xAOD::AFPSiHit& hit) const;
33 
35  void fillEventEnd (const std::string& binName, const IAFPSiLayerMonitor* layer) const;
36 
37 
51  template<typename T>
53  AFPHitsMonitorTool* parentTool,
55  const std::string& name,
56  const std::string& title,
57  T (xAOD::AFPSiHit::*value)() const);
58 
72  template<typename T>
74  AFPHitsMonitorTool* parentTool,
76  const std::string& name,
77  const std::string& title,
78  T (IAFPSiLayerMonitor::*value)() const);
79 
80 private:
82  std::vector<AFPSiLayerSummaryProfileBase*> m_bases;
83 
85  std::vector<IAFPSiLayerSummaryHit*> m_hits;
86 
88  std::vector<IAFPSiLayerSummaryEventEnd*> m_eventEnds;
89 };
90 
91 template<typename T>
94  AFPHitsMonitorTool* parentTool,
96  const std::string& name,
97  const std::string& title,
98  T (xAOD::AFPSiHit::*value)() const)
99 {
101  new AFPSiLayerSummaryProfileHit<T>(parentTool, monGrp, name, title, value);
102  m_bases.push_back(summary);
103  m_hits.push_back(summary);
104 
105  return summary;
106 }
107 
108 // prevent creation of separete definitions for the most common templates
109 extern template AFPSiLayerSummaryProfileBase*
110 AFPSiLayerSummaryManager::createSummaryHits<int>(
111  AFPHitsMonitorTool* parentTool,
112  const ManagedMonitorToolBase::MonGroup& monGrp,
113  const std::string& name,
114  const std::string& title,
115  int (xAOD::AFPSiHit::*value)() const);
116 extern template AFPSiLayerSummaryProfileBase*
117 AFPSiLayerSummaryManager::createSummaryHits<double>(
118  AFPHitsMonitorTool* parentTool,
119  const ManagedMonitorToolBase::MonGroup& monGrp,
120  const std::string& name,
121  const std::string& title,
122  double (xAOD::AFPSiHit::*value)() const);
123 extern template AFPSiLayerSummaryProfileBase*
124 AFPSiLayerSummaryManager::createSummaryHits<float>(
125  AFPHitsMonitorTool* parentTool,
126  const ManagedMonitorToolBase::MonGroup& monGrp,
127  const std::string& name,
128  const std::string& title,
129  float (xAOD::AFPSiHit::*value)() const);
130 
131 template<typename T>
134  AFPHitsMonitorTool* parentTool,
135  const ManagedMonitorToolBase::MonGroup& monGrp,
136  const std::string& name,
137  const std::string& title,
138  T (IAFPSiLayerMonitor::*value)() const)
139 {
142  parentTool, monGrp, name, title, value);
143  m_bases.push_back(summary);
144  m_eventEnds.push_back(summary);
145 
146  return summary;
147 }
148 
149 // prevent creation of separete definitions for the most common templates
150 extern template AFPSiLayerSummaryProfileBase*
151 AFPSiLayerSummaryManager::createSummaryEventEnd<int>(
152  AFPHitsMonitorTool* parentTool,
153  const ManagedMonitorToolBase::MonGroup& monGrp,
154  const std::string& name,
155  const std::string& title,
156  int (IAFPSiLayerMonitor::*value)() const);
157 extern template AFPSiLayerSummaryProfileBase*
158 AFPSiLayerSummaryManager::createSummaryEventEnd<float>(
159  AFPHitsMonitorTool* parentTool,
160  const ManagedMonitorToolBase::MonGroup& monGrp,
161  const std::string& name,
162  const std::string& title,
163  float (IAFPSiLayerMonitor::*value)() const);
164 extern template AFPSiLayerSummaryProfileBase*
165 AFPSiLayerSummaryManager::createSummaryEventEnd<double>(
166  AFPHitsMonitorTool* parentTool,
167  const ManagedMonitorToolBase::MonGroup& monGrp,
168  const std::string& name,
169  const std::string& title,
170  double (IAFPSiLayerMonitor::*value)() const);
171 
172 #endif
AFPSiLayerSummaryProfileBase
Base class for summary distributions (showing mean value for each plane)
Definition: AFPSiLayerSummaryProfileBase.h:20
AFPSiLayerSummaryManager::fillHits
void fillHits(const std::string &binName, const xAOD::AFPSiHit &hit) const
Executes IAFPSiLayerSummaryHit::fillHits() on all objects in AFPSiLayerSummaryManager::m_hits.
Definition: AFPSiLayerSummaryManager.cxx:21
AFPSiLayerSummaryManager::~AFPSiLayerSummaryManager
~AFPSiLayerSummaryManager()
Deletes all summary objects, i.e. all in AFPSiLayerSummaryManager::m_bases.
Definition: AFPSiLayerSummaryManager.cxx:9
AFPHitsMonitorTool
Main monitoring class for silicon detectors.
Definition: AFPHitsMonitorTool.h:32
xAOD::AFPSiHit_v2
Class representing a hit in silicon detector.
Definition: AFPSiHit_v2.h:30
AFPSiLayerSummaryManager::m_eventEnds
std::vector< IAFPSiLayerSummaryEventEnd * > m_eventEnds
Vector of summary objects which should be filled once per event for every plane.
Definition: AFPSiLayerSummaryManager.h:88
athena.value
value
Definition: athena.py:122
AFPSiLayerSummaryManager
Class managing (booking and filling) summary distributions.
Definition: AFPSiLayerSummaryManager.h:23
IAFPSiLayerSummaryHit
Class providing interface to summary object which can be filled for every hit.
Definition: IAFPSiLayerSummaryHit.h:15
AFPSiLayerSummaryManager::fillEventEnd
void fillEventEnd(const std::string &binName, const IAFPSiLayerMonitor *layer) const
Executes IAFPSiLayerSummaryHit::fillEventEnd() on all objects in AFPSiLayerSummaryManager::m_eventEnd...
Definition: AFPSiLayerSummaryManager.cxx:27
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
AFPSiLayerSummaryProfileEventEnd.h
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
IAFPSiLayerSummaryEventEnd
Class providing interface to summary objects which can be filled once per event.
Definition: IAFPSiLayerSummaryEventEnd.h:15
covarianceTool.title
title
Definition: covarianceTool.py:542
AFPSiLayerSummaryManager::m_hits
std::vector< IAFPSiLayerSummaryHit * > m_hits
Vector of summary objects which should be filled for every hit.
Definition: AFPSiLayerSummaryManager.h:85
AFPSiLayerSummaryManager::book
void book() const
Executes AFPSiLayerSummaryProfileBase::book() method on all objects in AFPSiLayerSummaryManager::m_ba...
Definition: AFPSiLayerSummaryManager.cxx:15
AFPSiHit.h
AFPSiLayerSummaryManager::createSummaryEventEnd
AFPSiLayerSummaryProfileBase * createSummaryEventEnd(AFPHitsMonitorTool *parentTool, const ManagedMonitorToolBase::MonGroup &monGrp, const std::string &name, const std::string &title, T(IAFPSiLayerMonitor::*value)() const)
Creates a new monitoring object of type AFPSiLayerSummaryProfileEventEnd adds to AFPSiLayerSummaryMan...
Definition: AFPSiLayerSummaryManager.h:133
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
AFPSiLayerSummaryProfileHit.h
AFPSiLayerSummaryManager::createSummaryHits
AFPSiLayerSummaryProfileBase * createSummaryHits(AFPHitsMonitorTool *parentTool, const ManagedMonitorToolBase::MonGroup &monGrp, const std::string &name, const std::string &title, T(xAOD::AFPSiHit::*value)() const)
Creates a new monitoring object of type AFPSiLayerSummaryProfileHit adds to AFPSiLayerSummaryManager:...
Definition: AFPSiLayerSummaryManager.h:93
AFPSiLayerSummaryProfileHit
Final class representing a summary distribution filled for every hit.
Definition: AFPSiLayerSummaryProfileHit.h:18
AFPSiLayerSummaryProfileEventEnd
Final class representing a summary distribution filled once per event.
Definition: AFPSiLayerSummaryProfileEventEnd.h:18
AFPSiLayerSummaryManager::m_bases
std::vector< AFPSiLayerSummaryProfileBase * > m_bases
Vector of all summary objects.
Definition: AFPSiLayerSummaryManager.h:82
IAFPSiLayerMonitor
Interface of a class monitoring one silicon layer.
Definition: IAFPSiLayerMonitor.h:23
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65