CMS 3D CMS Logo

SETSeedFinder.h
Go to the documentation of this file.
1 #ifndef MuonSeedGenerator_SETSeedFinder_h
2 #define MuonSeedGenerator_SETSeedFinder_h
3 
8 #include "CLHEP/Matrix/Vector.h"
9 #include "CLHEP/Vector/ThreeVector.h"
10 
11 
13 {
14 public:
16 
17  explicit SETSeedFinder(const edm::ParameterSet & pset);
18  ~SETSeedFinder() override {delete thePtExtractor;}
20  void setBField(const MagneticField * field) override {}
21 
29  void seeds(const MuonRecHitContainer & cluster,
30  std::vector<TrajectorySeed> & result) override;
31 
33 
34  std::vector<MuonRecHitContainer>
35  sortByLayer(MuonRecHitContainer & cluster) const;
36 
37  //---- For protection against huge memory consumtion
38  void limitCombinatorics(std::vector< MuonRecHitContainer > & MuonRecHitContainer_perLayer);
39 
40  std::vector<MuonRecHitContainer>
41  findAllValidSets(const std::vector<MuonRecHitContainer> & MuonRecHitContainer_perLayer);
42 
43  std::pair <int, int> checkAngleDeviation(double dPhi_1, double dPhi_2) const;
44 
45  void validSetsPrePruning(std::vector<MuonRecHitContainer> & allValidSets);
46 
47  void pre_prune(MuonRecHitContainer & validSet) const;
48 
49  std::vector <SeedCandidate>
50  fillSeedCandidates(std::vector <MuonRecHitContainer> & allValidSets);
51 
52  void estimateMomentum(const MuonRecHitContainer & validSet,
53  CLHEP::Hep3Vector & momentum, int & charge) const;
54 
57 
58 private:
60 
63 
64 
65 };
66 
67 #endif
68 
69 
70 
void setServiceProxy(MuonServiceProxy *service)
Definition: SETSeedFinder.h:32
bool apply_prePruning
Definition: SETSeedFinder.h:61
std::pair< int, int > checkAngleDeviation(double dPhi_1, double dPhi_2) const
void pre_prune(MuonRecHitContainer &validSet) const
bool useSegmentsInTrajectory
Definition: SETSeedFinder.h:62
TrajectorySeed makeSeed(const TrajectoryStateOnSurface &tsos, const TransientTrackingRecHit::ConstRecHitContainer &hits) const
std::vector< MuonRecHitContainer > sortByLayer(MuonRecHitContainer &cluster) const
void estimateMomentum(const MuonRecHitContainer &validSet, CLHEP::Hep3Vector &momentum, int &charge) const
void setBField(const MagneticField *field) override
ignore - uses MuonServiceProxy
Definition: SETSeedFinder.h:20
~SETSeedFinder() override
Definition: SETSeedFinder.h:18
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
Definition: SETSeedFinder.h:15
std::vector< ConstRecHitPointer > ConstRecHitContainer
MuonSeedPtExtractor * thePtExtractor
void limitCombinatorics(std::vector< MuonRecHitContainer > &MuonRecHitContainer_perLayer)
void seeds(const MuonRecHitContainer &cluster, std::vector< TrajectorySeed > &result) override
std::vector< MuonRecHitContainer > findAllValidSets(const std::vector< MuonRecHitContainer > &MuonRecHitContainer_perLayer)
MuonServiceProxy * theService
Definition: SETSeedFinder.h:59
void validSetsPrePruning(std::vector< MuonRecHitContainer > &allValidSets)
std::vector< SeedCandidate > fillSeedCandidates(std::vector< MuonRecHitContainer > &allValidSets)
std::vector< MuonRecHitPointer > MuonRecHitContainer
SETSeedFinder(const edm::ParameterSet &pset)