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
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
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