CMS 3D CMS Logo

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

#include <Functions.h>

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

Public Member Functions

int etaBin (const double &eta)
 
 resolutionFunctionType46 ()
 
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 resolutionFunctionType46< T >

Definition at line 5190 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 5212 of file Functions.h.

References resolutionFunctionBase< T >::parNum_.

5212 { this->parNum_ = 13; }

Member Function Documentation

template<class T >
int resolutionFunctionType46< T >::etaBin ( const double &  eta)
inline

Definition at line 5192 of file Functions.h.

Referenced by resolutionFunctionType46< T >::sigmaPt(), and resolutionFunctionType46< T >::sigmaPtError().

5193  {
5194  // 24 bins from -2.4 to 2.4
5195  // std::cout << "for eta = " << eta << ", bin = " << bin << std::endl;
5196 
5197  if( eta < -2.0 ) return 1;
5198  if( eta < -1.8 ) return 2;
5199  if( eta < -1.6 ) return 3;
5200  if( eta < -1.2 ) return 4;
5201  if( eta < -0.8 ) return 5;
5202  if( eta < 0. ) return 6;
5203  if( eta < 0.8 ) return 7;
5204  if( eta < 1.2 ) return 8;
5205  if( eta < 1.6 ) return 9;
5206  if( eta < 1.8 ) return 10;
5207  if( eta < 2.0 ) return 11;
5208  return 12;
5209  }
T eta() const
template<class T >
virtual void resolutionFunctionType46< 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 5237 of file Functions.h.

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

5240  {
5241  std::vector<ParameterSet> parSet(this->parNum_);
5242  // name, step, mini, maxi
5243  parSet[0] = ParameterSet( "Pt res. sc.", 0.0002, 0., 0.1 );
5244  parSet[1] = ParameterSet( "eta bin 1", 0.00002, 0., 0.01 );
5245  parSet[2] = ParameterSet( "eta bin 2", 0.00002, 0., 0.01 );
5246  parSet[3] = ParameterSet( "eta bin 3", 0.00002, 0., 0.01 );
5247  parSet[4] = ParameterSet( "eta bin 4", 0.00002, 0., 0.01 );
5248  parSet[5] = ParameterSet( "eta bin 5", 0.00002, 0., 0.01 );
5249  parSet[6] = ParameterSet( "eta bin 6", 0.00002, 0., 0.01 );
5250  parSet[7] = ParameterSet( "eta bin 7", 0.00002, 0., 0.01 );
5251  parSet[8] = ParameterSet( "eta bin 8", 0.00002, 0., 0.01 );
5252  parSet[9] = ParameterSet( "eta bin 9", 0.00002, 0., 0.01 );
5253  parSet[10] = ParameterSet( "eta bin 10", 0.00002, 0., 0.01 );
5254  parSet[11] = ParameterSet( "eta bin 11", 0.00002, 0., 0.01 );
5255  parSet[12] = ParameterSet( "eta bin 12", 0.00002, 0., 0.01 );
5256 
5257 
5258  std::cout << "setting parameters" << std::endl;
5259  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
5260  }
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 resolutionFunctionType46< 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 5262 of file Functions.h.

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

5268  {
5269  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
5270  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
5271  std::cout << "parNum = " << this->parNum_ << std::endl;
5272  std::cout << "parStep.size() = " << parStep.size() << std::endl;
5273  std::cout << "parMin.size() = " << parMin.size() << std::endl;
5274  std::cout << "parMax.size() = " << parMax.size() << std::endl;
5275  exit(1);
5276  }
5277  std::vector<ParameterSet> parSet(this->parNum_);
5278  // name, step, mini, maxi
5279  parSet[0] = ParameterSet( "Pt res. sc.", parStep[0], parMin[0], parMax[0] );
5280  parSet[1] = ParameterSet( "eta bin 1", parStep[1], parMin[1], parMax[1] );
5281  parSet[2] = ParameterSet( "eta bin 2", parStep[2], parMin[2], parMax[2] );
5282  parSet[3] = ParameterSet( "eta bin 3", parStep[3], parMin[3], parMax[3] );
5283  parSet[4] = ParameterSet( "eta bin 4", parStep[4], parMin[4], parMax[4] );
5284  parSet[5] = ParameterSet( "eta bin 5", parStep[5], parMin[5], parMax[5] );
5285  parSet[6] = ParameterSet( "eta bin 6", parStep[6], parMin[6], parMax[6] );
5286  parSet[7] = ParameterSet( "eta bin 7", parStep[7], parMin[7], parMax[7] );
5287  parSet[8] = ParameterSet( "eta bin 8", parStep[8], parMin[8], parMax[8] );
5288  parSet[9] = ParameterSet( "eta bin 9", parStep[9], parMin[9], parMax[9] );
5289  parSet[10] = ParameterSet( "eta bin 10", parStep[10], parMin[10], parMax[10] );
5290  parSet[11] = ParameterSet( "eta bin 11", parStep[11], parMin[11], parMax[11] );
5291  parSet[12] = ParameterSet( "eta bin 12", parStep[12], parMin[12], parMax[12] );
5292 
5293  std::cout << "setting parameters" << std::endl;
5294  for( int i=0; i<this->parNum_; ++i ) {
5295  std::cout << "parStep["<<i<<"] = " << parStep[i]
5296  << ", parMin["<<i<<"] = " << parMin[i]
5297  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
5298  }
5299  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
5300  }
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 resolutionFunctionType46< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5220 of file Functions.h.

5220  {
5221  return 0;
5222  }
template<class T >
virtual double resolutionFunctionType46< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5224 of file Functions.h.

5224  {
5225  return 0.;
5226  }
template<class T >
virtual double resolutionFunctionType46< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 5214 of file Functions.h.

References resolutionFunctionType46< T >::etaBin(), funct::pow(), and mathSSE::sqrt().

5215  {
5216  // std::cout << "parval["<<etaBin(eta)<<"] = " << parval[etaBin(eta)] << std::endl;
5217  return sqrt(pow(parval[0]*pt,2) + pow(parval[etaBin(eta)],2));
5218  }
T eta() const
T sqrt(T t)
Definition: SSEVec.h:46
int etaBin(const double &eta)
Definition: Functions.h:5192
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
template<class T >
virtual double resolutionFunctionType46< T >::sigmaPtError ( const double &  pt,
const double &  eta,
const T parval,
const T parError 
)
inlinevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 5230 of file Functions.h.

References resolutionFunctionType46< T >::etaBin(), funct::pow(), alignCSCRings::r, and mathSSE::sqrt().

5231  {
5232  // Use the etaByPoints function to select the right bin for the parameter
5233  double r = sqrt(pow(parval[0]*pt,2) + pow(parval[etaBin(eta)],2));
5234  return sqrt( pow(pt*pt*parval[0]*parError[0],2) + pow(parval[etaBin(eta)]*parError[etaBin(eta)],2) )/r;
5235  }
T eta() const
T sqrt(T t)
Definition: SSEVec.h:46
int etaBin(const double &eta)
Definition: Functions.h:5192
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40