CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Attributes
HGCalSiNoiseMap< T > Class Template Reference

derives from HGCalRadiation map to parse fluence parameters, provides Si-specific functions; see DN-19-045 More...

#include <HGCalSiNoiseMap.h>

Inheritance diagram for HGCalSiNoiseMap< T >:
HGCalRadiationMap

Classes

struct  SiCellOpCharacteristics
 
struct  SiCellOpCharacteristicsCore
 

Public Types

enum  GainRange_t { q80fC, q160fC, q320fC, AUTO }
 
enum  NoiseMapAlgoBits_t {
  FLUENCE, CCE, NOISE, PULSEPERGAIN,
  CACHEDOP
}
 
- Public Types inherited from HGCalRadiationMap
typedef std::map< std::pair< int, int >, DoseParametersdoseParametersMap
 

Public Member Functions

const hgc_digi::FEADCPulseShapeadcPulseForGain (GainRange_t gain)
 
std::vector< std::vector< double > > & getCCEParam ()
 
std::array< double, 3 > & getCellCapacitance ()
 
std::array< double, 3 > & getCellVolume ()
 
double getENCpad (double ileak)
 
std::vector< std::vector< double > > & getENCsParam ()
 
std::vector< double > & getIleakParam ()
 
std::vector< double > & getLSBPerGain ()
 
std::vector< double > & getMaxADCPerGain ()
 
std::array< double, 3 > & getMipEqfC ()
 
SiCellOpCharacteristics getSiCellOpCharacteristics (const T &did, GainRange_t gain=GainRange_t::AUTO, int aimMIPtoADC=10)
 
SiCellOpCharacteristics getSiCellOpCharacteristics (double &cellCap, double &cellVol, double &mipEqfC, std::vector< double > &cceParam, int &subdet, int &layer, double &radius, GainRange_t &gain, int &aimMIPtoADC)
 
const SiCellOpCharacteristicsCore getSiCellOpCharacteristicsCore (const T &did, GainRange_t gain, int aimMIPtoADC)
 returns the charge collection efficiency and noise if gain range is set to auto, it will find the most appropriate gain to put the mip peak close to 10 ADC counts More...
 
const SiCellOpCharacteristicsCore getSiCellOpCharacteristicsCore (const T &did)
 
double getTDCOnsetAuto (uint32_t gainIdx)
 
 HGCalSiNoiseMap ()
 
void setCachedOp (bool flag)
 
void setCceParam (const std::vector< double > &parsFine, const std::vector< double > &parsThin, const std::vector< double > &parsThick)
 set the cce parameters to use More...
 
void setDefaultADCPulseShape (const hgc_digi::FEADCPulseShape &adcPulse)
 
void setDoseMap (const std::string &, const unsigned int &)
 overrides base class method with specifics for the configuration of the algo More...
 
void setENCCommonNoiseSubScale (double val)
 
void setGeometry (const CaloSubdetectorGeometry *, GainRange_t gain=GainRange_t::AUTO, int aimMIPtoADC=10)
 specialization of the base class method which sets the geometry so that it can instantiate an operation cache the first time it is called - intrinsically related to the valid detIds in the geometry the filling of the cache is ignored by configuration or if it has already been filled More...
 
void setIleakParam (const std::vector< double > &pars)
 set the ileak parameters to use More...
 
 ~HGCalSiNoiseMap ()
 
- Public Member Functions inherited from HGCalRadiationMap
const unsigned int & algo ()
 
double computeRadius (const HGCScintillatorDetId &)
 
const HGCalDDDConstantsddd ()
 
const HGCalGeometrygeom ()
 
const doseParametersMapgetDoseMap ()
 
double getDoseValue (const int, const int, const double, bool logVal=false)
 
double getFluenceValue (const int, const int, const double, bool logVal=false)
 
 HGCalRadiationMap ()
 
void setDoseMap (const std::string &, const unsigned int)
 
void setFluenceScaleFactor (double val)
 
void setGeometry (const CaloSubdetectorGeometry *)
 
const HGCalTopologytopo ()
 
 ~HGCalRadiationMap ()
 

Private Attributes

bool activateCachedOp_
 
std::vector< hgc_digi::FEADCPulseShapeadcPulses_
 
std::vector< std::vector< double > > cceParam_
 
std::array< double, 3 > cellCapacitance_
 
std::array< double, 3 > cellVolume_
 
std::vector< double > chargeAtFullScaleADCPerGain_
 
hgc_digi::FEADCPulseShape defaultADCPulse_
 
int defaultAimMIPtoADC_
 
GainRange_t defaultGain_
 
double encCommonNoiseSub_
 
std::vector< std::vector< double > > encsParam_
 
bool ignoreCCE_
 
bool ignoreFluence_
 
bool ignoreGainDependentPulse_
 
bool ignoreNoise_
 
std::vector< double > ileakParam_
 
std::vector< double > lsbPerGain_
 
std::array< double, 3 > mipEqfC_
 
const double qe2fc_
 
std::map< uint32_t, SiCellOpCharacteristicsCoresiopCache_
 
const double unitToMicro_ = 1.e6
 
const double unitToMicroLog_ = log(unitToMicro_)
 

Detailed Description

template<typename T>
class HGCalSiNoiseMap< T >

derives from HGCalRadiation map to parse fluence parameters, provides Si-specific functions; see DN-19-045

Definition at line 18 of file HGCalSiNoiseMap.h.

Member Enumeration Documentation

◆ GainRange_t

template<typename T>
enum HGCalSiNoiseMap::GainRange_t
Enumerator
q80fC 
q160fC 
q320fC 
AUTO 

Definition at line 20 of file HGCalSiNoiseMap.h.

◆ NoiseMapAlgoBits_t

template<typename T>
enum HGCalSiNoiseMap::NoiseMapAlgoBits_t

Constructor & Destructor Documentation

◆ HGCalSiNoiseMap()

template<typename T>
HGCalSiNoiseMap< T >::HGCalSiNoiseMap ( )

◆ ~HGCalSiNoiseMap()

template<typename T>
HGCalSiNoiseMap< T >::~HGCalSiNoiseMap ( )
inline

Definition at line 37 of file HGCalSiNoiseMap.h.

37 {};

Member Function Documentation

◆ adcPulseForGain()

template<typename T>
const hgc_digi::FEADCPulseShape& HGCalSiNoiseMap< T >::adcPulseForGain ( GainRange_t  gain)
inline

Definition at line 97 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::runSimple().

97  {
99  return defaultADCPulse_;
100  return adcPulses_[gain];
101  };
bool ignoreGainDependentPulse_
hgc_digi::FEADCPulseShape defaultADCPulse_
std::vector< hgc_digi::FEADCPulseShape > adcPulses_

◆ getCCEParam()

template<typename T>
std::vector<std::vector<double> >& HGCalSiNoiseMap< T >::getCCEParam ( )
inline

Definition at line 92 of file HGCalSiNoiseMap.h.

92 { return cceParam_; }
std::vector< std::vector< double > > cceParam_

◆ getCellCapacitance()

template<typename T>
std::array<double, 3>& HGCalSiNoiseMap< T >::getCellCapacitance ( )
inline

Definition at line 90 of file HGCalSiNoiseMap.h.

90 { return cellCapacitance_; }
std::array< double, 3 > cellCapacitance_

◆ getCellVolume()

template<typename T>
std::array<double, 3>& HGCalSiNoiseMap< T >::getCellVolume ( )
inline

Definition at line 91 of file HGCalSiNoiseMap.h.

91 { return cellVolume_; }
std::array< double, 3 > cellVolume_

◆ getENCpad()

template<typename T>
double HGCalSiNoiseMap< T >::getENCpad ( double  ileak)

◆ getENCsParam()

template<typename T>
std::vector<std::vector<double> >& HGCalSiNoiseMap< T >::getENCsParam ( )
inline

Definition at line 94 of file HGCalSiNoiseMap.h.

94 { return encsParam_; }
std::vector< std::vector< double > > encsParam_

◆ getIleakParam()

template<typename T>
std::vector<double>& HGCalSiNoiseMap< T >::getIleakParam ( )
inline

Definition at line 93 of file HGCalSiNoiseMap.h.

93 { return ileakParam_; }
std::vector< double > ileakParam_

◆ getLSBPerGain()

template<typename T>
std::vector<double>& HGCalSiNoiseMap< T >::getLSBPerGain ( )
inline

Definition at line 95 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::runSimple().

95 { return lsbPerGain_; }
std::vector< double > lsbPerGain_

◆ getMaxADCPerGain()

template<typename T>
std::vector<double>& HGCalSiNoiseMap< T >::getMaxADCPerGain ( )
inline

Definition at line 102 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::runSimple().

std::vector< double > chargeAtFullScaleADCPerGain_

◆ getMipEqfC()

template<typename T>
std::array<double, 3>& HGCalSiNoiseMap< T >::getMipEqfC ( )
inline

Definition at line 89 of file HGCalSiNoiseMap.h.

89 { return mipEqfC_; }
std::array< double, 3 > mipEqfC_

◆ getSiCellOpCharacteristics() [1/2]

template<typename T>
SiCellOpCharacteristics HGCalSiNoiseMap< T >::getSiCellOpCharacteristics ( const T did,
GainRange_t  gain = GainRange_t::AUTO,
int  aimMIPtoADC = 10 
)

◆ getSiCellOpCharacteristics() [2/2]

template<typename T>
SiCellOpCharacteristics HGCalSiNoiseMap< T >::getSiCellOpCharacteristics ( double &  cellCap,
double &  cellVol,
double &  mipEqfC,
std::vector< double > &  cceParam,
int &  subdet,
int &  layer,
double &  radius,
GainRange_t gain,
int &  aimMIPtoADC 
)

◆ getSiCellOpCharacteristicsCore() [1/2]

template<typename T>
const SiCellOpCharacteristicsCore HGCalSiNoiseMap< T >::getSiCellOpCharacteristicsCore ( const T did,
GainRange_t  gain,
int  aimMIPtoADC 
)

returns the charge collection efficiency and noise if gain range is set to auto, it will find the most appropriate gain to put the mip peak close to 10 ADC counts

Referenced by HGCalSiNoiseMap< HGCSiliconDetId >::getSiCellOpCharacteristicsCore(), and HGCDigitizerBase::runSimple().

◆ getSiCellOpCharacteristicsCore() [2/2]

template<typename T>
const SiCellOpCharacteristicsCore HGCalSiNoiseMap< T >::getSiCellOpCharacteristicsCore ( const T did)
inline

Definition at line 72 of file HGCalSiNoiseMap.h.

72  {
74  }
const SiCellOpCharacteristicsCore getSiCellOpCharacteristicsCore(const T &did, GainRange_t gain, int aimMIPtoADC)
returns the charge collection efficiency and noise if gain range is set to auto, it will find the mos...
GainRange_t defaultGain_

◆ getTDCOnsetAuto()

template<typename T>
double HGCalSiNoiseMap< T >::getTDCOnsetAuto ( uint32_t  gainIdx)

◆ setCachedOp()

template<typename T>
void HGCalSiNoiseMap< T >::setCachedOp ( bool  flag)
inline

Definition at line 104 of file HGCalSiNoiseMap.h.

◆ setCceParam()

template<typename T>
void HGCalSiNoiseMap< T >::setCceParam ( const std::vector< double > &  parsFine,
const std::vector< double > &  parsThin,
const std::vector< double > &  parsThick 
)
inline

set the cce parameters to use

Definition at line 47 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::HGCDigitizerBase().

49  {
50  cceParam_.push_back(parsFine); //120
51  cceParam_.push_back(parsThin); //200
52  cceParam_.push_back(parsThick); //300
53  }
std::vector< std::vector< double > > cceParam_

◆ setDefaultADCPulseShape()

template<typename T>
void HGCalSiNoiseMap< T >::setDefaultADCPulseShape ( const hgc_digi::FEADCPulseShape adcPulse)
inline

Definition at line 96 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::HGCDigitizerBase().

hgc_digi::FEADCPulseShape defaultADCPulse_

◆ setDoseMap()

template<typename T>
void HGCalSiNoiseMap< T >::setDoseMap ( const std::string &  ,
const unsigned int &   
)

overrides base class method with specifics for the configuration of the algo

Referenced by HGCDigitizerBase::HGCDigitizerBase().

◆ setENCCommonNoiseSubScale()

template<typename T>
void HGCalSiNoiseMap< T >::setENCCommonNoiseSubScale ( double  val)
inline

Definition at line 107 of file HGCalSiNoiseMap.h.

◆ setGeometry()

template<typename T>
void HGCalSiNoiseMap< T >::setGeometry ( const CaloSubdetectorGeometry ,
GainRange_t  gain = GainRange_t::AUTO,
int  aimMIPtoADC = 10 
)

specialization of the base class method which sets the geometry so that it can instantiate an operation cache the first time it is called - intrinsically related to the valid detIds in the geometry the filling of the cache is ignored by configuration or if it has already been filled

Referenced by HGCDigitizerBase::run().

◆ setIleakParam()

template<typename T>
void HGCalSiNoiseMap< T >::setIleakParam ( const std::vector< double > &  pars)
inline

set the ileak parameters to use

Definition at line 42 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::HGCDigitizerBase().

42 { ileakParam_ = pars; }
std::vector< double > ileakParam_

Member Data Documentation

◆ activateCachedOp_

template<typename T>
bool HGCalSiNoiseMap< T >::activateCachedOp_
private

Definition at line 142 of file HGCalSiNoiseMap.h.

Referenced by HGCalSiNoiseMap< HGCSiliconDetId >::setCachedOp().

◆ adcPulses_

template<typename T>
std::vector<hgc_digi::FEADCPulseShape> HGCalSiNoiseMap< T >::adcPulses_
private

◆ cceParam_

template<typename T>
std::vector<std::vector<double> > HGCalSiNoiseMap< T >::cceParam_
private

◆ cellCapacitance_

template<typename T>
std::array<double, 3> HGCalSiNoiseMap< T >::cellCapacitance_
private

◆ cellVolume_

template<typename T>
std::array<double, 3> HGCalSiNoiseMap< T >::cellVolume_
private

◆ chargeAtFullScaleADCPerGain_

template<typename T>
std::vector<double> HGCalSiNoiseMap< T >::chargeAtFullScaleADCPerGain_
private

◆ defaultADCPulse_

template<typename T>
hgc_digi::FEADCPulseShape HGCalSiNoiseMap< T >::defaultADCPulse_
private

◆ defaultAimMIPtoADC_

template<typename T>
int HGCalSiNoiseMap< T >::defaultAimMIPtoADC_
private

◆ defaultGain_

template<typename T>
GainRange_t HGCalSiNoiseMap< T >::defaultGain_
private

◆ encCommonNoiseSub_

template<typename T>
double HGCalSiNoiseMap< T >::encCommonNoiseSub_
private

◆ encsParam_

template<typename T>
std::vector<std::vector<double> > HGCalSiNoiseMap< T >::encsParam_
private

Definition at line 130 of file HGCalSiNoiseMap.h.

Referenced by HGCalSiNoiseMap< HGCSiliconDetId >::getENCsParam().

◆ ignoreCCE_

template<typename T>
bool HGCalSiNoiseMap< T >::ignoreCCE_
private

Definition at line 142 of file HGCalSiNoiseMap.h.

◆ ignoreFluence_

template<typename T>
bool HGCalSiNoiseMap< T >::ignoreFluence_
private

Definition at line 142 of file HGCalSiNoiseMap.h.

◆ ignoreGainDependentPulse_

template<typename T>
bool HGCalSiNoiseMap< T >::ignoreGainDependentPulse_
private

◆ ignoreNoise_

template<typename T>
bool HGCalSiNoiseMap< T >::ignoreNoise_
private

Definition at line 142 of file HGCalSiNoiseMap.h.

◆ ileakParam_

template<typename T>
std::vector<double> HGCalSiNoiseMap< T >::ileakParam_
private

◆ lsbPerGain_

template<typename T>
std::vector<double> HGCalSiNoiseMap< T >::lsbPerGain_
private

◆ mipEqfC_

template<typename T>
std::array<double, 3> HGCalSiNoiseMap< T >::mipEqfC_
private

Definition at line 117 of file HGCalSiNoiseMap.h.

Referenced by HGCalSiNoiseMap< HGCSiliconDetId >::getMipEqfC().

◆ qe2fc_

template<typename T>
const double HGCalSiNoiseMap< T >::qe2fc_
private

Definition at line 127 of file HGCalSiNoiseMap.h.

◆ siopCache_

template<typename T>
std::map<uint32_t, SiCellOpCharacteristicsCore> HGCalSiNoiseMap< T >::siopCache_
private

Definition at line 114 of file HGCalSiNoiseMap.h.

◆ unitToMicro_

template<typename T>
const double HGCalSiNoiseMap< T >::unitToMicro_ = 1.e6
private

Definition at line 138 of file HGCalSiNoiseMap.h.

◆ unitToMicroLog_

template<typename T>
const double HGCalSiNoiseMap< T >::unitToMicroLog_ = log(unitToMicro_)
private

Definition at line 139 of file HGCalSiNoiseMap.h.