ATLAS Offline Software
VertexCaloIsolation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // VertexCaloIsolation.h by Matteo Bedognetti
8 //
9 // This code is based on CaloIsolationTool of IsolationTools package
10 //
11 // Etcone is determined as a topoCluster-isolation value minus Energy Density (ED) correction and minus the energy depositions of the muons
12 // Muon's energy deposition is already stored in side the xAOD::Muon objects, but the muon-clusters are used to correct for the fact that they muons may have overlapping clusters
13 // The muon-clusters are stored as well in connection with the muons themselves
14 //
15 // The idea of comparing topoClusters with muon-clusters to decide what part of the muon's deposition is of
16 // importance had to be abandoned because topCluster cells are not present in xAOD
17 //
18 // It enforces the fact that for muons no core-surface is removed for the energy-density correction (thus the corrections are independent from each other)
19 //
20 // "isReliable" flag reports of each isolation value if all particles crossing the cone have been correctly corrected for.
21 // In the case of 2mu+ 1 track it mirrors the fact that the track does not extrapolate into the cone (as tracks have no muon-cluster from which to determine the core-correction)
22 //
23 #ifndef DERIVATIONFRAMEWORK_VertexCaloIsolation_H
24 #define DERIVATIONFRAMEWORK_VertexCaloIsolation_H
25 
26 #include <string>
27 
31 //#include "MuonIdHelpers/MuonIdHelperTool.h"
32 //#include "IsolationTool/CaloIsolationTool.h"
33 //#include "TrkCaloExtension/CaloExtension.h"
34 
37 
38 //#include "TrackToCalo/CaloCellCollector.h"
39 #include "xAODBPhys/BPhysHelper.h"
40 //#include "xAODPrimitives/IsolationType.h" //
41 
42 
45 namespace DerivationFramework {
46 
48  public:
49  VertexCaloIsolation(const std::string& t, const std::string& n, const IInterface* p);
50 
53 
54  StatusCode addBranches() const;
55  bool extrapolateTrack(TLorentzVector& extr_tp, const xAOD::IParticle& tp) const;
56  bool extrapolateMuon(TLorentzVector& extr_tp, const xAOD::CaloCluster* cluster) const;
58 
59 
60  private:
61 
62  //ToolHandle<xAOD::ICaloCellIsolationTool> m_caloIsoTool;
63  ToolHandle<xAOD::ICaloTopoClusterIsolationTool> m_caloIsoTool;
64  std::string m_trackContainerName;
65  std::string m_vertexContainerName;
67  std::string m_cellContainerName;
68  std::string m_muonContainerName;
69  ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool;
70  std::vector<unsigned int> m_cones; //I cannot use xAOD::Iso::IsolationType as a type here, as it clashes with setProperty()
71  std::vector<std::string> m_passFlags;
72 
73 
76 
78 
79 
80 
81  };
82 }
83 
84 #endif
85 
IAugmentationTool.h
DerivationFramework::VertexCaloIsolation::m_caloClusterContainerName
std::string m_caloClusterContainerName
Definition: VertexCaloIsolation.h:66
DerivationFramework::VertexCaloIsolation::m_vertexContainerName
std::string m_vertexContainerName
Definition: VertexCaloIsolation.h:65
DerivationFramework::VertexCaloIsolation::VertexCaloIsolation
VertexCaloIsolation(const std::string &t, const std::string &n, const IInterface *p)
Definition: VertexCaloIsolation.cxx:59
ParticleTest.tp
tp
Definition: ParticleTest.py:25
DerivationFramework::VertexCaloIsolation::initialize
StatusCode initialize()
Definition: VertexCaloIsolation.cxx:93
DerivationFramework::VertexCaloIsolation::m_caloIsoTool
ToolHandle< xAOD::ICaloTopoClusterIsolationTool > m_caloIsoTool
Definition: VertexCaloIsolation.h:63
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
DerivationFramework::VertexCaloIsolation::m_passFlags
std::vector< std::string > m_passFlags
Definition: VertexCaloIsolation.h:71
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DerivationFramework::VertexCaloIsolation
Definition: VertexCaloIsolation.h:47
DerivationFramework::VertexCaloIsolation::m_trackContainerName
std::string m_trackContainerName
Definition: VertexCaloIsolation.h:64
DerivationFramework::VertexCaloIsolation::m_vertexType
int m_vertexType
Definition: VertexCaloIsolation.h:77
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
ICaloTopoClusterIsolationTool.h
DerivationFramework::VertexCaloIsolation::m_sigmaCaloNoiseCut
float m_sigmaCaloNoiseCut
Number of sigma for calo cell noise cut.
Definition: VertexCaloIsolation.h:75
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
DerivationFramework::VertexCaloIsolation::finalize
StatusCode finalize()
Definition: VertexCaloIsolation.cxx:122
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::BPhysHelper::pv_type
pv_type
: Enum type of the PV
Definition: BPhysHelper.h:475
DerivationFramework::VertexCaloIsolation::extrapolateMuon
bool extrapolateMuon(TLorentzVector &extr_tp, const xAOD::CaloCluster *cluster) const
Definition: VertexCaloIsolation.cxx:499
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
DerivationFramework::VertexCaloIsolation::extrapolateTrack
bool extrapolateTrack(TLorentzVector &extr_tp, const xAOD::IParticle &tp) const
Definition: VertexCaloIsolation.cxx:458
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::VertexCaloIsolation::makeSlyTrack
xAOD::TrackParticle & makeSlyTrack(xAOD::TrackParticle &, const TLorentzVector &candidate, const xAOD::Vertex *vertex, xAOD::BPhysHelper::pv_type vertexType) const
Definition: VertexCaloIsolation.cxx:530
DerivationFramework::VertexCaloIsolation::addBranches
StatusCode addBranches() const
Pass the thinning service
Definition: VertexCaloIsolation.cxx:130
xAOD::vertexType
vertexType
Definition: Vertex_v1.cxx:166
BPhysHelper.h
: B-physics xAOD helpers.
IParticleCaloExtensionTool.h
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::VertexCaloIsolation::m_caloExtTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtTool
Definition: VertexCaloIsolation.h:69
DerivationFramework::VertexCaloIsolation::m_cones
std::vector< unsigned int > m_cones
Definition: VertexCaloIsolation.h:70
DerivationFramework::VertexCaloIsolation::m_cellContainerName
std::string m_cellContainerName
Definition: VertexCaloIsolation.h:67
DerivationFramework::VertexCaloIsolation::m_muonContainerName
std::string m_muonContainerName
Definition: VertexCaloIsolation.h:68
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
AthAlgTool
Definition: AthAlgTool.h:26