ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
RecoTools
TrackToCalo
src
CaloExtensionBuilderAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
/********************************************************************
6
NAME: CaloExtensionBuilderAlg
7
PACKAGE: offline/Reconstruction/RecoTools/TrackToCalo/CaloExtensionBuilderAlg
8
9
AUTHORS: Anastopoulos/Capriles
10
PURPOSE: Performs Calo Extension for all selected tracks
11
**********************************************************************/
12
#include "
CaloExtensionBuilderAlg.h
"
13
//
14
#include "
StoreGate/ReadHandle.h
"
15
#include "
StoreGate/WriteHandle.h
"
16
#include "
VxVertex/RecVertex.h
"
17
#include "
VxVertex/VxCandidate.h
"
18
#include "
xAODTracking/TrackParticle.h
"
19
#include "
xAODTracking/TrackParticleAuxContainer.h
"
20
#include "
xAODTracking/TrackParticleContainer.h
"
21
#include "
xAODTracking/Vertex.h
"
22
#include "
xAODTracking/VertexContainer.h
"
23
24
// std includes
25
#include <algorithm>
26
#include <cmath>
27
#include <memory>
28
29
StatusCode
30
Trk::CaloExtensionBuilderAlg::initialize
()
31
{
32
ATH_CHECK
(
m_particleCaloExtensionTool
.retrieve());
33
ATH_CHECK
(
m_ParticleCacheKey
.initialize());
34
ATH_CHECK
(
m_TrkPartContainerKey
.initialize());
35
ATH_CHECK
(
m_trkLinkKey
.initialize());
36
return
StatusCode::SUCCESS;
37
}
38
39
StatusCode
40
Trk::CaloExtensionBuilderAlg::execute
(
const
EventContext& ctx)
const
41
{
42
/*
43
* We want to extrapolate everything bar the the TRT-alone
44
*/
45
SG::ReadHandle<xAOD::TrackParticleContainer>
tracks(
m_TrkPartContainerKey
,
46
ctx);
47
if
(!tracks.
isValid
()) {
48
ATH_MSG_FATAL
(
"Failed to retrieve TrackParticle container: "
49
<<
m_TrkPartContainerKey
.key());
50
return
StatusCode::FAILURE;
51
}
52
// creating and saving the calo extension collection
53
SG::WriteHandle<CaloExtensionCollection>
lastCache(
m_ParticleCacheKey
, ctx);
54
ATH_CHECK
(lastCache.
record
(std::make_unique<CaloExtensionCollection>()));
55
56
// set everything to false
57
const
xAOD::TrackParticleContainer
* ptrTracks = tracks.
cptr
();
58
std::vector<bool> mask(ptrTracks->
size
(),
false
);
59
// set to true if 500 MeV and above
60
// or not TRT-alone
61
for
(
const
auto
* track : *tracks) {
62
if
(track->pt() < 500) {
63
continue
;
64
}
65
// Cut out TRT alone, but do it for all else
66
if
(track->patternRecoInfo().test(
xAOD::TRTStandalone
)) {
67
continue
;
68
}
69
mask[track->index()] =
true
;
70
}
71
72
ATH_CHECK
(
m_particleCaloExtensionTool
->caloExtensionCollection(
73
ctx, *ptrTracks, mask, *lastCache));
74
75
return
StatusCode::SUCCESS;
76
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
CaloExtensionBuilderAlg.h
TrackParticleContainer.h
TrackParticle.h
Vertex.h
RecVertex.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
TrackParticleAuxContainer.h
VertexContainer.h
VxCandidate.h
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
Trk::CaloExtensionBuilderAlg::m_TrkPartContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkPartContainerKey
input Track collection and vertex
Definition
CaloExtensionBuilderAlg.h:76
Trk::CaloExtensionBuilderAlg::initialize
virtual StatusCode initialize() override final
Definition
CaloExtensionBuilderAlg.cxx:30
Trk::CaloExtensionBuilderAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition
CaloExtensionBuilderAlg.cxx:40
Trk::CaloExtensionBuilderAlg::m_trkLinkKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trkLinkKey
Definition
CaloExtensionBuilderAlg.h:82
Trk::CaloExtensionBuilderAlg::m_particleCaloExtensionTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_particleCaloExtensionTool
the Calo Extension tool
Definition
CaloExtensionBuilderAlg.h:61
Trk::CaloExtensionBuilderAlg::m_ParticleCacheKey
SG::WriteHandleKey< CaloExtensionCollection > m_ParticleCacheKey
output particle calo extension collection
Definition
CaloExtensionBuilderAlg.h:68
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
xAOD::TRTStandalone
@ TRTStandalone
TRT Standalone.
Definition
TrackingPrimitives.h:126
Generated on
for ATLAS Offline Software by
1.17.0