CMS 3D CMS Logo

metsig::SignAlgoResolutions Class Reference

#include <RecoMET/METAlgorithms/interface/SignAlgoResolutions.h>

List of all members.

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_


Detailed Description

Definition at line 37 of file SignAlgoResolutions.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

metsig::SignAlgoResolutions::SignAlgoResolutions (  )  [inline]

Definition at line 40 of file SignAlgoResolutions.h.

00040 :functionmap_(){;}

metsig::SignAlgoResolutions::SignAlgoResolutions ( const edm::ParameterSet iConfig  ) 

Definition at line 33 of file SignAlgoResolutions.cc.

References addResolutions().

00033                                                                             :functionmap_(){
00034   addResolutions(iConfig);
00035 }


Member Function Documentation

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

Definition at line 23 of file SignAlgoResolutions.cc.

References getfunc(), and x.

Referenced by SignCaloSpecificAlgo::addInfo().

00023                                                                                                                                                                 {
00024 
00025   functionPars x(3);
00026   x[0]=et;
00027   x[1]=phi;
00028   x[2]=eta;
00029   
00030   return getfunc(type,func,x);
00031 
00032 }

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 }


Member Data Documentation

std::map<functionCombo,functionPars> metsig::SignAlgoResolutions::functionmap_ [private]

Definition at line 52 of file SignAlgoResolutions.h.

Referenced by addfunction(), and getfunc().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:48:59 2009 for CMSSW by  doxygen 1.5.4