File indexing completed on 2024-05-22 04:03:04
0001 #ifndef Geometry_TrackerGeometryBuilder_TrackerGeomBuilderFromGeometricDet_H
0002 #define Geometry_TrackerGeometryBuilder_TrackerGeomBuilderFromGeometricDet_H
0003
0004 #include <string>
0005 #include <vector>
0006 #include <map>
0007 #include "Geometry/TrackerGeometryBuilder/interface/PlaneBuilderFromGeometricDet.h"
0008 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
0009 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
0010 #include "CondFormats/GeometryObjects/interface/PTrackerAdditionalParametersPerDet.h"
0011
0012 class TrackerGeometry;
0013 class TrackerTopology;
0014 class PixelGeomDetType;
0015 class StripGeomDetType;
0016 class PTrackerParameters;
0017
0018 class TrackerGeomBuilderFromGeometricDet {
0019 public:
0020 TrackerGeometry* build(const GeometricDet* gd,
0021 const PTrackerAdditionalParametersPerDet* ptitp,
0022 const PTrackerParameters& ptp,
0023 const TrackerTopology* tTopo);
0024
0025 private:
0026 void buildPixel(std::vector<const GeometricDet*> const&,
0027 const PTrackerAdditionalParametersPerDet* const&,
0028 TrackerGeometry*,
0029 GeomDetType::SubDetector det,
0030 int BIG_PIX_PER_ROC_X,
0031 int BIG_PIX_PER_ROC_Y);
0032 void buildPixelPhase2(std::vector<const GeometricDet*> const&,
0033 const PTrackerAdditionalParametersPerDet* const&,
0034 TrackerGeometry*,
0035 GeomDetType::SubDetector det);
0036 void buildSilicon(std::vector<const GeometricDet*> const&,
0037 TrackerGeometry*,
0038 GeomDetType::SubDetector det,
0039 const std::string& part);
0040 void buildGeomDet(TrackerGeometry*);
0041
0042 PlaneBuilderFromGeometricDet::ResultType buildPlaneWithMaterial(const GeometricDet* gd,
0043 double scaleFactor = 1.) const;
0044
0045 std::map<std::string, const PixelGeomDetType*> thePixelDetTypeMap;
0046 std::map<std::string, const StripGeomDetType*> theStripDetTypeMap;
0047 const TrackerTopology* theTopo;
0048 };
0049
0050 #endif