Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-09 23:33:52

0001 #ifndef RecoMuon_L2MuonIsolationProducer_H
0002 #define RecoMuon_L2MuonIsolationProducer_H
0003 
0004 /**  \class L2MuonIsolationProducer
0005  * 
0006  *   L2 HLT muon isolation producer
0007  *
0008  *   \author  J.Alcaraz
0009  */
0010 
0011 #include "FWCore/Framework/interface/stream/EDProducer.h"
0012 #include "DataFormats/Common/interface/Handle.h"
0013 #include "FWCore/Framework/interface/ESHandle.h"
0014 #include "FWCore/Framework/interface/Event.h"
0015 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0016 
0017 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
0018 #include "RecoMuon/MuonIsolation/interface/MuIsoBaseIsolator.h"
0019 
0020 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0021 
0022 class L2MuonIsolationProducer : public edm::stream::EDProducer<> {
0023 public:
0024   /// constructor with config
0025   L2MuonIsolationProducer(const edm::ParameterSet&);
0026 
0027   /// destructor
0028   ~L2MuonIsolationProducer() override;
0029 
0030   /// ParameterSet descriptions
0031   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0032 
0033   /// Produce isolation maps
0034   void produce(edm::Event&, const edm::EventSetup&) override;
0035   // ex virtual void reconstruct();
0036 
0037 private:
0038   // Muon track Collection Label
0039   edm::InputTag theSACollectionLabel;
0040   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> theSACollectionToken;
0041 
0042   // Option to write MuIsoDeposits into the event
0043   bool optOutputDecision;
0044 
0045   // Option to write MuIsoDeposit sum into the event
0046   bool optOutputIsolatorFloat;
0047 
0048   // MuIsoExtractor
0049   std::unique_ptr<reco::isodeposit::IsoDepositExtractor> theExtractor;
0050 
0051   // muon isolator
0052   std::unique_ptr<muonisolation::MuIsoBaseIsolator> theDepositIsolator;
0053 };
0054 
0055 #endif