Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:19

0001 #ifndef _FsmwModeFinder3d_H_
0002 #define _FsmwModeFinder3d_H_
0003 
0004 #include "RecoVertex/VertexTools/interface/ModeFinder3d.h"
0005 
0006 /**
0007  *  
0008  *  \class FsmwModeFinder3d,
0009  *  this is a half sample mode finder that works
0010  *  coordinate wise, in 3d.
0011  */
0012 class FsmwModeFinder3d : public ModeFinder3d {
0013 public:
0014   /**
0015      *  Constructor
0016      *  \param fraction the fraction of data points that have to be 
0017      *  within the interval.
0018      *  \param weightExponent
0019      *  The exponent by which the weights are taken into account.
0020      *  Default is "w^-1", w being the track distance + cutoff (see below).
0021      *  \param cutoff
0022      *  weight = ( cutoff + 10000 * distance ) * weightExponent
0023      *  \param no_weights_above
0024      *  ignore weights as long as the number of data points is > x
0025      */
0026   FsmwModeFinder3d(float fraction = .5,
0027                    float weightExponent = -2.,
0028                    float cutoff = 10 /* microns */,
0029                    int no_weights_above = 10);
0030   GlobalPoint operator()(const std::vector<PointAndDistance>&) const override;
0031   FsmwModeFinder3d* clone() const override;
0032 
0033 private:
0034   float theFraction;
0035   float theWeightExponent;
0036   float theCutoff;
0037   int theNoWeightsAbove;
0038 };
0039 
0040 #endif