File indexing completed on 2024-04-06 12:11:59
0001 #ifndef FWCore_Framework_stream_EDAnalyzer_h
0002 #define FWCore_Framework_stream_EDAnalyzer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include "FWCore/Framework/interface/stream/AbilityToImplementor.h"
0022 #include "FWCore/Framework/interface/stream/CacheContexts.h"
0023 #include "FWCore/Framework/interface/stream/Contexts.h"
0024 #include "FWCore/Framework/interface/stream/AbilityChecker.h"
0025 #include "FWCore/Framework/interface/stream/EDAnalyzerBase.h"
0026
0027 namespace edm {
0028 namespace stream {
0029
0030 template <typename... T>
0031 class EDAnalyzer : public AbilityToImplementor<T>::Type..., public EDAnalyzerBase {
0032 public:
0033 using CacheTypes = CacheContexts<T...>;
0034
0035 using GlobalCache = typename CacheTypes::GlobalCache;
0036 using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache;
0037 using RunCache = typename CacheTypes::RunCache;
0038 using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache;
0039 using RunContext = RunContextT<RunCache, GlobalCache>;
0040 using LuminosityBlockContext = LuminosityBlockContextT<LuminosityBlockCache, RunCache, GlobalCache>;
0041 using RunSummaryCache = typename CacheTypes::RunSummaryCache;
0042 using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache;
0043
0044 using HasAbility = AbilityChecker<T...>;
0045
0046 using EDAnalyzerBase::callWhenNewProductsRegistered;
0047
0048 EDAnalyzer() = default;
0049 EDAnalyzer(const EDAnalyzer&) = delete;
0050 const EDAnalyzer& operator=(const EDAnalyzer&) = delete;
0051 };
0052
0053 }
0054 }
0055
0056 #endif