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 class TrackerTopology;
13 
14 
16 {
17 
18 public:
19 
21  explicit AlignableTracker(const TrackerGeometry *tracker, const TrackerTopology *tTopo);
22 
25  Alignables& subStructures(const std::string &subStructName) {
26  return alignableLists_.find(subStructName);
27  }
28 
30  Alignables& outerHalfBarrels() { return this->subStructures("TOBHalfBarrel");}
32  Alignables& innerHalfBarrels() { return this->subStructures("TIBHalfBarrel");}
34  Alignables& pixelHalfBarrels() { return this->subStructures("TPBHalfBarrel");}
36  Alignables& endCaps() { return this->subStructures("TECEndcap");}
38  Alignables& pixelEndCaps() { return this->subStructures("TPEEndcap");}
40  Alignables& TIDs() { return this->subStructures("TIDEndcap");}
41 
44  this->outerBarrelGeomDets());}
47  this->TIDGeomDets());
48  }
50  Alignables& innerBarrelGeomDets() { return this->subStructures("TIBModule");}
52  Alignables& outerBarrelGeomDets() { return this->subStructures("TOBModule");}
54  Alignables& pixelHalfBarrelGeomDets() { return this->subStructures("TPBModule");}
56  Alignables& endcapGeomDets() { return this->subStructures("TECModule");}
58  Alignables& TIDGeomDets() { return this->subStructures("TIDModule");}
60  Alignables& pixelEndcapGeomDets() { return this->subStructures("TPEModule");}
61 
63  Alignables barrelRods() { return this->merge(this->innerBarrelRods(), this->outerBarrelRods());}
65  Alignables& innerBarrelRods() { return this->subStructures("TIBString");}
67  Alignables& outerBarrelRods() { return this->subStructures("TOBRod");}
69  Alignables& pixelHalfBarrelLadders() { return this->subStructures("TPBLadder");}
71  Alignables& endcapPetals() { return this->subStructures("TECPetal");}
73  Alignables& TIDRings() { return this->subStructures("TIDRing");}
75  Alignables& pixelEndcapPetals() { return this->subStructures("TPEPanel");}
76 
78  Alignables barrelLayers() { return this->merge(this->innerBarrelLayers(),
79  this->outerBarrelLayers() );
80  }
82  Alignables& innerBarrelLayers() { return this->subStructures("TIBLayer");}
84  Alignables& outerBarrelLayers() { return this->subStructures("TOBLayer");}
86  Alignables& pixelHalfBarrelLayers() { return this->subStructures("TPBLayer");}
88  Alignables& endcapLayers() { return this->subStructures("TECDisk");}
90  Alignables& TIDLayers() { return this->subStructures("TIDDisk");}
92  Alignables& pixelEndcapLayers() { return this->subStructures("TPEHalfDisk");}
93 
95  Alignments* alignments() const;
96 
99 
101  const TrackerTopology* trackerTopology() const { return tTopo_;}
102  private:
103 
105  void buildBarrel( const std::string& subDet ); // prefix for sub-detector
106 
109  const std::string& moduleName );
110 
111  void buildTPB();
112  void buildTPE();
113  void buildTIB();
114  void buildTID();
115  void buildTOB();
116  void buildTEC();
117  void buildTRK();
118 
119  Alignables merge( const Alignables& list1, const Alignables& list2 ) const;
120 
121  AlignSetup<Alignables> alignableLists_; //< kind of map of lists of alignables
122 
124 
126 
127 };
128 
129 #endif //AlignableTracker_H
Alignables & pixelHalfBarrelGeomDets()
Return pixel barrel GeomDets.
Type & find(const std::string &name="")
Definition: AlignSetup.h:58
std::vector< Alignable * > Alignables
Definition: Alignable.h:251
void detsToAlignables(const TrackingGeometry::DetContainer &dets, const std::string &moduleName)
Create list of lower-level modules.
AlignmentErrorsExtended * alignmentErrors() const
Return alignment errors, sorted by DetId.
Alignables merge(const Alignables &list1, const Alignables &list2) const
Alignables & pixelHalfBarrelLayers()
Return pixel half barrel layers.
AlignableTracker(const TrackerGeometry *tracker, const TrackerTopology *tTopo)
Constructor (builds the full hierarchy)
Alignables barrelGeomDets()
Return inner and outer barrel GeomDets together.
Alignables TIBTIDGeomDets()
Return inner barrel and TID GeomDets together.
const TrackerTopology * tTopo_
const TrackerTopology * trackerTopology() const
Returns tracker topology.
std::string moduleName(Provenance const &provenance)
Definition: Provenance.cc:27
Alignables & innerBarrelGeomDets()
Return inner barrel GeomDets.
Alignables & endCaps()
Return TECs.
Alignables & TIDGeomDets()
Return TID GeomDets.
Alignables & outerBarrelRods()
Return outer barrel rods.
Alignables barrelRods()
Return inner and outer barrel rods.
Alignables & pixelEndcapPetals()
Return pixel endcap petals.
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.
std::vector< GeomDet const * > DetContainer
Alignables & endcapLayers()
Return endcap layers.
Alignables & pixelEndcapLayers()
Return pixel endcap layers.
AlignSetup< Alignables > alignableLists_
Alignables & outerHalfBarrels()
Return TOB half barrels.
Alignables & innerBarrelRods()
Return inner barrel rods.