CMS 3D CMS Logo

HGCalSiNoiseMap.h
Go to the documentation of this file.
1 #ifndef simcalorimetry_hgcalsimalgos_hgcalsinoisemap
2 #define simcalorimetry_hgcalsimalgos_hgcalsinoisemap
3 
7 #include <string>
8 #include <array>
9 
15 public:
18 
21  : lnfluence(0.), fluence(0.), ileak(0.), cce(1.), noise(0.), mipfC(0), gain(0), mipADC(0), thrADC(0) {}
23  unsigned int gain, mipADC, thrADC;
24  };
25 
28 
32  void setIleakParam(const std::vector<double> &pars) { ileakParam_ = pars; }
33 
37  void setCceParam(const std::vector<double> &parsFine,
38  const std::vector<double> &parsThin,
39  const std::vector<double> &parsThick) {
40  cceParam_.push_back(parsFine); //120
41  cceParam_.push_back(parsThin); //200
42  cceParam_.push_back(parsThick); //300
43  }
44 
48  void setDoseMap(const std::string &, const unsigned int &);
49 
54  SiCellOpCharacteristics getSiCellOpCharacteristics(const HGCSiliconDetId &did,
55  GainRange_t gain = GainRange_t::AUTO,
56  int aimMIPtoADC = 10);
57 
58  std::array<double, 3> &getMipEqfC() { return mipEqfC_; }
59  std::array<double, 3> &getCellCapacitance() { return cellCapacitance_; }
60  std::array<double, 3> &getCellVolume() { return cellVolume_; }
61  std::vector<std::vector<double> > &getCCEParam() { return cceParam_; }
62  std::vector<double> &getIleakParam() { return ileakParam_; }
63  std::vector<std::vector<double> > &getENCsParam() { return encsParam_; }
64  std::vector<double> &getLSBPerGain() { return lsbPerGain_; }
65  std::vector<double> &getMaxADCPerGain() { return chargeAtFullScaleADCPerGain_; }
66 
67 private:
68  //vector of three params, per sensor type: 0:120 [mum], 1:200, 2:300
69  std::array<double, 3> mipEqfC_, cellCapacitance_, cellVolume_;
70  std::vector<std::vector<double> > cceParam_;
71 
72  //leakage current/volume vs fluence
73  std::vector<double> ileakParam_;
74 
75  //shaper noise param
76  const double encpScale_;
77 
78  //common noise subtraction noise (final scaling value)
79  const double encCommonNoiseSub_;
80 
81  //electron charge in fC
82  const double qe2fc_;
83 
84  //electronics noise (series+parallel) polynomial coeffs;
85  std::vector<std::vector<double> > encsParam_;
86 
87  //lsb
89 
90  //conversions
91  const double unitToMicro_ = 1.e6;
92 
93  //flags used to disable specific components of the Si operation parameters
95 };
96 
97 #endif
HGCalSiNoiseMap::CCE
Definition: HGCalSiNoiseMap.h:17
HGCalSiNoiseMap::cceParam_
std::vector< std::vector< double > > cceParam_
Definition: HGCalSiNoiseMap.h:70
HGCalSiNoiseMap::SiCellOpCharacteristics
Definition: HGCalSiNoiseMap.h:19
HGCalSiNoiseMap::q160fC
Definition: HGCalSiNoiseMap.h:16
HGCalSiNoiseMap::SiCellOpCharacteristics::mipfC
double mipfC
Definition: HGCalSiNoiseMap.h:22
HGCalSiNoiseMap::encsParam_
std::vector< std::vector< double > > encsParam_
Definition: HGCalSiNoiseMap.h:85
HGCalSiNoiseMap::SiCellOpCharacteristics::fluence
double fluence
Definition: HGCalSiNoiseMap.h:22
HGCalSiNoiseMap::getCellCapacitance
std::array< double, 3 > & getCellCapacitance()
Definition: HGCalSiNoiseMap.h:59
HGCalRadiationMap
parses a txt file with dose/fluence parameters and provides functions for noise, etc.
Definition: HGCalRadiationMap.h:16
HGCalSiNoiseMap::getMaxADCPerGain
std::vector< double > & getMaxADCPerGain()
Definition: HGCalSiNoiseMap.h:65
HGCalSiNoiseMap::NOISE
Definition: HGCalSiNoiseMap.h:17
HGCSiliconDetId.h
HGCalSiNoiseMap::q320fC
Definition: HGCalSiNoiseMap.h:16
HGCalSiNoiseMap::getIleakParam
std::vector< double > & getIleakParam()
Definition: HGCalSiNoiseMap.h:62
HGCalSiNoiseMap::mipEqfC_
std::array< double, 3 > mipEqfC_
Definition: HGCalSiNoiseMap.h:69
HGCalSiNoiseMap::AUTO
Definition: HGCalSiNoiseMap.h:16
HGCalSiNoiseMap::SiCellOpCharacteristics::ileak
double ileak
Definition: HGCalSiNoiseMap.h:22
HGCalSiNoiseMap::SiCellOpCharacteristics::SiCellOpCharacteristics
SiCellOpCharacteristics()
Definition: HGCalSiNoiseMap.h:20
HGCalSiNoiseMap::ileakParam_
std::vector< double > ileakParam_
Definition: HGCalSiNoiseMap.h:73
HGCSiliconDetId
Definition: HGCSiliconDetId.h:22
HGCalSiNoiseMap::SiCellOpCharacteristics::lnfluence
double lnfluence
Definition: HGCalSiNoiseMap.h:22
HGCalRadiationMap.h
HGCalSiNoiseMap::q80fC
Definition: HGCalSiNoiseMap.h:16
HGCalSiNoiseMap::NoiseMapAlgoBits_t
NoiseMapAlgoBits_t
Definition: HGCalSiNoiseMap.h:17
HGCalSiNoiseMap::getENCsParam
std::vector< std::vector< double > > & getENCsParam()
Definition: HGCalSiNoiseMap.h:63
HGCalSiNoiseMap::chargeAtFullScaleADCPerGain_
std::vector< double > chargeAtFullScaleADCPerGain_
Definition: HGCalSiNoiseMap.h:88
HGCalSiNoiseMap::SiCellOpCharacteristics::cce
double cce
Definition: HGCalSiNoiseMap.h:22
HGCalSiNoiseMap::qe2fc_
const double qe2fc_
Definition: HGCalSiNoiseMap.h:82
HGCalSiNoiseMap::~HGCalSiNoiseMap
~HGCalSiNoiseMap()
Definition: HGCalSiNoiseMap.h:27
HGCalSiNoiseMap::GainRange_t
GainRange_t
Definition: HGCalSiNoiseMap.h:16
HGCalSiNoiseMap::getCCEParam
std::vector< std::vector< double > > & getCCEParam()
Definition: HGCalSiNoiseMap.h:61
HGCalSiNoiseMap::encpScale_
const double encpScale_
Definition: HGCalSiNoiseMap.h:76
HGCalSiNoiseMap::lsbPerGain_
std::vector< double > lsbPerGain_
Definition: HGCalSiNoiseMap.h:88
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HGCalSiNoiseMap::setIleakParam
void setIleakParam(const std::vector< double > &pars)
set the ileak parameters to use
Definition: HGCalSiNoiseMap.h:32
HGCalSiNoiseMap::getMipEqfC
std::array< double, 3 > & getMipEqfC()
Definition: HGCalSiNoiseMap.h:58
HGCalSiNoiseMap
derives from HGCalRadiation map to parse fluence parameters, provides Si-specific functions; see DN-1...
Definition: HGCalSiNoiseMap.h:14
HGCalGeometry.h
HGCalSiNoiseMap::ignoreNoise_
bool ignoreNoise_
Definition: HGCalSiNoiseMap.h:94
HGCalSiNoiseMap::setDoseMap
void setDoseMap(const std::string &, const unsigned int &)
overrides base class method with specifics for the configuration of the algo
Definition: HGCalSiNoiseMap.cc:48
HGCalSiNoiseMap::setCceParam
void setCceParam(const std::vector< double > &parsFine, const std::vector< double > &parsThin, const std::vector< double > &parsThick)
set the cce parameters to use
Definition: HGCalSiNoiseMap.h:37
HGCalSiNoiseMap::HGCalSiNoiseMap
HGCalSiNoiseMap()
Definition: HGCalSiNoiseMap.cc:4
HGCalSiNoiseMap::encCommonNoiseSub_
const double encCommonNoiseSub_
Definition: HGCalSiNoiseMap.h:79
PedestalClient_cfi.gain
gain
Definition: PedestalClient_cfi.py:37
HGCalSiNoiseMap::FLUENCE
Definition: HGCalSiNoiseMap.h:17
HGCalSiNoiseMap::ignoreFluence_
bool ignoreFluence_
Definition: HGCalSiNoiseMap.h:94
HGCalSiNoiseMap::cellCapacitance_
std::array< double, 3 > cellCapacitance_
Definition: HGCalSiNoiseMap.h:69
HGCalSiNoiseMap::getLSBPerGain
std::vector< double > & getLSBPerGain()
Definition: HGCalSiNoiseMap.h:64
HGCalSiNoiseMap::cellVolume_
std::array< double, 3 > cellVolume_
Definition: HGCalSiNoiseMap.h:69
HGCalSiNoiseMap::ignoreCCE_
bool ignoreCCE_
Definition: HGCalSiNoiseMap.h:94
HGCalSiNoiseMap::getCellVolume
std::array< double, 3 > & getCellVolume()
Definition: HGCalSiNoiseMap.h:60
HGCalSiNoiseMap::getSiCellOpCharacteristics
SiCellOpCharacteristics getSiCellOpCharacteristics(const HGCSiliconDetId &did, GainRange_t gain=GainRange_t::AUTO, int aimMIPtoADC=10)
returns the charge collection efficiency and noise if gain range is set to auto, it will find the mos...
Definition: HGCalSiNoiseMap.cc:59
HGCalSiNoiseMap::SiCellOpCharacteristics::thrADC
unsigned int thrADC
Definition: HGCalSiNoiseMap.h:23
HGCalSiNoiseMap::SiCellOpCharacteristics::noise
double noise
Definition: HGCalSiNoiseMap.h:22
HGCalSiNoiseMap::unitToMicro_
const double unitToMicro_
Definition: HGCalSiNoiseMap.h:91
HGCalSiNoiseMap::SiCellOpCharacteristics::gain
unsigned int gain
Definition: HGCalSiNoiseMap.h:23
HGCalSiNoiseMap::SiCellOpCharacteristics::mipADC
unsigned int mipADC
Definition: HGCalSiNoiseMap.h:23