ElectronMatrixManager.h

Go to the documentation of this file.
00001 #ifndef ATLFAST_ELECTRONMATRIXMANAGER_H
00002 #define ATLFAST_ELECTRONMATRIXMANAGER_H
00003 
00004 #include "GaudiKernel/MsgStream.h"
00005 #include "AtlfastAlgs/ElectronBinData.h"
00006 #include "AtlfastEvent/TrackTrajectory.h"
00007 
00008 #include "AtlfastAlgs/IMatrixManager.h"
00009 #include "AtlfastAlgs/BremMatrixManager.h"
00010 #include "AtlfastAlgs/BinID.h"
00011 #include "AtlfastAlgs/CorrelatedData.h"
00012 #include "AtlfastUtils/HeaderPrinter.h"
00013 
00014 #include <vector>
00015 #include <string>
00016 #include <map>
00017 #include <utility>
00018 
00019 //===========================================================
00020 //
00021 //  Matrix Manager
00022 // 
00023 //  Used by tracksmearer to provide smear matrix data 
00024 //  corresponding to a given track trajectory
00025 //
00026 //===========================================================
00027 
00028 
00029 namespace Atlfast 
00030 {
00031   using std::string;
00032   using std::ifstream;
00033   using std::map;
00034   
00040   class ElectronMatrixManager: public IMatrixManager
00041   {
00042     
00043     public:
00044 
00046       ElectronMatrixManager( string, string, int, MsgStream );
00047       
00049       virtual ~ElectronMatrixManager();
00050       
00052       vector<double> getVariables( const TrackTrajectory& track, 
00053                                    HepSymMatrix& usedSigma ) const;
00054 
00055     
00056     private:
00057 
00058       MsgStream* m_log;
00059 
00061       void initialise();
00062       void fillVector( ifstream&, vector< vector<double> >&, int );
00063       void makeHeader(); 
00064      
00066       IBinData* getBinData( const TrackTrajectory& track ) const;
00067      
00069       string m_bremParamFile, m_smearParamFile;
00070       
00072       BremMatrixManager* m_bremMgr;
00073 
00075       map<BinID, IBinData*> m_binData;
00076       
00078       CorrelatedData* m_correlatedData;
00079 
00080       int m_randSeed;
00081       vector<double> m_etaBoundaries;
00082       vector<double> m_rTBoundaries;
00083       int m_nRTBins;
00084       int m_nEtaBins;
00085 
00086   };
00087 
00088 }
00089 
00090 #endif

Generated on Mon Sep 24 14:19:10 2007 for AtlfastAlgs by  doxygen 1.5.1