Go to the documentation of this file.00001 #include "MuonAnalysis/MomentumScaleCalibration/interface/ResolutionFunction.h"
00002
00003 void ResolutionFunction::readParameters( TString fileName )
00004 {
00005 iterationNum_ = 0;
00006 parArray_ = 0;
00007
00008
00009
00010 std::ifstream parametersFile(fileName.Data());
00011 std::string line;
00012
00013 std::string iteration("Iteration ");
00014
00015 while (parametersFile) {
00016 getline( parametersFile, line );
00017 size_t lineInt = line.find("value");
00018
00019
00020 size_t iterationSubStr = line.find(iteration);
00021
00022
00023 if( iterationSubStr != std::string::npos ) {
00024
00025 int functionNum = 0;
00026
00027
00028
00029 std::stringstream sLine(line);
00030 std::string num;
00031 int wordCounter = 0;
00032
00033 while( sLine >> num ) {
00034 ++wordCounter;
00035
00036 if( wordCounter == 8 ) {
00037 std::stringstream in(num);
00038 in >> functionNum;
00039 }
00040 if( wordCounter == 13 ) {
00041 std::stringstream in(num);
00042 in >> iterationNum_;
00043 }
00044 }
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 functionId_.push_back(functionNum);
00056
00057 resolutionFunctionVec_.push_back( resolutionFunctionService( functionNum ) );
00058 }
00059
00060 if ( (lineInt != std::string::npos) ) {
00061 size_t subStr1 = line.find("value");
00062 std::stringstream paramStr;
00063 double param = 0;
00064
00065
00066 paramStr << line.substr(subStr1+5);
00067 paramStr >> param;
00068
00069
00070 parVecVec_.push_back(param);
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081 }
00082 }
00083
00084 convertToArrays( resolutionFunction_, resolutionFunctionVec_ );
00085 }