00001 #include "SimCalorimetry/HcalSimAlgos/interface/HcalSimParameterMap.h"
00002 #include "DataFormats/DetId/interface/DetId.h"
00003 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
00004 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00005 #include "DataFormats/HcalDetId/interface/HcalZDCDetId.h"
00006 #include <iostream>
00007 HcalSimParameterMap::HcalSimParameterMap() :
00008 theHBParameters(2000., 0.3305,
00009 117, 5,
00010 10, 5, true, true,
00011 1, std::vector<double>(16, 117.)),
00012 theHEParameters(2000., 0.3305,
00013 178, 5,
00014 10, 5, true, true,
00015 16, std::vector<double>(16, 178.)),
00016 theHOParameters( 4000., 0.3065,
00017 217., 5,
00018 10, 5, true, true,
00019 1, std::vector<double>(16, 217.)),
00020 theHFParameters1(6., 2.79,
00021 1/0.278 , -4,
00022 true),
00023 theHFParameters2(6., 2.06,
00024 1/0.267 , -4,
00025 true),
00026 theZDCParameters(1., 4.3333,
00027 2.09 , -4,
00028 false)
00029 {
00030 }
00031
00032
00033
00034
00035
00036
00037
00038
00039 HcalSimParameterMap::HcalSimParameterMap(const edm::ParameterSet & p)
00040 : theHBParameters( p.getParameter<edm::ParameterSet>("hb") ),
00041 theHEParameters( p.getParameter<edm::ParameterSet>("he") ),
00042 theHOParameters( p.getParameter<edm::ParameterSet>("ho") ),
00043 theHFParameters1( p.getParameter<edm::ParameterSet>("hf1") ),
00044 theHFParameters2( p.getParameter<edm::ParameterSet>("hf2") ),
00045 theZDCParameters( p.getParameter<edm::ParameterSet>("zdc") )
00046 {
00047 }
00048
00049 const CaloSimParameters & HcalSimParameterMap::simParameters(const DetId & detId) const {
00050 HcalGenericDetId genericId(detId);
00051 if(genericId.isHcalZDCDetId())
00052 return theZDCParameters;
00053 HcalDetId hcalDetId(detId);
00054 if(hcalDetId.subdet() == HcalBarrel) {
00055 return theHBParameters;
00056 } else if(hcalDetId.subdet() == HcalEndcap) {
00057 return theHEParameters;
00058 } else if(hcalDetId.subdet() == HcalOuter) {
00059 return theHOParameters;
00060 } else {
00061 if(hcalDetId.depth() == 1) {
00062 return theHFParameters1;
00063 } else {
00064 return theHFParameters2;
00065 }
00066 }
00067 }
00068
00069 void HcalSimParameterMap::setDbService(const HcalDbService * dbService)
00070 {
00071 theHBParameters.setDbService(dbService);
00072 theHEParameters.setDbService(dbService);
00073 theHOParameters.setDbService(dbService);
00074 theHFParameters1.setDbService(dbService);
00075 theHFParameters2.setDbService(dbService);
00076 theZDCParameters.setDbService(dbService);
00077 }