File indexing completed on 2024-05-11 03:34:10
0001 #ifndef FWCore_Framework_limited_EDAnalyzer_h
0002 #define FWCore_Framework_limited_EDAnalyzer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "FWCore/Framework/interface/limited/analyzerAbilityToImplementor.h"
0025 #include "FWCore/Framework/interface/moduleAbilities.h"
0026
0027
0028
0029 namespace edm {
0030 namespace limited {
0031 template <typename... T>
0032 class EDAnalyzer : public analyzer::AbilityToImplementor<T>::Type..., public virtual EDAnalyzerBase {
0033 public:
0034 EDAnalyzer(edm::ParameterSet const& iPSet)
0035 : EDAnalyzerBase(iPSet), analyzer::AbilityToImplementor<T>::Type(iPSet)... {}
0036
0037
0038
0039 #ifdef __INTEL_COMPILER
0040 virtual ~EDAnalyzer() {}
0041 #endif
0042
0043 bool wantsProcessBlocks() const noexcept final { return WantsProcessBlockTransitions<T...>::value; }
0044 bool wantsInputProcessBlocks() const noexcept final { return WantsInputProcessBlockTransitions<T...>::value; }
0045 bool wantsGlobalRuns() const noexcept final { return WantsGlobalRunTransitions<T...>::value; }
0046 bool wantsGlobalLuminosityBlocks() const noexcept final {
0047 return WantsGlobalLuminosityBlockTransitions<T...>::value;
0048 }
0049 bool wantsStreamRuns() const noexcept final { return WantsStreamRunTransitions<T...>::value; }
0050 bool wantsStreamLuminosityBlocks() const noexcept final {
0051 return WantsStreamLuminosityBlockTransitions<T...>::value;
0052 }
0053
0054
0055
0056
0057
0058 private:
0059 EDAnalyzer(const EDAnalyzer&) = delete;
0060
0061 const EDAnalyzer& operator=(const EDAnalyzer&) = delete;
0062
0063
0064 };
0065
0066 }
0067 }
0068
0069 #endif