Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:37:23

0001 #ifndef PhysicsTools_SelectorUtils_CutApplicatorWithEventContentBase_h
0002 #define PhysicsTools_SelectorUtils_CutApplicatorWithEventContentBase_h
0003 
0004 //
0005 //
0006 //
0007 
0008 #include "PhysicsTools/SelectorUtils/interface/CutApplicatorBase.h"
0009 #include "DataFormats/Common/interface/ValueMap.h"
0010 #include "DataFormats/Provenance/interface/ProductID.h"
0011 
0012 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
0013 #include "FWCore/Framework/interface/ConsumesCollector.h"
0014 #include <unordered_map>
0015 #else
0016 #include <map>
0017 #endif
0018 
0019 class CutApplicatorWithEventContentBase : public CutApplicatorBase {
0020 public:
0021   CutApplicatorWithEventContentBase() : CutApplicatorBase() {}
0022 
0023   CutApplicatorWithEventContentBase(const edm::ParameterSet& c) : CutApplicatorBase(c) {}
0024 
0025 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
0026   CutApplicatorWithEventContentBase(const CutApplicatorWithEventContentBase&) = delete;
0027   CutApplicatorWithEventContentBase& operator=(const CutApplicatorWithEventContentBase&) = delete;
0028 
0029   virtual void setConsumes(edm::ConsumesCollector&) = 0;
0030 #endif
0031 
0032   virtual void getEventContent(const edm::EventBase&) = 0;
0033 
0034   //! Destructor
0035   ~CutApplicatorWithEventContentBase() override {}
0036 
0037 protected:
0038 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
0039   std::unordered_map<std::string, edm::InputTag> contentTags_;
0040   std::unordered_map<std::string, edm::EDGetToken> contentTokens_;
0041 #else
0042   std::map<std::string, edm::InputTag> contentTags_;
0043 #endif
0044 };
0045 
0046 #endif