CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoMuon/MuonIsolation/interface/Cuts.h

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