CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 >, DoseParameters
doseParametersMap
 

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::FEADCPulseShape
adcPulses_
 
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,
SiCellOpCharacteristicsCore
siopCache_
 
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

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

Definition at line 20 of file HGCalSiNoiseMap.h.

template<typename T>
enum HGCalSiNoiseMap::NoiseMapAlgoBits_t

Constructor & Destructor Documentation

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

Definition at line 37 of file HGCalSiNoiseMap.h.

37 {};

Member Function Documentation

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_
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_
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_
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_
template<typename T>
double HGCalSiNoiseMap< T >::getENCpad ( double  ileak)
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_
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_
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_
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_
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_
template<typename T>
SiCellOpCharacteristics HGCalSiNoiseMap< T >::getSiCellOpCharacteristics ( const T did,
GainRange_t  gain = GainRange_t::AUTO,
int  aimMIPtoADC = 10 
)
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 
)
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().

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_
template<typename T>
double HGCalSiNoiseMap< T >::getTDCOnsetAuto ( uint32_t  gainIdx)
template<typename T>
void HGCalSiNoiseMap< T >::setCachedOp ( bool  flag)
inline

Definition at line 104 of file HGCalSiNoiseMap.h.

104 { activateCachedOp_ = flag; }
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_
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().

96 { defaultADCPulse_ = adcPulse; };
hgc_digi::FEADCPulseShape defaultADCPulse_
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().

template<typename T>
void HGCalSiNoiseMap< T >::setENCCommonNoiseSubScale ( double  val)
inline
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().

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

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

Definition at line 142 of file HGCalSiNoiseMap.h.

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

template<typename T>
std::vector<hgc_digi::FEADCPulseShape> HGCalSiNoiseMap< T >::adcPulses_
private
template<typename T>
std::vector<std::vector<double> > HGCalSiNoiseMap< T >::cceParam_
private
template<typename T>
std::array<double, 3> HGCalSiNoiseMap< T >::cellCapacitance_
private
template<typename T>
std::array<double, 3> HGCalSiNoiseMap< T >::cellVolume_
private
template<typename T>
std::vector<double> HGCalSiNoiseMap< T >::chargeAtFullScaleADCPerGain_
private
template<typename T>
hgc_digi::FEADCPulseShape HGCalSiNoiseMap< T >::defaultADCPulse_
private
template<typename T>
int HGCalSiNoiseMap< T >::defaultAimMIPtoADC_
private
template<typename T>
GainRange_t HGCalSiNoiseMap< T >::defaultGain_
private
template<typename T>
double HGCalSiNoiseMap< T >::encCommonNoiseSub_
private
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().

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

Definition at line 142 of file HGCalSiNoiseMap.h.

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

Definition at line 142 of file HGCalSiNoiseMap.h.

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

Definition at line 142 of file HGCalSiNoiseMap.h.

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

Definition at line 117 of file HGCalSiNoiseMap.h.

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

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

Definition at line 127 of file HGCalSiNoiseMap.h.

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

Definition at line 114 of file HGCalSiNoiseMap.h.

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

Definition at line 138 of file HGCalSiNoiseMap.h.

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

Definition at line 139 of file HGCalSiNoiseMap.h.