File indexing completed on 2024-04-06 12:31:38
0001 #ifndef SeedTransformer_H
0002 #define SeedTransformer_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "FWCore/Utilities/interface/ESGetToken.h"
0014 #include "TrackingTools/TrackFitters/interface/TrajectoryFitter.h"
0015
0016 #include <vector>
0017
0018 namespace edm {
0019 class ParameterSet;
0020 class EventSetup;
0021 class ConsumesCollector;
0022 }
0023 class Trajectory;
0024 class TrajectorySeed;
0025 class TrajectoryStateOnSurface;
0026 class GlobalTrackingGeometry;
0027 class MagneticField;
0028 class TransientTrackingRecHitBuilder;
0029 class Propagator;
0030 class GlobalTrackingGeometryRecord;
0031 class IdealMagneticFieldRecord;
0032 class TransientRecHitRecord;
0033 class TrackingComponentsRecord;
0034
0035 class SeedTransformer {
0036 public:
0037
0038 SeedTransformer(const edm::ParameterSet&, edm::ConsumesCollector);
0039
0040
0041 virtual ~SeedTransformer();
0042
0043
0044
0045 void setServices(const edm::EventSetup&);
0046
0047
0048 std::vector<Trajectory> seedTransform(const TrajectorySeed&) const;
0049 TrajectoryStateOnSurface seedTransientState(const TrajectorySeed&) const;
0050
0051 protected:
0052 private:
0053 const GlobalTrackingGeometry* theTrackingGeometry;
0054 const MagneticField* theMagneticField;
0055 const TrajectoryFitter* theFitter;
0056 const TransientTrackingRecHitBuilder* theMuonRecHitBuilder;
0057 const Propagator* thePropagator;
0058
0059 edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> theTrackingGeometryToken;
0060 edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theMagneticFieldToken;
0061 edm::ESGetToken<TrajectoryFitter, TrajectoryFitter::Record> theFitterToken;
0062 edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> theMuonRecHitBuilderToken;
0063 edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorToken;
0064
0065
0066 unsigned int nMinRecHits;
0067
0068
0069 double errorRescale;
0070
0071 bool useSubRecHits;
0072 };
0073 #endif