ATLAS Offline Software
eflowTrackCaloExtensionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef EFLOWTRACKCALOEXTENSIONTOOL_H_
6 #define EFLOWTRACKCALOEXTENSIONTOOL_H_
7 
8 /********************************************************************
9 
10  NAME: eflowTrackCaloExtensionTool.h
11  PACKAGE: offline/Reconstruction/eflowRec
12 
13  AUTHORS: T.Guttenberger
14  CREATED: 19th September, 2014
15 
16  ********************************************************************/
17 
20 #include "GaudiKernel/ToolHandle.h"
22 #include "CLHEP/Units/SystemOfUnits.h"
23 
25 
27 namespace Trk {
28 
29 class TrackParametersIdHelper;
30 }
32 
33 static const InterfaceID IID_eflowTrackCaloExtensionTool("eflowTrackCaloExtensionTool", 1, 0);
34 
39 
40 public:
41  eflowTrackCaloExtensionTool(const std::string& type, const std::string& name,
42  const IInterface* parent);
44 
45  static const InterfaceID& interfaceID();
46 
47  virtual StatusCode initialize() override;
48  virtual std::unique_ptr<eflowTrackCaloPoints> execute(const xAOD::TrackParticle* track) const override;
49  virtual StatusCode finalize() override;
50 
51 private:
52  const float m_invGeV = 1./CLHEP::GeV;
53 
54  eflowCalo::LAYER getLayer(const Trk::CurvilinearParameters* clParameters) const;
55 
56  ToolHandle<Trk::IParticleCaloExtensionTool> m_theTrackExtrapolatorTool;
57 
58  std::unique_ptr<Trk::TrackParametersIdHelper> m_trackParametersIdHelper;
59 
60  //output particle calo extension collection
62  "PFParticleCache", "ParticleCaloExtension", "Name of the particle measurement extrapolation cache"};
63 
64  Gaudi::Property<bool> m_useOldCalo{this,"useOldCalo",false,"If true, it uses the CaloExtensionTool for calculating track extrapolation. Otherwise, it allows the code to read from the cache created by CaloExtensionBuilderalg."};
65 
67  ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool_TrackCaloExtension","","Monitoring tool"};
68 
69 };
70 
71 inline const InterfaceID& eflowTrackCaloExtensionTool::interfaceID() {
72  return IID_eflowTrackCaloExtensionTool;
73 }
74 
75 #endif /* EFLOWTRACKCALOEXTENSIONTOOL_H_ */
eflowTrackCaloExtensionTool::m_theTrackExtrapolatorTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_theTrackExtrapolatorTool
Definition: eflowTrackCaloExtensionTool.h:56
eflowTrackCaloPoints
This class stores a map of calorimeter layers and track parameters (the result of the track extrapola...
Definition: eflowTrackCaloPoints.h:30
eflowTrackCaloExtensionTool
Inherits from eflowTrackExtrapolatorBaseAlgTool and AthAlgTool.
Definition: eflowTrackCaloExtensionTool.h:38
eflowTrackCaloExtensionTool::m_invGeV
const float m_invGeV
Definition: eflowTrackCaloExtensionTool.h:52
eflowTrackExtrapolatorBaseAlgTool
Definition: eflowTrackExtrapolatorBaseAlgTool.h:28
eflowTrackCaloExtensionTool::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Online monitoring tool for recording histograms of the alg in action.
Definition: eflowTrackCaloExtensionTool.h:67
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
CaloCell_ID.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
eflowTrackCaloExtensionTool::interfaceID
static const InterfaceID & interfaceID()
Definition: eflowTrackCaloExtensionTool.h:71
eflowTrackCaloExtensionTool::getLayer
eflowCalo::LAYER getLayer(const Trk::CurvilinearParameters *clParameters) const
Definition: eflowTrackCaloExtensionTool.cxx:158
eflowTrackCaloExtensionTool::eflowTrackCaloExtensionTool
eflowTrackCaloExtensionTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: eflowTrackCaloExtensionTool.cxx:32
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::CurvilinearParametersT
Definition: CurvilinearParametersT.h:48
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
eflowTrackCaloExtensionTool::initialize
virtual StatusCode initialize() override
Definition: eflowTrackCaloExtensionTool.cxx:43
IParticleCaloExtensionTool.h
eflowCalo::LAYER
LAYER
Definition: eflowCaloRegions.h:36
eflowTrackCaloExtensionTool::m_trackParametersIdHelper
std::unique_ptr< Trk::TrackParametersIdHelper > m_trackParametersIdHelper
Definition: eflowTrackCaloExtensionTool.h:58
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
eflowTrackCaloExtensionTool::finalize
virtual StatusCode finalize() override
Definition: eflowTrackCaloExtensionTool.cxx:153
eflowTrackExtrapolatorBaseAlgTool.h
eflowTrackCaloExtensionTool::m_ParticleCacheKey
SG::ReadHandleKey< CaloExtensionCollection > m_ParticleCacheKey
Definition: eflowTrackCaloExtensionTool.h:61
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
eflowTrackCaloExtensionTool::execute
virtual std::unique_ptr< eflowTrackCaloPoints > execute(const xAOD::TrackParticle *track) const override
Definition: eflowTrackCaloExtensionTool.cxx:68
eflowTrackCaloExtensionTool::m_useOldCalo
Gaudi::Property< bool > m_useOldCalo
Definition: eflowTrackCaloExtensionTool.h:64
AthAlgTool
Definition: AthAlgTool.h:26
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
eflowTrackCaloExtensionTool::~eflowTrackCaloExtensionTool
~eflowTrackCaloExtensionTool()