1 #ifndef HLTrigger_HLTcore_HLTPrescaleProvider_h 2 #define HLTrigger_HLTcore_HLTPrescaleProvider_h 28 #include <type_traits> 31 class ConsumesCollector;
63 template <
typename T =
unsigned int>
72 template <
typename TL1 =
int,
typename THLT = TL1>
82 template <
typename TL1 =
int,
typename THLT = TL1>
86 std::pair<std::vector<std::pair<std::string, TL1>>, THLT> retval;
101 bool readPrescalesFromFile);
109 template <
typename T>
111 static_assert(std::is_same_v<T, double>
or std::is_same_v<T, FractionalPrescale>,
112 "\n\n\tPlease use convertL1PS<double> or convertL1PS<FractionalPrescale>" 113 " (other types for L1T prescales are not supported anymore by HLTPrescaleProvider)" 114 "\n\tconvertL1PS is used inside prescaleValues and prescaleValuesInDetail," 115 " so it might be necessary to specify template arguments for those calls," 116 "\n\te.g. prescaleValues<double, FractionalPrescale>" 117 " (the 1st argument applies to L1T prescales, the 2nd to HLT prescales)\n");
134 unsigned char count_[5] = {0, 0, 0, 0, 0};
138 template <
typename T>
142 template <
typename T>
155 #endif // HLTrigger_HLTcore_HLTPrescaleProvider_h HLTConfigProvider hltConfigProvider_
static void fillPSetDescription(edm::ParameterSetDescription &desc, unsigned int stageL1Trigger, edm::InputTag const &l1tAlgBlkInputTag, edm::InputTag const &l1tExtBlkInputTag, bool readPrescalesFromFile)
static int l1PrescaleDenominator()
std::unique_ptr< L1GtUtils > l1GtUtils_
T prescaleValue(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
combining the two methods above
void checkL1GtUtils() const
std::pair< std::vector< std::pair< std::string, TL1 > >, THLT > prescaleValuesInDetail(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
HLTConfigProvider const & hltConfigProvider() const
void checkL1TGlobalUtil() const
l1t::L1TGlobalUtil const & l1tGlobalUtil() const
double getL1PrescaleValue(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
T prescaleValue(unsigned int set, const std::string &trigger) const
HLT prescale value in specific prescale set for a specific trigger path.
boost::rational< int > FractionalPrescale
std::pair< TL1, THLT > prescaleValues(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
Combined L1T (pair.first) and HLT (pair.second) prescales per HLT path.
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
static constexpr const char * l1tGlobalDecisionKeyword_
static std::string const triggerResults
int prescaleSet(const edm::Event &iEvent, const edm::EventSetup &iSetup)
HLTPrescaleProvider(edm::ParameterSet const &pset, edm::ConsumesCollector &&iC, T &module)
bool rejectedByHLTPrescaler(const edm::TriggerResults &triggerResults, unsigned int i) const
std::unique_ptr< l1t::L1TGlobalUtil > l1tGlobalUtil_
std::vector< std::pair< std::string, double > > getL1PrescaleValueInDetail(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
L1GtUtils const & l1GtUtils() const
T convertL1PS(double val) const
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
static constexpr int kL1PrescaleDenominator_