File indexing completed on 2024-04-06 11:57:25
0001 #ifndef ALIGNMENT_TRACKERALIGNMENT_INTERFACE_ALIGNABLETRACKERBUILDER_H_
0002 #define ALIGNMENT_TRACKERALIGNMENT_INTERFACE_ALIGNABLETRACKERBUILDER_H_
0003
0004
0005
0006
0007
0008 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0009 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0010 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
0011
0012
0013 #include "Alignment/CommonAlignment/interface/Utilities.h"
0014 #include "Alignment/TrackerAlignment/interface/AlignableTracker.h"
0015 #include "Alignment/TrackerAlignment/interface/TrackerAlignmentLevelBuilder.h"
0016
0017 class AlignableTrackerBuilder {
0018 using Alignables = align::Alignables;
0019
0020
0021 public:
0022 AlignableTrackerBuilder(const TrackerGeometry*, const TrackerTopology*);
0023 virtual ~AlignableTrackerBuilder() = default;
0024
0025
0026
0027 void buildAlignables(AlignableTracker*, bool update = false);
0028
0029
0030 const align::TrackerNameSpace& trackerNameSpace() const { return trackerAlignmentLevelBuilder_.trackerNameSpace(); }
0031
0032
0033 const AlignableObjectId& objectIdProvider() const { return alignableObjectId_; }
0034
0035
0036 private:
0037
0038 void buildAlignableDetUnits(bool update = false);
0039
0040
0041 void convertGeomDetsToAlignables(const TrackingGeometry::DetContainer&,
0042 const std::string& moduleName,
0043 bool update = false);
0044
0045 void buildPixelDetectorAlignable(
0046 const GeomDet*, int subdetId, Alignables& aliDets, Alignables& aliDetUnits, bool update = false);
0047
0048
0049 void buildStripDetectorAlignable(
0050 const GeomDet*, int subdetId, Alignables& aliDets, Alignables& aliDetUnits, bool update = false);
0051
0052 void buildOuterTrackerDetectorAlignable(
0053 const GeomDet*, int subdetId, Alignables& aliDets, Alignables& aliDetUnits, bool update = false);
0054
0055
0056
0057 void buildAlignableComposites(bool update = false);
0058
0059 void buildPixelDetector(AlignableTracker*);
0060
0061 void buildStripDetector(AlignableTracker*);
0062
0063 void buildOuterTrackerDetector(AlignableTracker*);
0064
0065
0066
0067
0068 const TrackerGeometry* trackerGeometry_;
0069 const TrackerTopology* trackerTopology_;
0070 const AlignableObjectId alignableObjectId_;
0071
0072 AlignableMap* alignableMap_;
0073
0074 TrackerAlignmentLevelBuilder trackerAlignmentLevelBuilder_;
0075
0076 int numDetUnits = 0;
0077 };
0078
0079 #endif