Filler for TEfficiency graphs.
More...
#include <HistogramFillerEfficiency.h>
|
| template<class H, typename W, typename C, typename ... Ms> |
| unsigned | fill (W weight, C cut, const Ms &... m) const |
| | Fill histogram from IMonitoredVariable.
|
| template<class H> |
| H * | histogram () const |
Filler for TEfficiency graphs.
Definition at line 17 of file HistogramFillerEfficiency.h.
◆ HistogramFillerEfficiency()
Definition at line 19 of file HistogramFillerEfficiency.h.
HistogramFiller(const HistogramDef &histDef, std::shared_ptr< IHistogramProvider > histogramProvider)
Default constructor.
◆ fill() [1/2]
template<class
H, typename W, typename
C, typename ... Ms>
| unsigned Monitored::HistogramFiller::fill |
( |
W | weight, |
|
|
C | cut, |
|
|
const Ms &... | m ) const |
|
inlineprotectedinherited |
Fill histogram from IMonitoredVariable.
Supports arbitrary dimensions and double/string representation.
- Template Parameters
-
| H | histogram type (TH1, TH2, ...) |
- Parameters
-
Definition at line 168 of file HistogramFiller.h.
168 {
170
172 for (;
i < std::max({
m.size()...}); ++
i ) {
175 }
176 }
178 }
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
void doFill(H *hist, W weight, size_t i, const M &m1, const Ms &... m)
Perform (arbitrary dimension) histogram fill with weight.
◆ fill() [2/2]
Method that actually fills the ROOT object.
- Returns
- number of fills performed
Implements Monitored::HistogramFiller.
Definition at line 22 of file HistogramFillerEfficiency.h.
22 {
23
24 if (
ATH_UNLIKELY( vars[0] ==
nullptr or vars[1] ==
nullptr ) )
return 0;
25
26 if (vars.cut) {
27 const size_t maskSize = vars.cut->size();
28
29 if (maskSize == 0 || (maskSize == 1 && !vars.cut->get(0))) { return 0; }
30 if (
ATH_UNLIKELY(maskSize > 1 && maskSize != vars[0]->size())) {
32 log << MSG::ERROR <<
"CutMask does not match the size of plotted variable: "
34 }
35 }
36
38 const TH1* efftot =
efficiency->GetTotalHistogram();
39
40 const unsigned nMonVar = vars.size();
41 const size_t var0Size = vars[0]->size();
42 if ( nMonVar==2 ) {
43 for (
unsigned i = 0;
i < var0Size; ++
i) {
44 if (vars.cut==nullptr || vars.cut->get(i)) {
47 }
48 }
49 return var0Size;
50 } else if ( nMonVar==3 ) {
51 for (
unsigned i = 0;
i < var0Size; ++
i) {
52 if (vars.cut==nullptr || vars.cut->get(i)) {
56 }
57 }
58 return var0Size;
59 } else if ( nMonVar==4 ) {
60 for (
unsigned i = 0;
i < var0Size; ++
i) {
61 if (vars.cut==nullptr || vars.cut->get(i)) {
66 }
67 }
68 return var0Size;
69 } else {
70 return 0;
71 }
72 return var0Size;
73 }
void efficiency(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
IMessageSvc * getMessageSvc(bool quiet=false)
double getFillValue(const H *hist, const IMonitoredVariable *var, size_t i)
Return value for filling i'th entry of var into AXIS for hist.
◆ getLock()
| const std::unique_lock< std::mutex > Monitored::HistogramFiller::getLock |
( |
| ) |
const |
|
inlineinherited |
◆ histogram()
| H * Monitored::HistogramFiller::histogram |
( |
| ) |
const |
|
inlineprotectedinherited |
Definition at line 153 of file HistogramFiller.h.
153 {
155 }
std::shared_ptr< IHistogramProvider > m_histogramProvider
◆ histogramCutMaskName()
| const std::string & Monitored::HistogramFiller::histogramCutMaskName |
( |
| ) |
const |
|
inlineinherited |
Definition at line 143 of file HistogramFiller.h.
143 {
145 }
std::shared_ptr< HistogramDef > m_histDef
◆ histogramVariablesNames()
| const std::vector< std::string > & Monitored::HistogramFiller::histogramVariablesNames |
( |
| ) |
const |
|
inlineinherited |
◆ histogramWeightName()
| const std::string & Monitored::HistogramFiller::histogramWeightName |
( |
| ) |
const |
|
inlineinherited |
◆ touch()
| void Monitored::HistogramFiller::touch |
( |
| ) |
const |
|
inlineinherited |
◆ m_histDef
| std::shared_ptr<HistogramDef> Monitored::HistogramFiller::m_histDef |
|
protectedinherited |
◆ m_histogramProvider
◆ m_lock
| std::mutex Monitored::HistogramFiller::m_lock |
|
mutableprotectedinherited |
The documentation for this class was generated from the following file: