File indexing completed on 2024-04-06 12:27:14
0001 #ifndef RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H
0002 #define RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoMuon/TrackingTools/interface/MuonTrajectoryBuilder.h"
0011
0012 #include "RecoMuon/TrackingTools/interface/RecoMuonEnumerators.h"
0013 #include "FWCore/Framework/interface/ConsumesCollector.h"
0014
0015 class TrajectorySeed;
0016 class StandAloneMuonFilter;
0017 class StandAloneMuonBackwardFilter;
0018 class StandAloneMuonRefitter;
0019 class MuonServiceProxy;
0020 class SeedTransformer;
0021
0022 namespace edm {
0023 class ParameterSet;
0024 }
0025
0026 class StandAloneMuonTrajectoryBuilder : public MuonTrajectoryBuilder {
0027 public:
0028 typedef std::pair<const DetLayer*, TrajectoryStateOnSurface> DetLayerWithState;
0029
0030 public:
0031
0032 StandAloneMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*, edm::ConsumesCollector& iC);
0033
0034
0035 ~StandAloneMuonTrajectoryBuilder() override;
0036
0037
0038
0039 TrajectoryContainer trajectories(const TrajectorySeed&) override;
0040
0041
0042 CandidateContainer trajectories(const TrackCand&) override { return CandidateContainer(); }
0043
0044
0045 StandAloneMuonFilter* filter() const { return theFilter.get(); }
0046
0047
0048 StandAloneMuonFilter* bwfilter() const { return theBWFilter.get(); }
0049
0050
0051 StandAloneMuonRefitter* refitter() const { return theRefitter.get(); }
0052
0053
0054 void setEvent(const edm::Event& event) override;
0055
0056 protected:
0057 private:
0058 DetLayerWithState propagateTheSeedTSOS(TrajectoryStateOnSurface& aTSOS, DetId& aDetId);
0059
0060 private:
0061
0062
0063 std::string theNavigationType;
0064
0065 recoMuon::SeedPosition theSeedPosition;
0066
0067
0068 std::string theSeedPropagatorName;
0069
0070 std::unique_ptr<StandAloneMuonFilter> theFilter;
0071 std::unique_ptr<StandAloneMuonFilter> theBWFilter;
0072
0073
0074 std::unique_ptr<StandAloneMuonRefitter> theRefitter;
0075 std::unique_ptr<SeedTransformer> theSeedTransformer;
0076
0077 bool doBackwardFilter;
0078 bool doRefit;
0079 bool doSeedRefit;
0080 std::string theBWSeedType;
0081
0082 const MuonServiceProxy* theService;
0083 };
0084 #endif