Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:14

0001 #ifndef ExhaustiveMuonTrajectoryBuilder_h
0002 #define ExhaustiveMuonTrajectoryBuilder_h
0003 
0004 /** Instead of letting the SeedGenerator code choose
0005     a segment to start from, this TrajectoryBuilder
0006     makes a seed wfor each segment, and chooses the
0007     Trajectory with the most hits and the lowest chi-squared
0008 */
0009 
0010 #include "FWCore/Framework/interface/ESHandle.h"
0011 #include "RecoMuon/TrackingTools/interface/MuonTrajectoryBuilder.h"
0012 #include "RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h"
0013 #include "RecoMuon/TrackingTools/interface/MuonSeedFromRecHits.h"
0014 
0015 #include "FWCore/Framework/interface/ConsumesCollector.h"
0016 
0017 class ExhaustiveMuonTrajectoryBuilder : public MuonTrajectoryBuilder {
0018 public:
0019   ExhaustiveMuonTrajectoryBuilder(const edm::ParameterSet& pset, const MuonServiceProxy*, edm::ConsumesCollector&);
0020   ~ExhaustiveMuonTrajectoryBuilder() override;
0021 
0022   /// return a container of the reconstructed trajectories compatible with a given seed
0023   TrajectoryContainer trajectories(const TrajectorySeed&) override;
0024 
0025   /// return a container reconstructed muons starting from a given track
0026   CandidateContainer trajectories(const TrackCand&) override;
0027 
0028   /// pass the Event to the algo at each event
0029   void setEvent(const edm::Event& event) override;
0030 
0031 private:
0032   void clean(TrajectoryContainer& trajectories) const;
0033 
0034   StandAloneMuonTrajectoryBuilder theTrajBuilder;
0035   MuonSeedFromRecHits theSeeder;
0036   const MuonServiceProxy* theService;
0037 };
0038 
0039 #endif