Go to the documentation of this file.00001 #ifndef HLTcore_HLTConfigProvider_h
00002 #define HLTcore_HLTConfigProvider_h
00003
00016 #include "FWCore/Framework/interface/Run.h"
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/Framework/interface/LuminosityBlock.h"
00019
00020 #include "L1Trigger/GlobalTriggerAnalyzer/interface/L1GtUtils.h"
00021 #include "HLTrigger/HLTcore/interface/HLTConfigData.h"
00022
00023 #include "boost/shared_ptr.hpp"
00024
00025 #include<map>
00026 #include<string>
00027 #include<vector>
00028
00029
00030
00031
00032
00033
00034 class HLTConfigProvider {
00035
00036 public:
00038 HLTConfigProvider();
00039
00040 public:
00044 bool init(const edm::Run& iRun, const edm::EventSetup& iSetup,
00045 const std::string& processName, bool& changed);
00046
00048 void dump(const std::string& what) const {
00049 hltConfigData_->dump(what);
00050 }
00051
00053
00055 const std::string& processName() const {
00056 return hltConfigData_->processName();
00057 }
00059 bool inited() const {
00060 return inited_;
00061 }
00063 bool changed() const {
00064 return changed_;
00065 }
00066
00068 unsigned int size() const {
00069 return hltConfigData_->size();
00070 }
00072 unsigned int size(unsigned int trigger) const {
00073 return hltConfigData_->size(trigger);
00074 }
00075 unsigned int size(const std::string& trigger) const {
00076 return hltConfigData_->size(trigger);
00077 }
00078
00080 const std::string& tableName() const {
00081 return hltConfigData_->tableName();
00082 }
00083
00085 const std::vector<std::string>& triggerNames() const {
00086 return hltConfigData_->triggerNames();
00087 }
00088 const std::string& triggerName(unsigned int triggerIndex) const {
00089 return hltConfigData_->triggerName(triggerIndex);
00090 }
00091
00093 unsigned int triggerIndex(const std::string& triggerName) const {
00094 return hltConfigData_->triggerIndex(triggerName);
00095 }
00096
00098 const std::vector<std::string>& moduleLabels(unsigned int trigger) const {
00099 return hltConfigData_->moduleLabels(trigger);
00100 }
00101 const std::vector<std::string>& moduleLabels(const std::string& trigger) const {
00102 return hltConfigData_->moduleLabels(trigger);
00103 }
00104 const std::vector<std::string>& saveTagsModules(unsigned int trigger) const {
00105 return hltConfigData_->saveTagsModules(trigger);
00106 }
00107 const std::vector<std::string>& saveTagsModules(const std::string& trigger) const {
00108 return hltConfigData_->saveTagsModules(trigger);
00109 }
00110 const std::string& moduleLabel(unsigned int trigger, unsigned int module) const {
00111 return hltConfigData_->moduleLabel(trigger,module);
00112 }
00113 const std::string& moduleLabel(const std::string& trigger, unsigned int module) const {
00114 return hltConfigData_->moduleLabel(trigger,module);
00115 }
00116
00118 unsigned int moduleIndex(unsigned int trigger, const std::string& module) const {
00119 return hltConfigData_->moduleIndex(trigger,module);
00120 }
00121 unsigned int moduleIndex(const std::string& trigger, const std::string& module) const {
00122 return hltConfigData_->moduleIndex(trigger,module);
00123 }
00124
00126 const std::string moduleType(const std::string& module) const {
00127 return hltConfigData_->moduleType(module);
00128 }
00129
00131 const std::string moduleEDMType(const std::string& module) const {
00132 return hltConfigData_->moduleEDMType(module);
00133 }
00134
00136 const edm::ParameterSet& processPSet() const {
00137 return hltConfigData_->processPSet();
00138 }
00139
00141 const edm::ParameterSet& modulePSet(const std::string& module) const {
00142 return hltConfigData_->modulePSet(module);
00143 }
00144
00146 bool saveTags(const std::string& module) const {
00147 return hltConfigData_->saveTags(module);
00148 }
00149
00150
00153 const std::vector<std::vector<std::pair<bool,std::string> > >& hltL1GTSeeds() const {
00154 return hltConfigData_->hltL1GTSeeds();
00155 }
00157 const std::vector<std::pair<bool,std::string> >& hltL1GTSeeds(const std::string& trigger) const {
00158 return hltConfigData_->hltL1GTSeeds(trigger);
00159 }
00161 const std::vector<std::pair<bool,std::string> >& hltL1GTSeeds(unsigned int trigger) const {
00162 return hltConfigData_->hltL1GTSeeds(trigger);
00163 }
00164
00165
00168 const std::vector<std::string>& streamNames() const {
00169 return hltConfigData_->streamNames();
00170 }
00172 const std::string& streamName(unsigned int stream) const {
00173 return hltConfigData_->streamName(stream);
00174 }
00176 unsigned int streamIndex(const std::string& stream) const {
00177 return hltConfigData_->streamIndex(stream);
00178 }
00180 const std::vector<std::vector<std::string> >& streamContents() const {
00181 return hltConfigData_->streamContents();
00182 }
00184 const std::vector<std::string>& streamContent(unsigned int stream) const {
00185 return hltConfigData_->streamContent(stream);
00186 }
00188 const std::vector<std::string>& streamContent(const std::string& stream) const {
00189 return hltConfigData_->streamContent(stream);
00190 }
00191
00192
00195 const std::vector<std::string>& datasetNames() const {
00196 return hltConfigData_->datasetNames();
00197 }
00199 const std::string& datasetName(unsigned int dataset) const {
00200 return hltConfigData_->datasetName(dataset);
00201 }
00203 unsigned int datasetIndex(const std::string& dataset) const {
00204 return hltConfigData_->datasetIndex(dataset);
00205 }
00207 const std::vector<std::vector<std::string> >& datasetContents() const {
00208 return hltConfigData_->datasetContents();
00209 }
00211 const std::vector<std::string>& datasetContent(unsigned int dataset) const {
00212 return hltConfigData_->datasetContent(dataset);
00213 }
00215 const std::vector<std::string>& datasetContent(const std::string& dataset) const {
00216 return hltConfigData_->datasetContent(dataset);
00217 }
00218
00219
00222 unsigned int prescaleSize() const {
00223 return hltConfigData_->prescaleSize();
00224 }
00226 unsigned int prescaleValue(unsigned int set, const std::string& trigger) const {
00227 return hltConfigData_->prescaleValue(set,trigger);
00228 }
00229
00232 int prescaleSet(const edm::Event& iEvent, const edm::EventSetup& iSetup) const;
00233
00234
00236 unsigned int prescaleValue(const edm::Event& iEvent, const edm::EventSetup& iSetup, const std::string& trigger) const;
00237
00239 std::pair<int,int> prescaleValues(const edm::Event& iEvent, const edm::EventSetup& iSetup, const std::string& trigger) const;
00240
00241
00242
00244 const std::vector<std::string>& prescaleLabels() const {
00245 return hltConfigData_->prescaleLabels();
00246 }
00247 const std::map<std::string,std::vector<unsigned int> >& prescaleTable() const {
00248 return hltConfigData_->prescaleTable();
00249 }
00250
00252 static const std::vector<std::string> matched(const std::vector<std::string>& inputs, const std::string& pattern);
00253 static const std::string removeVersion(const std::string& trigger);
00254 static const std::vector<std::string> restoreVersion(const std::vector<std::string>& inputs, const std::string& trigger);
00255
00256 private:
00257
00258 void getDataFrom(const edm::ParameterSetID& iID);
00259 void init(const edm::ProcessHistory& iHistory, const std::string& processName);
00260 void init(const std::string& processName);
00261 void clear();
00262
00264 std::string processName_;
00265 bool inited_;
00266 bool changed_;
00267 const HLTConfigData* hltConfigData_;
00268 boost::shared_ptr<L1GtUtils> l1GtUtils_;
00269
00270 };
00271 #endif