File indexing completed on 2024-06-11 22:53:47
0001 #ifndef HLTHighLevel_h
0002 #define HLTHighLevel_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <vector>
0017 #include <string>
0018 #include <optional>
0019
0020
0021 #include "FWCore/Framework/interface/Event.h"
0022 #include "FWCore/Framework/interface/stream/EDFilter.h"
0023 #include "FWCore/Framework/interface/ESWatcher.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/Utilities/interface/ESGetToken.h"
0026 #include "FWCore/Common/interface/TriggerNames.h"
0027 #include "DataFormats/Provenance/interface/ParameterSetID.h"
0028
0029
0030 namespace edm {
0031 class ConfigurationDescriptions;
0032 class TriggerResults;
0033 }
0034
0035 class AlCaRecoTriggerBits;
0036 class AlCaRecoTriggerBitsRcd;
0037
0038
0039
0040
0041
0042 class HLTHighLevel : public edm::stream::EDFilter<> {
0043 public:
0044 explicit HLTHighLevel(const edm::ParameterSet &);
0045 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0046
0047 bool filter(edm::Event &, const edm::EventSetup &) override;
0048
0049
0050 std::vector<std::string> pathsFromSetup(const std::string &key,
0051 const edm::Event &,
0052 const edm::EventSetup &iSetup) const;
0053
0054 private:
0055
0056 void init(const edm::TriggerResults &results,
0057 const edm::Event &,
0058 const edm::EventSetup &iSetup,
0059 const edm::TriggerNames &triggerNames);
0060
0061
0062 edm::InputTag inputTag_;
0063 edm::EDGetTokenT<edm::TriggerResults> inputToken_;
0064
0065
0066 edm::ParameterSetID triggerNamesID_;
0067
0068
0069 bool andOr_;
0070
0071
0072 bool throw_;
0073
0074
0075 std::string const &pathName(const edm::Event &) const;
0076 std::string const &moduleLabel() const;
0077
0078
0079 const std::string eventSetupPathsKey_;
0080 const std::string eventSetupPathsLabel_;
0081
0082 std::optional<edm::ESWatcher<AlCaRecoTriggerBitsRcd>> watchAlCaRecoTriggerBitsRcd_;
0083
0084 edm::ESGetToken<AlCaRecoTriggerBits, AlCaRecoTriggerBitsRcd> alcaRecotriggerBitsToken_;
0085
0086
0087 std::vector<std::string> HLTPatterns_;
0088
0089
0090 std::vector<std::string> HLTPathsByName_;
0091
0092
0093 std::vector<unsigned int> HLTPathsByIndex_;
0094 };
0095
0096 #endif