File indexing completed on 2024-09-07 04:38:01
0001 #ifndef SeedGeneratorForCRack_H
0002 #define SeedGeneratorForCRack_H
0003
0004 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0005 #include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h"
0006
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/Framework/interface/ConsumesCollector.h"
0010 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
0011 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
0012 #include "RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h"
0013 #include "MagneticField/Engine/interface/MagneticField.h"
0014 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0015 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
0016 #include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h"
0017 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
0018 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
0019 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
0020 class PixelSeedLayerPairs;
0021 class GeometricSearchTracker;
0022 class TrackerRecoGeometryRecord;
0023 class TransientRecHitRecord;
0024
0025 class SeedGeneratorForCRack {
0026 public:
0027 typedef TrajectoryStateOnSurface TSOS;
0028 SeedGeneratorForCRack(const edm::ParameterSet &conf, edm::ConsumesCollector);
0029 virtual ~SeedGeneratorForCRack() {}
0030 void init(const SiStripRecHit2DCollection &collstereo,
0031 const SiStripRecHit2DCollection &collrphi,
0032 const SiStripMatchedRecHit2DCollection &collmatched,
0033 const edm::EventSetup &c);
0034
0035 void run(TrajectorySeedCollection &, const edm::EventSetup &c);
0036 void seeds(TrajectorySeedCollection &output, const edm::EventSetup &c, const TrackingRegion ®ion);
0037
0038 private:
0039
0040 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theMagfieldToken;
0041 const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> theTrackerToken;
0042 const edm::ESGetToken<GeometricSearchTracker, TrackerRecoGeometryRecord> theSearchTrackerToken;
0043 const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> theTTopoToken;
0044 const edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> theTTRHToken;
0045
0046 GlobalTrackingRegion region;
0047 CosmicHitPairGenerator *thePairGenerator;
0048 edm::ESHandle<MagneticField> magfield;
0049 edm::ESHandle<TrackerGeometry> tracker;
0050
0051 KFUpdator *theUpdator;
0052 PropagatorWithMaterial *thePropagatorAl;
0053 PropagatorWithMaterial *thePropagatorOp;
0054 const TransientTrackingRecHitBuilder *TTTRHBuilder;
0055 std::string geometry;
0056 float seedpt;
0057 OrderedHitPairs HitPairs;
0058 float multipleScatteringFactor;
0059 double seedMomentum;
0060 };
0061 #endif