ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetValidation
InDetTrackPerfMon
src
TrackAnalysisDefinitionSvc.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
10
12
#include "
TrackAnalysisDefinitionSvc.h
"
13
15
#include <algorithm>
16
#include <memory>
17
#include <unordered_map>
18
20
#include "
InDetPhysValMonitoring/ResolutionHelper.h
"
21
22
26
StatusCode
IDTPM::TrackAnalysisDefinitionSvc::initialize
()
27
{
28
29
ATH_MSG_DEBUG
(
"Initialising using TEST = "
<<
m_testTypeStr
.value() <<
30
" and REFERENCE = "
<<
m_refTypeStr
.value() );
31
33
m_isTestTrigger
=
m_testTypeStr
.value().find(
"Trigger"
) != std::string::npos;
34
m_isTestEFTrigger
=
m_testTypeStr
.value().find(
"EFTrigger"
) != std::string::npos;
35
m_isTestTruth
=
m_testTypeStr
.value().find(
"Truth"
) != std::string::npos;
36
m_isTestOffline
=
m_testTypeStr
.value().find(
"Offline"
) != std::string::npos;
37
38
m_isRefTrigger
=
m_refTypeStr
.value().find(
"Trigger"
) != std::string::npos;
39
m_isRefEFTrigger
=
m_refTypeStr
.value().find(
"EFTrigger"
) != std::string::npos;
40
m_isRefTruth
=
m_refTypeStr
.value().find(
"Truth"
) != std::string::npos;
41
m_isRefOffline
=
m_refTypeStr
.value().find(
"Offline"
) != std::string::npos;
42
43
m_useTrigger
=
m_isTestTrigger
or
m_isRefTrigger
;
44
m_useEFTrigger
=
m_isTestEFTrigger
or
m_isRefEFTrigger
;
45
m_useTruth
=
m_isTestTruth
or
m_isRefTruth
or
m_matchingType
.value().find(
"EFTruthMatch"
) != std::string::npos;;
46
ATH_MSG_DEBUG
(
"USE TRUTH? "
<<
m_useTruth
);
47
m_useOffline
=
m_isTestOffline
or
m_isRefOffline
;
48
50
if
(
m_doTrigNavigation
) {
51
for
(
size_t
ic=0 ; ic<
m_chainNames
.size() ; ic++ ) {
52
ATH_MSG_DEBUG
(
"Input chain : "
<<
m_chainNames
[ic] );
53
m_configuredChains
.push_back(
m_chainNames
[ic] );
54
}
55
}
else
{
57
m_configuredChains
.push_back(
"Offline"
);
58
}
59
61
std::sort
(
m_configuredChains
.begin(),
m_configuredChains
.end() );
62
m_configuredChains
.erase(
std::unique
(
m_configuredChains
.begin(),
63
m_configuredChains
.end() ),
64
m_configuredChains
.end() );
65
66
return
StatusCode::SUCCESS;
67
}
68
72
StatusCode
IDTPM::TrackAnalysisDefinitionSvc::finalize
() {
73
return
StatusCode::SUCCESS;
74
}
75
79
std::string
IDTPM::TrackAnalysisDefinitionSvc::plotsFullDir
( std::string chain )
const
80
{
82
std::string topDir(
m_dirName
);
83
if
( not topDir.empty() ) topDir +=
"/"
;
84
86
if
( not chain.empty() ) chain +=
"/"
;
87
89
std::string subDir(
m_subFolder
);
90
if
( subDir.empty() ) {
91
ATH_MSG_WARNING
(
"Empty plots sub-directory"
);
92
}
else
{
94
if
( subDir[0] ==
'/'
) {
95
subDir.erase( subDir.begin() );
96
}
98
if
( subDir.back() !=
'/'
) subDir +=
"/"
;
99
}
100
101
return
m_sortPlotsByChain
.value() ?
102
topDir + chain + subDir :
103
topDir + subDir + chain;
104
}
105
109
unsigned
int
IDTPM::TrackAnalysisDefinitionSvc::resolutionMethod
()
const
110
{
112
using
methodMap_t = std::unordered_map<
113
std::string,
IDPVM::ResolutionHelper::methods
>;
114
methodMap_t methodMap = {
115
{
"iterRMS"
,
IDPVM::ResolutionHelper::iterRMS_convergence
},
116
{
"gaussFit"
,
IDPVM::ResolutionHelper::Gauss_fit
},
117
{
"iterRMSgaussFit"
,
IDPVM::ResolutionHelper::fusion_iterRMS_Gaussfit
},
118
{
"iterGaussFit"
,
IDPVM::ResolutionHelper::iterGaussFit_convergence
}
119
};
120
121
methodMap_t::const_iterator mitr = methodMap.find(
m_resolMethod
.value() );
122
if
( mitr == methodMap.end() ) {
123
ATH_MSG_DEBUG
(
"Method "
<<
m_resolMethod
.value() <<
124
" not found. Using iterRMS by default."
);
125
return
IDPVM::ResolutionHelper::iterRMS_convergence
;
126
}
127
return
mitr->second;
128
}
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
ResolutionHelper.h
TrackAnalysisDefinitionSvc.h
AthService to hold (and propagate) the basic properties of each defined TrackAnalysis and of their hi...
IDPVM::ResolutionHelper::methods
methods
methods acc to which mean&RMS can be evaluated
Definition
InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:36
IDPVM::ResolutionHelper::Gauss_fit
@ Gauss_fit
Definition
InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:36
IDPVM::ResolutionHelper::iterGaussFit_convergence
@ iterGaussFit_convergence
Definition
InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:36
IDPVM::ResolutionHelper::fusion_iterRMS_Gaussfit
@ fusion_iterRMS_Gaussfit
Definition
InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:36
IDPVM::ResolutionHelper::iterRMS_convergence
@ iterRMS_convergence
Definition
InnerDetector/InDetValidation/InDetPhysValMonitoring/InDetPhysValMonitoring/ResolutionHelper.h:36
IDTPM::TrackAnalysisDefinitionSvc::m_testTypeStr
StringProperty m_testTypeStr
Definition
TrackAnalysisDefinitionSvc.h:99
IDTPM::TrackAnalysisDefinitionSvc::m_isTestTrigger
bool m_isTestTrigger
Definition
TrackAnalysisDefinitionSvc.h:104
IDTPM::TrackAnalysisDefinitionSvc::resolutionMethod
virtual unsigned int resolutionMethod() const override
Definition
TrackAnalysisDefinitionSvc.cxx:109
IDTPM::TrackAnalysisDefinitionSvc::m_isTestEFTrigger
bool m_isTestEFTrigger
Definition
TrackAnalysisDefinitionSvc.h:104
IDTPM::TrackAnalysisDefinitionSvc::m_isRefOffline
bool m_isRefOffline
Definition
TrackAnalysisDefinitionSvc.h:105
IDTPM::TrackAnalysisDefinitionSvc::plotsFullDir
virtual std::string plotsFullDir(std::string chain="") const override
Definition
TrackAnalysisDefinitionSvc.cxx:79
IDTPM::TrackAnalysisDefinitionSvc::m_doTrigNavigation
BooleanProperty m_doTrigNavigation
Definition
TrackAnalysisDefinitionSvc.h:101
IDTPM::TrackAnalysisDefinitionSvc::m_matchingType
StringProperty m_matchingType
Definition
TrackAnalysisDefinitionSvc.h:110
IDTPM::TrackAnalysisDefinitionSvc::m_useTrigger
bool m_useTrigger
Definition
TrackAnalysisDefinitionSvc.h:103
IDTPM::TrackAnalysisDefinitionSvc::m_useTruth
bool m_useTruth
Definition
TrackAnalysisDefinitionSvc.h:103
IDTPM::TrackAnalysisDefinitionSvc::m_useOffline
bool m_useOffline
Definition
TrackAnalysisDefinitionSvc.h:103
IDTPM::TrackAnalysisDefinitionSvc::m_resolMethod
StringProperty m_resolMethod
Definition
TrackAnalysisDefinitionSvc.h:140
IDTPM::TrackAnalysisDefinitionSvc::m_refTypeStr
StringProperty m_refTypeStr
Definition
TrackAnalysisDefinitionSvc.h:100
IDTPM::TrackAnalysisDefinitionSvc::m_useEFTrigger
bool m_useEFTrigger
Definition
TrackAnalysisDefinitionSvc.h:103
IDTPM::TrackAnalysisDefinitionSvc::m_configuredChains
std::vector< std::string > m_configuredChains
Definition
TrackAnalysisDefinitionSvc.h:113
IDTPM::TrackAnalysisDefinitionSvc::m_chainNames
StringArrayProperty m_chainNames
Definition
TrackAnalysisDefinitionSvc.h:94
IDTPM::TrackAnalysisDefinitionSvc::m_isRefTruth
bool m_isRefTruth
Definition
TrackAnalysisDefinitionSvc.h:105
IDTPM::TrackAnalysisDefinitionSvc::m_isTestOffline
bool m_isTestOffline
Definition
TrackAnalysisDefinitionSvc.h:104
IDTPM::TrackAnalysisDefinitionSvc::m_isTestTruth
bool m_isTestTruth
Definition
TrackAnalysisDefinitionSvc.h:104
IDTPM::TrackAnalysisDefinitionSvc::m_dirName
StringProperty m_dirName
Definition
TrackAnalysisDefinitionSvc.h:95
IDTPM::TrackAnalysisDefinitionSvc::initialize
virtual StatusCode initialize() override final
local includes
Definition
TrackAnalysisDefinitionSvc.cxx:26
IDTPM::TrackAnalysisDefinitionSvc::m_isRefTrigger
bool m_isRefTrigger
Definition
TrackAnalysisDefinitionSvc.h:105
IDTPM::TrackAnalysisDefinitionSvc::m_sortPlotsByChain
BooleanProperty m_sortPlotsByChain
histogram properties
Definition
TrackAnalysisDefinitionSvc.h:121
IDTPM::TrackAnalysisDefinitionSvc::m_isRefEFTrigger
bool m_isRefEFTrigger
Definition
TrackAnalysisDefinitionSvc.h:105
IDTPM::TrackAnalysisDefinitionSvc::finalize
virtual StatusCode finalize() override final
Definition
TrackAnalysisDefinitionSvc.cxx:72
IDTPM::TrackAnalysisDefinitionSvc::m_subFolder
StringProperty m_subFolder
Definition
TrackAnalysisDefinitionSvc.h:96
std::unique
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
Definition
DVL_algorithms.h:135
std::sort
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
Definition
DVL_algorithms.h:554
Generated on
for ATLAS Offline Software by
1.17.0