Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:04

0001 #ifndef CutsIsolatorWithCorrection_H
0002 #define CutsIsolatorWithCorrection_H
0003 
0004 #include "RecoMuon/MuonIsolation/interface/MuIsoBaseIsolator.h"
0005 #include "RecoMuon/MuonIsolation/interface/Cuts.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/Framework/interface/ConsumesCollector.h"
0008 
0009 class CutsIsolatorWithCorrection : public muonisolation::MuIsoBaseIsolator {
0010 public:
0011   CutsIsolatorWithCorrection(const edm::ParameterSet& par, edm::ConsumesCollector&& iC);
0012 
0013   ResultType resultType() const override { return ISOL_BOOL_TYPE; }
0014 
0015   Result result(const DepositContainer& deposits, const edm::Event* = nullptr) const override {
0016     Result answer(ISOL_BOOL_TYPE);
0017     answer.valBool = false;
0018     // fail miserably...
0019     return answer;
0020   }
0021 
0022   Result result(const DepositContainer& deposits, const reco::Track& tk, const edm::Event* = nullptr) const override;
0023 
0024 private:
0025   double depSum(const DepositContainer& deposits, double dr, double corr) const;
0026 
0027   // Isolation cuts
0028   muonisolation::Cuts theCuts;
0029   muonisolation::Cuts theCutsRel;
0030 
0031   bool theCutAbsIso;
0032   bool theCutRelativeIso;
0033   bool theUseRhoCorrection;
0034   edm::EDGetTokenT<double> theRhoToken;
0035   double theRhoMax;
0036   double theRhoScaleBarrel;
0037   double theRhoScaleEndcap;
0038   double theEffAreaSFBarrel;
0039   double theEffAreaSFEndcap;
0040   bool theReturnAbsoluteSum;
0041   bool theReturnRelativeSum;
0042   bool theAndOrCuts;
0043 };
0044 
0045 #endif