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 
26  //========================== PUBLIC METHODS =================================
27  public: //===================================================================
28 
30  const TrackerGeometry*);
32 
33  void addDetUnitInfo(const DetId& detId);
34  std::vector<align::AlignmentLevels> build();
37 
38  //========================= PRIVATE METHODS =================================
39  private: //==================================================================
40 
41  void addPXBDetUnitInfo(const DetId& detId);
42  void addPXEDetUnitInfo(const DetId& detId);
43  void addTIBDetUnitInfo(const DetId& detId);
44  void addTIDDetUnitInfo(const DetId& detId);
45  void addTOBDetUnitInfo(const DetId& detId);
46  void addTECDetUnitInfo(const DetId& detId);
47 
54 
55  //========================== PRIVATE DATA ===================================
56  //===========================================================================
57 
61  bool levelsBuilt_{false};
62 
63  // PixelBarrel
64  std::set<unsigned int> pxbLayerIDs_;
65  std::set<unsigned int> pxbLadderIDs_;
66  std::set<unsigned int> pxbModuleIDs_;
67  std::map<unsigned int, unsigned int> pxbLaddersPerLayer_;
68 
69  // PixelEndcap
70  std::set<unsigned int> pxeSideIDs_;
71  std::set<unsigned int> pxeDiskIDs_;
72  std::set<unsigned int> pxeBladeIDs_;
73  std::set<unsigned int> pxePanelIDs_;
74  std::set<unsigned int> pxeModuleIDs_;
75 
76  // TIB
77  std::set<unsigned int> tibSideIDs_;
78  std::set<unsigned int> tibLayerIDs_;
79  std::set<unsigned int> tibStringIDs_;
80  std::set<unsigned int> tibModuleIDs_;
81  std::map<unsigned int, unsigned int> pxbStringsPerHalfShell_;
82 
83  // TID
84  std::set<unsigned int> tidSideIDs_;
85  std::set<unsigned int> tidWheelIDs_;
86  std::set<unsigned int> tidRingIDs_;
87  std::set<unsigned int> tidModuleIDs_;
88  std::map<unsigned int, unsigned int> tidStringsInnerLayer_;
89  std::map<unsigned int, unsigned int> tidStringsOuterLayer_;
90 
91  // TOB
92  std::set<unsigned int> tobLayerIDs_;
93  std::set<unsigned int> tobSideIDs_;
94  std::set<unsigned int> tobRodIDs_;
95  std::set<unsigned int> tobModuleIDs_;
96 
97  // TEC
98  std::set<unsigned int> tecSideIDs_;
99  std::set<unsigned int> tecWheelIDs_;
100  std::set<unsigned int> tecPetalIDs_;
101  std::set<unsigned int> tecRingIDs_;
102  std::set<unsigned int> tecModuleIDs_;
103 
104 };
105 
106 #endif /* ALIGNMENT_TRACKERALIGNMENT_INTERFACE_TRACKERALIGNMENTLEVELBUILDER_H_ */
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
Definition: Utilities.h:34
align::AlignmentLevels buildTOBAlignmentLevels()
std::map< unsigned int, unsigned int > pxbLaddersPerLayer_
align::AlignmentLevels buildPXEAlignmentLevels()
std::vector< align::AlignmentLevels > build()
const align::TrackerNameSpace & trackerNameSpace() const
align::AlignmentLevels buildTIDAlignmentLevels()
const AlignableObjectId & objectIdProvider() const
align::AlignmentLevels buildPXBAlignmentLevels()
TrackerAlignmentLevelBuilder(const TrackerTopology *, const TrackerGeometry *)
Allows conversion between type and name, and vice-versa.
std::map< unsigned int, unsigned int > tidStringsOuterLayer_
Definition: DetId.h:18
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()