File indexing completed on 2024-04-06 12:27:04
0001 #ifndef MuonIsolation_CutsConeSizeFunction_H
0002 #define MuonIsolation_CutsConeSizeFunction_H
0003
0004 #include "RecoMuon/MuonIsolation/interface/Cuts.h"
0005 #include "RecoMuon/MuonIsolation/interface/IsolatorByDeposit.h"
0006
0007 namespace muonisolation {
0008 class CutsConeSizeFunction : public IsolatorByDeposit::ConeSizeFunction {
0009 public:
0010 CutsConeSizeFunction(const Cuts& cuts) : theLastCut(nullptr), theCuts(cuts) {}
0011 ~CutsConeSizeFunction() override = default;
0012 float threshold() const { return theLastCut->threshold; }
0013 float coneSize(float eta, float pt) const override {
0014 theLastCut = &theCuts(eta);
0015 return theLastCut->conesize;
0016 }
0017
0018 private:
0019 mutable const Cuts::CutSpec* theLastCut;
0020 const Cuts& theCuts;
0021 };
0022 }
0023 #endif