00001 #ifndef _PixelTripletLowPtGenerator_h_ 00002 #define _PixelTripletLowPtGenerator_h_ 00003 00010 #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" 00011 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h" 00012 #include "RecoPixelVertexing/PixelTriplets/interface/CombinedHitTripletGenerator.h" 00013 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" 00014 #include "FWCore/Framework/interface/EventSetup.h" 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h" 00017 00018 #include "RecoPixelVertexing/PixelLowPtUtilities/interface/TripletFilter.h" 00019 00020 class TrackerGeometry; 00021 class TripletFilter; 00022 00023 #include <vector> 00024 00025 class PixelTripletLowPtGenerator : 00026 public HitTripletGeneratorFromPairAndLayers { 00027 00028 typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType; 00029 00030 public: 00031 PixelTripletLowPtGenerator( const edm::ParameterSet& cfg) 00032 : ps(cfg), thePairGenerator(0), theLayerCache(0) 00033 { theTracker = 0; theFilter = 0; } 00034 00035 virtual ~PixelTripletLowPtGenerator() { delete thePairGenerator; delete theFilter; } 00036 00037 virtual void init( const HitPairGenerator & pairs, 00038 const std::vector<ctfseeding::SeedingLayer> & layers, LayerCacheType* layerCache); 00039 00040 virtual void hitTriplets(const TrackingRegion& region, OrderedHitTriplets & trs, const edm::Event & ev, const edm::EventSetup& es); 00041 00042 const HitPairGenerator & pairGenerator() const { return *thePairGenerator; } 00043 const std::vector<ctfseeding::SeedingLayer> & thirdLayers() const { return theLayers; } 00044 00045 private: 00046 void getTracker (const edm::EventSetup& es); 00047 GlobalPoint getGlobalPosition(const TrackingRecHit* recHit); 00048 00049 const TrackerGeometry * theTracker; 00050 TripletFilter * theFilter; 00051 00052 edm::ParameterSet ps; 00053 HitPairGenerator * thePairGenerator; 00054 std::vector<ctfseeding::SeedingLayer> theLayers; 00055 LayerCacheType * theLayerCache; 00056 00057 bool checkMultipleScattering; 00058 double nSigMultipleScattering; 00059 bool checkClusterShape; 00060 double rzTolerance; 00061 double maxAngleRatio; 00062 00063 std::string builderName; 00064 }; 00065 00066 #endif