00001 // 00002 // $Id: EtaDepResolution.h,v 1.1 2011/05/26 09:46:53 mseidel Exp $ 00003 // 00004 // CMSSW File : interface/EtaDepResolution.h 00005 // Original Author : Haryo Sumowidagdo <Suharyo.Sumowidagdo@cern.ch> 00006 // Purpose : Hold on to eta-dependent resolution. 00007 // Return Vector_Resolution as a function of eta. 00008 // Does not assume symmetry between +/- eta. 00009 // The interpretation of eta (physics or detector) is 00010 // left to user's implementation. 00011 // 00012 00033 #ifndef HITFIT_ETA_DEP_RESOLUTION 00034 #define HITFIT_ETA_DEP_RESOLUTION 00035 00036 #include "TopQuarkAnalysis/TopHitFit/interface/Defaults_Text.h" 00037 #include "TopQuarkAnalysis/TopHitFit/interface/Vector_Resolution.h" 00038 #include "TopQuarkAnalysis/TopHitFit/interface/EtaDepResElement.h" 00039 00040 namespace hitfit { 00041 00088 class EtaDepResolution { 00089 00090 private: 00091 00095 std::vector<EtaDepResElement> _EtaDepResElement; 00096 00106 std::vector<EtaDepResElement>::const_iterator FindResolution(double& eta) const; 00107 00108 public: 00109 00113 void sort(); 00114 00119 EtaDepResolution(); 00120 00121 00128 EtaDepResolution(const std::string& default_file); 00129 00133 ~EtaDepResolution(); 00134 00142 std::vector<EtaDepResElement>::size_type Read(const std::string& default_file); 00143 00151 std::vector<EtaDepResElement>::size_type Read(const Defaults_Text& defs); 00152 00161 bool CheckNoOverlap(const std::vector<EtaDepResElement>& v); 00162 00166 const double EtaMin() const; 00167 00171 const double EtaMax() const; 00172 00181 const bool CheckEta(double eta) const; 00182 00191 Vector_Resolution operator () (double& eta); 00192 00200 Vector_Resolution GetResolution(double& eta) const; 00201 00202 00211 EtaDepResElement GetEtaDepResElement(double& eta) const; 00212 00219 const std::vector<EtaDepResElement> GetEtaDepResElement() const; 00220 00221 }; 00222 00223 } // namespace hitfit 00224 #endif // not #ifndef HITFIT_ETA_DEP_RESOLUTION