![]() |
![]() |
#include <tmp/HcalTopologyIdealEP/interface/HcalTopologyIdealEP.h>
Classes | |
struct | RingSegmentation |
Public Types | |
typedef boost::shared_ptr < HcalTopology > | ReturnType |
Public Member Functions | |
HcalTopologyIdealEP (const edm::ParameterSet &) | |
ReturnType | produce (const IdealGeometryRecord &) |
~HcalTopologyIdealEP () | |
Static Public Member Functions | |
static void | fillDescriptions (edm::ConfigurationDescriptions &descriptions) |
Private Attributes | |
const edm::ParameterSet | m_pSet |
std::string | m_restrictions |
std::vector< RingSegmentation > | m_segmentation |
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 25 of file HcalTopologyIdealEP.h.
typedef boost::shared_ptr<HcalTopology> HcalTopologyIdealEP::ReturnType |
Definition at line 31 of file HcalTopologyIdealEP.h.
HcalTopologyIdealEP::HcalTopologyIdealEP | ( | const edm::ParameterSet & | conf | ) |
Definition at line 37 of file HcalTopologyIdealEP.cc.
References edm::ParameterSet::existsAs(), edm::ParameterSet::getUntrackedParameter(), m_segmentation, mergeVDriftHistosByStation::name, HcalTopologyIdealEP::RingSegmentation::ring, HcalTopologyIdealEP::RingSegmentation::segmentation, and edm::ESProducer::setWhatProduced().
: m_restrictions(conf.getUntrackedParameter<std::string>("Exclude")), m_pSet( conf ) { //std::cout << "HcalTopologyIdealEP::HcalTopologyIdealEP" << std::endl; edm::LogInfo("HCAL") << "HcalTopologyIdealEP::HcalTopologyIdealEP"; // copied from HcalHitRelabeller, input like {1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4} m_segmentation.resize(29); std::vector<int> segmentation; for (int iring=1; iring<=29; ++iring) { char name[10]; snprintf(name,10,"Eta%d",iring); if(conf.existsAs<std::vector<int> >(name, false)) { RingSegmentation entry; entry.ring = iring; entry.segmentation = conf.getUntrackedParameter<std::vector<int> >(name); m_segmentation.push_back(entry); } } setWhatProduced(this); }
HcalTopologyIdealEP::~HcalTopologyIdealEP | ( | ) |
Definition at line 61 of file HcalTopologyIdealEP.cc.
{ }
void HcalTopologyIdealEP::fillDescriptions | ( | edm::ConfigurationDescriptions & | descriptions | ) | [static] |
Definition at line 66 of file HcalTopologyIdealEP.cc.
References edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addOptional(), edm::ParameterSetDescription::addUntracked(), hcalSLHCTopologyConstants_cfi::hcalTopologyConstants, and AlCaHLTBitMon_QueryRunRegistry::string.
{ edm::ParameterSetDescription hcalTopologyConstants; hcalTopologyConstants.add<std::string>( "mode", "HcalTopologyMode::LHC" ); hcalTopologyConstants.add<int>( "maxDepthHB", 2 ); hcalTopologyConstants.add<int>( "maxDepthHE", 3 ); edm::ParameterSetDescription hcalSLHCTopologyConstants; hcalSLHCTopologyConstants.add<std::string>( "mode", "HcalTopologyMode::SLHC" ); hcalSLHCTopologyConstants.add<int>( "maxDepthHB", 7 ); hcalSLHCTopologyConstants.add<int>( "maxDepthHE", 7 ); edm::ParameterSetDescription desc; desc.addUntracked<std::string>( "Exclude", "" ); desc.addOptional<edm::ParameterSetDescription>( "hcalTopologyConstants", hcalTopologyConstants ); descriptions.add( "hcalTopologyIdeal", desc ); edm::ParameterSetDescription descSLHC; descSLHC.addUntracked<std::string>( "Exclude", "" ); descSLHC.addOptional<edm::ParameterSetDescription>( "hcalTopologyConstants", hcalSLHCTopologyConstants ); descriptions.add( "hcalTopologyIdealSLHC", descSLHC ); }
HcalTopologyIdealEP::ReturnType HcalTopologyIdealEP::produce | ( | const IdealGeometryRecord & | iRecord | ) |
Definition at line 95 of file HcalTopologyIdealEP.cc.
References error, Exception, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), HcalTopology::HcalTopology(), HcalTopologyMode::LHC, m_pSet, m_restrictions, m_segmentation, HcalTopology::maxDepthHB(), HcalTopology::maxDepthHE(), alignBH_cfg::mode, HcalTopologyRestrictionParser::parse(), geometryXMLtoCSV::parser, StringToEnumParser< T >::parseString(), and AlCaHLTBitMon_QueryRunRegistry::string.
{ // std::cout << "HcalTopologyIdealEP::produce(const IdealGeometryRecord& iRecord)" << std::endl; edm::LogInfo("HCAL") << "HcalTopologyIdealEP::produce(const IdealGeometryRecord& iRecord)"; using namespace edm::es; HcalTopologyMode::Mode mode = HcalTopologyMode::LHC; int maxDepthHB = 2; int maxDepthHE = 3; if( m_pSet.exists( "hcalTopologyConstants" )) { const edm::ParameterSet hcalTopoConsts( m_pSet.getParameter<edm::ParameterSet>( "hcalTopologyConstants" )); StringToEnumParser<HcalTopologyMode::Mode> eparser; mode = (HcalTopologyMode::Mode) eparser.parseString(hcalTopoConsts.getParameter<std::string>("mode")); maxDepthHB = hcalTopoConsts.getParameter<int>("maxDepthHB"); maxDepthHE = hcalTopoConsts.getParameter<int>("maxDepthHE"); } // std::cout << "mode = " << mode << ", maxDepthHB = " << maxDepthHB << ", maxDepthHE = " << maxDepthHE << std::endl; edm::LogInfo("HCAL") << "mode = " << mode << ", maxDepthHB = " << maxDepthHB << ", maxDepthHE = " << maxDepthHE; ReturnType myTopo(new HcalTopology( mode, maxDepthHB, maxDepthHE )); HcalTopologyRestrictionParser parser(*myTopo); if (!m_restrictions.empty()) { std::string error=parser.parse(m_restrictions); if (!error.empty()) { throw cms::Exception("Parse Error","Parse error on Exclude "+error); } } // see if any depth segmentation needs to be added for(std::vector<RingSegmentation>::const_iterator ringSegItr = m_segmentation.begin(); ringSegItr != m_segmentation.end(); ++ringSegItr) { myTopo->setDepthSegmentation(ringSegItr->ring, ringSegItr->segmentation); } return myTopo ; }
const edm::ParameterSet HcalTopologyIdealEP::m_pSet [private] |
Definition at line 40 of file HcalTopologyIdealEP.h.
Referenced by produce().
std::string HcalTopologyIdealEP::m_restrictions [private] |
Definition at line 39 of file HcalTopologyIdealEP.h.
Referenced by produce().
std::vector<RingSegmentation> HcalTopologyIdealEP::m_segmentation [private] |
Definition at line 47 of file HcalTopologyIdealEP.h.
Referenced by HcalTopologyIdealEP(), and produce().