ATLAS Offline Software
Loading...
Searching...
No Matches
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
19namespace CLHEP {
20 class HepRandomEngine;
21}
22
41
42class 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
const double m_deltaGamExp
TRT_PAI_gasMixture * m_trtgas
std::string m_gasType
TRT_PAI_Process(const std::string &type, const std::string &name, const IInterface *parent)
Not much action.
virtual StatusCode finalize() override final
double ScaledEkin2GamVarTab(double scaledKineticEnergy) const
Converting Lorentz gamma to table index (well, double)
virtual double GetEnergyTransfer(double scaledKineticEnergy, CLHEP::HepRandomEngine *rndmEngine) const override final
Get the energy transferred from the charged particle to the gas (CLHEP units).
std::vector< float > m_dndx
std::vector< std::vector< float > > m_fn_array
virtual StatusCode initialize() override final
Initialization of the PAI model:
virtual double GetMeanFreePath(double scaledKineticEnergy, double squaredCharge) const override final
Get the mean free path in gas (CLHEP units)
const double m_gamExpMax
std::vector< float > m_en_array
const unsigned int m_nTabulatedGammaValues
const double m_gamExpMin
Gas mixture = mixture of gas components.