00001 #ifndef CosmicHitTripletGeneratorFromLayerTriplet_h 00002 #define CosmicHitTripletGeneratorFromLayerTriplet_h 00003 00004 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" 00005 #include "RecoTracker/TkHitPairs/interface/LayerWithHits.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00008 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" 00009 #include "FWCore/Framework/interface/ESHandle.h" 00010 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" 00011 00012 class DetLayer; 00013 class TrackingRegion; 00014 class LayerWithHits; 00015 00016 00017 class CosmicHitTripletGeneratorFromLayerTriplet : public HitTripletGenerator { 00018 00019 public: 00020 00021 00022 CosmicHitTripletGeneratorFromLayerTriplet( 00023 const LayerWithHits* inner, 00024 const LayerWithHits* middle, 00025 const LayerWithHits* outer, 00026 const edm::EventSetup& iSetup); 00027 virtual ~CosmicHitTripletGeneratorFromLayerTriplet() { } 00028 00029 virtual void hitTriplets( const TrackingRegion& ar, OrderedHitTriplets & ap, const edm::EventSetup& iSetup); 00030 00031 virtual void hitTriplets( const TrackingRegion& ar, OrderedHitTriplets & ap, const edm::Event& ev, const edm::EventSetup& iSetup) {} 00032 00033 virtual CosmicHitTripletGeneratorFromLayerTriplet* clone() const { 00034 return new CosmicHitTripletGeneratorFromLayerTriplet(*this); 00035 } 00036 void init( const HitPairGenerator & pairs, 00037 const std::vector<const LayerWithHits*>& layers ){} 00038 const LayerWithHits* innerLayer() const { return theInnerLayer; } 00039 const LayerWithHits* middleLayer() const { return theMiddleLayer; } 00040 const LayerWithHits* outerLayer() const { return theOuterLayer; } 00041 00042 private: 00043 const TransientTrackingRecHitBuilder * TTRHbuilder; 00044 const TrackerGeometry* trackerGeometry; 00045 const LayerWithHits* theOuterLayer; 00046 const LayerWithHits* theMiddleLayer; 00047 const LayerWithHits* theInnerLayer; 00048 const DetLayer* innerlay; 00049 const DetLayer* outerlay; 00050 const DetLayer* middlelay; 00051 00052 }; 00053 00054 #endif