ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
PanTau
PanTauAlgs
Root
Tool_TauConstituentSelector.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
PanTauAlgs/Tool_TauConstituentSelector.h
"
6
#include "
PanTauAlgs/HelperFunctions.h
"
7
8
PanTau::Tool_TauConstituentSelector::Tool_TauConstituentSelector
(
const
std::string& name) :
9
asg
::
AsgTool
(name)
10
{}
11
12
13
PanTau::Tool_TauConstituentSelector::~Tool_TauConstituentSelector
() =
default
;
14
15
16
StatusCode
PanTau::Tool_TauConstituentSelector::initialize
() {
17
18
ATH_MSG_INFO
(
" initialize()"
);
19
m_init
=
true
;
20
21
ATH_CHECK
(
HelperFunctions::bindToolHandle
(
m_Tool_InformationStore
,
m_Tool_InformationStoreName
) );
22
ATH_CHECK
(
m_Tool_InformationStore
.retrieve() );
23
24
ATH_CHECK
(
m_Tool_InformationStore
->getInfo_Double(
"TauConstituents_MaxEta"
,
m_MaxEta
) );
25
26
//eta bin edges
27
ATH_CHECK
(
m_Tool_InformationStore
->getInfo_VecDouble(
"Common_BinEdges_Eta"
,
m_BinEdges_Eta
) );
28
29
//et cuts for types used in mode reco
30
ATH_CHECK
(
m_Tool_InformationStore
->getInfo_VecDouble(
"TauConstituents_Selection_Neutral_EtaBinned_EtCut"
,
m_Selection_Neutral_EtaBinned_EtCut
) );
31
32
return
StatusCode::SUCCESS;
33
}
34
35
36
double
PanTau::Tool_TauConstituentSelector::getEtCut
(
double
eta
,
PanTau::TauConstituent::Type
constituentType)
const
{
37
38
for
(
unsigned
int
iEtaBin=0; iEtaBin<
m_BinEdges_Eta
.size()-1; iEtaBin++) {
39
if
(
m_BinEdges_Eta
[iEtaBin] <=
eta
&&
eta
<
m_BinEdges_Eta
[iEtaBin+1]) {
40
switch
(constituentType) {
41
case
PanTau::TauConstituent::t_Neutral
:
return
m_Selection_Neutral_EtaBinned_EtCut
[iEtaBin];
42
default
:
43
return
9999999.;
44
}
45
}
46
}
47
48
ATH_MSG_WARNING
(
"Eta value of "
<<
eta
<<
" could not be matched to any eta bin!"
);
49
return
9999999.;
50
}
51
52
57
StatusCode
PanTau::Tool_TauConstituentSelector::SelectTauConstituents
(
const
std::vector<TauConstituent*>& inputList,
58
std::vector<TauConstituent*>& outputList)
const
{
59
60
for
(
unsigned
int
iConst=0; iConst<inputList.size(); iConst++) {
61
62
PanTau::TauConstituent
* curConstituent = inputList[iConst];
63
64
//general preselection:
65
double
curEta = std::abs( curConstituent->
p4
().Eta() );
66
if
(curEta >
m_MaxEta
) {
67
ATH_MSG_DEBUG
(
"\tNot using constituent with eta of "
<< curEta);
68
continue
;
69
}
70
71
bool
passesSelection =
false
;
72
73
// check if constituent is charged:
74
if
(curConstituent->
isOfType
(
PanTau::TauConstituent::t_Charged
)) {
75
// we want to use all tracks
76
passesSelection =
true
;
77
78
// check if constituent is neutral, assign correctly pi0neut and neut flags:
79
}
else
if
(curConstituent->
isOfType
(
PanTau::TauConstituent::t_Neutral
)) {
80
passesSelection =
passesSelection_NeutralConstituent
(curConstituent);
81
82
//special treatment for the testing neutral flags
83
if
(!passesSelection) {
84
curConstituent->
removeTypeFlag
(
PanTau::TauConstituent::t_Neutral
);
85
curConstituent->
removeTypeFlag
(
PanTau::TauConstituent::t_Pi0Neut
);
86
}
87
}
else
{
88
ATH_MSG_DEBUG
(
"Unhandled constituent type ("
<< curConstituent->
getTypeNameString
()
89
<<
") when trying to apply constituent selection - constituent will not be selected!"
);
90
passesSelection =
false
;
91
}
92
93
if
(!passesSelection)
continue
;
94
95
outputList.push_back(inputList[iConst]);
96
}
97
98
return
StatusCode::SUCCESS;
99
}
100
101
102
bool
PanTau::Tool_TauConstituentSelector::passesSelection_NeutralConstituent
(
PanTau::TauConstituent
* tauConstituent)
const
{
103
104
TLorentzVector tlv_Constituent = tauConstituent->
p4
();
105
106
if
(tlv_Constituent.Et() <
getEtCut
(std::abs(tlv_Constituent.Eta()),
PanTau::TauConstituent::t_Neutral
)) {
107
ATH_MSG_DEBUG
(
"\tNot using constituent at eta "
<< tlv_Constituent.Eta() <<
" with et of "
<< tlv_Constituent.Et());
108
return
false
;
109
}
110
111
return
true
;
112
}
113
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
HelperFunctions.h
Tool_TauConstituentSelector.h
PanTau::HelperFunctions::bindToolHandle
static StatusCode bindToolHandle(ToolHandle< T > &, std::string)
Definition
Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:56
PanTau::TauConstituent
Input object for PanTau.
Definition
TauConstituent.h:25
PanTau::TauConstituent::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle as a TLorentzVector.
Definition
TauConstituent.cxx:100
PanTau::TauConstituent::getTypeNameString
std::string getTypeNameString() const
Definition
TauConstituent.cxx:192
PanTau::TauConstituent::isOfType
bool isOfType(TauConstituent::Type aType) const
Definition
TauConstituent.cxx:213
PanTau::TauConstituent::Type
Type
Type enumeration to specify type of this tau constituent.
Definition
TauConstituent.h:42
PanTau::TauConstituent::t_Neutral
@ t_Neutral
Definition
TauConstituent.h:45
PanTau::TauConstituent::t_Pi0Neut
@ t_Pi0Neut
Definition
TauConstituent.h:46
PanTau::TauConstituent::t_Charged
@ t_Charged
Definition
TauConstituent.h:44
PanTau::TauConstituent::removeTypeFlag
void removeTypeFlag(TauConstituent::Type aType)
Definition
TauConstituent.cxx:151
PanTau::Tool_TauConstituentSelector::~Tool_TauConstituentSelector
virtual ~Tool_TauConstituentSelector()
PanTau::Tool_TauConstituentSelector::m_Tool_InformationStoreName
Gaudi::Property< std::string > m_Tool_InformationStoreName
Definition
Tool_TauConstituentSelector.h:47
PanTau::Tool_TauConstituentSelector::getEtCut
virtual double getEtCut(double eta, PanTau::TauConstituent::Type constituentType) const
Definition
Tool_TauConstituentSelector.cxx:36
PanTau::Tool_TauConstituentSelector::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition
Tool_TauConstituentSelector.cxx:16
PanTau::Tool_TauConstituentSelector::Tool_TauConstituentSelector
Tool_TauConstituentSelector(const std::string &name)
Definition
Tool_TauConstituentSelector.cxx:8
PanTau::Tool_TauConstituentSelector::SelectTauConstituents
virtual StatusCode SelectTauConstituents(const std::vector< TauConstituent * > &inputList, std::vector< TauConstituent * > &outputList) const
Function to further select PFOs of the various categories (basically apply additional ET cuts):
Definition
Tool_TauConstituentSelector.cxx:57
PanTau::Tool_TauConstituentSelector::passesSelection_NeutralConstituent
virtual bool passesSelection_NeutralConstituent(TauConstituent *tauConstituent) const
Definition
Tool_TauConstituentSelector.cxx:102
PanTau::Tool_TauConstituentSelector::m_MaxEta
double m_MaxEta
Definition
Tool_TauConstituentSelector.h:49
PanTau::Tool_TauConstituentSelector::m_init
bool m_init
Definition
Tool_TauConstituentSelector.h:53
PanTau::Tool_TauConstituentSelector::m_BinEdges_Eta
std::vector< double > m_BinEdges_Eta
Definition
Tool_TauConstituentSelector.h:50
PanTau::Tool_TauConstituentSelector::m_Tool_InformationStore
ToolHandle< PanTau::ITool_InformationStore > m_Tool_InformationStore
Definition
Tool_TauConstituentSelector.h:46
PanTau::Tool_TauConstituentSelector::m_Selection_Neutral_EtaBinned_EtCut
std::vector< double > m_Selection_Neutral_EtaBinned_EtCut
Definition
Tool_TauConstituentSelector.h:51
asg::AsgTool::AsgTool
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition
AsgTool.cxx:58
asg
Definition
DataHandleTestTool.h:28
Generated on
for ATLAS Offline Software by
1.17.0