ATLAS Offline Software
Loading...
Searching...
No Matches
ElectronMaterialMixtureConvolution.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
11
12#ifndef TrkElectronMaterialMixtureConvolution_H
13#define TrkElectronMaterialMixtureConvolution_H
14
16//
20//
22#include "GaudiKernel/ToolHandle.h"
23
24namespace Trk {
25class Layer;
27
29 : public AthAlgTool
30 , virtual public IMaterialMixtureConvolution
31{
32
33public:
40
42 ElectronMaterialMixtureConvolution(const std::string&,
43 const std::string&,
44 const IInterface*);
45
48
50 virtual StatusCode initialize() override final;
51
55 const Layer&,
56 PropDirection direction = anyDirection) const override final;
57
61 const Layer&,
62 PropDirection direction = anyDirection) const override final;
63
67 const Layer&,
68 PropDirection direction = anyDirection) const override final;
69
70 virtual Trk::ParticleHypothesis particleHypothesis() const override final {
71 return Trk::electron;
72 }
73
74 private:
75 Trk::MultiComponentState update(std::vector<GsfMaterial::Combined>&,
76 const Trk::MultiComponentState& inputState,
77 const Trk::Layer& layer,
78 Trk::PropDirection direction,
79 double updateFactor) const;
80
81 //pimpl
82 std::unique_ptr<ElectronCombinedMaterialEffects> m_materialEffects;
83
84 Gaudi::Property<unsigned int> m_maximumNumberOfComponents{
85 this,
86 "MaximumNumberOfComponents",
87 12,
88 "Maximum number of components"
89 };
90
91 Gaudi::Property<std::string> m_parameterisationFileName{
92 this,
93 "BetheHeitlerParameterisationFileName",
94 "GeantSim_LT01_cdf_nC6_O5.par",
95 "Parametrization of Bethe Heitler material effects"
96 };
97
98 Gaudi::Property<std::string> m_parameterisationFileNameHighX0{
99 this,
100 "BetheHeitlerParameterisationFileNameHighX0",
101 "GeantSim_GT01_cdf_nC6_O5.par",
102 "Parametrization of Bethe Heitler material effects for high X0"
103 };
104};
105
106} // end Trk namespace
107
108#endif
Definition of component parameters for use in a mixture of many components. In this regime each track...
Abstract base class for convolution of material effects.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
virtual ~ElectronMaterialMixtureConvolution()
AlgTool initialise method.
virtual MultiComponentState preUpdate(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection) const override final
Convolution with post-measurement-update material properties.
virtual MultiComponentState update(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection) const override final
Convolution with pre-measurement-update material properties.
virtual Trk::ParticleHypothesis particleHypothesis() const override final
std::unique_ptr< ElectronCombinedMaterialEffects > m_materialEffects
virtual StatusCode initialize() override final
Convolution with full material properties.
ElectronMaterialMixtureConvolution(const std::string &, const std::string &, const IInterface *)
Destructor.
virtual MultiComponentState postUpdate(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection) const override final
The particle hypothesis we implement material effects for.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Material with information about thickness of material.
Collect Structs we use for material effects in GSF and their meaning in one place.
Definition GsfMaterial.h:19
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
@ anyDirection
std::vector< ComponentParameters > MultiComponentState
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
STL namespace.