File indexing completed on 2024-04-06 11:57:25
0001 #ifndef ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_
0002 #define ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_
0003
0004
0005
0006
0007
0008 #include <set>
0009 #include <map>
0010
0011
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013
0014
0015 #include "Alignment/CommonAlignment/interface/AlignableObjectId.h"
0016 #include "Alignment/CommonAlignment/interface/AlignmentLevel.h"
0017 #include "Alignment/CommonAlignment/interface/Utilities.h"
0018 #include "Alignment/TrackerAlignment/interface/TrackerNameSpace.h"
0019
0020 class DetId;
0021 class TrackerTopology;
0022 class TrackerGeometry;
0023
0024 class TrackerAlignmentLevelBuilder {
0025
0026 public:
0027 TrackerAlignmentLevelBuilder(const TrackerTopology*, const TrackerGeometry*);
0028 virtual ~TrackerAlignmentLevelBuilder();
0029
0030 void addDetUnitInfo(const DetId& detId);
0031 std::vector<align::AlignmentLevels> build();
0032 const AlignableObjectId& objectIdProvider() const { return alignableObjectId_; }
0033 const align::TrackerNameSpace& trackerNameSpace() const;
0034
0035
0036 private:
0037 void addPXBDetUnitInfo(const DetId& detId);
0038 void addPXEDetUnitInfo(const DetId& detId);
0039 void addTIBDetUnitInfo(const DetId& detId);
0040 void addTIDDetUnitInfo(const DetId& detId);
0041 void addTOBDetUnitInfo(const DetId& detId);
0042 void addTECDetUnitInfo(const DetId& detId);
0043
0044 align::AlignmentLevels buildPXBAlignmentLevels();
0045 align::AlignmentLevels buildPXEAlignmentLevels();
0046 align::AlignmentLevels buildTIBAlignmentLevels();
0047 align::AlignmentLevels buildTIDAlignmentLevels();
0048 align::AlignmentLevels buildTOBAlignmentLevels();
0049 align::AlignmentLevels buildTECAlignmentLevels();
0050
0051
0052
0053
0054 const TrackerTopology* trackerTopology_;
0055 const AlignableObjectId alignableObjectId_;
0056 align::TrackerNameSpace trackerNameSpace_;
0057 bool levelsBuilt_{false};
0058
0059
0060 std::set<unsigned int> pxbLayerIDs_;
0061 std::set<unsigned int> pxbLadderIDs_;
0062 std::set<unsigned int> pxbModuleIDs_;
0063 std::map<unsigned int, unsigned int> pxbLaddersPerLayer_;
0064
0065
0066 std::set<unsigned int> pxeSideIDs_;
0067 std::set<unsigned int> pxeDiskIDs_;
0068 std::set<unsigned int> pxeBladeIDs_;
0069 std::set<unsigned int> pxePanelIDs_;
0070 std::set<unsigned int> pxeModuleIDs_;
0071
0072
0073 std::set<unsigned int> tibSideIDs_;
0074 std::set<unsigned int> tibLayerIDs_;
0075 std::set<unsigned int> tibStringIDs_;
0076 std::set<unsigned int> tibModuleIDs_;
0077 std::map<unsigned int, unsigned int> pxbStringsPerHalfShell_;
0078
0079
0080 std::set<unsigned int> tidSideIDs_;
0081 std::set<unsigned int> tidWheelIDs_;
0082 std::set<unsigned int> tidRingIDs_;
0083 std::set<unsigned int> tidModuleIDs_;
0084 std::map<unsigned int, unsigned int> tidStringsInnerLayer_;
0085 std::map<unsigned int, unsigned int> tidStringsOuterLayer_;
0086
0087
0088 std::set<unsigned int> tobLayerIDs_;
0089 std::set<unsigned int> tobSideIDs_;
0090 std::set<unsigned int> tobRodIDs_;
0091 std::set<unsigned int> tobModuleIDs_;
0092
0093
0094 std::set<unsigned int> tecSideIDs_;
0095 std::set<unsigned int> tecWheelIDs_;
0096 std::set<unsigned int> tecPetalIDs_;
0097 std::set<unsigned int> tecRingIDs_;
0098 std::set<unsigned int> tecModuleIDs_;
0099 };
0100
0101 #endif