Project CMSSW displayed by LXR

File indexing completed on 2023-10-25 10:03:24

```0001 #ifndef SubsetHSMLinearizationPointFinder_H
0002 #define SubsetHSMLinearizationPointFinder_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 SubsetHSM on the n points.
0021    */
0022
0023 class SubsetHSMLinearizationPointFinder : public CrossingPtBasedLinearizationPointFinder {
0024 public:
0025   SubsetHSMLinearizationPointFinder(const signed int n_pairs = 10);
0026   SubsetHSMLinearizationPointFinder(const RecTracksDistanceMatrix* m, const signed int n_pairs = -1);
0027
0028   SubsetHSMLinearizationPointFinder* clone() const override;
0029 };
0030
0031 #endif```