ATLAS Offline Software
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 
7 
9  asg::AsgTool(name)
10 {}
11 
12 
14 
15 
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("TauConstituents_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 
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 
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) {
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 
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 
PanTau::TauConstituent::t_Neutral
@ t_Neutral
Definition: TauConstituent.h:45
PanTau::TauConstituent::Type
Type
Type enumeration to specify type of this tau constituent.
Definition: TauConstituent.h:42
PanTau::Tool_TauConstituentSelector::getEtCut
virtual double getEtCut(double eta, PanTau::TauConstituent::Type constituentType) const
Definition: Tool_TauConstituentSelector.cxx:36
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PanTau::Tool_TauConstituentSelector::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: Tool_TauConstituentSelector.cxx:16
PanTau::TauConstituent::t_Charged
@ t_Charged
Definition: TauConstituent.h:44
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
HelperFunctions.h
PanTau::Tool_TauConstituentSelector::~Tool_TauConstituentSelector
virtual ~Tool_TauConstituentSelector()
asg
Definition: DataHandleTestTool.h:28
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::Tool_TauConstituentSelector::passesSelection_NeutralConstituent
virtual bool passesSelection_NeutralConstituent(TauConstituent *tauConstituent) const
Definition: Tool_TauConstituentSelector.cxx:102
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PlotRamps.passesSelection
def passesSelection(gain, offset)
Definition: PlotRamps.py:8
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Tool_TauConstituentSelector.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
PanTau::HelperFunctions::bindToolHandle
static StatusCode bindToolHandle(ToolHandle< T > &, std::string)
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:56
PanTau::TauConstituent::isOfType
bool isOfType(TauConstituent::Type aType) const
Definition: TauConstituent.cxx:213
PanTau::TauConstituent::t_Pi0Neut
@ t_Pi0Neut
Definition: TauConstituent.h:46
PanTau::Tool_TauConstituentSelector::Tool_TauConstituentSelector
Tool_TauConstituentSelector(const std::string &name)
Definition: Tool_TauConstituentSelector.cxx:8
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
run_AODTCCLinking.inputList
list inputList
Definition: run_AODTCCLinking.py:93
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::TauConstituent
Definition: TauConstituent.h:25
PanTau::TauConstituent::removeTypeFlag
void removeTypeFlag(TauConstituent::Type aType)
Definition: TauConstituent.cxx:151