Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // -*- C++ -*-
0004 //
0005 // Package:     FWCore/Framework
0006 // Class  :     EDAnalyzer
0007 //
0008 /**\class edm::stream::EDAnalyzer EDAnalyzer.h "FWCore/Framework/interface/stream/EDAnalyzer.h"
0009 
0010  Description: Base class for stream based EDAnalyzers
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Thu, 01 Aug 2013 21:41:42 GMT
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   }  // namespace stream
0054 }  // namespace edm
0055 
0056 #endif