CMS 3D CMS Logo

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 
15  //========================== PUBLIC METHODS =================================
16 public: //===================================================================
18  virtual ~AlignableCompositeBuilder() = default;
19 
24  void addAlignmentLevel(std::unique_ptr<AlignmentLevel> level);
25 
27  void clearAlignmentLevels();
28 
37  unsigned int buildAll(AlignableMap&, bool update = false);
38 
41 
42  //========================= PRIVATE METHODS =================================
43 private: //==================================================================
45  unsigned int buildLevel(unsigned int parentLevel, AlignableMap&, std::ostringstream&, bool update = false);
46 
49  unsigned int maxNumComponents(unsigned int startLevel) const;
50 
53  unsigned int getIndexOfStructure(align::ID, unsigned int level) const;
54 
55  //========================== PRIVATE DATA ===================================
56  //===========================================================================
57 
58  // TODO: The AlignableCompositeBuilder is not 'common' as the package
59  // suggests, because it uses the TrackerTopology. If this class shall
60  // ever be used to build other kinds of alignables than tracker-
61  // alignables one has to add/implement something more general than
62  // the TrackerTopology
65 
67 
69 };
70 
71 #endif /* ALIGNMENT_COMMONALIGNMENT_INTERFACE_ALIGNABLECOMPOSITEBUILDER_H_ */
personalPlayback.level
level
Definition: personalPlayback.py:22
AlignableObjectId
Allows conversion between type and name, and vice-versa.
Definition: AlignableObjectId.h:12
AlignableMap
Definition: AlignableMap.h:27
TrackerTopology
Definition: TrackerTopology.h:16
AlignableCompositeBuilder::alignmentLevels_
align::AlignmentLevels alignmentLevels_
Definition: AlignableCompositeBuilder.h:68
AlignableIndexer
Definition: AlignableIndexer.h:34
AlignableCompositeBuilder
Definition: AlignableCompositeBuilder.h:14
AlignableCompositeBuilder::clearAlignmentLevels
void clearAlignmentLevels()
Resets the alignment-levels.
Definition: AlignableCompositeBuilder.cc:30
AlignableCompositeBuilder::alignableObjectId_
const AlignableObjectId alignableObjectId_
Definition: AlignableCompositeBuilder.h:64
AlignableCompositeBuilder::alignableIndexer_
AlignableIndexer alignableIndexer_
Definition: AlignableCompositeBuilder.h:66
AlignableCompositeBuilder::objectIdProvider
const AlignableObjectId & objectIdProvider() const
Return tracker alignable object ID provider derived from the tracker's geometry.
Definition: AlignableCompositeBuilder.h:40
AlignableIndexer.h
AlignableCompositeBuilder::buildLevel
unsigned int buildLevel(unsigned int parentLevel, AlignableMap &, std::ostringstream &, bool update=false)
Builds the components for a given level in the hierarchy.
Definition: AlignableCompositeBuilder.cc:56
align::ID
uint32_t ID
Definition: Definitions.h:24
AlignableCompositeBuilder::maxNumComponents
unsigned int maxNumComponents(unsigned int startLevel) const
Definition: AlignableCompositeBuilder.cc:124
AlignableComposite.h
AlignableCompositeBuilder::buildAll
unsigned int buildAll(AlignableMap &, bool update=false)
Definition: AlignableCompositeBuilder.cc:33
Utilities.h
AlignmentLevel.h
AlignableCompositeBuilder::trackerTopology_
const TrackerTopology * trackerTopology_
Definition: AlignableCompositeBuilder.h:63
AlignableCompositeBuilder::addAlignmentLevel
void addAlignmentLevel(std::unique_ptr< AlignmentLevel > level)
Definition: AlignableCompositeBuilder.cc:25
AlignableCompositeBuilder::AlignableCompositeBuilder
AlignableCompositeBuilder(const TrackerTopology *, const TrackerGeometry *, const AlignableIndexer &)
Definition: AlignableCompositeBuilder.cc:17
AlignableCompositeBuilder::getIndexOfStructure
unsigned int getIndexOfStructure(align::ID, unsigned int level) const
Definition: AlignableCompositeBuilder.cc:135
align::AlignmentLevels
std::vector< std::unique_ptr< AlignmentLevel > > AlignmentLevels
Definition: Utilities.h:33
AlignableMap.h
AlignableCompositeBuilder::~AlignableCompositeBuilder
virtual ~AlignableCompositeBuilder()=default
update
#define update(a, b)
Definition: TrackClassifier.cc:10
TrackerGeometry
Definition: TrackerGeometry.h:14