CMS 3D CMS Logo

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

#include <Functions.h>

Inheritance diagram for scaleFunctionType31< T >:
scaleFunctionBase< T >

Public Member Functions

virtual void resetParameters (std::vector< double > *scaleVec) const
 This method is used to reset the scale parameters to neutral values (useful for iterations > 0) More...
 
virtual double scale (const double &pt, const double &eta, const double &phi, const int chg, const T &par) const
 
 scaleFunctionType31 ()
 
virtual void setParameters (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parScale, const std::vector< int > &parScaleOrder, 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)
 
- Public Member Functions inherited from scaleFunctionBase< T >
virtual int parNum () const
 
virtual ~scaleFunctionBase ()=0
 

Additional Inherited Members

- Protected Member Functions inherited from scaleFunctionBase< T >
virtual void setPar (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parScale, const std::vector< int > &parScaleOrder, 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 scaleFunctionBase< T >
int parNum_
 

Detailed Description

template<class T>
class scaleFunctionType31< T >

Definition at line 1695 of file Functions.h.

Constructor & Destructor Documentation

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

Definition at line 1697 of file Functions.h.

References scaleFunctionBase< T >::parNum_.

1697 { this->parNum_ = 8; }

Member Function Documentation

template<class T >
virtual void scaleFunctionType31< T >::resetParameters ( std::vector< double > *  scaleVec) const
inlinevirtual

This method is used to reset the scale parameters to neutral values (useful for iterations > 0)

Reimplemented from scaleFunctionBase< T >.

Definition at line 1719 of file Functions.h.

References i, and scaleFunctionBase< T >::parNum_.

1720  {
1721  scaleVec->push_back(1);
1722  for( int i=1; i<this->parNum_; ++i ) {
1723  scaleVec->push_back(0);
1724  }
1725  }
int i
Definition: DBlmapReader.cc:9
template<class T >
virtual double scaleFunctionType31< T >::scale ( const double &  pt,
const double &  eta,
const double &  phi,
const int  chg,
const T par 
) const
inlinevirtual

Implements scaleFunctionBase< T >.

Definition at line 1698 of file Functions.h.

References eta().

1700  {
1701  double etaCorr = 0.;
1702  if( (chg < 0 && eta > par[4]) || (chg > 0 && eta < -par[4]) ) {
1703  etaCorr = par[1]+par[2]*fabs(fabs(eta)-par[4])+par[3]*(fabs(eta)-par[4])*(fabs(eta)-par[4]);
1704  }
1705 
1706  //don't forget par[3] = 1.6
1707 
1708  double ptCorr = 0.;
1709  if( pt < par[7] ) {
1710  ptCorr = par[5]*(pt - par[7]) + par[6]*(pt - par[7])*(pt - par[7]);
1711  }
1712 
1713  //don't forget par[6] = 6
1714 
1715  return par[0]*pt*(1 + etaCorr + ptCorr);
1716  } //Gul araya yaz
T eta() const
template<class T >
virtual void scaleFunctionType31< T >::setParameters ( double *  Start,
double *  Step,
double *  Mini,
double *  Maxi,
int *  ind,
TString *  parname,
const T parScale,
const std::vector< int > &  parScaleOrder,
const int  muonType 
)
inlinevirtual

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

Implements scaleFunctionBase< T >.

Definition at line 1726 of file Functions.h.

1726 {}
template<class T >
virtual void scaleFunctionType31< 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 scaleFunctionBase< T >.

Definition at line 1728 of file Functions.h.

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

1734  {
1735  if( (int(parStep.size()) != this->parNum_) || (int(parMin.size()) != this->parNum_) || (int(parMax.size()) != this->parNum_) ) {
1736  std::cout << "Error: par step or min or max do not match with number of parameters" << std::endl;
1737  std::cout << "parNum = " << this->parNum_ << std::endl;
1738  std::cout << "parStep.size() = " << parStep.size() << std::endl;
1739  std::cout << "parMin.size() = " << parMin.size() << std::endl;
1740  std::cout << "parMax.size() = " << parMax.size() << std::endl;
1741  exit(1);
1742  }
1743  std::vector<ParameterSet> parSet(this->parNum_);
1744  // name, step, mini, maxi Bunun altindakileri degistirdik. Parametre sayisini 6'ya dusurduk.
1745 
1746  parSet[0] = ParameterSet( "Overall scale term", parStep[0], parMin[0], parMax[0] );
1747  parSet[1] = ParameterSet( "eta scale term ", parStep[1], parMin[1], parMax[1] );
1748  parSet[2] = ParameterSet( "multiplies eta", parStep[2], parMin[2], parMax[2] );
1749  parSet[3] = ParameterSet( "phase pos charge pos phi", parStep[3], parMin[3], parMax[3] );
1750  parSet[4] = ParameterSet( "amplitude pos charge neg phi", parStep[4], parMin[4], parMax[4] );
1751  parSet[5] = ParameterSet( "phase pos charge neg phi", parStep[5], parMin[5], parMax[5] );
1752  parSet[6] = ParameterSet( "amplitude neg charge pos phi", parStep[6], parMin[6], parMax[6] );
1753  parSet[7] = ParameterSet( "phase neg charge pos phi", parStep[7], parMin[7], parMax[7] );
1754  std::cout << "setting parameters" << std::endl;
1755  for( int i=0; i<this->parNum_; ++i ) {
1756  std::cout << "parStep["<<i<<"] = " << parStep[i]
1757  << ", parMin["<<i<<"] = " << parMin[i]
1758  << ", parMax["<<i<<"] = " << parMin[i] << std::endl;
1759  }
1760  this->setPar( Start, Step, Mini, Maxi, ind, parname, parResol, parResolOrder, parSet );
1761  }
int i
Definition: DBlmapReader.cc:9
virtual void setPar(double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const T &parScale, const std::vector< int > &parScaleOrder, double *thisStep, double *thisMini, double *thisMaxi, TString *thisParName)
This method sets the parameters.
Definition: Functions.h:70
tuple cout
Definition: gather_cfg.py:121