CMS 3D CMS Logo

MisalignmentScenarioBuilder.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_MisalignmentScenarioBuilder_h
00002 #define Alignment_CommonAlignment_MisalignmentScenarioBuilder_h
00003 
00011 
00012 #include <vector>
00013 
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 
00016 #include "Alignment/CommonAlignment/interface/AlignableModifier.h"
00017 #include "Alignment/CommonAlignment/interface/AlignableObjectId.h"
00018 
00020 
00021 class MisalignmentScenarioBuilder
00022 {
00023 
00024 public:
00025  
00027   MisalignmentScenarioBuilder( ) {};
00028 
00030   virtual ~MisalignmentScenarioBuilder() {};
00031 
00033   virtual void applyScenario( const edm::ParameterSet& scenario ) = 0;
00034 
00035 protected: // Methods
00036 
00038   void decodeMovements_( const edm::ParameterSet& pSet, std::vector<Alignable*> alignables );
00039   
00041   void decodeMovements_( const edm::ParameterSet& pSet, std::vector<Alignable*> alignables,
00042                          std::string levelName );
00043 
00045   void applyMovements_( Alignable* alignable, const edm::ParameterSet& pSet );
00046   
00048   void mergeParameters_( edm::ParameterSet& localSet, const edm::ParameterSet& globalSet ) const;
00049 
00051   void propagateParameters_( const edm::ParameterSet& pSet, const std::string& globalName,
00052                              edm::ParameterSet& subSet ) const;
00053 
00056   edm::ParameterSet getParameterSet_( const std::string& name, const edm::ParameterSet& pSet ) const;
00057 
00061   edm::ParameterSet getParameterSet_( const std::string& levelName, int iComponent, 
00062                                       const edm::ParameterSet& pSet ) const;
00063 
00064 
00066   bool hasParameter_( const std::string& name, const edm::ParameterSet& pSet ) const;
00067 
00069   void printParameters_( const edm::ParameterSet& pSet, const bool showPsets = false ) const;
00070 
00072   const bool isTopLevel_( const std::string& parameterSetName ) const; 
00073 
00075   const std::string rootName_( const std::string& parameterSetName ) const;
00076   
00077 
00078 protected: // Members
00079 
00080   edm::ParameterSet theScenario;           
00081   AlignableModifier theModifier;           
00082   
00083   AlignableObjectId theAlignableObjectId;  
00084   
00085   int theModifierCounter;                  
00086 
00087   std::string indent_;                     
00088   
00089 
00090 };
00091 
00092 
00093 
00094 #endif

Generated on Tue Jun 9 17:23:42 2009 for CMSSW by  doxygen 1.5.4