CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoTracker/ConversionSeedGenerators/interface/CombinedHitQuadrupletGeneratorForPhotonConversion.h

Go to the documentation of this file.
00001 #ifndef CombinedHitQuadrupletGeneratorForPhotonConversion_H
00002 #define CombinedHitQuadrupletGeneratorForPhotonConversion_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 HitQuadrupletGeneratorFromLayerPairForPhotonConversion;
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 
00020 #include "RecoTracker/ConversionSeedGenerators/interface/ConversionRegion.h"
00021 
00026 class CombinedHitQuadrupletGeneratorForPhotonConversion : public HitPairGenerator {
00027 public:
00028   typedef LayerHitMapCache LayerCacheType;
00029 
00030 public:
00031   CombinedHitQuadrupletGeneratorForPhotonConversion(const edm::ParameterSet & cfg);
00032   virtual ~CombinedHitQuadrupletGeneratorForPhotonConversion();
00033 
00034   void  add(const ctfseeding::SeedingLayer & inner, 
00035               const ctfseeding::SeedingLayer & outer);
00036 
00038   virtual void hitPairs(const TrackingRegion&, OrderedHitPairs&, const edm::Event&, const edm::EventSetup&);
00039 
00041   virtual CombinedHitQuadrupletGeneratorForPhotonConversion * clone() const 
00042     { return new CombinedHitQuadrupletGeneratorForPhotonConversion(theConfig); } 
00043 
00044   const OrderedHitPairs & run(const TrackingRegion& region, const edm::Event & ev, const edm::EventSetup& es);
00045 
00046 
00047   void clearLayerCache(){theLayerCache.clear();}
00048 
00049   /*------------------------*/
00050 private:
00051   CombinedHitQuadrupletGeneratorForPhotonConversion(const CombinedHitQuadrupletGeneratorForPhotonConversion & cb); 
00052   void init(const ctfseeding::SeedingLayerSets & layerSets);
00053   void init(const edm::ParameterSet & cfg, const edm::EventSetup& es);
00054   void cleanup();
00055 
00056 
00057   mutable bool initialised;
00058   edm::ParameterSet theConfig;
00059 
00060   LayerCacheType   theLayerCache;
00061 
00062   edm::ESWatcher<TrackerDigiGeometryRecord> theESWatcher;
00063 
00064   typedef std::vector<HitQuadrupletGeneratorFromLayerPairForPhotonConversion *>   Container;
00065   Container        theGenerators;
00066 
00067   OrderedHitPairs thePairs;
00068 
00069 };
00070 #endif