CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlignableBuilder.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignment_AlignableBuilder_H
2 #define Alignment_CommonAlignment_AlignableBuilder_H
3 
18 
19 class TrackerTopology;
20 
22 {
23  public:
24 
27 
30  bool flat,
31  unsigned int maxComponent );
32 
35 
36  private:
37 
38  struct LevelInfo
39  {
40  align::StructureType type_; // level type
41  bool flat_; // true if type is a flat surface (rod, string, ladder,...)
42  unsigned int maxComponent_; // max no. of components in this level
43 
45  bool flat,
46  unsigned int maxComponent );
47  };
48 
50  unsigned int maxComponent( unsigned int level ) const;
51 
55  unsigned int index( unsigned int level,
56  align::ID, const TrackerTopology* tTopo ) const;
57 
59  void build( unsigned int level, align::StructureType dauType,
60  AlignSetup<align::Alignables>& setup ) const;
61 
62  align::StructureType theModuleType; // starting level to build composites
63 
64  std::vector<LevelInfo> theLevelInfos;
65 
67 
69 };
70 
71 #endif
void build(unsigned int level, align::StructureType dauType, AlignSetup< align::Alignables > &setup) const
Build the components for a given level in the hierarchy.
uint32_t ID
Definition: Definitions.h:26
std::vector< LevelInfo > theLevelInfos
void buildAll(AlignSetup< align::Alignables > &setup) const
Build the components for all levels given by user.
LevelInfo(align::StructureType, bool flat, unsigned int maxComponent)
void addLevelInfo(align::StructureType, bool flat, unsigned int maxComponent)
Add info required to build a level to the list.
align::StructureType theModuleType
AlignableBuilder(align::StructureType moduleType, Counters &counter, const TrackerTopology *tTopo)
Init the module type.
unsigned int index(unsigned int level, align::ID, const TrackerTopology *tTopo) const
align::StructureType type_
unsigned int maxComponent(unsigned int level) const
Find max number of components for a given level in the hierarchy.
static std::atomic< unsigned int > counter
tuple level
Definition: testEve_cfg.py:34
const TrackerTopology * theTopology
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")