CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
resolutionFunctionType44< T > Class Template Reference

#include <Functions.h>

Inheritance diagram for resolutionFunctionType44< T >:
resolutionFunctionBase< T >

Public Member Functions

double leftParabola (const double &pt, const double &eta, const T &parval)
 
 resolutionFunctionType44 ()
 
double rightParabola (const double &pt, const double &eta, const T &parval)
 
virtual void setParameters (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, const int muonType)
 This method is used to differentiate parameters among the different functions. More...
 
virtual void setParameters (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, const std::vector< double > &parStep, const std::vector< double > &parMin, const std::vector< double > &parMax, const int muonType)
 
virtual double sigmaCotgTh (const double &pt, const double &eta, const T &parval)
 
virtual double sigmaPhi (const double &pt, const double &eta, const T &parval)
 
virtual double sigmaPt (const double &pt, const double &eta, const T &parval)
 
virtual double sigmaPtError (const double &pt, const double &eta, const T &parval, const T &parError)
 
- Public Member Functions inherited from resolutionFunctionBase< T >
virtual double covPt1Pt2 (const double &pt1, const double &eta1, const double &pt2, const double &eta2, const T &parval)
 
virtual int parNum () const
 
 resolutionFunctionBase ()
 
virtual ~resolutionFunctionBase ()=0
 

Additional Inherited Members

- Protected Member Functions inherited from resolutionFunctionBase< T >
virtual void setPar (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, double *thisStep, double *thisMini, double *thisMaxi, TString *thisParName)
 This method sets the parameters. More...
 
virtual void setPar (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, const std::vector< ParameterSet > &parSet)
 
- Protected Attributes inherited from resolutionFunctionBase< T >
int parNum_
 

Detailed Description

template<class T>
class resolutionFunctionType44< T >

Definition at line 5432 of file Functions.h.

Constructor & Destructor Documentation

template<class T >
resolutionFunctionType44< T >::resolutionFunctionType44 ( )
inline

Definition at line 5434 of file Functions.h.

References resolutionFunctionBase< T >::parNum_.

5434 { this->parNum_ = 6; }

Member Function Documentation

template<class T >
double resolutionFunctionType44< T >::leftParabola ( const double &  pt,
const double &  eta,
const T parval 
)
inline

Definition at line 5436 of file Functions.h.

Referenced by resolutionFunctionType44< T >::sigmaPt().

5437  {
5438  return( parval[0] + parval[1]*pt + parval[2]*std::fabs(eta) + parval[3]*eta*eta );
5439  }
T eta() const
template<class T >
double resolutionFunctionType44< T >::rightParabola ( const double &  pt,
const double &  eta,
const T parval 
)
inline

Definition at line 5440 of file Functions.h.

Referenced by resolutionFunctionType44< T >::sigmaPt().

5441  {
5442  return( parval[0] + parval[1]*pt + parval[4]*fabs(eta) + parval[5]*eta*eta );
5443  }
T eta() const
template<class T >
virtual void resolutionFunctionType44< T >::setParameters ( double *  Start,
double *  Step,
double *  Mini,
double *  Maxi,
int *  ind,
TString *  parname,
const T parResol,
const std::vector< int > &  parResolOrder,
const int  muonType 
)
inlinevirtual

This method is used to differentiate parameters among the different functions.

Reimplemented from resolutionFunctionBase< T >.

Definition at line 5477 of file Functions.h.

References gather_cfg::cout, resolutionFunctionBase< T >::parNum_, and resolutionFunctionBase< T >::setPar().

5478  {
5479  std::vector<ParameterSet> parSet(this->parNum_);
5480  // name, step, mini, maxi
5481  parSet[0] = ParameterSet( "Pt res. sc.", 0.002, -0.1, 0.1 );
5482  parSet[1] = ParameterSet( "Pt res. Pt sc. (all)", 0.00002, -0.01, 0.01 );
5483  parSet[2] = ParameterSet( "Pt res. Eta sc. (left)", 0.000002, 0., 0.01 );
5484  parSet[3] = ParameterSet( "Pt res. Eta^2 sc. (left)", 0.0002, -0.01, 0.02 );
5485  parSet[4] = ParameterSet( "Pt res. Eta sc. (right)", 0.000002, 0., 0.01 );
5486  parSet[5] = ParameterSet( "Pt res. Eta^2 sc. (right)", 0.0002, -0.01, 0.02 );
5487 
5488  std::cout << "setting parameters" << std::endl;
5489  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
5490  }
virtual void setPar(double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, double *thisStep, double *thisMini, double *thisMaxi, TString *thisParName)
This method sets the parameters.
Definition: Functions.h:3054
tuple cout
Definition: gather_cfg.py:121
template<class T >
virtual void resolutionFunctionType44< T >::setParameters ( double *  Start,
double *  Step,
double *  Mini,
double *  Maxi,
int *  ind,
TString *  parname,
const T parResol,
const std::vector< int > &  parResolOrder,
const std::vector< double > &  parStep,
const std::vector< double > &  parMin,
const std::vector< double > &  parMax,
const int  muonType 
)
inlinevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 5492 of file Functions.h.

References gather_cfg::cout, cmsRelvalreport::exit, i, resolutionFunctionBase< T >::parNum_, and resolutionFunctionBase< T >::setPar().

5498  {
5499  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
5500  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
5501  exit(1);
5502  }
5503  std::vector<ParameterSet> parSet(this->parNum_);
5504  // name, step, mini, maxi
5505  parSet[0] = ParameterSet( "Pt res. sc.", parStep[0], parMin[0], parMax[0] );
5506  parSet[1] = ParameterSet( "Pt res. Pt sc. (all)", parStep[1], parMin[1], parMax[1] );
5507  parSet[2] = ParameterSet( "Pt res. Eta sc. (left)", parStep[2], parMin[2], parMax[2] );
5508  parSet[3] = ParameterSet( "Pt res. Eta^2 sc. (left)", parStep[3], parMin[3], parMax[3] );
5509  parSet[4] = ParameterSet( "Pt res. sc. (right)", parStep[4], parMin[4], parMax[4] );
5510  parSet[5] = ParameterSet( "Pt res. Eta sc. (right)", parStep[5], parMin[5], parMax[5] );
5511 
5512  std::cout << "setting parameters" << std::endl;
5513  for( int i=0; i<this->parNum_; ++i ) {
5514  std::cout << "parStep["<<i<<"] = " << parStep[i]
5515  << ", parMin["<<i<<"] = " << parMin[i]
5516  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
5517  }
5518  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
5519  }
int i
Definition: DBlmapReader.cc:9
virtual void setPar(double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parResol, const std::vector< int > &parResolOrder, double *thisStep, double *thisMini, double *thisMaxi, TString *thisParName)
This method sets the parameters.
Definition: Functions.h:3054
tuple cout
Definition: gather_cfg.py:121
template<class T >
virtual double resolutionFunctionType44< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5456 of file Functions.h.

5456  {
5457  return 0;
5458  }
template<class T >
virtual double resolutionFunctionType44< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5460 of file Functions.h.

5460  {
5461  return 0.;
5462  }
template<class T >
virtual double resolutionFunctionType44< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5446 of file Functions.h.

References resolutionFunctionType44< T >::leftParabola(), and resolutionFunctionType44< T >::rightParabola().

5446  {
5447  //double fabsEta = std::fabs(eta);
5448  if( eta <= 0 ){
5449  return leftParabola(pt, eta, parval);
5450  }
5451  else
5452  return rightParabola(pt, eta, parval);
5453 
5454  }
double leftParabola(const double &pt, const double &eta, const T &parval)
Definition: Functions.h:5436
T eta() const
double rightParabola(const double &pt, const double &eta, const T &parval)
Definition: Functions.h:5440
template<class T >
virtual double resolutionFunctionType44< T >::sigmaPtError ( const double &  pt,
const double &  eta,
const T parval,
const T parError 
)
inlinevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 5466 of file Functions.h.

References funct::pow(), and mathSSE::sqrt().

5467  {
5468  double fabsEta = std::fabs(eta);
5469  if( eta <= 0 ) {
5470  return sqrt( pow(parError[0], 2) + pow(pt*parError[1], 2) + pow(fabsEta*parError[2], 2) + pow(eta*eta*parError[3], 2));
5471  }
5472  else {
5473  return sqrt( pow(parError[0], 2) + pow(pt*parError[1], 2) + pow(fabsEta*parError[4], 2) + pow(eta*eta*parError[5], 2));
5474  }
5475  }
T eta() const
T sqrt(T t)
Definition: SSEVec.h:46
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40