ATLAS Offline Software
Loading...
Searching...
No Matches
Tool_DetailsArranger.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PANTAUALGS_TOOL_DETAILSARRANGER_H
6#define PANTAUALGS_TOOL_DETAILSARRANGER_H
7
8#include <string>
9#include <vector>
10
11#include "AsgTools/AsgTool.h"
12#include "AsgTools/ToolHandle.h"
14
15#include "xAODTau/TauJet.h"
19
23
24#include <vector>
25#include <string>
26
27namespace PanTau {
28 class PanTauSeed;
29 class PanTauDetails;
30}
31
32namespace PanTau {
33
40
42
43 public:
44
50
51 Tool_DetailsArranger(const std::string &name);
53
54 virtual StatusCode initialize();
55
56 virtual StatusCode execute(PanTau::PanTauSeed* inSeed, xAOD::ParticleContainer& pi0Container, xAOD::PFOContainer& neutralPFOContainer) const;
57
58 protected:
59
60 ToolHandle<PanTau::ITool_InformationStore> m_Tool_InformationStore{this, "Tool_InformationStore", "PanTau::Tool_InformationStore/Tool_InformationStore", "Tool handle to the information store tool"};
61
62 Gaudi::Property<std::string> m_Tool_InformationStoreName{this, "Tool_InformationStoreName", "", "Tool handle to the information store tool"};
63
65 const std::string& featName,
67 PanTauDetailsType detailType) const;
68
69 StatusCode arrangePFOLinks(PanTau::PanTauSeed* inSeed, xAOD::TauJet* tauJet, xAOD::ParticleContainer& pi0Container, xAOD::PFOContainer& neutralPFOContainer) const;
70
71 static void SetHLVTau(PanTau::PanTauSeed* inSeed, xAOD::TauJet* tauJet, const std::string& varTypeName_Basic) ;
72
73 bool HasMultPi0sInOneCluster(const xAOD::PFO* pfo, int decayModeProto) const ;
74
75 static void SetNeutralConstituentMass(xAOD::PFO* neutral_pfo, double mass) ;
76
77 static void SetNeutralConstituentVectorMasses(const std::vector< ElementLink<xAOD::PFOContainer> >& neutralPFOLinks, xAOD::PFOContainer& neutralPFOContainer, double mass) ;
78
79 std::vector< ElementLink< xAOD::PFOContainer > > CollectConstituentsAsPFOLinks( PanTau::PanTauSeed* inSeed,
80 const std::vector< ElementLink< xAOD::PFOContainer > >& cellbased_neutralPFOLinks,
82
83 static void createPi0Vectors(xAOD::TauJet* tauJet, std::vector<TLorentzVector>& vPi0s, std::vector< std::vector< ElementLink<xAOD::PFOContainer> > > &vec_pi0pfos) ;
84
85 static const constexpr float MASS_PI0 = ParticleConstants::piZeroMassInMeV;
86
87 double m_CoreCone = 0.0;
88 std::vector<double> m_EtaBinEdges;
89 std::vector<double> m_EtaBinnedEtCuts;
90
92 std::string m_varTypeName_Mean;
94 std::string m_varTypeName_HLV;
100 std::string m_varTypeName_PID;
102
103 bool m_init=false;
104 public:
105 inline bool isInitialized(){return m_init;}
106
107 };
108} // end of namespace PanTau
109#endif // PANTAUALGS_TAUDISCRIMINANTTOOL_H
#define ASG_TOOL_CLASS1
A number of constexpr particle constants to avoid hardcoding them directly in various places.
Interface for PID from tau seeds.
Type
Type enumeration to specify type of this tau constituent.
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
StatusCode arrangePFOLinks(PanTau::PanTauSeed *inSeed, xAOD::TauJet *tauJet, xAOD::ParticleContainer &pi0Container, xAOD::PFOContainer &neutralPFOContainer) const
Gaudi::Property< std::string > m_Tool_InformationStoreName
static void SetHLVTau(PanTau::PanTauSeed *inSeed, xAOD::TauJet *tauJet, const std::string &varTypeName_Basic)
std::vector< double > m_EtaBinnedEtCuts
static void SetNeutralConstituentMass(xAOD::PFO *neutral_pfo, double mass)
static void createPi0Vectors(xAOD::TauJet *tauJet, std::vector< TLorentzVector > &vPi0s, std::vector< std::vector< ElementLink< xAOD::PFOContainer > > > &vec_pi0pfos)
ToolHandle< PanTau::ITool_InformationStore > m_Tool_InformationStore
std::vector< double > m_EtaBinEdges
Tool_DetailsArranger(const std::string &name)
bool HasMultPi0sInOneCluster(const xAOD::PFO *pfo, int decayModeProto) const
void addPanTauDetailToTauJet(PanTauSeed *inSeed, const std::string &featName, xAOD::TauJetParameters::PanTauDetails detailEnum, PanTauDetailsType detailType) const
static const constexpr float MASS_PI0
virtual StatusCode execute(PanTau::PanTauSeed *inSeed, xAOD::ParticleContainer &pi0Container, xAOD::PFOContainer &neutralPFOContainer) const
std::vector< ElementLink< xAOD::PFOContainer > > CollectConstituentsAsPFOLinks(PanTau::PanTauSeed *inSeed, const std::vector< ElementLink< xAOD::PFOContainer > > &cellbased_neutralPFOLinks, PanTau::TauConstituent::Type type) const
static void SetNeutralConstituentVectorMasses(const std::vector< ElementLink< xAOD::PFOContainer > > &neutralPFOLinks, xAOD::PFOContainer &neutralPFOContainer, double mass)
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
constexpr double piZeroMassInMeV
the mass of the pi zero (in MeV)
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Definition TauDefs.h:355
PFO_v1 PFO
Definition of the current "pfo version".
Definition PFO.h:17
PFOContainer_v1 PFOContainer
Definition of the current "pfo container version".
ParticleContainer_v1 ParticleContainer
Define the latest version of the particle class.
TauJet_v3 TauJet
Definition of the current "tau version".