Go to the documentation of this file.00001 #ifndef MuonIsolation_Cuts_H
00002 #define MuonIsolation_Cuts_H
00003
00004 #include "RecoMuon/MuonIsolation/interface/Range.h"
00005 #include <vector>
00006 #include <string>
00007
00008 namespace edm { class ParameterSet; }
00009
00010 namespace muonisolation {
00011
00012 class Cuts {
00013 public:
00014
00015 struct CutSpec { muonisolation::Range<double> etaRange; double conesize; double threshold; };
00016
00018 Cuts(){}
00019
00021 Cuts(const edm::ParameterSet & pset);
00022
00024 Cuts( const std::vector<double> & etaBounds,
00025 const std::vector<double> & coneSizes,
00026 const std::vector<double> & thresholds);
00027
00028 const CutSpec & operator()(double eta) const;
00029
00030 const CutSpec & operator[](unsigned int i) const {return theCuts[i];};
00031
00032 unsigned int size() {return theCuts.size();};
00033
00034 std::string print() const;
00035
00036 private:
00037 void init(
00038 const std::vector<double> & etaBounds,
00039 const std::vector<double> & coneSizes,
00040 const std::vector<double> & thresholds);
00041
00042 std::vector<CutSpec> theCuts;
00043 };
00044
00045 }
00046 #endif