ATLAS Offline Software
Loading...
Searching...
No Matches
TauVertexedClusterDecorator.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6
8
12
13
14
16
17 if (std::string(m_seedJet).find("LC") != std::string::npos ||
18 std::string(m_seedJet).find("MLTopo") != std::string::npos) {
19 ATH_MSG_INFO("Set the cluster state to CALIBRATED");
21 }
22 else if (std::string(m_seedJet).find("EM") != std::string::npos) {
23 ATH_MSG_INFO("Set the cluster state to UNCALIBRATED");
25 }
26 else if (! inTrigger()) {
27 ATH_MSG_ERROR("Seed jet " << m_seedJet << " not supported !");
28 return StatusCode::FAILURE;
29 }
30
31 return StatusCode::SUCCESS;
32}
33
34
35
37
38 // Obtain the vertex to correct the cluster
39 const xAOD::Vertex* vertex = tau.vertex();
40
41 std::vector<const xAOD::IParticle*> particleList = tau.clusters();
42
43 std::vector<xAOD::CaloVertexedTopoCluster> vertexedClusterList;
44 for (const xAOD::IParticle* particle : particleList) {
45 const xAOD::CaloCluster* cluster = static_cast<const xAOD::CaloCluster*>(particle);
46
47 if (inTrigger()) { // In trigger, we use the default calibration state
48 if (vertex) {
49 vertexedClusterList.emplace_back(*cluster, vertex->position());
50 }
51 else {
52 vertexedClusterList.emplace_back(*cluster);
53 }
54 }
55 else { // In offline reconstruction, the calibration state is based on the name of seed jet
56 if (vertex) {
57 vertexedClusterList.emplace_back(*cluster, m_clusterState, vertex->position());
58 }
59 else {
60 vertexedClusterList.emplace_back(*cluster, m_clusterState);
61 }
62 }
63 }
64
65 static const SG::Accessor<std::vector<xAOD::CaloVertexedTopoCluster>> vertexedClustersAcc("VertexedClusters");
66 vertexedClustersAcc(tau) = vertexedClusterList;
67
68 return StatusCode::SUCCESS;
69}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
Evaluate cluster kinematics with a different vertex / signal state.
Helper class to provide type-safe access to aux data.
TauRecToolBase(const std::string &name)
bool inTrigger() const
xAOD::CaloCluster::State m_clusterState
Calibration state of cluster.
virtual StatusCode initialize() override
Tool initializer.
TauVertexedClusterDecorator(const std::string &name)
Gaudi::Property< std::string > m_seedJet
virtual StatusCode execute(xAOD::TauJet &tau) const override
Execute - called for each tau candidate.
Class providing the definition of the 4-vector interface.
const Vertex * vertex() const
std::vector< const IParticle * > clusters() const
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:138
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Vertex_v1 Vertex
Define the latest version of the vertex class.
TauJet_v3 TauJet
Definition of the current "tau version".