ATLAS Offline Software
Loading...
Searching...
No Matches
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//=============================
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);
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
std::vector< std::vector< double > > logIntegratedCrossSectionsVectorOfVector
Definition BichselData.h:18
void addEntry(double logBetaGamma, double logCollisionEnergy, double logIntegratedCrossSection)
std::vector< std::vector< double > > logCollisionEnergyVectorOfVector
Definition BichselData.h:17
void updateAfterLastEntry()
double interpolateCrossSection(std::pair< int, int > indices_BetaGammaLog10, double BetaGammaLog10) const
std::pair< int, int > getBetaGammaIndices(double BetaGammaLog10) const
bool empty() const
Definition BichselData.h:22
std::vector< double > logHighestCrossSectionsVector
Definition BichselData.h:19
double lastBetaGammaValue() const
double interpolateCollisionEnergy(std::pair< int, int > indices_BetaGammaLog10, double IntXLog10) const
std::vector< double > logBetaGammaVector
Definition BichselData.h:16
void addNewLogBetaGamma(double logBetaGamma)
size_t size() const
Definition BichselData.h:23