Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:57

0001 #ifndef L3MuonCombinedRelativeIsolationProducer_L3MuonCombinedRelativeIsolationProducer_H
0002 #define L3MuonCombinedRelativeIsolationProducer_L3MuonCombinedRelativeIsolationProducer_H
0003 
0004 /**  \class L3MuonCombinedRelativeIsolationProducer
0005  */
0006 
0007 #include "FWCore/Framework/interface/stream/EDProducer.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0010 
0011 #include "RecoMuon/MuonIsolation/interface/Cuts.h"
0012 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h"
0013 
0014 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0015 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
0016 
0017 #include <string>
0018 
0019 namespace edm {
0020   class Event;
0021 }
0022 namespace edm {
0023   class EventSetup;
0024 }
0025 
0026 class L3MuonCombinedRelativeIsolationProducer : public edm::stream::EDProducer<> {
0027 public:
0028   /// constructor with config
0029   L3MuonCombinedRelativeIsolationProducer(const edm::ParameterSet&);
0030 
0031   /// destructor
0032   ~L3MuonCombinedRelativeIsolationProducer() override;
0033 
0034   /// ParameterSet descriptions
0035   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0036 
0037   /// Produce isolation maps
0038   void produce(edm::Event&, const edm::EventSetup&) override;
0039 
0040 private:
0041   edm::ParameterSet theConfig;
0042 
0043   // Muon track Collection Label
0044   edm::InputTag theMuonCollectionLabel;
0045   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> theMuonCollectionToken;
0046 
0047   // Isolation cuts
0048   muonisolation::Cuts theCuts;
0049 
0050   // Option to write MuIsoDeposits into the event
0051   bool optOutputIsoDeposits;
0052 
0053   //! flag to include or exclude calo iso from calculation
0054   bool useCaloIso;
0055 
0056   // Option to use rho-corrected calo deposits (ONLY if already available)
0057   bool useRhoCorrectedCaloDeps;
0058   edm::InputTag theCaloDepsLabel;
0059   edm::EDGetTokenT<edm::ValueMap<float> > theCaloDepsToken;
0060 
0061   // MuIsoExtractor
0062   std::unique_ptr<reco::isodeposit::IsoDepositExtractor> caloExtractor;
0063   std::unique_ptr<reco::isodeposit::IsoDepositExtractor> trkExtractor;
0064 
0065   //! pt cut to consider track in sumPt after extracting iso deposit
0066   //! better split this off into a filter
0067   double theTrackPt_Min;
0068 
0069   //! max number of tracks to allow in the sum
0070   //! count <= maxN
0071   int theMaxNTracks;
0072 
0073   //! apply or not the maxN cut on top of the sumPt (or nominall eff) < cuts
0074   bool theApplyCutsORmaxNTracks;
0075 
0076   // Print out debug info
0077 
0078   bool printDebug;
0079 };
0080 
0081 #endif