CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Alignment/MuonAlignmentAlgorithms/plugins/MuonMillepedeAlgorithm.h

Go to the documentation of this file.
00001 #ifndef Alignment_MuonStandaloneAlgorithm_MuonMillepedeAlgorithm_h
00002 #define Alignment_MuonStandaloneAlgorithm_MuonMillepedeAlgorithm_h
00003 
00004 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentAlgorithmBase.h"
00005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00006 
00007 #include "FWCore/ServiceRegistry/interface/Service.h"
00008 #include "CommonTools/UtilAlgos/interface/TFileService.h"
00009 
00010 
00011 #include "TH1D.h"
00012 #include "TTree.h"
00013 #include "TFile.h"
00014 #include "TMatrixD.h"
00015 
00016 class AlignableNavigator;
00017 class TFile;
00018 class TTree;
00019 
00020 class MuonMillepedeAlgorithm : public AlignmentAlgorithmBase
00021 {
00022 
00023  public:
00024   
00026   MuonMillepedeAlgorithm(const edm::ParameterSet& cfg);
00027 
00029   ~MuonMillepedeAlgorithm() {};
00030 
00032   void initialize( const edm::EventSetup& setup, 
00033                    AlignableTracker* tracker, AlignableMuon* muon,
00034                    AlignableExtras* extras,
00035                    AlignmentParameterStore* store);
00036 
00038   void terminate(const edm::EventSetup& setup);
00039 
00040 
00041 
00043   void run(const edm::EventSetup& setup, const EventInfo &eventInfo);
00044 
00045   void updateInfo(AlgebraicMatrix, AlgebraicMatrix, AlgebraicMatrix, std::string);
00046  
00047   void toTMat(AlgebraicMatrix *, TMatrixD *);
00048 
00049   void collect();
00050  
00051  private:
00052 
00053   // private data members
00054  
00055   void printM(AlgebraicMatrix ); 
00056   
00057   AlignmentParameterStore* theAlignmentParameterStore;
00058   std::vector<Alignable*> theAlignables;
00059   AlignableNavigator* theAlignableDetAccessor;
00060 
00061   // verbosity flag
00062   bool verbose;
00063 
00064   //Store residuals
00065   std::map<std::string, TH1D *> histoMap;
00066   
00067   std::map<std::string, AlgebraicMatrix *> map_invCov;
00068   std::map<std::string, AlgebraicMatrix *> map_weightRes;
00069   std::map<std::string, AlgebraicMatrix *> map_N;
00070 
00071   double ptCut, chi2nCut;
00072 
00073 
00074   //Service for histograms
00075   edm::Service<TFileService> fs;
00076 
00077 
00078   std::string collec_f;
00079   std::string outputCollName;
00080   bool isCollectionJob;
00081   std::string collec_path; 
00082   int collec_number;
00083 
00084   
00085 
00086 };
00087 
00088 #endif