CMS 3D CMS Logo

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

#include <Functions.h>

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

Public Member Functions

 resolutionFunctionType18 ()
 
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 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)
 
- 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 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 sigmaPtError (const double &pt, const double &eta, const T &parval, const T &parError)
 
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 resolutionFunctionType18< T >

Definition at line 3898 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 3900 of file Functions.h.

References resolutionFunctionBase< T >::parNum_.

3900 { this->parNum_ = 14; }

Member Function Documentation

template<class T >
virtual void resolutionFunctionType18< 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 3929 of file Functions.h.

References resolutionFunctionBase< T >::setPar().

3929  {
3930  double thisStep[] = { 0.01, 0.0001, 0.00001,
3931  0.001, 0.0001, 0.000001,
3932  0.01, 0.001, 0.01, 0.001,
3933  0.01, 0.001, 0.01, 0.001};
3934  TString thisParName[] = { "offsetPt", "hyperbolicPt", "linearPt",
3935  "offsetEtaCentral", "linaerEtaCentral", "parabEtaCentral",
3936  "offsetEtaEndcapRight", "linearEtaRight", "rightParabCenter", "parabolicEtaRight",
3937  "offsetEtaEndcapLeft", "linearEtaLeft", "leftParabCenter", "parabolicEtaLeft" };
3938  double thisMini[] = { -1.5, -0.001, 0.00005,
3939  -0.05, -0.1, 0.0,
3940  -0.6, -0.0009, 0., 0.0005,
3941  -0.6, -0.1, 1., 0.01
3942  };
3943 
3944  if( muonType == 1 ) {
3945  double thisMaxi[] = { 1., 1., 1.,
3946  1., 1., 1.,
3947  1., 1. ,1., 1.,
3948  1., 1., 1., 1.
3949  };
3950  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, thisStep, thisMini, thisMaxi, thisParName );
3951  } else {
3952  double thisMaxi[] = { 1.1, 0.8, 0.005,
3953  0.05, 0.1, 0.08,
3954  0.9, 0.5, 1.99, 0.15,
3955  0.9, 0.5, 1.99, 0.15
3956  };
3957 
3958  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, thisStep, thisMini, thisMaxi, thisParName );
3959  }
3960  }
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
template<class T >
virtual double resolutionFunctionType18< T >::sigmaCotgTh ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 3922 of file Functions.h.

3922  {
3923  return( 0.004 );
3924  }
template<class T >
virtual double resolutionFunctionType18< T >::sigmaPhi ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 3926 of file Functions.h.

3926  {
3927  return( 0.001 );
3928  }
template<class T >
virtual double resolutionFunctionType18< T >::sigmaPt ( const double &  pt,
const double &  eta,
const T parval 
)
inlinevirtual

Implements resolutionFunctionBase< T >.

Definition at line 3902 of file Functions.h.

3902  {
3903  double fabsEta = std::fabs(eta);
3904  double ptPart = parval[0] + parval[1]*1./pt + pt*parval[2];
3905 
3906  if(fabsEta<=0.6)
3907  return( ptPart + parval[3]);
3908  else if((eta>0.6 && eta<=1.3) || (eta>=-1.3 && eta<-0.6)) {//eta in barrel + overlap
3909  double par = parval[3] - 0.6*parval[4] - 0.6*0.6*parval[5];
3910  return( ptPart + par + parval[4]*fabsEta + parval[5]*eta*eta );
3911  }
3912  else if (eta>1.3){//eta in right endcap
3913  double par = parval[3] - 0.6*parval[4] - 0.6*0.6*parval[5] + parval[4]*1.3 + parval[5]*1.3*1.3 - (parval[6] + parval[7]*std::fabs(1.3-parval[8]) + parval[9]*(1.3-parval[8])*(1.3-parval[8]));
3914  return( par + ptPart + parval[6] + parval[7]*std::fabs((fabsEta-parval[8])) + parval[9]*(fabsEta-parval[8])*(fabsEta-parval[8]) );
3915  }
3916  else{//eta in left endcap
3917  double par = parval[3] - 0.6*parval[4] - 0.6*0.6*parval[5] + parval[4]*1.3 + parval[5]*1.3*1.3 - (parval[10] + parval[11]*std::fabs(1.3-parval[12]) + parval[13]*(1.3-parval[12])*(1.3-parval[12]));
3918  return( par + ptPart + parval[10] + parval[11]*std::fabs((fabsEta-parval[12])) + parval[13]*(fabsEta-parval[12])*(fabsEta-parval[12]) );
3919  }
3920  }
T eta() const