ATLAS Offline Software
Loading...
Searching...
No Matches
MuidCaloMaterialParam.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
20
21#ifndef MUIDCALOSCATTERINGTOOLS_MUIDCALOMATERIALPARAM_H
22#define MUIDCALOSCATTERINGTOOLS_MUIDCALOMATERIALPARAM_H
23
24//<<<<<< INCLUDES >>>>>>
25
26#include <vector>
27
29#include "GaudiKernel/ToolHandle.h"
30#include "MuidEvent/CaloLayer.h"
33
34//<<<<<< CLASS DECLARATIONS >>>>>>
35
36namespace Rec {
37
39 public:
40 MuidCaloMaterialParam(const std::string& type, const std::string& name, const IInterface* parent);
41 virtual ~MuidCaloMaterialParam() = default; // destructor
42
43 StatusCode initialize() override;
44
47 const Trk::Surface* innerSurface(double eta) const override;
48 const Trk::Surface* middleSurface(double eta) const override;
49 const Trk::Surface* outerSurface(double eta) const override;
50
53 double radiationThickness(double eta) const override;
54
57 std::unique_ptr<Trk::TrackStateOnSurface> trackStateOnSurface(const Trk::TrackParameters& parameters) const override;
58
59 private:
60 // private methods
61 std::unique_ptr<Trk::Surface> createSurface(double eta, double r, double z, double cotThetaWidth) const;
62 StatusCode defineCaloMaterial();
63
64 // helpers, managers, tools
65 ToolHandle<Trk::IGeometryProcessor> m_surfaceDisplayTool{
66 this,
67 "SurfaceDisplayTool",
68 "Trk::TrackingVolumeDisplayer/TrackingVolumeDisplayer",
69 };
70
71 // configuration
74
75 // data from geantino map - organized at initialize
76 double m_binSize;
77 std::vector<std::unique_ptr<const CaloLayer>> m_caloInnerLayers;
78 std::vector<std::unique_ptr<const CaloLayer>> m_caloOuterLayers;
79 std::vector<std::unique_ptr<const Trk::Surface>> m_innerBackwardSurfaces;
80 std::vector<std::unique_ptr<const Trk::Surface>> m_innerForwardSurfaces;
81 std::vector<std::unique_ptr<const Trk::Surface>> m_middleBackwardSurfaces;
82 std::vector<std::unique_ptr<const Trk::Surface>> m_middleForwardSurfaces;
83 const unsigned m_numberBins;
84 std::vector<std::unique_ptr<const Trk::Surface>> m_outerBackwardSurfaces;
85 std::vector<std::unique_ptr<const Trk::Surface>> m_outerForwardSurfaces;
86 std::vector<double> m_radiationThickness;
87 };
88
89} // namespace Rec
90
91#endif // MUIDCALOSCATTERINGTOOLS_MUIDCALOMATERIALPARAM_H
Scalar eta() const
pseudorapidity method
#define z
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Base class for MuidCaloMaterialParam AlgTool.
bool m_produceSurfacesDisplay
if true (set in jobOptions), use TrackingVolumeDisplayer to produce ROOT output.
std::vector< std::unique_ptr< const Trk::Surface > > m_middleBackwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_innerBackwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_outerBackwardSurfaces
std::vector< double > m_radiationThickness
const Trk::Surface * middleSurface(double eta) const override
std::vector< std::unique_ptr< const CaloLayer > > m_caloInnerLayers
std::vector< std::unique_ptr< const CaloLayer > > m_caloOuterLayers
const Trk::Surface * innerSurface(double eta) const override
IMuidCaloMaterialParam interface: return inner/middle/outer surface corresponding to eta value.
const Trk::Surface * outerSurface(double eta) const override
ToolHandle< Trk::IGeometryProcessor > m_surfaceDisplayTool
std::unique_ptr< Trk::TrackStateOnSurface > trackStateOnSurface(const Trk::TrackParameters &parameters) const override
IMuidCaloMaterialParam interface: TrackStateOnSurface for parameters at a scattering surface.
std::vector< std::unique_ptr< const Trk::Surface > > m_middleForwardSurfaces
std::unique_ptr< Trk::Surface > createSurface(double eta, double r, double z, double cotThetaWidth) const
double radiationThickness(double eta) const override
IMuidCaloMaterialParam interface: calorimeter layer radiation thickness corresponding to eta value.
std::vector< std::unique_ptr< const Trk::Surface > > m_outerForwardSurfaces
MuidCaloMaterialParam(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< std::unique_ptr< const Trk::Surface > > m_innerForwardSurfaces
virtual ~MuidCaloMaterialParam()=default
Abstract Base Class for tracking surfaces.
int r
Definition globals.cxx:22
Gaudi Tools.
ParametersBase< TrackParametersDim, Charged > TrackParameters