Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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