CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoPixelVertexing/PixelTriplets/interface/CosmicHitTripletGeneratorFromLayerTriplet.h

Go to the documentation of this file.
00001 #ifndef CosmicHitTripletGeneratorFromLayerTriplet_h
00002 #define CosmicHitTripletGeneratorFromLayerTriplet_h
00003 
00004 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h"
00005 #include "RecoTracker/TkHitPairs/interface/LayerWithHits.h"
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00008 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
00009 #include "FWCore/Framework/interface/ESHandle.h"
00010 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00011 
00012 class DetLayer;
00013 class TrackingRegion;
00014 class LayerWithHits;
00015 
00016 
00017 class CosmicHitTripletGeneratorFromLayerTriplet : public HitTripletGenerator {
00018 
00019 public:
00020 
00021 
00022   CosmicHitTripletGeneratorFromLayerTriplet( 
00023                                 const LayerWithHits* inner, 
00024                                 const LayerWithHits* middle, 
00025                                 const LayerWithHits* outer, 
00026                                 const edm::EventSetup& iSetup);
00027   virtual ~CosmicHitTripletGeneratorFromLayerTriplet() { }
00028 
00029   virtual void hitTriplets( const TrackingRegion& ar, OrderedHitTriplets & ap, const edm::EventSetup& iSetup);
00030 
00031   virtual void hitTriplets( const TrackingRegion& ar, OrderedHitTriplets & ap, const edm::Event& ev, const edm::EventSetup& iSetup) {}
00032 
00033   virtual CosmicHitTripletGeneratorFromLayerTriplet* clone() const {
00034     return new CosmicHitTripletGeneratorFromLayerTriplet(*this);
00035   }
00036   void init( const HitPairGenerator & pairs,
00037              const std::vector<const LayerWithHits*>& layers ){}
00038   const LayerWithHits* innerLayer() const { return theInnerLayer; }
00039   const LayerWithHits* middleLayer() const { return theMiddleLayer; }
00040   const LayerWithHits* outerLayer() const { return theOuterLayer; }
00041 
00042 private:
00043   const TransientTrackingRecHitBuilder * TTRHbuilder;
00044   const TrackerGeometry* trackerGeometry;
00045   const LayerWithHits* theOuterLayer;  
00046   const LayerWithHits* theMiddleLayer; 
00047   const LayerWithHits* theInnerLayer; 
00048   const DetLayer* innerlay;
00049   const DetLayer* outerlay;
00050   const DetLayer* middlelay;
00051 
00052 };
00053 
00054 #endif