CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/CalibCalorimetry/HcalPlugins/src/HcalHardcodeCalibrations.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // Original Author:  Fedor Ratnikov
00003 // $Id: HcalHardcodeCalibrations.cc,v 1.27 2011/07/21 16:58:17 temple Exp $
00004 //
00005 //
00006 
00007 #include <memory>
00008 #include <iostream>
00009 
00010 #include "FWCore/Framework/interface/ValidityInterval.h"
00011 #include "DataFormats/HcalDetId/interface/HcalZDCDetId.h"
00012 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00013 #include "DataFormats/HcalDetId/interface/HcalGenericDetId.h"
00014 #include "CalibCalorimetry/HcalAlgos/interface/HcalDbHardcode.h"
00015 
00016 #include "CondFormats/DataRecord/interface/HcalAllRcds.h"
00017 
00018 #include "Geometry/ForwardGeometry/interface/ZdcTopology.h"
00019 #include "Geometry/CaloTopology/interface/HcalTopology.h"
00020 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00021 
00022 #include "HcalHardcodeCalibrations.h"
00023 
00024 // class decleration
00025 //
00026 
00027 using namespace cms;
00028 
00029 namespace {
00030 
00031 std::vector<HcalGenericDetId> allCells (bool h2_mode) {
00032   static std::vector<HcalGenericDetId> result;
00033   if (result.size () <= 0) {
00034     HcalTopology hcaltopology(h2_mode);
00035     for (int eta = -50; eta < 50; eta++) {
00036       for (int phi = 0; phi < 100; phi++) {
00037         for (int depth = 1; depth < 5; depth++) {
00038           for (int det = 1; det < 5; det++) {
00039             HcalDetId cell ((HcalSubdetector) det, eta, phi, depth);
00040             if (hcaltopology.valid(cell)) result.push_back (cell);
00041           }
00042         }
00043       }
00044     } 
00045     ZdcTopology zdctopology;
00046     HcalZDCDetId zcell;
00047     HcalZDCDetId::Section section  = HcalZDCDetId::EM;
00048     for(int depth= 1; depth < 6; depth++){
00049       zcell = HcalZDCDetId(section, true, depth);
00050       if(zdctopology.valid(zcell)) result.push_back(zcell);
00051       zcell = HcalZDCDetId(section, false, depth);
00052       if(zdctopology.valid(zcell)) result.push_back(zcell);     
00053     }
00054     section = HcalZDCDetId::HAD;
00055     for(int depth= 1; depth < 5; depth++){
00056       zcell = HcalZDCDetId(section, true, depth);
00057       if(zdctopology.valid(zcell)) result.push_back(zcell);
00058       zcell = HcalZDCDetId(section, false, depth);
00059       if(zdctopology.valid(zcell)) result.push_back(zcell);     
00060     }
00061     section = HcalZDCDetId::LUM;
00062     for(int depth= 1; depth < 3; depth++){
00063       zcell = HcalZDCDetId(section, true, depth);
00064       if(zdctopology.valid(zcell)) result.push_back(zcell);
00065       zcell = HcalZDCDetId(section, false, depth);
00066       if(zdctopology.valid(zcell)) result.push_back(zcell);     
00067     }
00068   }
00069   return result;
00070 }
00071 
00072 }
00073 
00074 HcalHardcodeCalibrations::HcalHardcodeCalibrations ( const edm::ParameterSet& iConfig ) 
00075   
00076 {
00077   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::HcalHardcodeCalibrations->...";
00078   //parsing record parameters
00079   h2mode_=iConfig.getUntrackedParameter<bool>("H2Mode",false);
00080   std::vector <std::string> toGet = iConfig.getUntrackedParameter <std::vector <std::string> > ("toGet");
00081   for(std::vector <std::string>::iterator objectName = toGet.begin(); objectName != toGet.end(); ++objectName ) {
00082     bool all = *objectName == "all";
00083     if ((*objectName == "Pedestals") || all) {
00084       setWhatProduced (this, &HcalHardcodeCalibrations::producePedestals);
00085       findingRecord <HcalPedestalsRcd> ();
00086     }
00087     if ((*objectName == "PedestalWidths") || all) {
00088       setWhatProduced (this, &HcalHardcodeCalibrations::producePedestalWidths);
00089       findingRecord <HcalPedestalWidthsRcd> ();
00090     }
00091     if ((*objectName == "Gains") || all) {
00092       setWhatProduced (this, &HcalHardcodeCalibrations::produceGains);
00093       findingRecord <HcalGainsRcd> ();
00094     }
00095     if ((*objectName == "GainWidths") || all) {
00096       setWhatProduced (this, &HcalHardcodeCalibrations::produceGainWidths);
00097       findingRecord <HcalGainWidthsRcd> ();
00098     }
00099     if ((*objectName == "QIEData") || all) {
00100       setWhatProduced (this, &HcalHardcodeCalibrations::produceQIEData);
00101       findingRecord <HcalQIEDataRcd> ();
00102     }
00103     if ((*objectName == "ChannelQuality") || (*objectName == "channelQuality") || all) {
00104       setWhatProduced (this, &HcalHardcodeCalibrations::produceChannelQuality);
00105       findingRecord <HcalChannelQualityRcd> ();
00106     }
00107     if ((*objectName == "ElectronicsMap") || (*objectName == "electronicsMap") || all) {
00108       setWhatProduced (this, &HcalHardcodeCalibrations::produceElectronicsMap);
00109       findingRecord <HcalElectronicsMapRcd> ();
00110     }
00111     if ((*objectName == "ZSThresholds") || (*objectName == "zsThresholds") || all) {
00112       setWhatProduced (this, &HcalHardcodeCalibrations::produceZSThresholds);
00113       findingRecord <HcalZSThresholdsRcd> ();
00114     }
00115     if ((*objectName == "RespCorrs") || (*objectName == "ResponseCorrection") || all) {
00116       setWhatProduced (this, &HcalHardcodeCalibrations::produceRespCorrs);
00117       findingRecord <HcalRespCorrsRcd> ();
00118     }
00119     if ((*objectName == "LUTCorrs") || (*objectName == "LUTCorrection") || all) {
00120       setWhatProduced (this, &HcalHardcodeCalibrations::produceLUTCorrs);
00121       findingRecord <HcalLUTCorrsRcd> ();
00122     }
00123     if ((*objectName == "PFCorrs") || (*objectName == "PFCorrection") || all) {
00124       setWhatProduced (this, &HcalHardcodeCalibrations::producePFCorrs);
00125       findingRecord <HcalPFCorrsRcd> ();
00126     }
00127     if ((*objectName == "TimeCorrs") || (*objectName == "TimeCorrection") || all) {
00128       setWhatProduced (this, &HcalHardcodeCalibrations::produceTimeCorrs);
00129       findingRecord <HcalTimeCorrsRcd> ();
00130     }
00131     if ((*objectName == "L1TriggerObjects") || (*objectName == "L1Trigger") || all) {
00132       setWhatProduced (this, &HcalHardcodeCalibrations::produceL1TriggerObjects);
00133       findingRecord <HcalL1TriggerObjectsRcd> ();
00134     }
00135     if ((*objectName == "ValidationCorrs") || (*objectName == "ValidationCorrection") || all) {
00136       setWhatProduced (this, &HcalHardcodeCalibrations::produceValidationCorrs);
00137       findingRecord <HcalValidationCorrsRcd> ();
00138     }
00139     if ((*objectName == "LutMetadata") || (*objectName == "lutMetadata") || all) {
00140       setWhatProduced (this, &HcalHardcodeCalibrations::produceLutMetadata);
00141       findingRecord <HcalLutMetadataRcd> ();
00142     }
00143     if ((*objectName == "DcsValues") || all) {
00144       setWhatProduced (this, &HcalHardcodeCalibrations::produceDcsValues);
00145       findingRecord <HcalDcsRcd> ();
00146     }
00147     if ((*objectName == "DcsMap") || (*objectName == "dcsMap") || all) {
00148       setWhatProduced (this, &HcalHardcodeCalibrations::produceDcsMap);
00149       findingRecord <HcalDcsMapRcd> ();
00150     }
00151     if ((*objectName == "RecoParams") || all) {
00152       setWhatProduced (this, &HcalHardcodeCalibrations::produceRecoParams);
00153       findingRecord <HcalRecoParamsRcd> ();
00154     }
00155     if ((*objectName == "LongRecoParams") || all) {
00156       setWhatProduced (this, &HcalHardcodeCalibrations::produceLongRecoParams);
00157       findingRecord <HcalLongRecoParamsRcd> ();
00158     }
00159     if ((*objectName == "MCParams") || all) {
00160       setWhatProduced (this, &HcalHardcodeCalibrations::produceMCParams);
00161       findingRecord <HcalMCParamsRcd> ();
00162     }
00163     if ((*objectName == "FlagHFDigiTimeParams") || all) {
00164       setWhatProduced (this, &HcalHardcodeCalibrations::produceFlagHFDigiTimeParams);
00165       findingRecord <HcalFlagHFDigiTimeParamsRcd> ();
00166     }
00167   }
00168 }
00169 
00170 
00171 HcalHardcodeCalibrations::~HcalHardcodeCalibrations()
00172 {
00173 }
00174 
00175 
00176 //
00177 // member functions
00178 //
00179 void 
00180 HcalHardcodeCalibrations::setIntervalFor( const edm::eventsetup::EventSetupRecordKey& iKey, const edm::IOVSyncValue& iTime, edm::ValidityInterval& oInterval ) {
00181   std::string record = iKey.name ();
00182   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::setIntervalFor-> key: " << record << " time: " << iTime.eventID() << '/' << iTime.time ().value ();
00183   oInterval = edm::ValidityInterval (edm::IOVSyncValue::beginOfTime(), edm::IOVSyncValue::endOfTime()); //infinite
00184 }
00185 
00186 std::auto_ptr<HcalPedestals> HcalHardcodeCalibrations::producePedestals (const HcalPedestalsRcd&) {
00187   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::producePedestals-> ...";
00188   std::auto_ptr<HcalPedestals> result (new HcalPedestals (false));
00189   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00190   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00191     HcalPedestal item = HcalDbHardcode::makePedestal (*cell);
00192     result->addValues(item,h2mode_);
00193   }
00194   return result;
00195 }
00196 
00197 std::auto_ptr<HcalPedestalWidths> HcalHardcodeCalibrations::producePedestalWidths (const HcalPedestalWidthsRcd&) {
00198   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::producePedestalWidths-> ...";
00199   std::auto_ptr<HcalPedestalWidths> result (new HcalPedestalWidths (false));
00200   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00201   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00202     HcalPedestalWidth item = HcalDbHardcode::makePedestalWidth (*cell);
00203     result->addValues(item,h2mode_);
00204   }
00205   return result;
00206 }
00207 
00208 std::auto_ptr<HcalGains> HcalHardcodeCalibrations::produceGains (const HcalGainsRcd&) {
00209   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceGains-> ...";
00210   std::auto_ptr<HcalGains> result (new HcalGains ());
00211   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00212   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00213     HcalGain item = HcalDbHardcode::makeGain (*cell);
00214     result->addValues(item,h2mode_);
00215   }
00216   return result;
00217 }
00218 
00219 std::auto_ptr<HcalGainWidths> HcalHardcodeCalibrations::produceGainWidths (const HcalGainWidthsRcd&) {
00220   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceGainWidths-> ...";
00221   std::auto_ptr<HcalGainWidths> result (new HcalGainWidths ());
00222   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00223   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00224     HcalGainWidth item = HcalDbHardcode::makeGainWidth (*cell);
00225     result->addValues(item,h2mode_);
00226   }
00227   return result;
00228 }
00229 
00230 std::auto_ptr<HcalQIEData> HcalHardcodeCalibrations::produceQIEData (const HcalQIEDataRcd& rcd) {
00231   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceQIEData-> ...";
00232   std::auto_ptr<HcalQIEData> result (new HcalQIEData ());
00233   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00234   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00235     HcalQIECoder coder = HcalDbHardcode::makeQIECoder (*cell);
00236     result->addCoder (coder,h2mode_);
00237   }
00238   return result;
00239 }
00240 
00241 std::auto_ptr<HcalChannelQuality> HcalHardcodeCalibrations::produceChannelQuality (const HcalChannelQualityRcd& rcd) {
00242   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceChannelQuality-> ...";
00243   std::auto_ptr<HcalChannelQuality> result (new HcalChannelQuality ());
00244   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00245   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00246     HcalChannelStatus item(cell->rawId(),0);
00247     result->addValues(item,h2mode_);
00248   }
00249   return result;
00250 }
00251 
00252 
00253 std::auto_ptr<HcalRespCorrs> HcalHardcodeCalibrations::produceRespCorrs (const HcalRespCorrsRcd& rcd) {
00254   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceRespCorrs-> ...";
00255   std::auto_ptr<HcalRespCorrs> result (new HcalRespCorrs ());
00256   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00257   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00258     HcalRespCorr item(cell->rawId(),1.0);
00259     result->addValues(item,h2mode_);
00260   }
00261   return result;
00262 }
00263 
00264 std::auto_ptr<HcalLUTCorrs> HcalHardcodeCalibrations::produceLUTCorrs (const HcalLUTCorrsRcd& rcd) {
00265   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLUTCorrs-> ...";
00266   std::auto_ptr<HcalLUTCorrs> result (new HcalLUTCorrs ());
00267   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00268   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00269     HcalLUTCorr item(cell->rawId(),1.0);
00270     result->addValues(item,h2mode_);
00271   }
00272   return result;
00273 }
00274 
00275 std::auto_ptr<HcalPFCorrs> HcalHardcodeCalibrations::producePFCorrs (const HcalPFCorrsRcd& rcd) {
00276   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::producePFCorrs-> ...";
00277   std::auto_ptr<HcalPFCorrs> result (new HcalPFCorrs ());
00278   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00279   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00280     HcalPFCorr item(cell->rawId(),1.0);
00281     result->addValues(item,h2mode_);
00282   }
00283   return result;
00284 }
00285 
00286 std::auto_ptr<HcalTimeCorrs> HcalHardcodeCalibrations::produceTimeCorrs (const HcalTimeCorrsRcd& rcd) {
00287   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceTimeCorrs-> ...";
00288   std::auto_ptr<HcalTimeCorrs> result (new HcalTimeCorrs ());
00289   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00290   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00291     HcalTimeCorr item(cell->rawId(),0.0);
00292     result->addValues(item,h2mode_);
00293   }
00294   return result;
00295 }
00296 
00297 std::auto_ptr<HcalZSThresholds> HcalHardcodeCalibrations::produceZSThresholds (const HcalZSThresholdsRcd& rcd) {
00298   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceZSThresholds-> ...";
00299   std::auto_ptr<HcalZSThresholds> result (new HcalZSThresholds ());
00300   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00301   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00302     HcalZSThreshold item(cell->rawId(),0);
00303     result->addValues(item,h2mode_);
00304   }
00305   return result;
00306 }
00307 
00308 
00309 std::auto_ptr<HcalL1TriggerObjects> HcalHardcodeCalibrations::produceL1TriggerObjects (const HcalL1TriggerObjectsRcd& rcd) {
00310   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceL1TriggerObjects-> ...";
00311   std::auto_ptr<HcalL1TriggerObjects> result (new HcalL1TriggerObjects ());
00312   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00313   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00314     HcalL1TriggerObject item(cell->rawId(),0., 1., 0);
00315     result->addValues(item,h2mode_);
00316   }
00317   // add tag and algo values
00318   result->setTagString("hardcoded");
00319   result->setAlgoString("hardcoded");
00320   return result;
00321 }
00322 
00323 
00324 
00325 
00326 std::auto_ptr<HcalElectronicsMap> HcalHardcodeCalibrations::produceElectronicsMap (const HcalElectronicsMapRcd& rcd) {
00327   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceElectronicsMap-> ...";
00328 
00329   std::auto_ptr<HcalElectronicsMap> result (new HcalElectronicsMap ());
00330   HcalDbHardcode::makeHardcodeMap(*result);
00331   return result;
00332 }
00333 
00334 std::auto_ptr<HcalValidationCorrs> HcalHardcodeCalibrations::produceValidationCorrs (const HcalValidationCorrsRcd& rcd) {
00335   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceValidationCorrs-> ...";
00336   std::auto_ptr<HcalValidationCorrs> result (new HcalValidationCorrs ());
00337   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00338   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00339     HcalValidationCorr item(cell->rawId(),1.0);
00340     result->addValues(item,h2mode_);
00341   }
00342   return result;
00343 }
00344 
00345 std::auto_ptr<HcalLutMetadata> HcalHardcodeCalibrations::produceLutMetadata (const HcalLutMetadataRcd& rcd) {
00346   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLutMetadata-> ...";
00347   std::auto_ptr<HcalLutMetadata> result (new HcalLutMetadata ());
00348 
00349   result->setRctLsb( 0.25 );
00350   result->setNominalGain( 0.177 );
00351 
00352   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00353   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00354     HcalLutMetadatum item(cell->rawId(),1.0,1,1);
00355     result->addValues(item,h2mode_);
00356   }
00357   return result;
00358 }
00359 
00360 std::auto_ptr<HcalDcsValues> 
00361   HcalHardcodeCalibrations::produceDcsValues (const HcalDcsRcd& rcd) {
00362   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceDcsValues-> ...";
00363   std::auto_ptr<HcalDcsValues> result(new HcalDcsValues);
00364   return result;
00365 }
00366 
00367 std::auto_ptr<HcalDcsMap> HcalHardcodeCalibrations::produceDcsMap (const HcalDcsMapRcd& rcd) {
00368   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceDcsMap-> ...";
00369 
00370   std::auto_ptr<HcalDcsMap> result (new HcalDcsMap ());
00371   HcalDbHardcode::makeHardcodeDcsMap(*result);
00372   return result;
00373 }
00374 
00375 std::auto_ptr<HcalRecoParams> HcalHardcodeCalibrations::produceRecoParams (const HcalRecoParamsRcd&) {
00376   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceRecoParams-> ...";
00377   std::auto_ptr<HcalRecoParams> result (new HcalRecoParams ());
00378   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00379   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00380     HcalRecoParam item = HcalDbHardcode::makeRecoParam (*cell);
00381     result->addValues(item,h2mode_);
00382   }
00383   return result;
00384 }
00385 
00386 std::auto_ptr<HcalLongRecoParams> HcalHardcodeCalibrations::produceLongRecoParams (const HcalLongRecoParamsRcd&) {
00387   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceLongRecoParams-> ...";
00388   std::auto_ptr<HcalLongRecoParams> result (new HcalLongRecoParams ());
00389   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00390   std::vector <unsigned int> mSignal; 
00391   mSignal.push_back(4); 
00392   mSignal.push_back(5); 
00393   mSignal.push_back(6);
00394   std::vector <unsigned int> mNoise;  
00395   mNoise.push_back(1);  
00396   mNoise.push_back(2);  
00397   mNoise.push_back(3);
00398   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00399     if (cell->isHcalZDCDetId())
00400       {
00401         HcalLongRecoParam item(cell->rawId(),mSignal,mNoise);
00402         result->addValues(item,h2mode_);
00403       }
00404   }
00405   return result;
00406 }
00407 
00408 std::auto_ptr<HcalMCParams> HcalHardcodeCalibrations::produceMCParams (const HcalMCParamsRcd&) {
00409   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceMCParams-> ...";
00410   std::auto_ptr<HcalMCParams> result (new HcalMCParams ());
00411   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00412   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00413     HcalMCParam item(cell->rawId(),0);
00414     result->addValues(item,h2mode_);
00415   }
00416   return result;
00417 }
00418 
00419 
00420 std::auto_ptr<HcalFlagHFDigiTimeParams> HcalHardcodeCalibrations::produceFlagHFDigiTimeParams (const HcalFlagHFDigiTimeParamsRcd&) {
00421   edm::LogInfo("HCAL") << "HcalHardcodeCalibrations::produceFlagHFDigiTimeParams-> ...";
00422   std::auto_ptr<HcalFlagHFDigiTimeParams> result (new HcalFlagHFDigiTimeParams ());
00423   std::vector <HcalGenericDetId> cells = allCells(h2mode_);
00424   
00425   std::vector<double> coef;
00426   coef.push_back(0.93);
00427   coef.push_back(-0.38275);
00428   coef.push_back(-0.012667);
00429 
00430   for (std::vector <HcalGenericDetId>::const_iterator cell = cells.begin (); cell != cells.end (); cell++) {
00431     HcalFlagHFDigiTimeParam item(cell->rawId(),
00432                                  1, //firstsample
00433                                  3, // samplestoadd
00434                                  2, //expectedpeak
00435                                  40., // min energy threshold
00436                                  coef // coefficients
00437                                  );
00438     result->addValues(item,h2mode_);
00439   }
00440   return result;
00441 } // produceFlagHFDigiTimeParams;