CMS 3D CMS Logo

Public Member Functions | Private Attributes

GsfChi2MeasurementEstimator Class Reference

#include <GsfChi2MeasurementEstimator.h>

Inheritance diagram for GsfChi2MeasurementEstimator:
Chi2MeasurementEstimatorBase MeasurementEstimator

List of all members.

Public Member Functions

virtual
GsfChi2MeasurementEstimator
clone () const
virtual std::pair< bool, double > estimate (const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
 GsfChi2MeasurementEstimator ()
 GsfChi2MeasurementEstimator (double aMaxChi2)

Private Attributes

Chi2MeasurementEstimator theEstimator

Detailed Description

Class which calculates the chisquare of a predicted Gaussian mixture trajectory state with respect to a reconstructed hit according to the Gaussian-sum filter (GSF) strategy. The relevant formulas can be found in R. Fruhwirth, Computer Physics Communications 100 (1997), 1.

Definition at line 15 of file GsfChi2MeasurementEstimator.h.


Constructor & Destructor Documentation

GsfChi2MeasurementEstimator::GsfChi2MeasurementEstimator ( ) [inline]

Definition at line 18 of file GsfChi2MeasurementEstimator.h.

Referenced by clone().

GsfChi2MeasurementEstimator::GsfChi2MeasurementEstimator ( double  aMaxChi2) [inline]

Definition at line 22 of file GsfChi2MeasurementEstimator.h.

                                               : 
    Chi2MeasurementEstimatorBase(aMaxChi2),
    theEstimator(aMaxChi2) {}

Member Function Documentation

virtual GsfChi2MeasurementEstimator* GsfChi2MeasurementEstimator::clone ( void  ) const [inline, virtual]

Implements MeasurementEstimator.

Definition at line 29 of file GsfChi2MeasurementEstimator.h.

References GsfChi2MeasurementEstimator().

                                                     {
    return new GsfChi2MeasurementEstimator(*this);
  }
std::pair< bool, double > GsfChi2MeasurementEstimator::estimate ( const TrajectoryStateOnSurface ts,
const TransientTrackingRecHit hit 
) const [virtual]

Returns pair( true, value) if the TrajectoryStateOnSurface is compatible with the RecHit, and pair( false, value) if it is not compatible. The TrajectoryStateOnSurface must be on the same Surface as the RecHit. For an estimator where there is no value computed, e.g. fixed window estimator, only the first(bool) part is of interest.

Implements Chi2MeasurementEstimatorBase.

Definition at line 9 of file GsfChi2MeasurementEstimator.cc.

References ExpressReco_HICollisions_FallBack::chi2, TrajectoryStateOnSurface::components(), Chi2MeasurementEstimator::estimate(), i, Chi2MeasurementEstimatorBase::returnIt(), theEstimator, ExpressReco_HICollisions_FallBack::weights, and PosteriorWeightsCalculator::weights().

                                                                                 {

  std::vector<TrajectoryStateOnSurface> tsvec = tsos.components();
  if (tsvec.empty()) {
    edm::LogError("GsfChi2MeasurementEstimator") 
      << "Trying to calculate chi2 of hit with respect to empty mixture!";
    return std::make_pair(false,0.);
  }

  std::vector<double> weights = PosteriorWeightsCalculator(tsvec).weights(hit);
  if ( weights.empty() )  return std::make_pair(false,0);

  //   Chi2MeasurementEstimator est(chiSquaredCut());
  double chi2 = 0.;
  int i = 0;
  for (std::vector<TrajectoryStateOnSurface>::const_iterator it = tsvec.begin();
       it != tsvec.end(); it++) {
    chi2 += weights[i++] * theEstimator.estimate(*it,hit).second;
  }
  // Done - normalisation of weights is ensured 
  // by PosteriorWeightsCalculator
  return returnIt(chi2);
}

Member Data Documentation

Definition at line 34 of file GsfChi2MeasurementEstimator.h.

Referenced by estimate().