00001 #ifndef TkSeedingLayers_SeedingLayerSetsBuilder_H 00002 #define TkSeedingLayers_SeedingLayerSetsBuilder_H 00003 00004 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" 00005 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" 00006 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "FWCore/ParameterSet/interface/InputTag.h" 00009 00010 #include <string> 00011 #include <vector> 00012 namespace edm { class EventSetup; } 00013 00014 class SeedingLayerSetsBuilder { 00015 00016 public: 00017 00018 SeedingLayerSetsBuilder(){} 00019 SeedingLayerSetsBuilder(const edm::ParameterSet & cfg); 00020 00021 ctfseeding::SeedingLayerSets layers(const edm::EventSetup& es) const; 00022 00023 private: 00024 std::vector<std::vector<std::string> > layerNamesInSets( 00025 const std::vector<std::string> & namesPSet) ; 00026 edm::ParameterSet layerConfig(const std::string & nameLayer,const edm::ParameterSet& cfg) const; 00027 00028 private: 00029 struct LayerSpec { 00030 std::string name; 00031 std::string pixelHitProducer; edm::InputTag matchedRecHits,rphiRecHits,stereoRecHits; 00032 bool usePixelHitProducer, useMatchedRecHits, useRPhiRecHits, useStereoRecHits; 00033 std::string hitBuilder; 00034 bool useErrorsFromParam; double hitErrorRPhi; double hitErrorRZ; 00035 bool useRingSelector; int minRing; int maxRing; 00036 bool useSimpleRphiHitsCleaner; 00037 std::string print() const; 00038 }; 00039 std::vector<std::vector<LayerSpec> > theLayersInSets; 00040 }; 00041 #endif