![]() |
|
|||
File indexing completed on 2024-04-06 12:29:14
0001 #ifndef SMSLinearizationPointFinder_H 0002 #define SMSLinearizationPointFinder_H 0003 0004 #include "RecoVertex/LinearizationPointFinders/interface/CrossingPtBasedLinearizationPointFinder.h" 0005 #include "RecoVertex/VertexTools/interface/SMS.h" 0006 0007 /** A linearization point finder. It works the following way: 0008 * 1. Calculate in an optimal way 'n_pairs' different crossing points. 0009 * Optimal in this context means the following: 0010 * a. Try to use as many different tracks as possible; 0011 * avoid using the same track all the time. 0012 * b. Use the most energetic tracks. 0013 * c. Try not to group the most energetic tracks together. 0014 * Try to group more energetic tracks with less energetic tracks. 0015 * We assume collimated bundles here, so this is why. 0016 * d. Perform optimally. Do not sort more tracks (by total energy, see b) 0017 * than necessary. 0018 * e. If n_pairs >= (number of all possible combinations), 0019 * do not leave any combinations out. 0020 * ( a. and e. are almost but not entirely fulfilled in the current impl ) 0021 * 2. Do a LMS on the n points. 0022 */ 0023 0024 class SMSLinearizationPointFinder : public CrossingPtBasedLinearizationPointFinder { 0025 public: 0026 SMSLinearizationPointFinder(signed int n_pairs = 10, const SMS& sms = SMS()); 0027 SMSLinearizationPointFinder(const RecTracksDistanceMatrix* m, signed int n_pairs = -1, const SMS& sms = SMS()); 0028 0029 SMSLinearizationPointFinder* clone() const override; 0030 }; 0031 0032 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |