CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Alignment/CommonAlignment/interface/AlignableExtras.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_AlignableExtras_H
00002 #define Alignment_CommonAlignment_AlignableExtras_H
00003 
00015 #include "Alignment/CommonAlignment/interface/Alignable.h"
00016 #include "Alignment/CommonAlignment/interface/Utilities.h"
00017 #include "Alignment/CommonAlignment/interface/AlignSetup.h"
00018 
00019 class AlignableExtras 
00020 {
00021  public:
00022   
00023   typedef align::Alignables Alignables;
00024 
00026   explicit AlignableExtras();
00027 
00029   Alignables& subStructures(const std::string &subStructName) {
00030     return alignableLists_.find(subStructName);
00031   }
00032 
00034   Alignables& beamSpot() { return this->subStructures("BeamSpot");}
00035 
00036   Alignables components() const { return components_; }
00037 
00039   Alignments* alignments() const;
00040 
00042   AlignmentErrors* alignmentErrors() const;
00043 
00044   void dump(void) const;
00045 
00047   void initializeBeamSpot(double x, double y, double z,
00048                           double dxdz, double dydz);
00049 
00050  private:
00051   
00052   AlignSetup<Alignables> alignableLists_; //< kind of map of lists of alignables
00053   Alignables components_; //< list of alignables
00054 };
00055 
00056 #endif //AlignableExtras_H