File indexing completed on 2023-03-17 13:02:44
0001 #ifndef DTGEOMETRYBUILDERFROMCONDDB_H
0002 #define DTGEOMETRYBUILDERFROMCONDDB_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 class RecoIdealGeometry;
0020 class DTGeometry;
0021 class DTChamber;
0022 class DTSuperLayer;
0023 class DTLayer;
0024 class DetId;
0025 #include "DataFormats/GeometrySurface/interface/Plane.h"
0026 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
0027
0028
0029 #include <memory>
0030 #include <vector>
0031
0032 namespace dtGeometryBuilder {
0033 RectangularPlaneBounds* getRecPlaneBounds(const std::vector<double>::const_iterator& shapeStart);
0034 }
0035
0036
0037
0038
0039
0040 class DTGeometryBuilderFromCondDB {
0041 public:
0042
0043 DTGeometryBuilderFromCondDB();
0044
0045
0046 virtual ~DTGeometryBuilderFromCondDB();
0047
0048
0049 void build(const std::shared_ptr<DTGeometry>& theGeometry, const RecoIdealGeometry& rig);
0050
0051 private:
0052 DTChamber* buildChamber(const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0053
0054 DTSuperLayer* buildSuperLayer(DTChamber* chamber, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0055
0056 DTLayer* buildLayer(DTSuperLayer* sl, const DetId& id, const RecoIdealGeometry& rig, size_t idt) const;
0057
0058 typedef ReferenceCountingPointer<Plane> RCPPlane;
0059
0060 RCPPlane plane(const std::vector<double>::const_iterator tranStart,
0061 const std::vector<double>::const_iterator rotStart,
0062 Bounds* bounds) const;
0063
0064 protected:
0065 };
0066 #endif