CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlignableCompositeBuilder.h
Go to the documentation of this file.
1 #ifndef ALIGNMENT_COMMONALIGNMENT_INTERFACE_ALIGNABLECOMPOSITEBUILDER_H_
2 #define ALIGNMENT_COMMONALIGNMENT_INTERFACE_ALIGNABLECOMPOSITEBUILDER_H_
3 
4 // Original Author: Max Stark
5 // Created: Wed, 10 Feb 2016 14:02:51 CET
6 
7 // alignment
13 
14 
15 
17 
18  //========================== PUBLIC METHODS =================================
19  public: //===================================================================
20 
22  const AlignableIndexer&);
23  virtual ~AlignableCompositeBuilder() = default;
24 
29  void addAlignmentLevel(std::unique_ptr<AlignmentLevel> level);
30 
32  void clearAlignmentLevels();
33 
42  unsigned int buildAll(AlignableMap&);
43 
46 
47  //========================= PRIVATE METHODS =================================
48  private: //==================================================================
49 
51  unsigned int buildLevel(unsigned int parentLevel, AlignableMap&,
52  std::ostringstream&);
53 
56  unsigned int maxNumComponents(unsigned int startLevel) const;
57 
60  unsigned int getIndexOfStructure(align::ID, unsigned int level) const;
61 
62  //========================== PRIVATE DATA ===================================
63  //===========================================================================
64 
65  // TODO: The AlignableCompositeBuilder is not 'common' as the package
66  // suggests, because it uses the TrackerTopology. If this class shall
67  // ever be used to build other kinds of alignables than tracker-
68  // alignables one has to add/implement something more general than
69  // the TrackerTopology
72 
74 
76 
77 };
78 
79 #endif /* ALIGNMENT_COMMONALIGNMENT_INTERFACE_ALIGNABLECOMPOSITEBUILDER_H_ */
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
Definition: Utilities.h:32
unsigned int buildLevel(unsigned int parentLevel, AlignableMap &, std::ostringstream &)
Builds the components for a given level in the hierarchy.
AlignableCompositeBuilder(const TrackerTopology *, const TrackerGeometry *, const AlignableIndexer &)
unsigned int getIndexOfStructure(align::ID, unsigned int level) const
uint32_t ID
Definition: Definitions.h:26
align::AlignmentLevels alignmentLevels_
const AlignableObjectId & objectIdProvider() const
Return tracker alignable object ID provider derived from the tracker&#39;s geometry.
const AlignableObjectId alignableObjectId_
unsigned int buildAll(AlignableMap &)
Allows conversion between type and name, and vice-versa.
const TrackerTopology * trackerTopology_
void clearAlignmentLevels()
Resets the alignment-levels.
unsigned int maxNumComponents(unsigned int startLevel) const
virtual ~AlignableCompositeBuilder()=default
tuple level
Definition: testEve_cfg.py:34
void addAlignmentLevel(std::unique_ptr< AlignmentLevel > level)