|
ATLAS Offline Software
|
#include <CaloNoise.h>
|
| CaloNoise ()=delete |
|
| ~CaloNoise () |
|
| CaloNoise (const size_t nLArCells, const size_t nLArGains, const size_t nTileCells, const size_t nTileGains, const CaloCell_Base_ID *caloCellId, const NOISETYPE noisetype) |
| Explicit constructor with number of cells and gains and ptr to CaloCell_ID obj. More...
|
|
float | getNoise (const IdentifierHash h, const int gain) const |
| Accessor by IdentifierHash and gain. More...
|
|
float | getNoise (const Identifier id, const int gain) const |
| Accessor by Identifier and gain. More...
|
|
float | getNoise (const HWIdentifier, const int) const =delete |
| Safety net: Disallow access by HWIdentifier. More...
|
|
float | getEffectiveSigma (const Identifier id, const int gain, const float energy) const |
|
float | getEffectiveSigma (const IdentifierHash h, const int gain, const float energy) const |
|
boost::multi_array< float, 2 > & | larStorage () |
| Non-const accessor to underlying storage for filling: More...
|
|
boost::multi_array< float, 2 > & | tileStorage () |
|
const boost::multi_array< float, 2 > & | larStorage () const |
| Const accessor to underlying storage for GPU data structures. More...
|
|
const boost::multi_array< float, 2 > & | tileStorage () const |
|
void | setTileBlob (const CaloCondBlobFlt *flt, const float lumi) |
|
const CaloCondBlobFlt * | getTileBlob () const |
|
float | getLumi () const |
|
NOISETYPE | getNoiseType () const |
|
Definition at line 16 of file CaloNoise.h.
◆ NOISETYPE
Conditions Data Object holding the calorimeter noise per cell and per gain.
Enumerator |
---|
ELEC | |
PILEUP | |
TOTAL | |
Definition at line 21 of file CaloNoise.h.
◆ CaloNoise() [1/2]
◆ ~CaloNoise()
CaloNoise::~CaloNoise |
( |
| ) |
|
◆ CaloNoise() [2/2]
Explicit constructor with number of cells and gains and ptr to CaloCell_ID obj.
Definition at line 11 of file CaloNoise.cxx.
21 boost::multi_array_types::extent_gen lar_extent_gen;
22 m_larNoise.resize(lar_extent_gen[nLArGains][nLArCells]);
23 boost::multi_array_types::extent_gen tile_extent_gen;
24 m_tileNoise.resize(tile_extent_gen[nTileGains][nTileCells]);
◆ calcSig()
Definition at line 42 of file CaloNoise.cxx.
49 if((sigma1 == 0. && sigma2 == 0.) ||
e == 0.)
return 0.;
50 if(sigma1 == 0.)
return e/sigma2;
51 if((
ratio == 0.) || sigma2 == 0.)
return e/sigma1;
52 const double x1 =
e/sigma1;
53 const double x2 =
e/sigma2;
55 constexpr std::array<float,2> valid_range{0.9,7.5};
56 const float wide_gauss_sigma =
std::min(std::abs(
x1),std::abs(
x2));
57 if(wide_gauss_sigma > valid_range[1])
return wide_gauss_sigma;
59 const float narrow_gauss_sigma=
std::max(std::abs(
x1),std::abs(
x2));
60 if(narrow_gauss_sigma < valid_range[0])
return narrow_gauss_sigma;
63 const double y1= TMath::Erf(M_SQRT1_2*
x1);
64 const double y2= TMath::Erf(M_SQRT1_2*
x2);
66 const double z = (
y1*sigma1 +
ratio*
y2*sigma2 )/( sigma1 +
ratio*sigma2);
73 return M_SQRT2*TMath::ErfInverse(
z);
◆ getEffectiveSigma() [1/2]
◆ getEffectiveSigma() [2/2]
◆ getLumi()
float CaloNoise::getLumi |
( |
| ) |
const |
|
inline |
◆ getNoise() [1/3]
float CaloNoise::getNoise |
( |
const |
HWIdentifier, |
|
|
const int |
|
|
) |
| const |
|
delete |
◆ getNoise() [2/3]
◆ getNoise() [3/3]
◆ getNoiseType()
◆ getTileBlob()
◆ getTileEffSigma()
◆ larStorage() [1/2]
boost::multi_array<float, 2>& CaloNoise::larStorage |
( |
| ) |
|
|
inline |
Non-const accessor to underlying storage for filling:
Definition at line 71 of file CaloNoise.h.
◆ larStorage() [2/2]
const boost::multi_array<float, 2>& CaloNoise::larStorage |
( |
| ) |
const |
|
inline |
Const accessor to underlying storage for GPU data structures.
Definition at line 75 of file CaloNoise.h.
◆ setTileBlob()
◆ tileStorage() [1/2]
boost::multi_array<float, 2>& CaloNoise::tileStorage |
( |
| ) |
|
|
inline |
◆ tileStorage() [2/2]
const boost::multi_array<float, 2>& CaloNoise::tileStorage |
( |
| ) |
const |
|
inline |
◆ m_caloCellId
◆ m_larNoise
boost::multi_array<float, 2> CaloNoise::m_larNoise |
|
private |
◆ m_lumi
float CaloNoise::m_lumi =0 |
|
private |
◆ m_noiseType
◆ m_tileBlob
◆ m_tileHashOffset
unsigned CaloNoise::m_tileHashOffset |
|
private |
◆ m_tileNoise
boost::multi_array<float, 2> CaloNoise::m_tileNoise |
|
private |
The documentation for this class was generated from the following files:
#define CXXUTILS_TRAPPING_FP
T getData(const unsigned int channel, const unsigned int adc, const unsigned int idx) const
Returns a single T belonging to a channel/gain.
float getEffectiveSigma(const Identifier id, const int gain, const float energy) const
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
float calcSig(const IdentifierHash tilehash, const int gain, const float energy) const
boost::multi_array< float, 2 > m_larNoise
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
boost::multi_array< float, 2 > m_tileNoise
uint16_t getObjVersion() const
Returns the BLOB object version.
void calo_cell_hash_range(const Identifier id, IdentifierHash &caloCellMin, IdentifierHash &caloCellMax) const
to loop on 'global' cell hashes of one sub-calorimeter alone
const CaloCell_Base_ID * m_caloCellId
Thrown if object version in BLOB does not agree with class version.
float getTileEffSigma(const IdentifierHash subHash, const int gain, const float e) const
static unsigned int getDbCaloGain(int caloGain)
Returns the non-negative gainId to be used with the COOL DB.
unsigned m_tileHashOffset
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
const CaloCondBlobFlt * m_tileBlob