CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoTracker/TkHitPairs/interface/CombinedHitPairGenerator.h

Go to the documentation of this file.
00001 #ifndef CombinedHitPairGenerator_H
00002 #define CombinedHitPairGenerator_H
00003 
00004 #include <vector>
00005 #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h"
00006 #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 
00009 
00010 class TrackingRegion;
00011 class OrderedHitPairs;
00012 class HitPairGeneratorFromLayerPair;
00013 namespace ctfseeding { class SeedingLayer;}
00014 namespace edm { class Event; class EventSetup; }
00015 
00016 #include "FWCore/Framework/interface/ESWatcher.h"
00017 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00018 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h"
00019 
00024 class CombinedHitPairGenerator : public HitPairGenerator {
00025 public:
00026   typedef LayerHitMapCache LayerCacheType;
00027 
00028 public:
00029   CombinedHitPairGenerator(const edm::ParameterSet & cfg);
00030   virtual ~CombinedHitPairGenerator();
00031 
00032   void  add(const ctfseeding::SeedingLayer & inner, 
00033               const ctfseeding::SeedingLayer & outer);
00034 
00036   virtual void hitPairs( const TrackingRegion& reg, 
00037       OrderedHitPairs & result, const edm::Event& ev, const edm::EventSetup& es);
00038 
00040   virtual CombinedHitPairGenerator * clone() const 
00041     { return new CombinedHitPairGenerator(theConfig); } 
00042 
00043 private:
00044   CombinedHitPairGenerator(const CombinedHitPairGenerator & cb); 
00045   void init(const ctfseeding::SeedingLayerSets & layerSets);
00046   void init(const edm::ParameterSet & cfg, const edm::EventSetup& es);
00047   void cleanup();
00048 
00049 
00050   mutable bool initialised;
00051   edm::ParameterSet theConfig;
00052 
00053   LayerCacheType   theLayerCache;
00054 
00055   edm::ESWatcher<TrackerDigiGeometryRecord> theESWatcher;
00056 
00057   typedef std::vector<HitPairGeneratorFromLayerPair *>   Container;
00058   Container        theGenerators;
00059 
00060 };
00061 #endif