File indexing completed on 2024-04-06 12:26:51
0001 #ifndef CosmicMuonProducer_CosmicMuonUtilities_H
0002 #define CosmicMuonProducer_CosmicMuonUtilities_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0011 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
0012 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0013
0014 class Propagator;
0015
0016 namespace edm {
0017 class ParameterSet;
0018 class Event;
0019 class EventSetup;
0020 }
0021
0022 class Trajectory;
0023 class TrajectoryMeasurement;
0024
0025 typedef MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer;
0026 typedef TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer;
0027 typedef TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer;
0028 typedef MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer;
0029
0030 class CosmicMuonUtilities {
0031 public:
0032 CosmicMuonUtilities();
0033
0034 virtual ~CosmicMuonUtilities();
0035
0036 std::string print(const ConstMuonRecHitContainer&) const;
0037
0038 std::string print(const MuonRecHitContainer&) const;
0039
0040 std::string print(const ConstRecHitContainer&) const;
0041
0042 bool isTraversing(const Trajectory&) const;
0043
0044 void reverseDirection(TrajectoryStateOnSurface&, const MagneticField*) const;
0045
0046 TrajectoryStateOnSurface stepPropagate(const TrajectoryStateOnSurface&,
0047 const ConstRecHitPointer&,
0048 const Propagator&) const;
0049
0050 private:
0051 };
0052 #endif