#include <RecoMET/METAlgorithms/interface/SignAlgoResolutions.h>
Public Member Functions | |
void | addResolutions (const edm::ParameterSet &iConfig) |
double | eval (const resolutionType &type, const resolutionFunc &func, const double &et, const double &phi, const double &eta) const |
SignAlgoResolutions (const edm::ParameterSet &iConfig) | |
SignAlgoResolutions () | |
Private Types | |
typedef std::pair < metsig::resolutionType, metsig::resolutionFunc > | functionCombo |
typedef std::vector< double > | functionPars |
Private Member Functions | |
void | addfunction (const resolutionType type, const resolutionFunc func, std::vector< double > parameters) |
double | EtFunction (const functionPars &x, const functionPars &par) const |
double | getfunc (const resolutionType &type, const resolutionFunc &func, std::vector< double > &x) const |
double | PhiFunction (const functionPars &x, const functionPars &par) const |
Private Attributes | |
std::map< functionCombo, functionPars > | functionmap_ |
Definition at line 37 of file SignAlgoResolutions.h.
typedef std::pair<metsig::resolutionType, metsig::resolutionFunc> metsig::SignAlgoResolutions::functionCombo [private] |
Definition at line 50 of file SignAlgoResolutions.h.
typedef std::vector<double> metsig::SignAlgoResolutions::functionPars [private] |
Definition at line 51 of file SignAlgoResolutions.h.
metsig::SignAlgoResolutions::SignAlgoResolutions | ( | ) | [inline] |
metsig::SignAlgoResolutions::SignAlgoResolutions | ( | const edm::ParameterSet & | iConfig | ) |
Definition at line 33 of file SignAlgoResolutions.cc.
References addResolutions().
00033 :functionmap_(){ 00034 addResolutions(iConfig); 00035 }
void metsig::SignAlgoResolutions::addfunction | ( | const resolutionType | type, | |
const resolutionFunc | func, | |||
std::vector< double > | parameters | |||
) | [private] |
Definition at line 88 of file SignAlgoResolutions.cc.
References functionmap_.
Referenced by addResolutions().
00088 { 00089 00090 // std::cout << "adding function for " << type << " " << func << ", parameters " ; 00091 // for(size_t ii=0; ii<parameters.size();++ii) 00092 // std::cout << parameters[ii] << " "; 00093 // std::cout << std::endl; 00094 functionCombo mypair(type,func); 00095 functionmap_[mypair]=parameters; 00096 00097 }
void metsig::SignAlgoResolutions::addResolutions | ( | const edm::ParameterSet & | iConfig | ) |
Definition at line 37 of file SignAlgoResolutions.cc.
References addfunction(), metsig::caloEB, metsig::caloEE, metsig::caloHB, metsig::caloHE, metsig::caloHF, metsig::caloHO, metsig::ET, and metsig::PHI.
Referenced by SignAlgoResolutions().
00037 { 00038 // for now: do this by hand: 00039 functionPars etparameters(3,0); 00040 functionPars phiparameters(1,0); 00041 // set the parameters per function: 00042 // ECAL, BARREL: 00043 etparameters[0]=0.2; 00044 etparameters[1]=0.03; 00045 etparameters[2]=0.005; 00046 phiparameters[0]=0.0174; 00047 addfunction(caloEB,ET,etparameters); 00048 addfunction(caloEB,PHI,phiparameters); 00049 // ECAL, ENDCAP: 00050 etparameters[0]=0.2; 00051 etparameters[1]=0.03; 00052 etparameters[2]=0.005; 00053 phiparameters[0]=0.087; 00054 addfunction(caloEE,ET,etparameters); 00055 addfunction(caloEE,PHI,phiparameters); 00056 // HCAL, BARREL: 00057 etparameters[0]=0.; 00058 etparameters[1]=1.22; 00059 etparameters[2]=0.05; 00060 phiparameters[0]=0.087; 00061 addfunction(caloHB,ET,etparameters); 00062 addfunction(caloHB,PHI,phiparameters); 00063 // HCAL, ENDCAP: 00064 etparameters[0]=0.; 00065 etparameters[1]=1.3; 00066 etparameters[2]=0.05; 00067 phiparameters[0]=0.087; 00068 addfunction(caloHE,ET,etparameters); 00069 addfunction(caloHE,PHI,phiparameters); 00070 // HCAL, Outer 00071 etparameters[0]=0.; 00072 etparameters[1]=1.3; 00073 etparameters[2]=0.005; 00074 phiparameters[0]=0.087; 00075 addfunction(caloHO,ET,etparameters); 00076 addfunction(caloHO,PHI,phiparameters); 00077 // HCAL, Forward 00078 etparameters[0]=0.; 00079 etparameters[1]=1.82; 00080 etparameters[2]=0.09; 00081 phiparameters[0]=0.174; 00082 addfunction(caloHF,ET,etparameters); 00083 addfunction(caloHF,PHI,phiparameters); 00084 00085 return; 00086 }
double metsig::SignAlgoResolutions::EtFunction | ( | const functionPars & | x, | |
const functionPars & | par | |||
) | const [private] |
Definition at line 120 of file SignAlgoResolutions.cc.
References HLT_VtxMuL3::result, and funct::sqrt().
Referenced by getfunc().
00121 { 00122 if(par.size()<3) 00123 return 0.; 00124 if(x.size()<1) 00125 return 0.; 00126 double et=x[0]; 00127 if(et<=0.) 00128 return 0.; 00129 double result = et*sqrt((par[2]*par[2])+(par[1]*par[1]/et)+(par[0]*par[0]/(et*et))); 00130 return result; 00131 }
double metsig::SignAlgoResolutions::eval | ( | const resolutionType & | type, | |
const resolutionFunc & | func, | |||
const double & | et, | |||
const double & | phi, | |||
const double & | eta | |||
) | const |
double metsig::SignAlgoResolutions::getfunc | ( | const resolutionType & | type, | |
const resolutionFunc & | func, | |||
std::vector< double > & | x | |||
) | const [private] |
Definition at line 99 of file SignAlgoResolutions.cc.
References metsig::ET, EtFunction(), functionmap_, metsig::PHI, PhiFunction(), HLT_VtxMuL3::result, edm::second(), and values.
Referenced by eval().
00099 { 00100 00101 double result=0; 00102 functionCombo mypair(type,func); 00103 00104 00105 00106 if(functionmap_.count(mypair)==0) 00107 return result; 00108 00109 functionPars values = (functionmap_.find(mypair))->second; 00110 if(func==metsig::ET) 00111 result = EtFunction(x,values); 00112 else if(func==metsig::PHI) 00113 result = PhiFunction(x,values); 00114 00115 // std::cout << "returning function " << type << " " << func << " " << result << " " << x[0] << std::endl; 00116 00117 return result; 00118 }
double metsig::SignAlgoResolutions::PhiFunction | ( | const functionPars & | x, | |
const functionPars & | par | |||
) | const [private] |
Definition at line 134 of file SignAlgoResolutions.cc.
References HLT_VtxMuL3::result.
Referenced by getfunc().
00135 { 00136 double et=x[0]; 00137 if(et<=0.) 00138 return 0.; 00139 double result = par[0]*et; 00140 return result; 00141 00142 }
std::map<functionCombo,functionPars> metsig::SignAlgoResolutions::functionmap_ [private] |