CMS 3D CMS Logo

MuonAlignment.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignment_MuonAlignment_H
00002 #define Alignment_MuonAlignment_MuonAlignment_H
00003 
00012 #include <vector>
00013 #include <map>
00014 
00015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00016 #include "Alignment/MuonAlignment/interface/AlignableMuon.h"
00017 #include <FWCore/Framework/interface/Frameworkfwd.h> 
00018 #include "Alignment/CommonAlignment/interface/AlignableNavigator.h"
00019 #include "Alignment/MuonAlignment/interface/MuonAlignmentInputMethod.h"
00020 
00021 class MuonAlignment {
00022 
00023   public:
00024 
00025       MuonAlignment( const edm::EventSetup& iSetup );
00026 
00027       MuonAlignment( const edm::EventSetup& iSetup, const MuonAlignmentInputMethod& input );
00028 
00029      ~MuonAlignment() { delete theAlignableMuon; delete theAlignableNavigator; }
00030       
00031       AlignableMuon* getAlignableMuon() { return theAlignableMuon; }
00032 
00033       AlignableNavigator* getAlignableNavigator() { return theAlignableNavigator; }
00034 
00035 
00036       void moveAlignableLocalCoord( DetId& , std::vector<float>& , std::vector<float>& );
00037       void moveAlignableGlobalCoord( DetId& , std::vector<float>& , std::vector<float>& );
00038 
00039       void recursiveList(std::vector<Alignable*> alignables, std::vector<Alignable*> &theList);
00040       void recursiveMap(std::vector<Alignable*> alignables, std::map<align::ID, Alignable*> &theMap);
00041       void recursiveStructureMap(std::vector<Alignable*> alignables, std::map<std::pair<align::StructureType, align::ID>, Alignable*> &theMap);
00042 
00043       void copyAlignmentToSurvey(double shiftErr, double angleErr);
00044       void fillGapsInSurvey(double shiftErr, double angleErr);
00045       void copySurveyToAlignment();
00046 
00047       void writeXML(const edm::ParameterSet iConfig, const edm::EventSetup &iSetup);
00048 
00049       void saveDTSurveyToDB();
00050       void saveCSCSurveyToDB();
00051       void saveSurveyToDB();
00052 
00053       void saveDTtoDB();
00054       void saveCSCtoDB();
00055       void saveToDB();
00056 
00057 
00058   private:
00059       void init();
00060       void recursiveCopySurveyToAlignment(Alignable *alignable);
00061 
00062       std::string theDTAlignRecordName, theDTErrorRecordName;
00063       std::string theCSCAlignRecordName, theCSCErrorRecordName;
00064       std::string theDTSurveyRecordName, theDTSurveyErrorRecordName;
00065       std::string theCSCSurveyRecordName, theCSCSurveyErrorRecordName;
00066  
00067       std::vector<float> displacements;
00068 
00069       std::vector<float> rotations;
00070 
00071       AlignableMuon* theAlignableMuon;
00072 
00073       AlignableNavigator* theAlignableNavigator;
00074 
00075 
00076 };
00077 
00078 #endif //MuonAlignment_H

Generated on Tue Jun 9 17:24:11 2009 for CMSSW by  doxygen 1.5.4