ATLAS Offline Software
TRT_PAI_Process.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRT_PAI_Process_h
6 #define TRT_PAI_Process_h
7 
8 #include "GaudiKernel/ServiceHandle.h"
9 #include "GaudiKernel/ToolHandle.h"
10 
12 #include "TRT_PAI_gasMixture.h"
13 
15 
16 #include <vector>
17 #include <string>
18 
19 namespace CLHEP {
20  class HepRandomEngine;
21 }
22 
42 class TRT_PAI_Process final : public extends<AthAlgTool, ITRT_PAITool> {
43 
44  public:
45 
49  TRT_PAI_Process( const std::string& type,
50  const std::string& name,
51  const IInterface* parent );
61  virtual StatusCode initialize() override final;
62 
63  virtual StatusCode finalize() override final;
64 
73  virtual double GetMeanFreePath(double scaledKineticEnergy,
74  double squaredCharge) const override final;
85  virtual double GetEnergyTransfer(double scaledKineticEnergy, CLHEP::HepRandomEngine *rndmEngine) const override final;
86 
87  private:
88  // Constants that define the span and granularity of the tables:
89  const unsigned int m_nTabulatedGammaValues{56};
90  const double m_gamExpMin{-2.}; // Min Lorentz gamma: 1+10^(m_gamExpMin)
91  const double m_gamExpMax{5.}; // Max Lorentz gamma: 1+10^(m_gamExpMax)
92  const double m_deltaGamExp{};
93 
94  // Arrays to hold tables:
95  std::vector<float> m_en_array;
96  std::vector< std::vector<float> > m_fn_array;
97  std::vector<float> m_dndx;
99 
100 
104  double ScaledEkin2GamVarTab(double scaledKineticEnergy) const;
105 
106  std::string m_gasType{"Auto"};
107 
108 };
109 
110 #endif
TRT_PAI_Process::m_en_array
std::vector< float > m_en_array
Definition: TRT_PAI_Process.h:95
TRT_PAI_gasMixture
Gas mixture = mixture of gas components.
Definition: TRT_PAI_gasMixture.h:18
TRT_PAI_Process
The Photon Absorption Ionisation model used for the ionisation in the TRT.
Definition: TRT_PAI_Process.h:42
TRT_PAI_Process::m_trtgas
TRT_PAI_gasMixture * m_trtgas
Definition: TRT_PAI_Process.h:98
TRT_PAI_Process::ScaledEkin2GamVarTab
double ScaledEkin2GamVarTab(double scaledKineticEnergy) const
Converting Lorentz gamma to table index (well, double)
Definition: TRT_PAI_Process.cxx:240
TRT_PAI_Process::m_gamExpMin
const double m_gamExpMin
Definition: TRT_PAI_Process.h:90
TRT_PAI_Process::m_nTabulatedGammaValues
const unsigned int m_nTabulatedGammaValues
Definition: TRT_PAI_Process.h:89
ITRT_PAITool.h
TRT_PAI_Process::finalize
virtual StatusCode finalize() override final
Definition: TRT_PAI_Process.cxx:234
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TRT_PAI_Process::GetEnergyTransfer
virtual double GetEnergyTransfer(double scaledKineticEnergy, CLHEP::HepRandomEngine *rndmEngine) const override final
Get the energy transferred from the charged particle to the gas (CLHEP units).
Definition: TRT_PAI_Process.cxx:278
TRT_PAI_Process::initialize
virtual StatusCode initialize() override final
Initialization of the PAI model:
Definition: TRT_PAI_Process.cxx:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TRT_PAI_Process::m_dndx
std::vector< float > m_dndx
Definition: TRT_PAI_Process.h:97
TRT_PAI_Process::m_gasType
std::string m_gasType
Definition: TRT_PAI_Process.h:106
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TRT_PAI_Process::GetMeanFreePath
virtual double GetMeanFreePath(double scaledKineticEnergy, double squaredCharge) const override final
Get the mean free path in gas (CLHEP units)
Definition: TRT_PAI_Process.cxx:247
TRT_PAI_Process::m_fn_array
std::vector< std::vector< float > > m_fn_array
Definition: TRT_PAI_Process.h:96
TRT_PAI_gasMixture.h
TRT_PAI_Process::m_deltaGamExp
const double m_deltaGamExp
Definition: TRT_PAI_Process.h:92
TRT_PAI_Process::m_gamExpMax
const double m_gamExpMax
Definition: TRT_PAI_Process.h:91
TRT_PAI_Process::TRT_PAI_Process
TRT_PAI_Process(const std::string &type, const std::string &name, const IInterface *parent)
Not much action.
Definition: TRT_PAI_Process.cxx:33