47 edm::LogInfo(
"AlignableMuon") <<
"Constructing alignable muon objects DONE";
69 LogDebug(
"Position") <<
"Constructing AlignableDTBarrel";
72 std::vector<AlignableDTChamber*> tmpDTChambersInStation;
73 std::vector<AlignableDTStation*> tmpDTStationsInWheel;
77 for(
int iwh = -2 ; iwh < 3 ; iwh++ ){
80 for(
int ist = 1 ; ist < 5 ; ist++ ){
83 std::vector<GeomDet*> theSLs;
84 for( std::vector<DTChamber*>::const_iterator det = pDT->
chambers().begin();
85 det != pDT->
chambers().end(); ++det ){
90 int wh = chamberId.
wheel();
95 if ( iwh == wh && ist == st ){
101 tmpDTChambersInStation.push_back( tmpDTChamber );
111 tmpDTChambersInStation.end() );
117 tmpDTStationsInWheel.push_back( tmpDTStation );
120 tmpDTChambersInStation.clear();
127 tmpDTStationsInWheel.end() );
137 tmpDTStationsInWheel.clear();
163 LogDebug(
"Position") <<
"Constructing AlignableCSCBarrel";
166 std::vector<AlignableCSCStation*> tmpCSCStationsInEndcap;
169 for(
int iec = 1 ; iec < 3 ; iec++ ){
172 std::vector<AlignableCSCRing*> tmpCSCRingsInStation;
175 for(
int ist = 1 ; ist < 5 ; ist++ ){
178 std::vector<AlignableCSCChamber*> tmpCSCChambersInRing;
181 for (
int iri = 1; iri < 5; iri++ ){
184 std::vector<CSCChamber*> vc = pCSC->
chambers();
185 for( std::vector<CSCChamber*>::const_iterator det = vc.begin(); det != vc.end(); ++det ){
193 int ri = cscId.
ring();
197 if ( iec == ec && ist == st && iri == ri ) {
203 tmpCSCChambersInRing.push_back( tmpCSCChamber );
212 if (tmpCSCChambersInRing.size() > 0) {
221 tmpCSCRingsInStation.push_back( tmpCSCRing );
224 tmpCSCChambersInRing.clear();
239 tmpCSCStationsInEndcap.push_back( tmpCSCStation );
242 tmpCSCRingsInStation.clear();
257 tmpCSCStationsInEndcap.clear();
271 std::vector<Alignable*>
result;
274 for (std::vector<Alignable*>::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
275 std::vector<Alignable*> superlayers = (*chamberIter)->components();
276 for (std::vector<Alignable*>::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
277 std::vector<Alignable*> layers = (*superlayerIter)->components();
278 for (std::vector<Alignable*>::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
279 result.push_back(*layerIter);
290 std::vector<Alignable*>
result;
293 for (std::vector<Alignable*>::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
294 std::vector<Alignable*> superlayers = (*chamberIter)->components();
295 for (std::vector<Alignable*>::const_iterator superlayerIter = superlayers.begin(); superlayerIter != superlayers.end(); ++superlayerIter) {
296 result.push_back(*superlayerIter);
306 std::vector<Alignable*>
result;
314 std::vector<Alignable*>
result;
323 std::vector<Alignable*>
result;
331 std::vector<Alignable*>
result ;
339 std::vector<Alignable*>
result;
342 for (std::vector<Alignable*>::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); ++chamberIter) {
343 std::vector<Alignable*> layers = (*chamberIter)->components();
344 for (std::vector<Alignable*>::const_iterator layerIter = layers.begin(); layerIter != layers.end(); ++layerIter) {
345 result.push_back(*layerIter);
355 std::vector<Alignable*>
result;
363 std::vector<Alignable*>
result;
371 std::vector<Alignable*>
result;
379 std::vector<Alignable*>
result;
390 for ( std::vector<Alignable*>::iterator iter = components.begin();
391 iter != components.end(); iter++ )
393 (*iter)->setMother( alignable );
402 std::vector<Alignable*> comp = this->
components();
405 for ( std::vector<Alignable*>::iterator
i=comp.begin();
i!=comp.end();
i++ )
407 Alignments* tmpAlignments = (*i)->alignments();
409 std::back_inserter(m_alignments->
m_align) );
410 delete tmpAlignments;
423 std::vector<Alignable*> comp = this->
components();
427 for ( std::vector<Alignable*>::iterator
i=comp.begin();
i!=comp.end();
i++ )
432 delete tmpAlignmentErrors;
438 return m_alignmentErrors;
447 return tmpAlignments;
456 return tmpAlignmentErrors;
471 return tmpAlignments;
486 return tmpAlignmentErrors;
A muon DT Chamber( an AlignableDet )
AlignmentErrors * dtAlignmentErrors()
std::vector< Alignable * > DTSuperLayers()
std::vector< Alignable * > CSCStations()
std::vector< Alignable * > DTWheels()
std::vector< AlignTransformError > m_alignError
static char chambers[TOTALCHAMBERS][20]
std::vector< Alignable * > DTChambers()
const ChamberContainer & chambers() const
Return a vector of all chambers.
virtual Alignables components() const =0
Return vector of all direct components.
std::vector< AlignTransform > m_align
Alignments * alignments() const
Return alignment data.
std::vector< AlignableCSCEndcap * > theCSCEndcaps
std::vector< Alignable * > DTLayers()
std::vector< Alignable * > CSCChambers()
Alignments * dtAlignments()
std::vector< Alignable * > CSCLayers()
std::vector< Alignable * > CSCEndcaps()
std::vector< AlignableCSCStation * > theCSCStations
void recursiveSetMothers(Alignable *alignable)
Set mothers recursively.
AlignmentErrors * alignmentErrors() const
Return vector of alignment errors.
AlignmentErrors * cscAlignmentErrors()
std::vector< AlignableDTStation * > theDTStations
std::vector< Alignable * > CSCRings()
const std::vector< DTChamber * > & chambers() const
Return a vector of all Chamber.
std::vector< Alignable * > DTStations()
std::vector< Alignable * > DTBarrel()
std::vector< AlignableDTChamber * > theDTChambers
std::vector< AlignableCSCRing * > theCSCRings
Alignments * cscAlignments()
AlignableMuon(const DTGeometry *, const CSCGeometry *)
Constructor from geometries.
void buildDTBarrel(const DTGeometry *)
std::vector< AlignableDTBarrel * > theDTBarrel
~AlignableMuon()
Destructor.
std::vector< AlignableDTWheel * > theDTWheels
int station() const
Return the station number.
int wheel() const
Return the wheel number.
Constructor of the full muon geometry.
std::vector< Alignable * > theMuonComponents
virtual std::vector< Alignable * > components() const
Return all components.
void buildCSCEndcap(const CSCGeometry *)
std::vector< AlignableCSCChamber * > theCSCChambers
A muon CSC Chamber( an AlignableDet )