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