CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CosmicMuonTrajectoryBuilder.h
Go to the documentation of this file.
1 #ifndef CosmicMuonTrajectoryBuilder_H
2 #define CosmicMuonTrajectoryBuilder_H
3 
11 
27 
28 namespace edm {class Event; class EventSetup;}
29 
30 class Trajectory;
35 
38 
40 
41 public:
42 
45 
48 
50  std::vector<Trajectory*> trajectories(const TrajectorySeed&);
51 
54  return CandidateContainer();
55  }
56 
57  virtual void setEvent(const edm::Event&);
58 
60 
61  //FIXME
62  const Propagator* propagatorAlong() const {return &*theService->propagator("SteppingHelixPropagatorAlong");}
63 
64  const Propagator* propagatorOpposite() const {return &*theService->propagator("SteppingHelixPropagatorOpposite");}
65 
67 
69 
71 
73 
75 
77 
78  double t0(const DTRecSegment4D* deseg) const;
79 
81 
82 
83 private:
84 
86 
88 
90 
92 
94 
96  void reverseTrajectory(Trajectory&) const;
97 
99  void flipTrajectory(Trajectory&) const;
100 
103 
105  bool selfDuplicate(const Trajectory&) const;
106 
108  void estimateDirection(Trajectory&) const;
109 
111  void getDirectionByTime(Trajectory&) const;
112 
113  std::vector<TrajectoryMeasurement> findBestMeasurements(const DetLayer*, const TrajectoryStateOnSurface&, const Propagator*, const MeasurementEstimator*);
114 
115  void incrementChamberCounters(const DetLayer* layer, int& dtChambers, int& cscChambers, int& rpcChambers, int& totalChambers);
116 
119 
123 
126 
128 
130 
133 
137 
138  unsigned long long theCacheId_DG;
141 
142 };
143 #endif
void reverseTrajectoryPropagationDirection(Trajectory &) const
reverse the propagation direction of a trajectory
MuonCandidate::CandidateContainer CandidateContainer
const Propagator * propagator() const
double t0(const DTRecSegment4D *deseg) const
std::pair< const Trajectory *, reco::TrackRef > TrackCand
MuonBestMeasurementFinder * bestMeasurementFinder() const
void estimateDirection(Trajectory &) const
check the direction of trajectory by checking eta spread
TrajectoryStateOnSurface intermediateState(const TrajectoryStateOnSurface &) const
edm::Handle< CSCRecHit2DCollection > cschits_
MuonTrajectoryUpdator * backwardUpdator() const
std::vector< Trajectory * > trajectories(const TrajectorySeed &)
build trajectories from seed
edm::Handle< DTRecHitCollection > dthits_
const Propagator * propagatorOpposite() const
PropagationDirection
MuonDetLayerMeasurements * theLayerMeasurements
CosmicMuonSmoother * smoother() const
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
DirectMuonNavigation * navigation() const
void flipTrajectory(Trajectory &) const
flip a trajectory with refit (the momentum direction is opposite)
MuonTrajectoryUpdator * updator() const
void reverseTrajectory(Trajectory &) const
reverse a trajectory without refit (out the measurements order changed)
MuonBestMeasurementFinder * theBestMeasurementFinder
void incrementChamberCounters(const DetLayer *layer, int &dtChambers, int &cscChambers, int &rpcChambers, int &totalChambers)
void getDirectionByTime(Trajectory &) const
check the direction of trajectory by checking the timing
PropagationDirection checkDirectionByT0(const DTRecSegment4D *, const DTRecSegment4D *) const
CosmicMuonUtilities * utilities() const
virtual ~CosmicMuonTrajectoryBuilder()
Destructor.
void selectHits(MuonTransientTrackingRecHit::MuonRecHitContainer &) const
const Propagator * propagatorAlong() const
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
virtual CandidateContainer trajectories(const TrackCand &)
dummy implementation, unused in this class
std::vector< TrajectoryMeasurement > findBestMeasurements(const DetLayer *, const TrajectoryStateOnSurface &, const Propagator *, const MeasurementEstimator *)
CosmicMuonTrajectoryBuilder(const edm::ParameterSet &, const MuonServiceProxy *service)
Constructor.
bool selfDuplicate(const Trajectory &) const
check if the trajectory iterates the same hit more than once
MuonTransientTrackingRecHit::MuonRecHitContainer unusedHits(const DetLayer *, const TrajectoryMeasurement &) const
void build(const TrajectoryStateOnSurface &, const NavigationDirection &, Trajectory &)
std::vector< MuonRecHitPointer > MuonRecHitContainer
CosmicMuonUtilities * utilities() const
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event