ATLAS Offline Software
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 
12 #ifndef TrkElectronMaterialMixtureConvolution_H
13 #define TrkElectronMaterialMixtureConvolution_H
14 
16 //
20 //
22 #include "GaudiKernel/ToolHandle.h"
23 
24 namespace Trk {
25 class Layer;
26 class MaterialProperties;
27 
29  : public AthAlgTool
30  , virtual public IMaterialMixtureConvolution
31 {
32 
33 public:
35  {
36  Normal = 0,
37  Preupdate = 1,
38  Postupdate = 2
39  };
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,
57  ParticleHypothesis particleHypothesis =
58  nonInteracting) const override final;
59 
63  const Layer&,
64  PropDirection direction = anyDirection,
65  ParticleHypothesis particleHypothesis =
66  nonInteracting) const override final;
67 
71  const Layer&,
72  PropDirection direction = anyDirection,
73  ParticleHypothesis particleHypothesis =
74  nonInteracting) const override final;
75 
76 private:
78  const Trk::MultiComponentState& inputState,
79  const Trk::Layer& layer,
80  Trk::PropDirection direction,
81  Trk::ParticleHypothesis particleHypothesis,
82  MaterialUpdateType updateType) const;
83 
85 
86  Gaudi::Property<unsigned int> m_maximumNumberOfComponents{
87  this,
88  "MaximumNumberOfComponents",
89  12,
90  "Maximum number of components"
91  };
92 
93  Gaudi::Property<std::string> m_parameterisationFileName{
94  this,
95  "BetheHeitlerParameterisationFileName",
96  "GeantSim_LT01_cdf_nC6_O5.par",
97  "Parametrization of Bethe Heitler material effects"
98  };
99 
100  Gaudi::Property<std::string> m_parameterisationFileNameHighX0{
101  this,
102  "BetheHeitlerParameterisationFileNameHighX0",
103  "GeantSim_GT01_cdf_nC6_O5.par",
104  "Parametrization of Bethe Heitler material effects for high X0"
105  };
106 };
107 
108 } // end Trk namespace
109 
110 #endif
Trk::anyDirection
@ anyDirection
Definition: PropDirection.h:22
Trk::ElectronMaterialMixtureConvolution::initialize
virtual StatusCode initialize() override final
Convolution with full material properties.
Definition: ElectronMaterialMixtureConvolution.cxx:111
Trk::ElectronMaterialMixtureConvolution::Normal
@ Normal
Definition: ElectronMaterialMixtureConvolution.h:36
Trk::ElectronMaterialMixtureConvolution::postUpdate
virtual MultiComponentState postUpdate(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection, ParticleHypothesis particleHypothesis=nonInteracting) const override final
Definition: ElectronMaterialMixtureConvolution.cxx:184
Trk::ElectronMaterialMixtureConvolution::m_maximumNumberOfComponents
Gaudi::Property< unsigned int > m_maximumNumberOfComponents
Definition: ElectronMaterialMixtureConvolution.h:86
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Trk::ElectronMaterialMixtureConvolution::update
virtual MultiComponentState update(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection, ParticleHypothesis particleHypothesis=nonInteracting) const override final
Convolution with pre-measurement-update material properties.
Definition: ElectronMaterialMixtureConvolution.cxx:129
GsfMaterial.h
Trk::ElectronMaterialMixtureConvolution::~ElectronMaterialMixtureConvolution
virtual ~ElectronMaterialMixtureConvolution()
AlgTool initialise method.
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::ElectronMaterialMixtureConvolution::m_materialEffects
ElectronCombinedMaterialEffects m_materialEffects
Definition: ElectronMaterialMixtureConvolution.h:84
Trk::ElectronCombinedMaterialEffects
Definition: ElectronCombinedMaterialEffects.h:26
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
AthAlgTool.h
Trk::ElectronMaterialMixtureConvolution::preUpdate
virtual MultiComponentState preUpdate(std::vector< GsfMaterial::Combined > &, const MultiComponentState &, const Layer &, PropDirection direction=anyDirection, ParticleHypothesis particleHypothesis=nonInteracting) const override final
Convolution with post-measurement-update material properties.
Definition: ElectronMaterialMixtureConvolution.cxx:154
Trk::MultiComponentState
std::vector< ComponentParameters > MultiComponentState
Definition: ComponentParameters.h:27
Trk::Combined
@ Combined
Definition: TrackSummaryTool.h:32
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ElectronMaterialMixtureConvolution::Postupdate
@ Postupdate
Definition: ElectronMaterialMixtureConvolution.h:38
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
Trk::nonInteracting
@ nonInteracting
Definition: ParticleHypothesis.h:25
ElectronCombinedMaterialEffects.h
ComponentParameters.h
Definition of component parameters for use in a mixture of many components. In this regime each track...
Trk::ElectronMaterialMixtureConvolution
Definition: ElectronMaterialMixtureConvolution.h:31
GsfMaterial
Collect Structs we use for material effects in GSF and their meaning in one place.
Definition: GsfMaterial.h:19
Trk::IMaterialMixtureConvolution
Definition: IMaterialMixtureConvolution.h:30
Trk::ElectronMaterialMixtureConvolution::m_parameterisationFileNameHighX0
Gaudi::Property< std::string > m_parameterisationFileNameHighX0
Definition: ElectronMaterialMixtureConvolution.h:100
AthAlgTool
Definition: AthAlgTool.h:26
IMaterialMixtureConvolution.h
Abstract base class for convolution of material effects.
Trk::ElectronMaterialMixtureConvolution::MaterialUpdateType
MaterialUpdateType
Definition: ElectronMaterialMixtureConvolution.h:35
Trk::ElectronMaterialMixtureConvolution::ElectronMaterialMixtureConvolution
ElectronMaterialMixtureConvolution(const std::string &, const std::string &, const IInterface *)
Destructor.
Definition: ElectronMaterialMixtureConvolution.cxx:98
Trk::ElectronMaterialMixtureConvolution::m_parameterisationFileName
Gaudi::Property< std::string > m_parameterisationFileName
Definition: ElectronMaterialMixtureConvolution.h:93
Trk::ElectronMaterialMixtureConvolution::Preupdate
@ Preupdate
Definition: ElectronMaterialMixtureConvolution.h:37
Trk::Layer
Definition: Layer.h:73