00001 00009 #ifndef Alignment_MuonStantaloneAlgorithm_MuonStandaloneAlgorithm_H 00010 #define Alignment_MuonStantaloneAlgorithm_MuonStandaloneAlgorithm_H 00011 00012 00013 // Base Class Headers 00014 #include "FWCore/Framework/interface/EDAnalyzer.h" 00015 #include "Alignment/MuonStandaloneAlgorithm/interface/AlignmentDetectorCollection.h" 00016 //#include "Alignment/MuonAlignment/interface/MuonAlignment.h" 00017 #include <vector> 00018 #include "TMatrixD.h" 00019 00020 namespace edm { 00021 class ParameterSet; 00022 class Event; 00023 class EventSetup; 00024 } 00025 00026 class TFile; 00027 class TH1F; 00028 00029 00030 class AlignmentEstimator: public edm::EDAnalyzer { 00031 public: 00032 00034 AlignmentEstimator(const edm::ParameterSet& pset); 00035 00037 virtual ~AlignmentEstimator(); 00038 00039 // Operations 00040 void analyze(const edm::Event & event, const edm::EventSetup& eventSetup); 00041 00042 virtual void beginJob(const edm::EventSetup& eventSetup) ; 00043 00044 virtual void endJob(); 00045 00046 private: 00047 00048 int getIndex(long); 00049 00050 void getMatrix(); 00051 00052 TFile *f; 00053 TFile *theFile; 00054 00055 std::vector<TH1F *> estimatorHist; 00056 bool theWriteToDB; 00057 std::string theTrackForAlignment; 00058 std::string nameOfMatrix; 00059 TMatrixD C; 00060 TMatrixD CMatrixInvert; 00061 TMatrixD b; 00062 TMatrixD theIndex; 00063 00064 double numberOfTracks; 00065 00066 const static int NDOFTrack = 5; 00067 const static int NDOFAlign = 6; 00068 const static int NDOFChamber = 4; 00069 const static int NDOFCoor = 4; 00070 00071 00072 00073 }; 00074 #endif 00075 00076 00077