|
||||
File indexing completed on 2024-04-06 12:11:55
0001 // -*- C++ -*- 0002 // 0003 // Package: FWCore/Common 0004 // Class : LuminosityBlockBase 0005 // 0006 // Implementation: 0007 // <Notes on implementation> 0008 // 0009 // Original Author: Eric Vaandering 0010 // Created: Tue Jan 12 15:31:00 CDT 2010 0011 // 0012 0013 // system include files 0014 #include <vector> 0015 #include <map> 0016 0017 // user include files 0018 #include "FWCore/Common/interface/LuminosityBlockBase.h" 0019 //#include "FWCore/Common/interface/TriggerNames.h" 0020 //#include "DataFormats/Provenance/interface/ParameterSetID.h" 0021 //#include "DataFormats/Common/interface/TriggerResults.h" 0022 //#include "FWCore/Utilities/interface/Exception.h" 0023 //#include "FWCore/Utilities/interface/ThreadSafeRegistry.h" 0024 //#include "FWCore/ParameterSet/interface/ParameterSet.h" 0025 //#include "FWCore/ParameterSet/interface/Registry.h" 0026 0027 namespace edm { 0028 // typedef std::map<edm::ParameterSetID, edm::TriggerNames> TriggerNamesMap; 0029 // static TriggerNamesMap triggerNamesMap; 0030 // static TriggerNamesMap::const_iterator previousTriggerName; 0031 0032 LuminosityBlockBase::LuminosityBlockBase() {} 0033 0034 LuminosityBlockBase::~LuminosityBlockBase() {} 0035 0036 /* TriggerNames const* 0037 EventBase::triggerNames_(edm::TriggerResults const& triggerResults) { 0038 0039 // If the current and previous requests are for the same TriggerNames 0040 // then just return it. 0041 if (!triggerNamesMap.empty() && 0042 previousTriggerName->first == triggerResults.parameterSetID()) { 0043 return &previousTriggerName->second; 0044 } 0045 0046 // If TriggerNames was already created and cached here in the map, 0047 // then look it up and return that one 0048 TriggerNamesMap::const_iterator iter = 0049 triggerNamesMap.find(triggerResults.parameterSetID()); 0050 if (iter != triggerNamesMap.end()) { 0051 previousTriggerName = iter; 0052 return &iter->second; 0053 } 0054 0055 // Look for the parameter set containing the trigger names in the parameter 0056 // set registry using the ID from TriggerResults as the key used to find it. 0057 edm::ParameterSet pset; 0058 edm::pset::Registry* psetRegistry = edm::pset::Registry::instance(); 0059 if (psetRegistry->getMapped(triggerResults.parameterSetID(), 0060 pset)) { 0061 0062 if (pset.existsAs<std::vector<std::string> >("@trigger_paths", true)) { 0063 TriggerNames triggerNames(pset); 0064 0065 // This should never happen 0066 if (triggerNames.size() != triggerResults.size()) { 0067 throw cms::Exception("LogicError") 0068 << "edm::EventBase::triggerNames_ Encountered vector\n" 0069 "of trigger names and a TriggerResults object with\n" 0070 "different sizes. This should be impossible.\n" 0071 "Please send information to reproduce this problem to\n" 0072 "the edm developers.\n"; 0073 } 0074 0075 std::pair<TriggerNamesMap::iterator, bool> ret = 0076 triggerNamesMap.insert(std::pair<edm::ParameterSetID, edm::TriggerNames>(triggerResults.parameterSetID(), triggerNames)); 0077 previousTriggerName = ret.first; 0078 return &(ret.first->second); 0079 } 0080 } 0081 // For backward compatibility to very old data 0082 if (triggerResults.getTriggerNames().size() > 0U) { 0083 edm::ParameterSet fakePset; 0084 fakePset.addParameter<std::vector<std::string> >("@trigger_paths", triggerResults.getTriggerNames()); 0085 fakePset.registerIt(); 0086 TriggerNames triggerNames(fakePset); 0087 0088 // This should never happen 0089 if (triggerNames.size() != triggerResults.size()) { 0090 throw cms::Exception("LogicError") 0091 << "edm::EventBase::triggerNames_ Encountered vector\n" 0092 "of trigger names and a TriggerResults object with\n" 0093 "different sizes. This should be impossible.\n" 0094 "Please send information to reproduce this problem to\n" 0095 "the edm developers (2).\n"; 0096 } 0097 0098 std::pair<TriggerNamesMap::iterator, bool> ret = 0099 triggerNamesMap.insert(std::pair<edm::ParameterSetID, edm::TriggerNames>(fakePset.id(), triggerNames)); 0100 previousTriggerName = ret.first; 0101 return &(ret.first->second); 0102 } 0103 return 0; 0104 }*/ 0105 } // namespace edm
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |