51 const std::string& moduleName )
53 unsigned int nDet = dets.size();
59 for (
unsigned int i = 0;
i < nDet; ++
i) {
61 const unsigned int subdetId = dets[
i]->geographicalId().subdetId();
67 <<
"[AlignableTracker] Pixel GeomDet (subdetector " << subdetId <<
") not GeomDetUnit.\n";
74 aliUnits->reserve(576);
76 aliUnits->push_back(alis.back());
91 <<
"[AlignableTracker]" <<
"dynamic_cast<GluedGeomDet*> failed.\n";
98 aliUnits->reserve(576);
100 aliUnits->insert(aliUnits->end(), detUnits.begin(), detUnits.end());
105 <<
"[AlignableTracker] pure 1D GeomDet (subdetector " << subdetId <<
") not GeomDetUnit.\n";
112 aliUnits->reserve(576);
114 aliUnits->push_back(alis.back());
119 <<
"[AlignableTracker] GeomDet of unknown subdetector.";
123 LogDebug(
"Alignment") <<
"@SUB=AlignableTracker"
124 << alis.size() <<
" AlignableDet(Unit)s for " << moduleName;
126 LogDebug(
"Alignment") <<
"@SUB=AlignableTracker"
127 << aliUnits->size() <<
" AlignableDetUnits for "
128 << moduleName +
"Unit (capacity = " << aliUnits->capacity() <<
").";
141 const std::string barrelName(subDet +
"Barrel");
146 barrel[0]->addComponent(halfBarrels[0]);
147 barrel[0]->addComponent(halfBarrels[1]);
240 pixel[0]->addComponent(pixelBarrel[0]);
241 pixel[0]->addComponent(pixelEndcap[0]);
242 pixel[0]->addComponent(pixelEndcap[1]);
252 strip[0]->addComponent(innerBarrel[0]);
253 strip[0]->addComponent(innerEndcap[0]);
254 strip[0]->addComponent(innerEndcap[1]);
255 strip[0]->addComponent(outerBarrel[0]);
256 strip[0]->addComponent(outerEndcap[0]);
257 strip[0]->addComponent(outerEndcap[1]);
262 tracker.push_back(
this);
275 all.insert( all.end(), list2.begin(), list2.end() );
288 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
290 Alignments* tmpAlignments = (*i)->alignments();
292 std::back_inserter(m_alignments->
m_align) );
293 delete tmpAlignments;
312 for ( align::Alignables::iterator
i=comp.begin();
i!=comp.end();
i++ )
317 delete tmpAlignmentErrors;
323 return m_alignmentErrors;
Type & find(const std::string &name="")
AlignableComposite()
default constructor hidden
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
std::vector< AlignTransformError > m_alignError
void buildAll(AlignSetup< align::Alignables > &setup) const
Build the components for all levels given by user.
std::vector< GeomDet * > DetContainer
std::vector< AlignTransform > m_align
void addLevelInfo(align::StructureType, bool flat, unsigned int maxComponent)
Add info required to build a level to the list.
const DetContainer & detsTEC() const
Type & get(const std::string &name="")
const DetContainer & detsPXB() const
AlignmentErrors * alignmentErrors() const
Return alignment errors, sorted by DetId.
Allows conversion between type and name, and vice-versa.
AlignableTracker(const TrackerGeometry *tracker)
Constructor (builds the full hierarchy)
const DetContainer & detsTIB() const
void buildBarrel(const std::string &subDet)
Build a barrel for a given sub-detector (TPB, TIB, TOB).
Detector identifier class for the strip tracker.
align::RotationType RotationType
std::vector< Alignable * > Alignables
align::StructureType nameToType(const std::string &name) const
Convert name to type.
const DetContainer & detsPXF() const
const DetContainer & detsTOB() const
TrackerCounters tkCounters_
virtual Alignables components() const
Return vector of direct components.
Alignments * alignments() const
Return alignments, sorted by DetId.
align::Alignables Alignables
virtual void addComponent(Alignable *component)
AlignSetup< Alignables > alignableLists_
const DetContainer & detsTID() const