CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes
backgroundFunctionBase Class Referenceabstract

#include <Functions.h>

Inheritance diagram for backgroundFunctionBase:
backgroundFunctionType1 backgroundFunctionType10 backgroundFunctionType11 backgroundFunctionType2 backgroundFunctionType4 backgroundFunctionType5 backgroundFunctionType6 backgroundFunctionType7 backgroundFunctionType8 backgroundFunctionType9

Classes

class  FunctionForIntegral
 

Public Member Functions

 backgroundFunctionBase (const double &lowerLimit, const double &upperLimit)
 
virtual double fracVsEta (const double *parval, const double &eta1, const double &eta2) const
 
virtual TF1 * functionForIntegral (const std::vector< double >::const_iterator &parBgrIt) const
 
virtual double operator() (const double *parval, const double &mass, const double &eta) const =0
 
virtual double operator() (const double *parval, const double &mass, const double &eta1, const double &eta2) const
 
virtual int parNum () const
 
virtual void setParameters (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const std::vector< double >::const_iterator &parBgrIt, const std::vector< int >::const_iterator &parBgrOrderIt, const int muonType)=0
 This method is used to differentiate parameters among the different functions. More...
 
virtual ~backgroundFunctionBase ()
 

Protected Member Functions

virtual void setPar (double *Start, double *Step, double *Mini, double *Maxi, int *ind, TString *parname, const std::vector< double >::const_iterator &parBgrIt, const std::vector< int >::const_iterator &parBgrOrderIt, double *thisStep, double *thisMini, double *thisMaxi, TString *thisParName)
 This method sets the parameters. More...
 

Protected Attributes

FunctionForIntegralfunctionForIntegral_
 
double lowerLimit_
 
int parNum_
 
double upperLimit_
 

Detailed Description

Background functors.
MuScleFit uses different background functions for each resonance. This is done because the background shape can change from a region to another so that it is not well described just one of the following functions. Since we are only interested in getting the correct shape and fraction in the resonance region we can split it in several parts and fit them separately.

When fitting the background function:

Definition at line 1132 of file Functions.h.

Constructor & Destructor Documentation

backgroundFunctionBase::backgroundFunctionBase ( const double &  lowerLimit,
const double &  upperLimit 
)
inline

Definition at line 1134 of file Functions.h.

1134  :
1135  lowerLimit_(lowerLimit), upperLimit_(upperLimit) {}
virtual backgroundFunctionBase::~backgroundFunctionBase ( )
inlinevirtual

Definition at line 1136 of file Functions.h.

References functionForIntegral_.

1137  {
1138  delete functionForIntegral_;
1139  };
FunctionForIntegral * functionForIntegral_
Definition: Functions.h:1199

Member Function Documentation

virtual double backgroundFunctionBase::fracVsEta ( const double *  parval,
const double &  eta1,
const double &  eta2 
) const
inlinevirtual
virtual TF1* backgroundFunctionBase::functionForIntegral ( const std::vector< double >::const_iterator &  parBgrIt) const
inlinevirtual

Definition at line 1148 of file Functions.h.

References functionForIntegral_, lowerLimit_, parNum_, and upperLimit_.

Referenced by BackgroundHandler::rescale().

1149  {
1150  functionForIntegral_ = new FunctionForIntegral(this, parBgrIt);
1151  TF1 * backgroundFunctionForIntegral = new TF1("backgroundFunctionForIntegral", functionForIntegral_,
1152  lowerLimit_, upperLimit_, this->parNum_);
1153  return( backgroundFunctionForIntegral );
1154  }
FunctionForIntegral * functionForIntegral_
Definition: Functions.h:1199
virtual double backgroundFunctionBase::operator() ( const double *  parval,
const double &  mass,
const double &  eta 
) const
pure virtual
virtual double backgroundFunctionBase::operator() ( const double *  parval,
const double &  mass,
const double &  eta1,
const double &  eta2 
) const
inlinevirtual

Reimplemented in backgroundFunctionType11, backgroundFunctionType10, backgroundFunctionType9, backgroundFunctionType8, backgroundFunctionType7, and backgroundFunctionType6.

Definition at line 1141 of file Functions.h.

References operator()().

1142  {
1143  return operator()(parval, mass, eta1);
1144  }
virtual double operator()(const double *parval, const double &mass, const double &eta) const =0
virtual int backgroundFunctionBase::parNum ( ) const
inlinevirtual

Definition at line 1145 of file Functions.h.

References parNum_.

Referenced by backgroundFunctionBase::FunctionForIntegral::FunctionForIntegral().

1145 { return parNum_; }
virtual void backgroundFunctionBase::setPar ( double *  Start,
double *  Step,
double *  Mini,
double *  Maxi,
int *  ind,
TString *  parname,
const std::vector< double >::const_iterator &  parBgrIt,
const std::vector< int >::const_iterator &  parBgrOrderIt,
double *  thisStep,
double *  thisMini,
double *  thisMaxi,
TString *  thisParName 
)
inlineprotectedvirtual

This method sets the parameters.

Definition at line 1162 of file Functions.h.

References parNum_.

Referenced by backgroundFunctionType1::setParameters(), backgroundFunctionType2::setParameters(), backgroundFunctionType4::setParameters(), backgroundFunctionType5::setParameters(), backgroundFunctionType6::setParameters(), backgroundFunctionType7::setParameters(), backgroundFunctionType8::setParameters(), backgroundFunctionType9::setParameters(), backgroundFunctionType10::setParameters(), and backgroundFunctionType11::setParameters().

1164  {
1165  for( int iPar=0; iPar<this->parNum_; ++iPar ) {
1166  Start[iPar] = *(parBgrIt+iPar);
1167  Step[iPar] = thisStep[iPar];
1168  Mini[iPar] = thisMini[iPar];
1169  Maxi[iPar] = thisMaxi[iPar];
1170  ind[iPar] = *(parBgrOrderIt+iPar);
1171  // EM 2012.05.22 this line is crashing cmsRun (need to be fixed) parname[iPar] = thisParName[iPar];
1172  }
1173  }
virtual void backgroundFunctionBase::setParameters ( double *  Start,
double *  Step,
double *  Mini,
double *  Maxi,
int *  ind,
TString *  parname,
const std::vector< double >::const_iterator &  parBgrIt,
const std::vector< int >::const_iterator &  parBgrOrderIt,
const int  muonType 
)
pure virtual

Member Data Documentation

FunctionForIntegral* backgroundFunctionBase::functionForIntegral_
mutableprotected

Definition at line 1199 of file Functions.h.

Referenced by functionForIntegral(), and ~backgroundFunctionBase().

double backgroundFunctionBase::lowerLimit_
protected
int backgroundFunctionBase::parNum_
protected
double backgroundFunctionBase::upperLimit_
protected