ATLAS Offline Software
Loading...
Searching...
No Matches
PFUnifiedMatchingTruthTool Class Reference

#include <PFUnifiedMatchingTruthTool.h>

Inheritance diagram for PFUnifiedMatchingTruthTool:
Collaboration diagram for PFUnifiedMatchingTruthTool:

Public Member Functions

 ~PFUnifiedMatchingTruthTool ()
virtual StatusCode initialize () override
 PFUnifiedMatchingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode processPFlowData (const EventContext &ctx, PFData &thePFData) const override

Protected Member Functions

void printAllClusters (const std::vector< eflowRecCluster * > &recClusterVector) const

Static Protected Member Functions

static std::string printTrack (const xAOD::TrackParticle *track)
static std::string printCluster (const xAOD::CaloCluster *cluster)

Protected Attributes

ToolHandle< IEFlowCellEOverPToolm_theEOverPTool {this, "eflowCellEOverPTool", "eflowCellEOverPTool", "Energy Flow E/P Values and Shower Parameters Tool"}
 Tool for getting e/p values and hadronic shower cell ordering principle parameters.
std::unique_ptr< eflowEEtaBinnedParametersm_binnedParameters
std::unique_ptr< PFMatch::TrackEtaPhiInFixedLayersProviderm_trkpos
 Track position provider to be used to preselect clusters.
ToolHandle< PFTrackClusterMatchingToolm_theMatchingTool {this, "PFTrackClusterMatchingTool", "PFTrackClusterMatchingTool/CalObjBldMatchingTool", "The track-cluster matching tool"}
 Default track-cluster matching tool.
ToolHandle< PFTrackClusterMatchingToolm_theMatchingToolForPull_015 {this, "PFTrackClusterMatchingTool_015", "PFTrackClusterMatchingTool/PFPullMatchingTool_015", "The 0.15 track-cluster matching tool to calculate the pull"}
ToolHandle< PFTrackClusterMatchingToolm_theMatchingToolForPull_02 {this, "PFTrackClusterMatchingTool_02", "PFTrackClusterMatchingTool/PFPullMatchingTool_02", "The 0.2 track-cluster matching tool to calculate the pull"}
Gaudi::Property< bool > m_recoverSplitShowers {this,"RecoverSplitShowers",false,"Toggle whether we are recovering split showers or not"}
 Toggle whether we are recovering split showers or not.
Gaudi::Property< int > m_nClusterMatchesToUse {this, "nClusterMatchesToUse", 1, "Number of clusters to match to each track"}
 Number of clusters to match to each track if not doing recover split shower subtraction.
Gaudi::Property< bool > m_addCPData {this,"addCPData",false,"Toggle whether to decorate FlowElements with additional data for Combined Performance studies "}
 Toggle whether to decorate eflowRecTrack with additional data for Combined Performance studies.
eflowSubtract::Subtractor m_subtractor {}
ToolHandle< PFEnergyPredictorToolm_NNEnergyPredictorTool {this, "NNEnergyPredictorTool", "","Tool for getting predictiing the energy using an ONNX model "}
 Tool for getting predictiing the energy using an ONNX model.
Gaudi::Property< bool > m_useNNEnergy {this, "useNNEnergy", false, "Toggle whether we use the neural net energy"}
 Toggle whether we use the neural net energy.
Gaudi::Property< bool > m_useLegacyEBinIndex {this, "useLegacyEBinIndex", true, "Toggle whether we use the legacy energy bin index"}
 Further discussion about why this flag exists can be found in https://its.cern.ch/jira/browse/ATLJETMET-1692 and https://indico.cern.ch/event/1388633/contributions/5837876/attachments/2809591/4903439/PFlow_EOverP_Feb2024.pdf The Jira report discusses assorted problems with the treatment of energy bin indexes for the lookup of e/p values.

Private Member Functions

unsigned int matchAndCreateEflowCaloObj (const EventContext &ctx, PFData &data) const override
 This matches ID tracks and CaloClusters, and then creates eflowCaloObjects.

Private Attributes

SG::ReadDecorHandleKey< xAOD::CaloClusterContainerm_caloClusterReadDecorHandleKeyNLeadingTruthParticles {this,"CaloClusterReadDecorHandleKey_NLeadingTruthParticles",""}
 Read handle key to decorate CaloCluster with threeN leading truth particle uniqueID and energy.

Detailed Description

Definition at line 13 of file PFUnifiedMatchingTruthTool.h.

Constructor & Destructor Documentation

◆ ~PFUnifiedMatchingTruthTool()

PFUnifiedMatchingTruthTool::~PFUnifiedMatchingTruthTool ( )
default

Member Function Documentation

◆ initialize()

StatusCode PFUnifiedMatchingTruthTool::initialize ( )
overridevirtual

Reimplemented from PFUnifiedMatchingTool.

Definition at line 29 of file PFUnifiedMatchingTruthTool.cxx.

30{
31
32 ATH_CHECK(m_theEOverPTool.retrieve());
33
34 ATH_CHECK(m_theEOverPTool->fillBinnedParameters(m_binnedParameters.get()));
35
36 m_trkpos.reset(dynamic_cast<PFMatch::TrackEtaPhiInFixedLayersProvider *>(PFMatch::TrackPositionFactory::Get("EM2EtaPhi").release()));
37 if (!m_trkpos)
38 {
39 ATH_MSG_ERROR("Failed to get TrackPositionProvider for cluster preselection!");
40 return StatusCode::FAILURE;
41 }
42
43 //Retrieve track-cluster matching tools
44 ATH_CHECK(m_theMatchingTool.retrieve());
47
48
51 }
52
53 return StatusCode::SUCCESS;
54
55}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
static std::unique_ptr< IPositionProvider > Get(const std::string &positionType)
ToolHandle< PFTrackClusterMatchingTool > m_theMatchingToolForPull_015
ToolHandle< IEFlowCellEOverPTool > m_theEOverPTool
Tool for getting e/p values and hadronic shower cell ordering principle parameters.
ToolHandle< PFTrackClusterMatchingTool > m_theMatchingToolForPull_02
std::unique_ptr< eflowEEtaBinnedParameters > m_binnedParameters
std::unique_ptr< PFMatch::TrackEtaPhiInFixedLayersProvider > m_trkpos
Track position provider to be used to preselect clusters.
ToolHandle< PFTrackClusterMatchingTool > m_theMatchingTool
Default track-cluster matching tool.
SG::ReadDecorHandleKey< xAOD::CaloClusterContainer > m_caloClusterReadDecorHandleKeyNLeadingTruthParticles
Read handle key to decorate CaloCluster with threeN leading truth particle uniqueID and energy.
static std::string release
Definition computils.h:50

◆ matchAndCreateEflowCaloObj()

unsigned int PFUnifiedMatchingTruthTool::matchAndCreateEflowCaloObj ( const EventContext & ctx,
PFData & data ) const
overrideprivatevirtual

This matches ID tracks and CaloClusters, and then creates eflowCaloObjects.

No point to do anything if e/p reference bin does not exist

No point to do anything if e/p reference bin does not exist

Add cluster matches needed for pull calculation (in eflowCaloObject::simulateShowers) which is used to determine whether to run the charged shower subtraction or not. / Clusters in both a cone of 0.15 and 0.2 are needed for this. / The clusters in a cone of 0.2 are also used as the matched cluster list for recover split showers mode.

Reimplemented from PFUnifiedMatchingTool.

Definition at line 57 of file PFUnifiedMatchingTruthTool.cxx.

57 {
58
59 //Counts up how many tracks found at least 1 calorimeter cluster matched to it.
60 unsigned int nMatches(0);
61
62 /* Cache the original number of eflowCaloObjects, if there were any */
63 const unsigned int nCaloObj = data.caloObjects->size();
64
65 /* loop tracks in data.tracks and do matching */
66 for (auto *thisEfRecTrack : data.tracks)
67 {
69 if (!thisEfRecTrack->hasBin()) {
70 std::unique_ptr<eflowCaloObject> thisEflowCaloObject = std::make_unique<eflowCaloObject>();
71 thisEflowCaloObject->addTrack(thisEfRecTrack);
72 data.caloObjects->push_back(std::move(thisEflowCaloObject));
73 continue;
74 }
75
76 if (msgLvl(MSG::DEBUG))
77 {
78 const xAOD::TrackParticle *track = thisEfRecTrack->getTrack();
79 ATH_MSG_DEBUG("Matching track with e,pt, eta and phi " << track->e() << ", " << track->pt() << ", " << track->eta() << " and " << track->phi());
80 }
81
82 std::vector<eflowTrackClusterLink*> bestClusters;
83 std::vector<float> deltaRPrime;
84
85
86 const xAOD::TruthParticle* trackMatchedTruthParticle = nullptr;
87 typedef ElementLink<xAOD::TruthParticleContainer> TruthLink;
88
89 const static SG::AuxElement::Accessor<TruthLink> truthLinkAccessor("truthParticleLink");
90
91 TruthLink truthLink = truthLinkAccessor(*(thisEfRecTrack->getTrack()));
92 //if not valid don't print a WARNING because this is an expected condition as discussed here:
93 //https://indico.cern.ch/event/795039/contributions/3391771/attachments/1857138/3050771/TruthTrackFTAGWS.pdf
94 if (truthLink.isValid()) trackMatchedTruthParticle = *truthLink;
95
96 if (trackMatchedTruthParticle){
97 double uniqueID = HepMC::uniqueID(trackMatchedTruthParticle);
98
99 SG::ReadDecorHandle<xAOD::CaloClusterContainer, std::vector< std::pair<unsigned int, double> > > caloClusterReadDecorHandleNLeadingTruthParticles(m_caloClusterReadDecorHandleKeyNLeadingTruthParticles, ctx);
100 if (!caloClusterReadDecorHandleNLeadingTruthParticles.isValid()){
101 ATH_MSG_WARNING("Failed to retrieve CaloCluster decoration with key " << caloClusterReadDecorHandleNLeadingTruthParticles.key());
102 }
103
104 for (auto * thisCluster : data.clusters){
105 //accessor for decoration
106 //split key into substring to get the name of the decoration
107
108 std::string decorHandleName = m_caloClusterReadDecorHandleKeyNLeadingTruthParticles.key();
109 std::string::size_type pos = decorHandleName.find(".");
110 std::string decorName = decorHandleName.substr(pos+1);
111
112 SG::AuxElement::Accessor< std::vector< std::pair<unsigned int, double> > > accessor(decorName);
113
114 std::vector<std::pair<unsigned int, double > > uniqueIDTruthPairs = accessor(*(thisCluster->getCluster()));
115
116 for (auto &uniqueIDTruthPair : uniqueIDTruthPairs){
117 if (uniqueIDTruthPair.first == uniqueID){
118 eflowTrackClusterLink* thisLink = eflowTrackClusterLink::getInstance(thisEfRecTrack, thisCluster, ctx);
119 bestClusters.push_back(thisLink);
120 break;
121 }
122 }//loop over calocluster truth pair decorations
123 }//loop over caloclusters
124
125 }//if have truth particle matched to track
126 else ATH_MSG_VERBOSE("Track with pt, eta and phi " << thisEfRecTrack->getTrack()->pt() << ", " << thisEfRecTrack->getTrack()->eta() << " and " << thisEfRecTrack->getTrack()->phi() << " does not have a valid truth pointer");
127
128
129
130 if (bestClusters.empty()) continue;
131
132 if (msgLvl(MSG::DEBUG))
133 {
134 for (auto *thisClusterLink : bestClusters ) {
135 xAOD::CaloCluster* thisCluster = thisClusterLink->getCluster()->getCluster();
136 ATH_MSG_DEBUG("Matched this track to cluster with e,pt, eta and phi " << thisCluster->e() << ", " << thisCluster->pt() << ", " << thisCluster->eta() << " and " << thisCluster->phi());
137 }
138 }
139
140 nMatches++;
141
142 //loop over the matched calorimeter clusters and associate tracks and clusters to each other as needed.
143 for (auto *trkClusLink : bestClusters){
144
145 eflowRecCluster *thisEFRecCluster = trkClusLink->getCluster();
146
148 // Look up whether this cluster is intended for recovery
149 if (std::find(data.clusters.begin(), data.clusters.end(), trkClusLink->getCluster()) == data.clusters.end()) {
150 continue;
151 }
152 }
153
154 eflowTrackClusterLink *trackClusterLink = eflowTrackClusterLink::getInstance(thisEfRecTrack, thisEFRecCluster, ctx);
155 thisEfRecTrack->addClusterMatch(trackClusterLink);
156
157 thisEFRecCluster->addTrackMatch(trackClusterLink);
158 }
159 }
160
161 /* Create 3 types eflowCaloObjects: track-only, cluster-only, track-cluster-link */
162 std::vector<eflowRecCluster *> clusters(data.clusters.begin(), data.clusters.end());
163 if (m_recoverSplitShowers) std::sort(clusters.begin(), clusters.end(), eflowRecCluster::SortDescendingPt());
164 unsigned int nCaloObjects = eflowCaloObjectMaker::makeTrkCluCaloObjects(data.tracks, clusters, data.caloObjects);
165 ATH_MSG_DEBUG("Created " << nCaloObjects << " eflowCaloObjects.");
166 if (msgLvl(MSG::DEBUG)){
167 for (auto thisEFlowCaloObject : *(data.caloObjects)){
168 ATH_MSG_DEBUG("This eflowCaloObject has " << thisEFlowCaloObject->nTracks() << " tracks and " << thisEFlowCaloObject->nClusters() << " clusters ");
169 for (unsigned int count = 0; count < thisEFlowCaloObject->nTracks(); count++){
170 const xAOD::TrackParticle* thisTrack = thisEFlowCaloObject->efRecTrack(count)->getTrack();
171 ATH_MSG_DEBUG("Have track with e, pt, eta and phi of " << thisTrack->e() << ", " << thisTrack->pt() << ", " << thisTrack->eta() << " and " << thisTrack->phi());
172 }
173 for (unsigned int count = 0; count < thisEFlowCaloObject->nClusters(); count++){
174 const xAOD::CaloCluster* thisCluster = thisEFlowCaloObject->efRecCluster(count)->getCluster();
175 ATH_MSG_DEBUG("Have cluster with e, pt, eta and phi of " << thisCluster->e() << ", " << thisCluster->pt() << ", " << thisCluster->eta() << " and " << thisCluster->phi());
176 }
177 }
178 }
179
180 if (!m_recoverSplitShowers) return nMatches;
181 else return nCaloObj;
182}
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
ElementLink< xAOD::TruthParticleContainer > TruthLink
Gaudi::Property< bool > m_recoverSplitShowers
Toggle whether we are recovering split showers or not.
static unsigned int makeTrkCluCaloObjects(eflowRecTrackContainer *eflowTrackContainer, eflowRecClusterContainer *eflowClusterContainer, eflowCaloObjectContainer *caloObjectContainer)
void addTrackMatch(eflowTrackClusterLink *trackMatch)
virtual double pt() const
The transverse momentum ( ) of the particle (negative for negative-energy clusters).
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double e() const
The total energy of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .).
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
virtual double e() const override final
The total energy of the particle.
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:148
int uniqueID(const T &p)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID id)
Returns an attribute accessor corresponding to an AttributeID.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.

◆ PFUnifiedMatchingTool()

PFUnifiedMatchingTool::PFUnifiedMatchingTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 29 of file PFUnifiedMatchingTool.cxx.

28 : base_class(type, name, parent),
29 m_binnedParameters(std::make_unique<eflowEEtaBinnedParameters>())
30{
31}

◆ printAllClusters()

void PFUnifiedMatchingTool::printAllClusters ( const std::vector< eflowRecCluster * > & recClusterVector) const
protectedinherited

Definition at line 231 of file PFUnifiedMatchingTool.cxx.

231 {
232
233 for ( const auto *thisEFRecCluster : recClusterVector){
234 if (thisEFRecCluster->getTrackMatches().empty()) {
235 ATH_MSG_DEBUG("Isolated" << printCluster(thisEFRecCluster->getCluster()));
236 } else {
237 ATH_MSG_DEBUG("Matched" << printCluster(thisEFRecCluster->getCluster()));
238 std::vector<eflowTrackClusterLink*> theTrackLinks = thisEFRecCluster->getTrackMatches();
239 for ( auto *thisTrack : theTrackLinks){
240 ATH_MSG_DEBUG("Matched" << printTrack(thisTrack->getTrack()->getTrack()));
241 }
242 }
243 }
244}
static std::string printTrack(const xAOD::TrackParticle *track)
static std::string printCluster(const xAOD::CaloCluster *cluster)

◆ printCluster()

std::string PFUnifiedMatchingTool::printCluster ( const xAOD::CaloCluster * cluster)
staticprotectedinherited

Definition at line 225 of file PFUnifiedMatchingTool.cxx.

225 {
226 std::stringstream result;
227 result << " cluster with E, eta and phi of " << cluster->e() << ", " << cluster->eta() << " and " << cluster->phi();
228 return result.str();
229}

◆ printTrack()

std::string PFUnifiedMatchingTool::printTrack ( const xAOD::TrackParticle * track)
staticprotectedinherited

Definition at line 219 of file PFUnifiedMatchingTool.cxx.

219 {
220 std::stringstream result;
221 result << " track with E, eta and phi "<< track->e() << ", " << track->eta() << " and " << track->phi();
222 return result.str();
223}

◆ processPFlowData()

StatusCode PFUnifiedMatchingTool::processPFlowData ( const EventContext & ctx,
PFData & thePFData ) const
overridevirtualinherited

Definition at line 59 of file PFUnifiedMatchingTool.cxx.

63{
64
65 if (!data.caloObjects) {
66 ATH_MSG_ERROR("PFData::caloObjects is null; caller must set it before invoking the matching tool");
67 return StatusCode::FAILURE;
68 }
69
70 ATH_MSG_DEBUG("Executing");
71
73 // reset tracks in data and refill only with those needed for split showers
74 data.tracks.clear();
76 }
77
79 // reset clusters in data and refill only with those needed for split showers
80 data.clusters.clear();
82 }
83
84 ATH_MSG_DEBUG("This event has " << data.tracks.size() << " tracks " << data.clusters.size() << " clusters ");
85
86 if (msgLvl(MSG::DEBUG)) printAllClusters(data.clusters);
87
88 unsigned int numMatches = matchAndCreateEflowCaloObj(ctx, data);
89
90 // store numMatches for later use in subtraction tool
91 if (m_recoverSplitShowers) data.nOrigCaloObj = numMatches;
92 else data.nMatches = numMatches;
93
94
95 return StatusCode::SUCCESS;
96}
static void fillClustersToRecover(PFData &data)
static void fillTracksToRecover(PFData &data)
void printAllClusters(const std::vector< eflowRecCluster * > &recClusterVector) const
virtual unsigned int matchAndCreateEflowCaloObj(const EventContext &ctx, PFData &data) const
This matches ID tracks and CaloClusters, and then creates eflowCaloObjects.

Member Data Documentation

◆ m_addCPData

Gaudi::Property<bool> PFUnifiedMatchingTool::m_addCPData {this,"addCPData",false,"Toggle whether to decorate FlowElements with additional data for Combined Performance studies "}
protectedinherited

Toggle whether to decorate eflowRecTrack with additional data for Combined Performance studies.

Definition at line 69 of file PFUnifiedMatchingTool.h.

69{this,"addCPData",false,"Toggle whether to decorate FlowElements with additional data for Combined Performance studies "};

◆ m_binnedParameters

std::unique_ptr<eflowEEtaBinnedParameters> PFUnifiedMatchingTool::m_binnedParameters
protectedinherited

Definition at line 50 of file PFUnifiedMatchingTool.h.

◆ m_caloClusterReadDecorHandleKeyNLeadingTruthParticles

SG::ReadDecorHandleKey<xAOD::CaloClusterContainer> PFUnifiedMatchingTruthTool::m_caloClusterReadDecorHandleKeyNLeadingTruthParticles {this,"CaloClusterReadDecorHandleKey_NLeadingTruthParticles",""}
private

Read handle key to decorate CaloCluster with threeN leading truth particle uniqueID and energy.

Definition at line 27 of file PFUnifiedMatchingTruthTool.h.

27{this,"CaloClusterReadDecorHandleKey_NLeadingTruthParticles",""};

◆ m_nClusterMatchesToUse

Gaudi::Property<int> PFUnifiedMatchingTool::m_nClusterMatchesToUse {this, "nClusterMatchesToUse", 1, "Number of clusters to match to each track"}
protectedinherited

Number of clusters to match to each track if not doing recover split shower subtraction.

Definition at line 66 of file PFUnifiedMatchingTool.h.

66{this, "nClusterMatchesToUse", 1, "Number of clusters to match to each track"};

◆ m_NNEnergyPredictorTool

ToolHandle<PFEnergyPredictorTool> PFUnifiedMatchingTool::m_NNEnergyPredictorTool {this, "NNEnergyPredictorTool", "","Tool for getting predictiing the energy using an ONNX model "}
protectedinherited

Tool for getting predictiing the energy using an ONNX model.

Definition at line 75 of file PFUnifiedMatchingTool.h.

75{this, "NNEnergyPredictorTool", "","Tool for getting predictiing the energy using an ONNX model "};

◆ m_recoverSplitShowers

Gaudi::Property<bool> PFUnifiedMatchingTool::m_recoverSplitShowers {this,"RecoverSplitShowers",false,"Toggle whether we are recovering split showers or not"}
protectedinherited

Toggle whether we are recovering split showers or not.

Definition at line 63 of file PFUnifiedMatchingTool.h.

63{this,"RecoverSplitShowers",false,"Toggle whether we are recovering split showers or not"};

◆ m_subtractor

eflowSubtract::Subtractor PFUnifiedMatchingTool::m_subtractor {}
protectedinherited

Definition at line 72 of file PFUnifiedMatchingTool.h.

72{};

◆ m_theEOverPTool

ToolHandle<IEFlowCellEOverPTool> PFUnifiedMatchingTool::m_theEOverPTool {this, "eflowCellEOverPTool", "eflowCellEOverPTool", "Energy Flow E/P Values and Shower Parameters Tool"}
protectedinherited

Tool for getting e/p values and hadronic shower cell ordering principle parameters.

Definition at line 48 of file PFUnifiedMatchingTool.h.

48{this, "eflowCellEOverPTool", "eflowCellEOverPTool", "Energy Flow E/P Values and Shower Parameters Tool"};

◆ m_theMatchingTool

ToolHandle<PFTrackClusterMatchingTool> PFUnifiedMatchingTool::m_theMatchingTool {this, "PFTrackClusterMatchingTool", "PFTrackClusterMatchingTool/CalObjBldMatchingTool", "The track-cluster matching tool"}
protectedinherited

Default track-cluster matching tool.

Definition at line 56 of file PFUnifiedMatchingTool.h.

56{this, "PFTrackClusterMatchingTool", "PFTrackClusterMatchingTool/CalObjBldMatchingTool", "The track-cluster matching tool"};

◆ m_theMatchingToolForPull_015

ToolHandle<PFTrackClusterMatchingTool> PFUnifiedMatchingTool::m_theMatchingToolForPull_015 {this, "PFTrackClusterMatchingTool_015", "PFTrackClusterMatchingTool/PFPullMatchingTool_015", "The 0.15 track-cluster matching tool to calculate the pull"}
protectedinherited

Definition at line 59 of file PFUnifiedMatchingTool.h.

59{this, "PFTrackClusterMatchingTool_015", "PFTrackClusterMatchingTool/PFPullMatchingTool_015", "The 0.15 track-cluster matching tool to calculate the pull"};

◆ m_theMatchingToolForPull_02

ToolHandle<PFTrackClusterMatchingTool> PFUnifiedMatchingTool::m_theMatchingToolForPull_02 {this, "PFTrackClusterMatchingTool_02", "PFTrackClusterMatchingTool/PFPullMatchingTool_02", "The 0.2 track-cluster matching tool to calculate the pull"}
protectedinherited

Definition at line 60 of file PFUnifiedMatchingTool.h.

60{this, "PFTrackClusterMatchingTool_02", "PFTrackClusterMatchingTool/PFPullMatchingTool_02", "The 0.2 track-cluster matching tool to calculate the pull"};

◆ m_trkpos

std::unique_ptr<PFMatch::TrackEtaPhiInFixedLayersProvider> PFUnifiedMatchingTool::m_trkpos
protectedinherited

Track position provider to be used to preselect clusters.

Definition at line 53 of file PFUnifiedMatchingTool.h.

◆ m_useLegacyEBinIndex

Gaudi::Property<bool> PFUnifiedMatchingTool::m_useLegacyEBinIndex {this, "useLegacyEBinIndex", true, "Toggle whether we use the legacy energy bin index"}
protectedinherited

Further discussion about why this flag exists can be found in https://its.cern.ch/jira/browse/ATLJETMET-1692 and https://indico.cern.ch/event/1388633/contributions/5837876/attachments/2809591/4903439/PFlow_EOverP_Feb2024.pdf The Jira report discusses assorted problems with the treatment of energy bin indexes for the lookup of e/p values.

In order to not change the behaviour of produciton code a legacy option is introduced to allow us to fix the problem in future iterations of e/p derivations.s

Definition at line 85 of file PFUnifiedMatchingTool.h.

85{this, "useLegacyEBinIndex", true, "Toggle whether we use the legacy energy bin index"};

◆ m_useNNEnergy

Gaudi::Property<bool> PFUnifiedMatchingTool::m_useNNEnergy {this, "useNNEnergy", false, "Toggle whether we use the neural net energy"}
protectedinherited

Toggle whether we use the neural net energy.

Definition at line 78 of file PFUnifiedMatchingTool.h.

78{this, "useNNEnergy", false, "Toggle whether we use the neural net energy"};

The documentation for this class was generated from the following files: