CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Alignment/MuonAlignment/interface/AlignableDTBarrel.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_AlignableDTBarrel_H
00002 #define Alignment_MuonAlignment_AlignableDTBarrel_H
00003 
00013 #include "Alignment/CommonAlignment/interface/Alignable.h"
00014 #include "Alignment/CommonAlignment/interface/AlignableComposite.h"
00015 #include "Alignment/CommonAlignment/interface/AlignableSurface.h"
00016 
00017 #include "Alignment/MuonAlignment/interface/AlignableDTWheel.h"
00018 
00019 
00020 
00021 #include <vector>
00022 
00023 class GeomDet;
00024 
00029 
00030 class AlignableDTBarrel : public AlignableComposite 
00031 {
00032 
00033  public:
00034 
00035   AlignableDTBarrel( const std::vector<AlignableDTWheel*> dtWheels );
00036 
00037   ~AlignableDTBarrel();
00038   
00039   virtual std::vector<Alignable*> components() const 
00040   {
00041 
00042         std::vector<Alignable*> result;
00043         result.insert( result.end(), theDTWheels.begin(), theDTWheels.end() );
00044         return result;
00045 
00046   }
00047   
00048   // gets the global position as the average over all positions of the layers
00049   PositionType computePosition() ;
00050   // get the global orientation
00051   RotationType computeOrientation() ; //see explanation for "theOrientation"
00052   // get the Surface
00053   AlignableSurface computeSurface() ;
00054 
00055   AlignableDTWheel &wheel(int i);  
00056   
00058   friend std::ostream& operator << ( std::ostream&, const AlignableDTBarrel& );
00059 
00061   void dump( void );
00062 
00063 
00064   // Get alignments sorted by DetId
00065   Alignments* alignments() const;
00066 
00067   // Get alignment errors sorted by DetId
00068   AlignmentErrors* alignmentErrors() const;
00069 
00070 
00071 
00072 private:
00073 
00074   std::vector<AlignableDTWheel*> theDTWheels;
00075 
00076 
00077 };
00078 
00079 #endif
00080 
00081 
00082 
00083