Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:35

0001 #ifndef TT_RecoGeometry_GlobalDetLayerGeometry_h
0002 #define TT_RecoGeometry_GlobalDetLayerGeometry_h
0003 
0004 /**
0005  * Global "reconstruction" geometry. It implements the idToLayer() method for both 
0006  * Tracker and Muon layers.
0007  * \author Boris Mangano (UCSD)  1/7/2009
0008  */
0009 
0010 #include "DataFormats/DetId/interface/DetId.h"
0011 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
0012 #include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h"
0013 #include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h"
0014 #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h"
0015 
0016 #include <vector>
0017 
0018 class DetLayer;
0019 
0020 class GlobalDetLayerGeometry : public DetLayerGeometry {
0021 public:
0022   GlobalDetLayerGeometry(const GeometricSearchTracker* tracker, const MuonDetLayerGeometry* muon)
0023       : tracker_(tracker), muon_(muon), mtd_(nullptr){};
0024 
0025   GlobalDetLayerGeometry(const GeometricSearchTracker* tracker,
0026                          const MuonDetLayerGeometry* muon,
0027                          const MTDDetLayerGeometry* mtd)
0028       : tracker_(tracker), muon_(muon), mtd_(mtd){};
0029 
0030   ~GlobalDetLayerGeometry() override {}
0031 
0032   /*
0033   const std::vector<DetLayer*>& allLayers() const =0;
0034   const std::vector<DetLayer*>& barrelLayers() const =0;
0035   const std::vector<DetLayer*>& negForwardLayers() const =0;
0036   const std::vector<DetLayer*>& posForwardLayers() const =0;
0037   */
0038 
0039   /// Give the DetId of a module, returns the pointer to the corresponding DetLayer
0040   const DetLayer* idToLayer(const DetId& detId) const override;
0041 
0042 private:
0043   const GeometricSearchTracker* tracker_;
0044   const MuonDetLayerGeometry* muon_;
0045   const MTDDetLayerGeometry* mtd_;
0046 };
0047 
0048 #endif