text: #ifndef L3MuonIsolationProducer_L3MuonSumCaloPFIsolationProducer_h
  #define L3MuonIsolationProducer_L3MuonSumCaloPFIsolationProducer_h
  
  #include <memory>
  
  #include "FWCore/Framework/interface/Frameworkfwd.h"
  #include "FWCore/Framework/interface/global/EDProducer.h"
  
  #include "FWCore/Framework/interface/Event.h"
  #include "FWCore/Framework/interface/MakerMacros.h"
  
  #include "FWCore/ParameterSet/interface/ParameterSet.h"
  
  #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
  #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateIsolation.h"
  
  
  
  namespace edm {
      class ConfigurationDescriptions;
  }
  
  class L3MuonSumCaloPFIsolationProducer : public edm::global::EDProducer<> {
  public:
      explicit L3MuonSumCaloPFIsolationProducer(const edm::ParameterSet&);
      ~L3MuonSumCaloPFIsolationProducer() override;
      
      void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
      static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
      
  private:
      
      edm::EDGetTokenT<reco::RecoChargedCandidateCollection> recoChargedCandidateProducer_;
      edm::EDGetTokenT<reco::RecoChargedCandidateIsolationMap> pfEcalClusterProducer_;
      edm::EDGetTokenT<reco::RecoChargedCandidateIsolationMap> pfHcalClusterProducer_;
      
  
  };
  
  #endif
  