@@ -78,12 +78,18 @@ HGCalRecHitWorkerSimple::HGCalRecHitWorkerSimple(const edm::ParameterSet& ps, ed
7878
7979 hgcEE_noise_fC_ = ps.getParameter <edm::ParameterSet>(" HGCEE_noise_fC" ).getParameter <std::vector<double > >(" values" );
8080 hgcEE_cce_ = ps.getParameter <edm::ParameterSet>(" HGCEE_cce" ).getParameter <std::vector<double > >(" values" );
81+ assert (hgcEE_cce_.size () == hgcEE_noise_fC_.size ());
82+ assert (hgcEE_cce_.size () == hgcEE_fCPerMIP_.size ());
8183 hgcHEF_noise_fC_ = ps.getParameter <edm::ParameterSet>(" HGCHEF_noise_fC" ).getParameter <std::vector<double > >(" values" );
8284 hgcHEF_cce_ = ps.getParameter <edm::ParameterSet>(" HGCHEF_cce" ).getParameter <std::vector<double > >(" values" );
85+ assert (hgcHEF_cce_.size () == hgcHEF_noise_fC_.size ());
86+ assert (hgcHEF_cce_.size () == hgcHEF_fCPerMIP_.size ());
8387 hgcHEB_noise_MIP_ = ps.getParameter <edm::ParameterSet>(" HGCHEB_noise_MIP" ).getParameter <double >(" noise_MIP" );
8488 hgcHFNose_noise_fC_ =
8589 ps.getParameter <edm::ParameterSet>(" HGCHFNose_noise_fC" ).getParameter <std::vector<double > >(" values" );
8690 hgcHFNose_cce_ = ps.getParameter <edm::ParameterSet>(" HGCHFNose_cce" ).getParameter <std::vector<double > >(" values" );
91+ assert (hgcHFNose_cce_.size () == hgcHFNose_noise_fC_.size ());
92+ assert (hgcHFNose_cce_.size () == hgcHFNose_fCPerMIP_.size ());
8793
8894 // don't produce rechit if detid is a ghost one
8995 rangeMatch_ = ps.getParameter <uint32_t >(" rangeMatch" );
@@ -178,22 +184,32 @@ void HGCalRecHitWorkerSimple::run(const edm::Event& evt,
178184 switch (idtype) {
179185 case hgcee:
180186 rechitMaker_->setADCToGeVConstant (float (hgceeUncalib2GeV_));
187+ assert (thickness - 1 < static_cast <int >(hgcEE_cce_.size ()));
188+ assert (thickness < static_cast <int >(rcorr_.size ()));
189+ assert (layer < weights_.size ());
181190 cce_correction = hgcEE_cce_[thickness - 1 ];
182191 sigmaNoiseGeV = 1e-3 * weights_[layer] * rcorr_[thickness] * hgcEE_noise_fC_[thickness - 1 ] /
183192 hgcEE_fCPerMIP_[thickness - 1 ];
184193 break ;
185194 case hgcfh:
186195 rechitMaker_->setADCToGeVConstant (float (hgchefUncalib2GeV_));
196+ assert (thickness - 1 < static_cast <int >(hgcHEF_cce_.size ()));
197+ assert (thickness + deltasi_index_regemfac_ < static_cast <int >(rcorr_.size ()));
198+ assert (layer < weights_.size ());
187199 cce_correction = hgcHEF_cce_[thickness - 1 ];
188200 sigmaNoiseGeV = 1e-3 * weights_[layer] * rcorr_[thickness + deltasi_index_regemfac_] *
189201 hgcHEF_noise_fC_[thickness - 1 ] / hgcHEF_fCPerMIP_[thickness - 1 ];
190202 break ;
191203 case hgcbh:
204+ assert (layer < weights_.size ());
192205 rechitMaker_->setADCToGeVConstant (float (hgchebUncalib2GeV_));
193206 sigmaNoiseGeV = 1e-3 * hgcHEB_noise_MIP_ * weights_[layer] * rcorrscint_;
194207 break ;
195208 case hgchfnose:
196209 rechitMaker_->setADCToGeVConstant (float (hgchfnoseUncalib2GeV_));
210+ assert (thickness - 1 < static_cast <int >(hgcHFNose_cce_.size ()));
211+ assert (thickness < static_cast <int >(rcorrNose_.size ()));
212+ assert (layer < weightsNose_.size ());
197213 cce_correction = hgcHFNose_cce_[thickness - 1 ];
198214 sigmaNoiseGeV = 1e-3 * weightsNose_[layer] * rcorrNose_[thickness] * hgcHFNose_noise_fC_[thickness - 1 ] /
199215 hgcHFNose_fCPerMIP_[thickness - 1 ];
0 commit comments