ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
DataQuality
dqm_algorithms
src
AFP_ToFEfficiency.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
dqm_algorithms/AFP_ToFEfficiency.h
"
6
7
#include <
dqm_algorithms/tools/AlgorithmHelper.h
>
8
#include <dqm_core/AlgorithmManager.h>
9
#include "dqm_core/AlgorithmConfig.h"
10
#include <dqm_core/exceptions.h>
11
12
#include <TDirectory.h>
13
#include <TH1.h>
14
#include <TH2.h>
15
#include <TFile.h>
16
17
namespace
{
18
static
dqm_algorithms::AFP_ToFEfficiency
instance
;
19
}
20
21
dqm_algorithms::AFP_ToFEfficiency::AFP_ToFEfficiency
() {
22
dqm_core::AlgorithmManager::instance().registerAlgorithm(
"AFP_ToFEfficiency"
,
this
);
23
}
24
25
dqm_algorithms::AFP_ToFEfficiency::~AFP_ToFEfficiency
() {
26
}
27
28
dqm_algorithms::AFP_ToFEfficiency
*
29
dqm_algorithms::AFP_ToFEfficiency::clone
() {
30
return
new
AFP_ToFEfficiency
();
31
}
32
33
dqm_core::Result*
34
dqm_algorithms::AFP_ToFEfficiency::execute
(
const
std::string& name,
35
const
TObject&
object
,
36
const
dqm_core::AlgorithmConfig& config ) {
37
if
( !
object
.
IsA
()->InheritsFrom(
"TH2"
) ) {
38
throw
dqm_core::BadConfig( ERS_HERE, name,
"does not inherit from TH2"
);
39
}
40
41
auto
histogram
=
static_cast<
const
TH2D*
>
( &object );
42
43
auto
gthreshold =
static_cast<
uint32_t
>
(
dqm_algorithms::tools::GetFromMap
(
"NbadTrains"
, config.getGreenThresholds() ) );
44
auto
rthreshold =
static_cast<
uint32_t
>
(
dqm_algorithms::tools::GetFromMap
(
"NbadTrains"
, config.getRedThresholds() ) );
45
auto
eff_limit =
static_cast<
float
>
(
dqm_algorithms::tools::GetFirstFromMap
(
"eff_limit"
, config.getParameters() ) );
46
47
uint32_t each_tr_status[2] = {};
48
for
(uint32_t i = 1; i < 5; ++i)
49
{
50
float
current_eff =
histogram
->GetBinContent(
histogram
->GetBin(5,i));
51
if
(current_eff >= eff_limit)
52
each_tr_status[0]++;
53
else
54
each_tr_status[1]++;
55
}
56
57
auto
result =
new
dqm_core::Result();
58
59
// publish problematic bins
60
result->tags_[ (
"N Trains with efficiency less than "
+ (std::to_string(eff_limit)).substr(0,4)).c_str() ] = each_tr_status[1];
61
62
if
( each_tr_status[0]==0 && each_tr_status[1]==0 )
63
result->status_ = dqm_core::Result::Undefined;
64
else
if
( each_tr_status[0] == 4 )
65
result->status_ = dqm_core::Result::Green;
66
else
if
( each_tr_status[1] >= gthreshold && each_tr_status[1] < rthreshold )
67
result->status_ = dqm_core::Result::Yellow;
68
else
69
result->status_ = dqm_core::Result::Red;
70
71
return
result;
72
}
73
74
void
dqm_algorithms::AFP_ToFEfficiency::printDescriptionTo
( std::ostream& out ) {
75
out <<
"AFP_ToFEfficiency: Print out how many trains have efficiency less than limit\n"
76
<<
"Required Parameter: eff_limit: threshold percentage of efficiency"
<< std::endl;
77
}
AFP_ToFEfficiency.h
AlgorithmHelper.h
instance
std::map< std::string, double > instance
Definition
Run_To_Get_Tags.h:8
histogram
std::string histogram
Definition
chains.cxx:52
dqm_algorithms::AFP_ToFEfficiency
Definition
AFP_ToFEfficiency.h:21
dqm_algorithms::AFP_ToFEfficiency::execute
dqm_core::Result * execute(const std::string &name, const TObject &object, const dqm_core::AlgorithmConfig &config) override
Definition
AFP_ToFEfficiency.cxx:34
dqm_algorithms::AFP_ToFEfficiency::~AFP_ToFEfficiency
~AFP_ToFEfficiency()
Definition
AFP_ToFEfficiency.cxx:25
dqm_algorithms::AFP_ToFEfficiency::clone
AFP_ToFEfficiency * clone() override
Definition
AFP_ToFEfficiency.cxx:29
dqm_algorithms::AFP_ToFEfficiency::printDescriptionTo
void printDescriptionTo(std::ostream &out) override
Definition
AFP_ToFEfficiency.cxx:74
dqm_algorithms::AFP_ToFEfficiency::AFP_ToFEfficiency
AFP_ToFEfficiency()
Definition
AFP_ToFEfficiency.cxx:21
dqm_algorithms::tools::GetFirstFromMap
double GetFirstFromMap(const std::string ¶mName, const std::map< std::string, double > ¶ms)
Definition
AlgorithmHelper.cxx:346
dqm_algorithms::tools::GetFromMap
const T & GetFromMap(const std::string &pname, const std::map< std::string, T > ¶ms)
Definition
AlgorithmHelper.h:109
IsA
#define IsA
Declare the TObject style functions.
Definition
xAODTEventBranch.h:59
Generated on
for ATLAS Offline Software by
1.17.0