CMS 3D CMS Logo

TrackerAlignmentLevelBuilder.h
Go to the documentation of this file.
1 #ifndef ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_
2 #define ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_
3 
4 // Original Author: Max Stark
5 // Created: Wed, 10 Feb 2016 13:48:41 CET
6 
7 // system includes
8 #include <set>
9 #include <map>
10 
11 // core framework functionality
13 
14 // alignment
19 
20 class DetId;
21 class TrackerTopology;
22 class TrackerGeometry;
23 
25  //========================== PUBLIC METHODS =================================
26 public: //===================================================================
29 
30  void addDetUnitInfo(const DetId& detId);
31  std::vector<align::AlignmentLevels> build();
34 
35  //========================= PRIVATE METHODS =================================
36 private: //==================================================================
37  void addPXBDetUnitInfo(const DetId& detId);
38  void addPXEDetUnitInfo(const DetId& detId);
39  void addTIBDetUnitInfo(const DetId& detId);
40  void addTIDDetUnitInfo(const DetId& detId);
41  void addTOBDetUnitInfo(const DetId& detId);
42  void addTECDetUnitInfo(const DetId& detId);
43 
50 
51  //========================== PRIVATE DATA ===================================
52  //===========================================================================
53 
57  bool levelsBuilt_{false};
58 
59  // PixelBarrel
60  std::set<unsigned int> pxbLayerIDs_;
61  std::set<unsigned int> pxbLadderIDs_;
62  std::set<unsigned int> pxbModuleIDs_;
63  std::map<unsigned int, unsigned int> pxbLaddersPerLayer_;
64 
65  // PixelEndcap
66  std::set<unsigned int> pxeSideIDs_;
67  std::set<unsigned int> pxeDiskIDs_;
68  std::set<unsigned int> pxeBladeIDs_;
69  std::set<unsigned int> pxePanelIDs_;
70  std::set<unsigned int> pxeModuleIDs_;
71 
72  // TIB
73  std::set<unsigned int> tibSideIDs_;
74  std::set<unsigned int> tibLayerIDs_;
75  std::set<unsigned int> tibStringIDs_;
76  std::set<unsigned int> tibModuleIDs_;
77  std::map<unsigned int, unsigned int> pxbStringsPerHalfShell_;
78 
79  // TID
80  std::set<unsigned int> tidSideIDs_;
81  std::set<unsigned int> tidWheelIDs_;
82  std::set<unsigned int> tidRingIDs_;
83  std::set<unsigned int> tidModuleIDs_;
84  std::map<unsigned int, unsigned int> tidStringsInnerLayer_;
85  std::map<unsigned int, unsigned int> tidStringsOuterLayer_;
86 
87  // TOB
88  std::set<unsigned int> tobLayerIDs_;
89  std::set<unsigned int> tobSideIDs_;
90  std::set<unsigned int> tobRodIDs_;
91  std::set<unsigned int> tobModuleIDs_;
92 
93  // TEC
94  std::set<unsigned int> tecSideIDs_;
95  std::set<unsigned int> tecWheelIDs_;
96  std::set<unsigned int> tecPetalIDs_;
97  std::set<unsigned int> tecRingIDs_;
98  std::set<unsigned int> tecModuleIDs_;
99 };
100 
101 #endif /* ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_ */
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
Definition: Utilities.h:33
align::AlignmentLevels buildTOBAlignmentLevels()
std::map< unsigned int, unsigned int > pxbLaddersPerLayer_
align::AlignmentLevels buildPXEAlignmentLevels()
const AlignableObjectId & objectIdProvider() const
std::vector< align::AlignmentLevels > build()
align::AlignmentLevels buildTIDAlignmentLevels()
align::AlignmentLevels buildPXBAlignmentLevels()
TrackerAlignmentLevelBuilder(const TrackerTopology *, const TrackerGeometry *)
Allows conversion between type and name, and vice-versa.
std::map< unsigned int, unsigned int > tidStringsOuterLayer_
const align::TrackerNameSpace & trackerNameSpace() const
Definition: DetId.h:17
const AlignableObjectId alignableObjectId_
std::map< unsigned int, unsigned int > tidStringsInnerLayer_
void addPXBDetUnitInfo(const DetId &detId)
align::AlignmentLevels buildTIBAlignmentLevels()
std::map< unsigned int, unsigned int > pxbStringsPerHalfShell_
align::AlignmentLevels buildTECAlignmentLevels()
void addPXEDetUnitInfo(const DetId &detId)