00001 #ifndef SeedGeneratorForCosmics_H 00002 #define SeedGeneratorForCosmics_H 00003 00008 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00009 #include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h" 00010 //#include "RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorFromLayerPairs.h" 00011 #include "FWCore/Framework/interface/EventSetup.h" 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h" 00014 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" 00015 #include "RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h" 00016 #include "MagneticField/Engine/interface/MagneticField.h" 00017 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 00018 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" 00019 #include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h" 00020 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h" 00021 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00022 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" 00023 #include "RecoPixelVertexing/PixelTriplets/interface/CosmicHitTripletGenerator.h" 00024 class PixelSeedLayerPairs; 00025 00026 class SeedGeneratorForCosmics{ 00027 public: 00028 typedef TrajectoryStateOnSurface TSOS; 00029 SeedGeneratorForCosmics(const edm::ParameterSet& conf); 00030 virtual ~SeedGeneratorForCosmics(){}; 00031 void init(const SiStripRecHit2DCollection &collstereo, 00032 const SiStripRecHit2DCollection &collrphi, 00033 const SiStripMatchedRecHit2DCollection &collmatched, 00034 const edm::EventSetup& c); 00035 00036 00037 00038 void run(TrajectorySeedCollection &,const edm::EventSetup& c); 00039 bool seeds(TrajectorySeedCollection &output, 00040 const edm::EventSetup& c, 00041 const TrackingRegion& region); 00042 00043 private: 00044 edm::ParameterSet conf_; 00045 int32_t maxSeeds_; 00046 GlobalTrackingRegion region; 00047 CosmicHitPairGenerator* thePairGenerator; 00048 CosmicHitTripletGenerator* theTripletGenerator; 00049 edm::ESHandle<MagneticField> magfield; 00050 edm::ESHandle<TrackerGeometry> tracker; 00051 00052 KFUpdator *theUpdator; 00053 PropagatorWithMaterial *thePropagatorAl; 00054 PropagatorWithMaterial *thePropagatorOp; 00055 const TransientTrackingRecHitBuilder *TTTRHBuilder; 00056 std::string builderName; 00057 std::string geometry; 00058 std::string hitsforseeds; 00059 float seedpt; 00060 OrderedHitPairs HitPairs; 00061 OrderedHitTriplets HitTriplets; 00062 00063 //***top-bottom 00064 bool positiveYOnly; 00065 bool negativeYOnly; 00066 //*** 00067 }; 00068 #endif 00069 00070