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)
 
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...
 
 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.

20 { q80fC, q160fC, q320fC, AUTO };

◆ NoiseMapAlgoBits_t

template<typename T>
enum HGCalSiNoiseMap::NoiseMapAlgoBits_t
Enumerator
FLUENCE 
CCE 
NOISE 
PULSEPERGAIN 
CACHEDOP 

Definition at line 21 of file HGCalSiNoiseMap.h.

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.

97  {
99  return defaultADCPulse_;
100  return adcPulses_[gain];
101  };

Referenced by HGCDigitizerBase::runSimple().

◆ getCCEParam()

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

Definition at line 92 of file HGCalSiNoiseMap.h.

92 { return cceParam_; }

◆ getCellCapacitance()

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

Definition at line 90 of file HGCalSiNoiseMap.h.

90 { return cellCapacitance_; }

◆ getCellVolume()

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

Definition at line 91 of file HGCalSiNoiseMap.h.

91 { return 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_; }

◆ getIleakParam()

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

Definition at line 93 of file HGCalSiNoiseMap.h.

93 { return ileakParam_; }

◆ getLSBPerGain()

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

Definition at line 95 of file HGCalSiNoiseMap.h.

95 { return lsbPerGain_; }

Referenced by HGCDigitizerBase::runSimple().

◆ getMaxADCPerGain()

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

Definition at line 102 of file HGCalSiNoiseMap.h.

Referenced by HGCDigitizerBase::runSimple().

◆ getMipEqfC()

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

Definition at line 89 of file HGCalSiNoiseMap.h.

89 { return 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)
inline

Definition at line 72 of file HGCalSiNoiseMap.h.

◆ getSiCellOpCharacteristicsCore() [2/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().

◆ setCachedOp()

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

Definition at line 104 of file HGCalSiNoiseMap.h.

104 { activateCachedOp_ = flag; }

◆ 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.

49  {
50  cceParam_.push_back(parsFine); //120
51  cceParam_.push_back(parsThin); //200
52  cceParam_.push_back(parsThick); //300
53  }

Referenced by HGCDigitizerBase::HGCDigitizerBase().

◆ 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().

◆ 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 106 of file HGCalSiNoiseMap.h.

106 { encCommonNoiseSub_ = val; }

◆ 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.

42 { ileakParam_ = pars; }

Referenced by HGCDigitizerBase::HGCDigitizerBase().

Member Data Documentation

◆ activateCachedOp_

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

Definition at line 141 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 129 of file HGCalSiNoiseMap.h.

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

◆ ignoreCCE_

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

Definition at line 141 of file HGCalSiNoiseMap.h.

◆ ignoreFluence_

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

Definition at line 141 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 141 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 116 of file HGCalSiNoiseMap.h.

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

◆ qe2fc_

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

Definition at line 126 of file HGCalSiNoiseMap.h.

◆ siopCache_

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

Definition at line 113 of file HGCalSiNoiseMap.h.

◆ unitToMicro_

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

Definition at line 137 of file HGCalSiNoiseMap.h.

◆ unitToMicroLog_

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

Definition at line 138 of file HGCalSiNoiseMap.h.

HGCalSiNoiseMap::ileakParam_
std::vector< double > ileakParam_
Definition: HGCalSiNoiseMap.h:120
HGCalSiNoiseMap::getSiCellOpCharacteristicsCore
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...
HGCalSiNoiseMap::q160fC
Definition: HGCalSiNoiseMap.h:20
HGCalSiNoiseMap::adcPulses_
std::vector< hgc_digi::FEADCPulseShape > adcPulses_
Definition: HGCalSiNoiseMap.h:131
HGCalSiNoiseMap::lsbPerGain_
std::vector< double > lsbPerGain_
Definition: HGCalSiNoiseMap.h:134
HGCalSiNoiseMap::encsParam_
std::vector< std::vector< double > > encsParam_
Definition: HGCalSiNoiseMap.h:129
HGCalSiNoiseMap::mipEqfC_
std::array< double, 3 > mipEqfC_
Definition: HGCalSiNoiseMap.h:116
HGCalSiNoiseMap::cellCapacitance_
std::array< double, 3 > cellCapacitance_
Definition: HGCalSiNoiseMap.h:116
HGCalSiNoiseMap::AUTO
Definition: HGCalSiNoiseMap.h:20
HGCalSiNoiseMap::cceParam_
std::vector< std::vector< double > > cceParam_
Definition: HGCalSiNoiseMap.h:117
HGCalSiNoiseMap::defaultGain_
GainRange_t defaultGain_
Definition: HGCalSiNoiseMap.h:109
HGCalSiNoiseMap::q320fC
Definition: HGCalSiNoiseMap.h:20
HGCalSiNoiseMap::PULSEPERGAIN
Definition: HGCalSiNoiseMap.h:21
HGCalSiNoiseMap::activateCachedOp_
bool activateCachedOp_
Definition: HGCalSiNoiseMap.h:141
hgcROCParameters_cfi.adcPulse
adcPulse
Definition: hgcROCParameters_cfi.py:10
HGCalSiNoiseMap::cellVolume_
std::array< double, 3 > cellVolume_
Definition: HGCalSiNoiseMap.h:116
HGCalSiNoiseMap::ignoreGainDependentPulse_
bool ignoreGainDependentPulse_
Definition: HGCalSiNoiseMap.h:141
HGCalSiNoiseMap::NOISE
Definition: HGCalSiNoiseMap.h:21
HGCalSiNoiseMap::chargeAtFullScaleADCPerGain_
std::vector< double > chargeAtFullScaleADCPerGain_
Definition: HGCalSiNoiseMap.h:134
PedestalClient_cfi.gain
gain
Definition: PedestalClient_cfi.py:37
heppy_batch.val
val
Definition: heppy_batch.py:351
HGCalSiNoiseMap::CCE
Definition: HGCalSiNoiseMap.h:21
HGCalSiNoiseMap::CACHEDOP
Definition: HGCalSiNoiseMap.h:21
HGCalSiNoiseMap::FLUENCE
Definition: HGCalSiNoiseMap.h:21
HGCalSiNoiseMap::defaultADCPulse_
hgc_digi::FEADCPulseShape defaultADCPulse_
Definition: HGCalSiNoiseMap.h:130
HGCalSiNoiseMap::q80fC
Definition: HGCalSiNoiseMap.h:20
HGCalSiNoiseMap::defaultAimMIPtoADC_
int defaultAimMIPtoADC_
Definition: HGCalSiNoiseMap.h:110
HGCalSiNoiseMap::encCommonNoiseSub_
double encCommonNoiseSub_
Definition: HGCalSiNoiseMap.h:123
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116