CMS 3D CMS Logo

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

#include <Functions.h>

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

Public Member Functions

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

Definition at line 768 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 788 of file Functions.h.

788 { this->parNum_ = 13; }

Member Function Documentation

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

Definition at line 770 of file Functions.h.

771  {
772  // 12 bins from -2.4 to 2.4
773  // std::cout << "for eta = " << eta << ", bin = " << bin << std::endl;
774  if( eta < -2.0 ) return 1;
775  if( eta < -1.8 ) return 2;
776  if( eta < -1.6 ) return 3;
777  if( eta < -1.2 ) return 4;
778  if( eta < -0.8 ) return 5;
779  if( eta < 0. ) return 6;
780  if( eta < 0.8 ) return 7;
781  if( eta < 1.2 ) return 8;
782  if( eta < 1.6 ) return 9;
783  if( eta < 1.8 ) return 10;
784  if( eta < 2.0 ) return 11;
785  return 12;
786  }
template<class T >
void resolutionFunctionType45< 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 808 of file Functions.h.

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

811  {
812  std::vector<ParameterSet> parSet(this->parNum_);
813  // name, step, mini, maxi
814  parSet[0] = ParameterSet( "Pt res. sc.", 0.002, -0.1, 0.1 );
815  parSet[1] = ParameterSet( "eta bin 1", 0.00002, -0.01, 0.01 );
816  parSet[2] = ParameterSet( "eta bin 2", 0.00002, -0.01, 0.01 );
817  parSet[3] = ParameterSet( "eta bin 3", 0.00002, -0.01, 0.01 );
818  parSet[4] = ParameterSet( "eta bin 4", 0.00002, -0.01, 0.01 );
819  parSet[5] = ParameterSet( "eta bin 5", 0.00002, -0.01, 0.01 );
820  parSet[6] = ParameterSet( "eta bin 6", 0.00002, -0.01, 0.01 );
821  parSet[7] = ParameterSet( "eta bin 7", 0.00002, -0.01, 0.01 );
822  parSet[8] = ParameterSet( "eta bin 8", 0.00002, -0.01, 0.01 );
823  parSet[9] = ParameterSet( "eta bin 9", 0.00002, -0.01, 0.01 );
824  parSet[10] = ParameterSet( "eta bin 10", 0.00002, -0.01, 0.01 );
825  parSet[11] = ParameterSet( "eta bin 11", 0.00002, -0.01, 0.01 );
826  parSet[12] = ParameterSet( "eta bin 12", 0.00002, -0.01, 0.01 );
827 
828  std::cout << "setting parameters" << std::endl;
829  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
830  }
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 resolutionFunctionType45< 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 832 of file Functions.h.

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

838  {
839  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
840  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
841  std::cout << "parNum = " << this->parNum_ << std::endl;
842  std::cout << "parStep.size() = " << parStep.size() << std::endl;
843  std::cout << "parMin.size() = " << parMin.size() << std::endl;
844  std::cout << "parMax.size() = " << parMax.size() << std::endl;
845  exit(1);
846  }
847  std::vector<ParameterSet> parSet(this->parNum_);
848  // name, step, mini, maxi
849  parSet[0] = ParameterSet( "Pt res. sc.", parStep[0], parMin[0], parMax[0] );
850  parSet[1] = ParameterSet( "eta bin 1", parStep[1], parMin[1], parMax[1] );
851  parSet[2] = ParameterSet( "eta bin 2", parStep[2], parMin[2], parMax[2] );
852  parSet[3] = ParameterSet( "eta bin 3", parStep[3], parMin[3], parMax[3] );
853  parSet[4] = ParameterSet( "eta bin 4", parStep[4], parMin[4], parMax[4] );
854  parSet[5] = ParameterSet( "eta bin 5", parStep[5], parMin[5], parMax[5] );
855  parSet[6] = ParameterSet( "eta bin 6", parStep[6], parMin[6], parMax[6] );
856  parSet[7] = ParameterSet( "eta bin 7", parStep[7], parMin[7], parMax[7] );
857  parSet[8] = ParameterSet( "eta bin 8", parStep[8], parMin[8], parMax[8] );
858  parSet[9] = ParameterSet( "eta bin 9", parStep[9], parMin[9], parMax[9] );
859  parSet[10] = ParameterSet( "eta bin 10", parStep[10], parMin[10], parMax[10] );
860  parSet[11] = ParameterSet( "eta bin 11", parStep[11], parMin[11], parMax[11] );
861  parSet[12] = ParameterSet( "eta bin 12", parStep[12], parMin[12], parMax[12] );
862 
863  std::cout << "setting parameters" << std::endl;
864  for( int i=0; i<this->parNum_; ++i ) {
865  std::cout << "parStep["<<i<<"] = " << parStep[i]
866  << ", parMin["<<i<<"] = " << parMin[i]
867  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
868  }
869  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
870  }
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 resolutionFunctionType45< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 794 of file Functions.h.

794  {
795  return 0;
796  }
template<class T >
double resolutionFunctionType45< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 797 of file Functions.h.

797  {
798  return 0.;
799  }
template<class T >
double resolutionFunctionType45< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlineoverridevirtual

Implements resolutionFunctionBase< T >.

Definition at line 790 of file Functions.h.

References conversionPostprocessing_cfi::etaBin.

791  {
792  return (parval[0]*pt + parval[etaBin(eta)]);
793  }
int etaBin(const double &eta)
Definition: Functions.h:770
template<class T >
double resolutionFunctionType45< T >::sigmaPtError ( const double &  pt,
const double &  eta,
const T parval,
const T parError 
)
inlineoverridevirtual

Reimplemented from resolutionFunctionBase< T >.

Definition at line 802 of file Functions.h.

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

803  {
804  // Use the etaBin function to select the right bin for the parameter
805  return sqrt( pow(pt*parError[0], 2) + pow(parError[etaBin(eta)], 2));
806  }
int etaBin(const double &eta)
Definition: Functions.h:770
T sqrt(T t)
Definition: SSEVec.h:18
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40