CMS 3D CMS Logo

List of all members | Public Member Functions
resolutionFunctionType47< T > Class Template Reference

#include <Functions.h>

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

Public Member Functions

double covPt1Pt2 (const double &pt1, const double &eta1, const double &pt2, const double &eta2, const T &parval) override
 
int etaBin (const double &eta)
 
 resolutionFunctionType47 ()
 
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) override
 This method is used to differentiate parameters among the different functions. More...
 
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) override
 
double sigmaCotgTh (const double &pt, const double &eta, const T &parval) override
 
double sigmaPhi (const double &pt, const double &eta, const T &parval) override
 
double sigmaPt (const double &pt, const double &eta, const T &parval) override
 
double sigmaPtError (const double &pt, const double &eta, const T &parval, const T &parError) override
 
- Public Member Functions inherited from resolutionFunctionBase< T >
virtual int parNum () const
 
virtual int parNum () const
 
 resolutionFunctionBase ()
 
 resolutionFunctionBase ()
 
virtual ~resolutionFunctionBase ()=0
 
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 resolutionFunctionType47< T >

Definition at line 984 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 1004 of file Functions.h.

1004 { this->parNum_ = 14; }

Member Function Documentation

template<class T >
double resolutionFunctionType47< T >::covPt1Pt2 ( const double &  pt1,
const double &  eta1,
const double &  pt2,
const double &  eta2,
const T parval 
)
inlineoverridevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 1017 of file Functions.h.

1018  {
1019  return parval[14];
1020  }
template<class T >
int resolutionFunctionType47< T >::etaBin ( const double &  eta)
inline

Definition at line 986 of file Functions.h.

987  {
988  // 12 bins from -2.4 to 2.4
989  // std::cout << "for eta = " << eta << ", bin = " << bin << std::endl;
990  if( eta < -2.0 ) return 1;
991  if( eta < -1.8 ) return 2;
992  if( eta < -1.6 ) return 3;
993  if( eta < -1.2 ) return 4;
994  if( eta < -0.8 ) return 5;
995  if( eta < 0. ) return 6;
996  if( eta < 0.8 ) return 7;
997  if( eta < 1.2 ) return 8;
998  if( eta < 1.6 ) return 9;
999  if( eta < 1.8 ) return 10;
1000  if( eta < 2.0 ) return 11;
1001  return 12;
1002  }
template<class T >
void resolutionFunctionType47< 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 
)
inlineoverridevirtual

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

Reimplemented from resolutionFunctionBase< T >.

Definition at line 1030 of file Functions.h.

References gather_cfg::cout, and ParameterSet::ParameterSet().

1033  {
1034  std::vector<ParameterSet> parSet(this->parNum_);
1035  // name, step, mini, maxi
1036  parSet[0] = ParameterSet( "Pt res. sc.", 0.0002, 0., 0.1 );
1037  parSet[1] = ParameterSet( "eta bin 1", 0.00002, 0., 0.01 );
1038  parSet[2] = ParameterSet( "eta bin 2", 0.00002, 0., 0.01 );
1039  parSet[3] = ParameterSet( "eta bin 3", 0.00002, 0., 0.01 );
1040  parSet[4] = ParameterSet( "eta bin 4", 0.00002, 0., 0.01 );
1041  parSet[5] = ParameterSet( "eta bin 5", 0.00002, 0., 0.01 );
1042  parSet[6] = ParameterSet( "eta bin 6", 0.00002, 0., 0.01 );
1043  parSet[7] = ParameterSet( "eta bin 7", 0.00002, 0., 0.01 );
1044  parSet[8] = ParameterSet( "eta bin 8", 0.00002, 0., 0.01 );
1045  parSet[9] = ParameterSet( "eta bin 9", 0.00002, 0., 0.01 );
1046  parSet[10] = ParameterSet( "eta bin 10", 0.00002, 0., 0.01 );
1047  parSet[11] = ParameterSet( "eta bin 11", 0.00002, 0., 0.01 );
1048  parSet[12] = ParameterSet( "eta bin 12", 0.00002, 0., 0.01 );
1049  parSet[13] = ParameterSet( "cov(pt1,pt2)", 0.00002, 0., 0.01 );
1050 
1051  std::cout << "setting parameters" << std::endl;
1052  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
1053  }
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:708
template<class T >
void resolutionFunctionType47< 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 
)
inlineoverridevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 1055 of file Functions.h.

References gather_cfg::cout, cmsRelvalreport::exit, mps_fire::i, createfilelist::int, ParameterSet::ParameterSet(), resolutionFunctionService(), and resolutionFunctionVecService().

1061  {
1062  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
1063  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
1064  std::cout << "parNum = " << this->parNum_ << std::endl;
1065  std::cout << "parStep.size() = " << parStep.size() << std::endl;
1066  std::cout << "parMin.size() = " << parMin.size() << std::endl;
1067  std::cout << "parMax.size() = " << parMax.size() << std::endl;
1068  exit(1);
1069  }
1070  std::vector<ParameterSet> parSet(this->parNum_);
1071  // name, step, mini, maxi
1072  parSet[0] = ParameterSet( "Pt res. sc.", parStep[0], parMin[0], parMax[0] );
1073  parSet[1] = ParameterSet( "eta bin 1", parStep[1], parMin[1], parMax[1] );
1074  parSet[2] = ParameterSet( "eta bin 2", parStep[2], parMin[2], parMax[2] );
1075  parSet[3] = ParameterSet( "eta bin 3", parStep[3], parMin[3], parMax[3] );
1076  parSet[4] = ParameterSet( "eta bin 4", parStep[4], parMin[4], parMax[4] );
1077  parSet[5] = ParameterSet( "eta bin 5", parStep[5], parMin[5], parMax[5] );
1078  parSet[6] = ParameterSet( "eta bin 6", parStep[6], parMin[6], parMax[6] );
1079  parSet[7] = ParameterSet( "eta bin 7", parStep[7], parMin[7], parMax[7] );
1080  parSet[8] = ParameterSet( "eta bin 8", parStep[8], parMin[8], parMax[8] );
1081  parSet[9] = ParameterSet( "eta bin 9", parStep[9], parMin[9], parMax[9] );
1082  parSet[10] = ParameterSet( "eta bin 10", parStep[10], parMin[10], parMax[10] );
1083  parSet[11] = ParameterSet( "eta bin 11", parStep[11], parMin[11], parMax[11] );
1084  parSet[12] = ParameterSet( "eta bin 12", parStep[12], parMin[12], parMax[12] );
1085  parSet[13] = ParameterSet( "cov(pt1,pt2)",parStep[13], parMin[13], parMax[13] );
1086 
1087  std::cout << "setting parameters" << std::endl;
1088  for( int i=0; i<this->parNum_; ++i ) {
1089  std::cout << "parStep["<<i<<"] = " << parStep[i]
1090  << ", parMin["<<i<<"] = " << parMin[i]
1091  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
1092  }
1093  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
1094  }
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:708
template<class T >
double resolutionFunctionType47< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 1010 of file Functions.h.

1010  {
1011  return 0;
1012  }
template<class T >
double resolutionFunctionType47< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 1013 of file Functions.h.

1013  {
1014  return 0.;
1015  }
template<class T >
double resolutionFunctionType47< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 1006 of file Functions.h.

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

1007  {
1008  return sqrt(pow(parval[0]*pt,2) + pow(parval[etaBin(eta)],2) + pow(parval[13],2));
1009  }
int etaBin(const double &eta)
Definition: Functions.h:986
T sqrt(T t)
Definition: SSEVec.h:18
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
template<class T >
double resolutionFunctionType47< T >::sigmaPtError ( const double &  pt,
const double &  eta,
const T parval,
const T parError 
)
inlineoverridevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 1023 of file Functions.h.

References conversionPostprocessing_cfi::etaBin, funct::pow(), alignCSCRings::r, and mathSSE::sqrt().

1024  {
1025  // Use the etaByBin function to select the right bin for the parameter
1026  double r = sqrt(pow(parval[0]*pt,2) + pow(parval[etaBin(eta)],2) + pow(parval[13],2));
1027  return sqrt( pow(pt*pt*parval[0]*parError[0],2) + pow(parval[etaBin(eta)]*parError[etaBin(eta)],2) + pow(parval[13]*parError[13],2) )/r;
1028  }
int etaBin(const double &eta)
Definition: Functions.h:986
T sqrt(T t)
Definition: SSEVec.h:18
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40