CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_2_9_HLT1_bphpatch4/src/Alignment/MuonAlignmentAlgorithms/plugins/CSCChamberFitter.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonAlignmentAlgorithms_CSCChamberFitter_H
00002 #define Alignment_MuonAlignmentAlgorithms_CSCChamberFitter_H
00003 
00010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00011 #include "DataFormats/DetId/interface/DetId.h"
00012 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00013 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00014 #include "Alignment/CommonAlignment/interface/Alignable.h"  
00015 #include "Alignment/CommonAlignment/interface/AlignableNavigator.h"  
00016 #include "Alignment/CommonAlignment/interface/AlignableObjectId.h"  
00017 #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
00018 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentParameterStore.h"
00019 
00020 #include "Alignment/MuonAlignmentAlgorithms/interface/CSCPairConstraint.h"
00021 #include "Alignment/MuonAlignmentAlgorithms/plugins/CSCPairResidualsConstraint.h"
00022 #include "Alignment/MuonAlignmentAlgorithms/plugins/CSCAlignmentCorrections.h"
00023 
00024 class CSCChamberFitter {
00025 public:
00026   CSCChamberFitter(const edm::ParameterSet &iConfig, std::vector<CSCPairResidualsConstraint*> &residualsConstraints);
00027   virtual ~CSCChamberFitter() {};
00028 
00029   bool fit(std::vector<CSCAlignmentCorrections*> &corrections) const;
00030   void radiusCorrection(AlignableNavigator *alignableNavigator, AlignmentParameterStore *alignmentParameterStore, bool combineME11) const;
00031 
00032 protected:
00033   int index(std::string alignable) const;
00034   void walk(std::map<int,bool> &touched, int alignable) const;
00035   long alignableId(std::string alignable) const;
00036   bool isFrame(int i) const;
00037   double chi2(AlgebraicVector A, double lambda) const;
00038   double lhsVector(int k) const;
00039   double hessian(int k, int l, double lambda) const;
00040 
00041   std::string m_name;
00042   std::vector<std::string> m_alignables;
00043   std::vector<int> m_frames;
00044   int m_fixed;
00045   std::vector<CSCPairConstraint*> m_constraints;
00046 };
00047 
00048 #endif // Alignment_MuonAlignmentAlgorithms_CSCChamberFitter_H
00049