ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetDigitization
PixelDigitization
src
BichselData.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef BichselData_h
5
#define BichselData_h
6
//
7
#include <vector>
8
#include <utility>
//std::pair
9
#include <cstddef>
//size_t
10
11
//=============================
12
// C U S T O M S T R U C T
13
//=============================
14
struct
BichselData
{
15
//publicly accessible data
16
std::vector<double>
logBetaGammaVector
;
17
std::vector<std::vector<double> >
logCollisionEnergyVectorOfVector
;
// ColE = CollisionEnergy in eV
18
std::vector<std::vector<double> >
logIntegratedCrossSectionsVectorOfVector
;
// IntX = Integrated Xsection. The unit doesn't matter
19
std::vector<double>
logHighestCrossSectionsVector
;
// upper bound of log10(IntX)
20
//methods
21
//
22
bool
empty
()
const
{
return
logBetaGammaVector
.empty();}
23
size_t
size
()
const
{
return
logBetaGammaVector
.size();}
24
double
lastBetaGammaValue
()
const
;
25
void
addNewLogBetaGamma
(
double
logBetaGamma);
26
void
addEntry
(
double
logBetaGamma,
double
logCollisionEnergy,
double
logIntegratedCrossSection);
27
void
updateAfterLastEntry
();
28
//
29
std::pair<int, int>
getBetaGammaIndices
(
double
BetaGammaLog10)
const
;
// get beta-gamma index. This is so commonly used by other functions that a caching would be beneficial
30
double
interpolateCollisionEnergy
(std::pair<int, int> indices_BetaGammaLog10,
double
IntXLog10)
const
;
31
double
interpolateCollisionEnergy
(
double
BetaGammaLog10,
double
IntXLog10)
const
;
// return ColE NOT ColELog10
32
double
interpolateCrossSection
(std::pair<int, int> indices_BetaGammaLog10,
double
BetaGammaLog10)
const
;
// return IntX upper bound
33
double
interpolateCrossSection
(
double
BetaGammaLog10)
const
;
// return IntX upper bound
34
35
};
36
#endif
BichselData
Definition
BichselData.h:14
BichselData::logIntegratedCrossSectionsVectorOfVector
std::vector< std::vector< double > > logIntegratedCrossSectionsVectorOfVector
Definition
BichselData.h:18
BichselData::addEntry
void addEntry(double logBetaGamma, double logCollisionEnergy, double logIntegratedCrossSection)
Definition
BichselData.cxx:34
BichselData::logCollisionEnergyVectorOfVector
std::vector< std::vector< double > > logCollisionEnergyVectorOfVector
Definition
BichselData.h:17
BichselData::updateAfterLastEntry
void updateAfterLastEntry()
Definition
BichselData.cxx:42
BichselData::interpolateCrossSection
double interpolateCrossSection(std::pair< int, int > indices_BetaGammaLog10, double BetaGammaLog10) const
Definition
BichselData.cxx:117
BichselData::getBetaGammaIndices
std::pair< int, int > getBetaGammaIndices(double BetaGammaLog10) const
Definition
BichselData.cxx:51
BichselData::empty
bool empty() const
Definition
BichselData.h:22
BichselData::logHighestCrossSectionsVector
std::vector< double > logHighestCrossSectionsVector
Definition
BichselData.h:19
BichselData::lastBetaGammaValue
double lastBetaGammaValue() const
Definition
BichselData.cxx:12
BichselData::interpolateCollisionEnergy
double interpolateCollisionEnergy(std::pair< int, int > indices_BetaGammaLog10, double IntXLog10) const
Definition
BichselData.cxx:73
BichselData::logBetaGammaVector
std::vector< double > logBetaGammaVector
Definition
BichselData.h:16
BichselData::addNewLogBetaGamma
void addNewLogBetaGamma(double logBetaGamma)
Definition
BichselData.cxx:22
BichselData::size
size_t size() const
Definition
BichselData.h:23
Generated on
for ATLAS Offline Software by
1.17.0