00001 #ifndef CosmicLayerTriplets_H 00002 #define CosmicLayerTriplets_H 00003 00007 #include "Geometry/TrackerGeometryBuilder/interface/TrackerLayerIdAccessor.h" 00008 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" 00009 #include "DataFormats/Common/interface/RangeMap.h" 00010 #include "FWCore/Framework/interface/EventSetup.h" 00011 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" 00012 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" 00013 #include "RecoTracker/TkHitPairs/interface/LayerWithHits.h" 00014 //#include "RecoTracker/TkDetLayers/interface/PixelForwardLayer.h" 00015 #include "RecoTracker/TkDetLayers/interface/TOBLayer.h" 00016 #include "RecoTracker/TkDetLayers/interface/TIBLayer.h" 00017 #include "RecoTracker/TkHitPairs/interface/SeedLayerPairs.h" 00018 00019 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" 00020 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h" 00021 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" 00022 00023 00024 #include <vector> 00025 class CosmicLayerTriplets { 00026 public: 00027 CosmicLayerTriplets():isFirstCall(true){}; 00028 ~CosmicLayerTriplets(); 00029 // explicit PixelSeedLayerPairs(const edm::EventSetup& iSetup); 00030 typedef std::pair<SeedLayerPairs::LayerPair, std::vector<const LayerWithHits*> > LayerPairAndLayers; 00031 00032 00033 // virtual std::vector<LayerPair> operator()() const; 00034 // std::vector<LayerTriplet> operator()() ; 00035 std::vector<LayerPairAndLayers> layers(); 00036 00037 private: 00038 00039 //definition of the map 00040 00041 00042 SiStripRecHit2DCollection::range rphi_range1; 00043 SiStripRecHit2DCollection::range rphi_range2; 00044 SiStripRecHit2DCollection::range rphi_range3; 00045 SiStripRecHit2DCollection::range rphi_range4; 00046 00047 SiStripRecHit2DCollection::range stereo_range1; 00048 SiStripRecHit2DCollection::range stereo_range2; 00049 SiStripRecHit2DCollection::range stereo_range3; 00050 00051 SiStripMatchedRecHit2DCollection::range match_range1; 00052 SiStripMatchedRecHit2DCollection::range match_range2; 00053 TrackerLayerIdAccessor acc; 00054 00055 LayerWithHits *lh1; 00056 LayerWithHits *lh2; 00057 LayerWithHits *lh3; 00058 LayerWithHits *lh4; 00059 00060 std::vector<BarrelDetLayer*> bl; 00061 std::vector<ForwardDetLayer*> fpos; 00062 std::vector<ForwardDetLayer*> fneg; 00063 //MP 00064 std::vector<LayerWithHits*> allLayersWithHits; 00065 bool isFirstCall; 00066 public: 00067 00068 void init(const SiStripRecHit2DCollection &collstereo, 00069 const SiStripRecHit2DCollection &collrphi, 00070 const SiStripMatchedRecHit2DCollection &collmatched, 00071 std::string geometry, 00072 const edm::EventSetup& iSetup); 00073 00074 private: 00075 std::string _geometry; 00076 }; 00077 00078 00079 00080 00081 #endif