CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlignableTracker.h
Go to the documentation of this file.
1 #ifndef Alignment_TrackerAlignment_AlignableTracker_H
2 #define Alignment_TrackerAlignment_AlignableTracker_H
3 
5 
9 
10 class GeometricDet;
11 class TrackerGeometry;
12 
14 {
15 
16 public:
17 
19  explicit AlignableTracker(const TrackerGeometry *tracker);
20 
23  Alignables& subStructures(const std::string &subStructName) {
24  return alignableLists_.find(subStructName);
25  }
26 
28  Alignables& outerHalfBarrels() { return this->subStructures("TOBHalfBarrel");}
30  Alignables& innerHalfBarrels() { return this->subStructures("TIBHalfBarrel");}
32  Alignables& pixelHalfBarrels() { return this->subStructures("TPBHalfBarrel");}
34  Alignables& endCaps() { return this->subStructures("TECEndcap");}
36  Alignables& pixelEndCaps() { return this->subStructures("TPEEndcap");}
38  Alignables& TIDs() { return this->subStructures("TIDEndcap");}
39 
42  this->outerBarrelGeomDets());}
45  this->TIDGeomDets());
46  }
48  Alignables& innerBarrelGeomDets() { return this->subStructures("TIBModule");}
50  Alignables& outerBarrelGeomDets() { return this->subStructures("TOBModule");}
52  Alignables& pixelHalfBarrelGeomDets() { return this->subStructures("TPBModule");}
54  Alignables& endcapGeomDets() { return this->subStructures("TECModule");}
56  Alignables& TIDGeomDets() { return this->subStructures("TIDModule");}
58  Alignables& pixelEndcapGeomDets() { return this->subStructures("TPEModule");}
59 
61  Alignables barrelRods() { return this->merge(this->innerBarrelRods(), this->outerBarrelRods());}
63  Alignables& innerBarrelRods() { return this->subStructures("TIBString");}
65  Alignables& outerBarrelRods() { return this->subStructures("TOBRod");}
67  Alignables& pixelHalfBarrelLadders() { return this->subStructures("TPBLadder");}
69  Alignables& endcapPetals() { return this->subStructures("TECPetal");}
71  Alignables& TIDRings() { return this->subStructures("TIDRing");}
73  Alignables& pixelEndcapPetals() { return this->subStructures("TPEPanel");}
74 
76  Alignables barrelLayers() { return this->merge(this->innerBarrelLayers(),
77  this->outerBarrelLayers() );
78  }
80  Alignables& innerBarrelLayers() { return this->subStructures("TIBLayer");}
82  Alignables& outerBarrelLayers() { return this->subStructures("TOBLayer");}
84  Alignables& pixelHalfBarrelLayers() { return this->subStructures("TPBLayer");}
86  Alignables& endcapLayers() { return this->subStructures("TECDisk");}
88  Alignables& TIDLayers() { return this->subStructures("TIDDisk");}
90  Alignables& pixelEndcapLayers() { return this->subStructures("TPEHalfDisk");}
91 
93  Alignments* alignments() const;
94 
97 
98  private:
99 
101  void buildBarrel( const std::string& subDet ); // prefix for sub-detector
102 
105  const std::string& moduleName );
106 
107  void buildTPB();
108  void buildTPE();
109  void buildTIB();
110  void buildTID();
111  void buildTOB();
112  void buildTEC();
113  void buildTRK();
114 
115  Alignables merge( const Alignables& list1, const Alignables& list2 ) const;
116 
117  AlignSetup<Alignables> alignableLists_; //< kind of map of lists of alignables
118 
120 
121 
122 };
123 
124 #endif //AlignableTracker_H
Alignables & pixelHalfBarrelGeomDets()
Return pixel barrel GeomDets.
Type & find(const std::string &name="")
Definition: AlignSetup.h:58
void detsToAlignables(const TrackingGeometry::DetContainer &dets, const std::string &moduleName)
Create list of lower-level modules.
Alignables merge(const Alignables &list1, const Alignables &list2) const
Alignables & pixelHalfBarrelLayers()
Return pixel half barrel layers.
Alignables barrelGeomDets()
Return inner and outer barrel GeomDets together.
std::vector< GeomDet * > DetContainer
Alignables TIBTIDGeomDets()
Return inner barrel and TID GeomDets together.
Alignables & innerBarrelGeomDets()
Return inner barrel GeomDets.
Alignables & endCaps()
Return TECs.
Alignables & TIDGeomDets()
Return TID GeomDets.
AlignmentErrors * alignmentErrors() const
Return alignment errors, sorted by DetId.
Alignables & outerBarrelRods()
Return outer barrel rods.
Alignables barrelRods()
Return inner and outer barrel rods.
Alignables & pixelEndcapPetals()
Return pixel endcap petals.
AlignableTracker(const TrackerGeometry *tracker)
Constructor (builds the full hierarchy)
Alignables barrelLayers()
Return inner and outer barrel layers.
Alignables & endcapGeomDets()
Return endcap GeomDets.
Alignables & pixelEndcapGeomDets()
Return pixel endcap GeomDets.
void buildBarrel(const std::string &subDet)
Build a barrel for a given sub-detector (TPB, TIB, TOB).
Alignables & TIDs()
Return TIDs.
Alignables & outerBarrelLayers()
Return outer barrel layers.
Alignables & outerBarrelGeomDets()
Return outer barrel GeomDets.
Alignables & TIDLayers()
Return TID layers.
Alignables & TIDRings()
Return TID rings.
Alignables & pixelHalfBarrels()
Return Pixel half barrels.
Alignables & pixelEndCaps()
Return TPEs.
Alignables & subStructures(const std::string &subStructName)
Alignables & innerBarrelLayers()
Return inner barrel layers.
Alignables & pixelHalfBarrelLadders()
Return pixel half barrel ladders (implemented as AlignableRods)
TrackerCounters tkCounters_
Alignments * alignments() const
Return alignments, sorted by DetId.
Alignables & endcapPetals()
Return encap petals.
Alignables & innerHalfBarrels()
Return TIB half barrels.
Alignables & endcapLayers()
Return endcap layers.
align::Alignables Alignables
Definition: Alignable.h:39
Alignables & pixelEndcapLayers()
Return pixel endcap layers.
AlignSetup< Alignables > alignableLists_
Alignables & outerHalfBarrels()
Return TOB half barrels.
Alignables & innerBarrelRods()
Return inner barrel rods.