 # Project CMSSW displayed by LXR

File indexing completed on 2021-02-14 14:28:18

```0001 #ifndef FsmwLinearizationPointFinder_H
0002 #define FsmwLinearizationPointFinder_H
0003
0004 #include "RecoVertex/LinearizationPointFinders/interface/CrossingPtBasedLinearizationPointFinder.h"
0005
0006 /** A linearization point finder. It works the following way:
0007    *  1. Calculate in an optimal way 'n_pairs' different crossing points.
0008    *     Optimal in this context means the following:
0009    *     a. Try to use as many different tracks as possible;
0010    *        avoid using the same track all the time.
0011    *     b. Use the most energetic tracks.
0012    *     c. Try not to group the most energetic tracks together.
0013    *        Try to group more energetic tracks with less energetic tracks.
0014    *        We assume collimated bundles here, so this is why.
0015    *     d. Perform optimally. Do not sort more tracks (by total energy, see b)
0016    *        than necessary.
0017    *     e. If n_pairs >= (number of all possible combinations),
0018    *        do not leave any combinations out.
0019    *     ( a. and e. are almost but not entirely fulfilled in the current impl )
0020    *  2. Do a Fsmw on the n points.
0021    */
0022
0023 class FsmwLinearizationPointFinder : public CrossingPtBasedLinearizationPointFinder {
0024 public:
0025   /**
0026    *  \param n_pairs how many track pairs are considered
0027    *  The weight is defined as w = ( d + cut )^weight_exp
0028    *  Where d and cut are given in microns.
0029    *  \param weight_exp exponent of the weight function
0030    *  \param cut cut parameter of the weight function
0031    *  \param fraction Fraction that is considered
0032    */
0033   FsmwLinearizationPointFinder(
0034       signed int n_pairs = 250, float weight_exp = -2., float fraction = .5, float cut = 10, int no_weight_above = 10);
0035
0036   FsmwLinearizationPointFinder(const RecTracksDistanceMatrix* m,
0037                                signed int n_pairs = 250,
0038                                float weight_exp = -2.,
0039                                float fraction = .5,
0040                                float cut = 10,
0041                                int no_weight_above = 10);
0042
0043   FsmwLinearizationPointFinder* clone() const override;
0044 };
0045
0046 #endif```