CMS 3D CMS Logo

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 ()
 
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 double covPt1Pt2 (const double &pt1, const double &eta1, const double &pt2, const double &eta2, const T &parval)
 
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 resolutionFunctionType46< T >

Definition at line 876 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 896 of file Functions.h.

896 { this->parNum_ = 13; }

Member Function Documentation

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

Definition at line 878 of file Functions.h.

879  {
880  // 12 bins from -2.4 to 2.4
881  // std::cout << "for eta = " << eta << ", bin = " << bin << std::endl;
882  if( eta < -2.0 ) return 1;
883  if( eta < -1.8 ) return 2;
884  if( eta < -1.6 ) return 3;
885  if( eta < -1.2 ) return 4;
886  if( eta < -0.8 ) return 5;
887  if( eta < 0. ) return 6;
888  if( eta < 0.8 ) return 7;
889  if( eta < 1.2 ) return 8;
890  if( eta < 1.6 ) return 9;
891  if( eta < 1.8 ) return 10;
892  if( eta < 2.0 ) return 11;
893  return 12;
894  }
template<class T >
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 
)
inlineoverridevirtual

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

Reimplemented from resolutionFunctionBase< T >.

Definition at line 917 of file Functions.h.

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

920  {
921  std::vector<ParameterSet> parSet(this->parNum_);
922  // name, step, mini, maxi
923  parSet[0] = ParameterSet( "Pt res. sc.", 0.0002, 0., 0.1 );
924  parSet[1] = ParameterSet( "eta bin 1", 0.00002, 0., 0.01 );
925  parSet[2] = ParameterSet( "eta bin 2", 0.00002, 0., 0.01 );
926  parSet[3] = ParameterSet( "eta bin 3", 0.00002, 0., 0.01 );
927  parSet[4] = ParameterSet( "eta bin 4", 0.00002, 0., 0.01 );
928  parSet[5] = ParameterSet( "eta bin 5", 0.00002, 0., 0.01 );
929  parSet[6] = ParameterSet( "eta bin 6", 0.00002, 0., 0.01 );
930  parSet[7] = ParameterSet( "eta bin 7", 0.00002, 0., 0.01 );
931  parSet[8] = ParameterSet( "eta bin 8", 0.00002, 0., 0.01 );
932  parSet[9] = ParameterSet( "eta bin 9", 0.00002, 0., 0.01 );
933  parSet[10] = ParameterSet( "eta bin 10", 0.00002, 0., 0.01 );
934  parSet[11] = ParameterSet( "eta bin 11", 0.00002, 0., 0.01 );
935  parSet[12] = ParameterSet( "eta bin 12", 0.00002, 0., 0.01 );
936 
937  std::cout << "setting parameters" << std::endl;
938  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
939  }
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 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 
)
inlineoverridevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 941 of file Functions.h.

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

947  {
948  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
949  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
950  std::cout << "parNum = " << this->parNum_ << std::endl;
951  std::cout << "parStep.size() = " << parStep.size() << std::endl;
952  std::cout << "parMin.size() = " << parMin.size() << std::endl;
953  std::cout << "parMax.size() = " << parMax.size() << std::endl;
954  exit(1);
955  }
956  std::vector<ParameterSet> parSet(this->parNum_);
957  // name, step, mini, maxi
958  parSet[0] = ParameterSet( "Pt res. sc.", parStep[0], parMin[0], parMax[0] );
959  parSet[1] = ParameterSet( "eta bin 1", parStep[1], parMin[1], parMax[1] );
960  parSet[2] = ParameterSet( "eta bin 2", parStep[2], parMin[2], parMax[2] );
961  parSet[3] = ParameterSet( "eta bin 3", parStep[3], parMin[3], parMax[3] );
962  parSet[4] = ParameterSet( "eta bin 4", parStep[4], parMin[4], parMax[4] );
963  parSet[5] = ParameterSet( "eta bin 5", parStep[5], parMin[5], parMax[5] );
964  parSet[6] = ParameterSet( "eta bin 6", parStep[6], parMin[6], parMax[6] );
965  parSet[7] = ParameterSet( "eta bin 7", parStep[7], parMin[7], parMax[7] );
966  parSet[8] = ParameterSet( "eta bin 8", parStep[8], parMin[8], parMax[8] );
967  parSet[9] = ParameterSet( "eta bin 9", parStep[9], parMin[9], parMax[9] );
968  parSet[10] = ParameterSet( "eta bin 10", parStep[10], parMin[10], parMax[10] );
969  parSet[11] = ParameterSet( "eta bin 11", parStep[11], parMin[11], parMax[11] );
970  parSet[12] = ParameterSet( "eta bin 12", parStep[12], parMin[12], parMax[12] );
971 
972  std::cout << "setting parameters" << std::endl;
973  for( int i=0; i<this->parNum_; ++i ) {
974  std::cout << "parStep["<<i<<"] = " << parStep[i]
975  << ", parMin["<<i<<"] = " << parMin[i]
976  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
977  }
978  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
979  }
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 resolutionFunctionType46< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 902 of file Functions.h.

902  {
903  return 0;
904  }
template<class T >
double resolutionFunctionType46< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 905 of file Functions.h.

905  {
906  return 0.;
907  }
template<class T >
double resolutionFunctionType46< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 898 of file Functions.h.

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

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

Reimplemented from resolutionFunctionBase< T >.

Definition at line 910 of file Functions.h.

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

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