Atlfast::ParameterResolutions Class Reference

#include <ParameterResolutions.h>

List of all members.

Public Member Functions

 ParameterResolutions ()
 ParameterResolutions (std::vector< BinID > &bins, double low, double high)
double resolution (const TrackTrajectory &) const

Private Member Functions

double interpolate (double, double, double) const
double calculateResolution (double, const std::vector< double > &) const

Private Attributes

std::vector< BinIDm_coefficientBins
std::vector< double > m_powerSeries
double m_etaLow
double m_etaHigh


Detailed Description

Definition at line 9 of file ParameterResolutions.h.


Constructor & Destructor Documentation

Atlfast::ParameterResolutions::ParameterResolutions (  )  [inline]

Definition at line 13 of file ParameterResolutions.h.

00013 {}

Atlfast::ParameterResolutions::ParameterResolutions ( std::vector< BinID > &  bins,
double  low,
double  high 
) [inline]

Definition at line 14 of file ParameterResolutions.h.

00015         : m_coefficientBins(bins), m_etaLow(low), m_etaHigh(high)
00016       {
00017         m_powerSeries.push_back(0);
00018         m_powerSeries.push_back(0.5);
00019         m_powerSeries.push_back(1);
00020         m_powerSeries.push_back(1.5);
00021         m_powerSeries.push_back(2);
00022       }


Member Function Documentation

double Atlfast::ParameterResolutions::resolution ( const TrackTrajectory  )  const

Definition at line 7 of file ParameterResolutions.cxx.

00008   {
00009     // resolutions are given by c0(eta) + c1(eta)/sqrt(pT) + c2(eta)/pT + c3(eta)/pT/sqrt(pT) + c4(eta)/pT^2
00010     // have to interpolate eta between bin edges for coefficients
00011     TrackParameters track = traj.parameters();
00012     double eta = std::abs( track.eta() );
00013     double pT  = track.pT();
00014 
00015     std::vector<BinID>::const_iterator iter = m_coefficientBins.begin();
00016     std::vector<BinID>::const_iterator end  = m_coefficientBins.end();
00017     std::vector<double> coefficients;
00018     for ( ; iter != end; ++iter ) 
00019     {
00020       double value = this->interpolate( eta, iter->low(), iter->high() );
00021       coefficients.push_back(value);
00022     }
00023     return calculateResolution( pT, coefficients );
00024   }

double Atlfast::ParameterResolutions::interpolate ( double  ,
double  ,
double   
) const [private]

Definition at line 27 of file ParameterResolutions.cxx.

00028   {
00029     double slope = ( coeffHigh - coeffLow ) / ( m_etaHigh - m_etaLow );
00030     double value = coeffLow + slope * ( eta - m_etaLow );
00031     return value;
00032   }

double Atlfast::ParameterResolutions::calculateResolution ( double  ,
const std::vector< double > &   
) const [private]

Definition at line 34 of file ParameterResolutions.cxx.

00035   {
00036     if ( pT == 0 ) return 0;
00037     double resolution = 0;
00038     std::vector<double>::const_iterator powerSeries = m_powerSeries.begin();
00039     std::vector<double>::const_iterator iter = coefficients.begin();
00040     std::vector<double>::const_iterator end  = coefficients.end();
00041     
00042     for ( ; iter != end; ++iter )
00043     {
00044         resolution += (*iter) / std::pow( pT, (*powerSeries) ); 
00045         ++powerSeries;
00046     }   
00047     return resolution;
00048   }


Member Data Documentation

std::vector<BinID> Atlfast::ParameterResolutions::m_coefficientBins [private]

Definition at line 31 of file ParameterResolutions.h.

std::vector<double> Atlfast::ParameterResolutions::m_powerSeries [private]

Definition at line 32 of file ParameterResolutions.h.

double Atlfast::ParameterResolutions::m_etaLow [private]

Definition at line 33 of file ParameterResolutions.h.

double Atlfast::ParameterResolutions::m_etaHigh [private]

Definition at line 34 of file ParameterResolutions.h.


The documentation for this class was generated from the following files:
Generated on Mon Sep 24 14:19:41 2007 for AtlfastAlgs by  doxygen 1.5.1