Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-09-22 02:39:53

0001 #ifndef CosmicHitTripletGenerator_H
0002 #define CosmicHitTripletGenerator_H
0003 
0004 #include <vector>
0005 #include "RecoPixelVertexing/PixelTriplets/interface/OrderedHitTriplets.h"
0006 #include "RecoPixelVertexing/PixelTriplets/interface/CosmicHitTripletGeneratorFromLayerTriplet.h"
0007 #include "DataFormats/Common/interface/RangeMap.h"
0008 
0009 class LayerWithHits;
0010 class DetLayer;
0011 class TrackingRegion;
0012 class CosmicLayerTriplets;
0013 
0014 /** \class CosmicHitTripletGenerator
0015  * Hides set of HitTripletGeneratorFromLayerTriplet generators.
0016  */
0017 
0018 class CosmicHitTripletGenerator {
0019   typedef std::vector<std::unique_ptr<CosmicHitTripletGeneratorFromLayerTriplet> > Container;
0020 
0021 public:
0022   CosmicHitTripletGenerator(CosmicLayerTriplets& layers, const TrackerGeometry& trackGeom);
0023   CosmicHitTripletGenerator(CosmicLayerTriplets& layers);
0024 
0025   ~CosmicHitTripletGenerator();
0026 
0027   /// add generators based on layers
0028   //  void  add(const DetLayer* inner, const DetLayer* outer);
0029   void add(const LayerWithHits* inner,
0030            const LayerWithHits* middle,
0031            const LayerWithHits* outer,
0032            const TrackerGeometry& trackGeom);
0033 
0034   void hitTriplets(const TrackingRegion& reg, OrderedHitTriplets& prs);
0035 
0036 private:
0037   Container theGenerators;
0038 };
0039 #endif