File indexing completed on 2024-04-06 12:28:45
0001 #ifndef TkDetLayers_GeometricSearchTracker_h
0002 #define TkDetLayers_GeometricSearchTracker_h
0003
0004 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h"
0005 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h"
0006 #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h"
0007 #include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h"
0008
0009 class TrackerTopology;
0010
0011
0012
0013
0014
0015 class GeometricSearchTracker : public DetLayerGeometry {
0016 public:
0017 GeometricSearchTracker(const std::vector<BarrelDetLayer const*>& pxlBar,
0018 const std::vector<BarrelDetLayer const*>& tib,
0019 const std::vector<BarrelDetLayer const*>& tob,
0020 const std::vector<ForwardDetLayer const*>& negPxlFwd,
0021 const std::vector<ForwardDetLayer const*>& negTid,
0022 const std::vector<ForwardDetLayer const*>& negTec,
0023 const std::vector<ForwardDetLayer const*>& posPxlFwd,
0024 const std::vector<ForwardDetLayer const*>& posTid,
0025 const std::vector<ForwardDetLayer const*>& posTec,
0026 const TrackerTopology* tTopo) __attribute__((cold));
0027
0028 ~GeometricSearchTracker() override __attribute__((cold));
0029
0030 void addDetLayerGeometry();
0031
0032 void addMTDLayers(const std::vector<BarrelDetLayer const*>& btl,
0033 const std::vector<ForwardDetLayer const*>& negEtl,
0034 const std::vector<ForwardDetLayer const*>& posEtl);
0035
0036 std::vector<DetLayer const*> const& allLayers() const { return theAllLayers; }
0037
0038 std::vector<BarrelDetLayer const*> const& barrelLayers() const { return theBarrelLayers; }
0039
0040 std::vector<ForwardDetLayer const*> const& forwardLayers() const { return theForwardLayers; }
0041 std::vector<ForwardDetLayer const*> const& negForwardLayers() const { return theNegForwardLayers; }
0042 std::vector<ForwardDetLayer const*> const& posForwardLayers() const { return thePosForwardLayers; }
0043
0044 std::vector<BarrelDetLayer const*> const& pixelBarrelLayers() const { return thePixelBarrelLayers; }
0045 std::vector<BarrelDetLayer const*> const& tibLayers() const { return theTibLayers; }
0046 std::vector<BarrelDetLayer const*> const& tobLayers() const { return theTobLayers; }
0047
0048 std::vector<ForwardDetLayer const*> const& negPixelForwardLayers() const { return theNegPixelForwardLayers; }
0049 std::vector<ForwardDetLayer const*> const& negTidLayers() const { return theNegTidLayers; }
0050 std::vector<ForwardDetLayer const*> const& negTecLayers() const { return theNegTecLayers; }
0051
0052 std::vector<ForwardDetLayer const*> const& posPixelForwardLayers() const { return thePosPixelForwardLayers; }
0053 std::vector<ForwardDetLayer const*> const& posTidLayers() const { return thePosTidLayers; }
0054 std::vector<ForwardDetLayer const*> const& posTecLayers() const { return thePosTecLayers; }
0055
0056
0057 const DetLayer* idToLayer(const DetId& detId) const override;
0058
0059
0060 const DetLayer* detLayer(const DetId& id) const { return idToLayer(id); };
0061
0062
0063 MTDDetLayerGeometry* mtdDetLayerGeometry;
0064
0065 private:
0066 std::vector<DetLayer const*> theAllLayers;
0067 std::vector<BarrelDetLayer const*> theBarrelLayers;
0068 std::vector<ForwardDetLayer const*> theForwardLayers;
0069 std::vector<ForwardDetLayer const*> theNegForwardLayers;
0070 std::vector<ForwardDetLayer const*> thePosForwardLayers;
0071
0072 std::vector<BarrelDetLayer const*> thePixelBarrelLayers;
0073 std::vector<BarrelDetLayer const*> theTibLayers;
0074 std::vector<BarrelDetLayer const*> theTobLayers;
0075
0076 std::vector<ForwardDetLayer const*> theNegPixelForwardLayers;
0077 std::vector<ForwardDetLayer const*> theNegTidLayers;
0078 std::vector<ForwardDetLayer const*> theNegTecLayers;
0079 std::vector<ForwardDetLayer const*> thePosPixelForwardLayers;
0080 std::vector<ForwardDetLayer const*> thePosTidLayers;
0081 std::vector<ForwardDetLayer const*> thePosTecLayers;
0082
0083
0084 std::vector<BarrelDetLayer const*> theBTLLayers;
0085 std::vector<ForwardDetLayer const*> theETLLayers;
0086 std::vector<ForwardDetLayer const*> theNegETLLayers;
0087 std::vector<ForwardDetLayer const*> thePosETLLayers;
0088
0089 const TrackerTopology* theTrkTopo;
0090 };
0091
0092 #endif