00001 #ifndef CosmicHitTripletGenerator_H 00002 #define CosmicHitTripletGenerator_H 00003 00004 #include <vector> 00005 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" 00006 #include "RecoPixelVertexing/PixelTriplets/interface/CosmicHitTripletGeneratorFromLayerTriplet.h" 00007 #include "DataFormats/Common/interface/RangeMap.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 00010 class LayerWithHits; 00011 class DetLayer; 00012 class TrackingRegion; 00013 class CosmicLayerTriplets; 00014 class HitTripletGeneratorFromLayerTriplet; 00015 00016 00021 class CosmicHitTripletGenerator : public HitTripletGenerator{ 00022 00023 typedef std::vector<CosmicHitTripletGeneratorFromLayerTriplet *> Container; 00024 00025 public: 00026 CosmicHitTripletGenerator(CosmicLayerTriplets& layers, const edm::EventSetup& iSetup); 00027 CosmicHitTripletGenerator(CosmicLayerTriplets& layers); 00028 00029 00030 ~CosmicHitTripletGenerator(); 00031 00033 // void add(const DetLayer* inner, const DetLayer* outer); 00034 void add(const LayerWithHits* inner, 00035 const LayerWithHits* middle, 00036 const LayerWithHits* outer, 00037 const edm::EventSetup& iSetup); 00039 virtual void hitTriplets( const TrackingRegion& reg, 00040 OrderedHitTriplets & prs, 00041 const edm::EventSetup& iSetup); 00042 00043 virtual void hitTriplets( const TrackingRegion& reg, 00044 OrderedHitTriplets & prs, 00045 const edm::Event& ev, 00046 const edm::EventSetup& iSetup) { } 00047 00049 virtual CosmicHitTripletGenerator * clone() const 00050 { return new CosmicHitTripletGenerator(*this); } 00051 00052 private: 00053 00054 00055 Container theGenerators; 00056 00057 }; 00058 #endif