ATLAS Offline Software
ITrackDepositInCaloTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALOTRKMUIDTOOLS_ITRACKDEPOSITINCALOTOOL_H
6 #define CALOTRKMUIDTOOLS_ITRACKDEPOSITINCALOTOOL_H
7 
9 #include "CaloEvent/CaloCell.h"
11 #include "GaudiKernel/IAlgTool.h"
12 #include "GaudiKernel/StatusCode.h"
15 #include "TrkTrack/Track.h"
18 
19 class ITrackDepositInCaloTool : virtual public IAlgTool {
24 public:
25  enum CaloSurfaceType { Entrance = 0, Middle = 1, Exit = 2, Inside = 3, Outside = 4 };
26  virtual ~ITrackDepositInCaloTool() = default;
27 
28  static const InterfaceID& interfaceID() {
29  static const InterfaceID IID_ITrackDepositInCaloTool("ITrackDepositInCaloTool", 1, 0);
30  return IID_ITrackDepositInCaloTool;
31  }
32 
36  virtual std::vector<DepositInCalo> deposits(const Trk::TrackParameters* par,
37  const CaloCellContainer* cellContainer = nullptr) const = 0;
42  virtual std::vector<DepositInCalo> getDeposits(const Trk::TrackParameters* par,
43  const CaloCellContainer* caloCellCont = nullptr) const = 0;
44 
45  virtual std::vector<DepositInCalo> getDeposits(const xAOD::TrackParticle* tp, const CaloCellContainer* caloCellCont = nullptr,
46  const CaloExtensionCollection* extensionCache = nullptr) const = 0;
47 
53  virtual Trk::Surface* createSurface(const CaloDetDescriptor* descr, CaloSurfaceType type) const = 0;
57  virtual double calcEnergy(const Trk::TrackParameters* par, const Trk::ParticleHypothesis& particleHypo) const = 0;
58 
62  typedef std::map<double, std::vector<const CaloDetDescriptor*> > CaloLayerMap;
63  typedef std::map<double, std::vector<const CaloDetDescriptor*> >::const_iterator CaloLayerMapIt;
64 };
65 
66 #endif
TrackParameters.h
ParticleTest.tp
tp
Definition: ParticleTest.py:25
CaloCell.h
Track.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
CaloDetDescriptor.h
Definition of CaloDetDescriptor.
DepositInCalo.h
python.TransformConfig.descr
descr
print "%s.properties()" % self.__name__
Definition: TransformConfig.py:360
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::BoundaryCheckResult::Outside
@ Outside
with the insensitive area of an active element
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloExtensionCollection.h
TrackParticle.h
CaloDetDescriptor
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...
Definition: CaloDetDescriptor.h:58
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75