00001 #ifndef ATLFAST_BREMBINDATA_H 00002 #define ATLFAST_BREMBINDATA_H 00003 #include <cmath> 00004 #include <vector> 00005 00006 #include "CLHEP/Matrix/SymMatrix.h" 00007 #include "CLHEP/Random/JamesRandom.h" 00008 #include "CLHEP/Units/SystemOfUnits.h" 00009 00010 #include "AtlfastEvent/TrackTrajectory.h" 00011 #include "AtlfastAlgs/BinID.h" 00012 #include "AtlfastAlgs/ParameterResolutions.h" 00013 00014 //====================================================== 00015 // 00016 // BremBinData 00017 // 00018 // Class to hold smearing matrix data and 00019 // calculate bremsstrahlung corrections 00020 // for a given track 00021 // 00022 //====================================================== 00023 00024 00025 namespace Atlfast 00026 { 00027 00028 using std::vector; 00029 00038 class BremBinData 00039 { 00040 public: 00041 00043 BremBinData( BinID&, 00044 vector< ParameterResolutions* >, 00045 vector< ParameterResolutions* >, 00046 vector< ParameterResolutions* >, 00047 int randSeed 00048 ); 00049 00051 ~BremBinData(); 00052 00058 TrackTrajectory getBremTrack( const TrackTrajectory& track ) const; 00059 00060 private: 00061 00062 BinID m_id; 00063 00064 vector< ParameterResolutions* > m_startPoints; 00065 vector< ParameterResolutions* > m_slopes; 00066 vector< ParameterResolutions* > m_sigmas; 00067 00068 HepRandomEngine* m_randomEngine; 00069 }; 00070 00071 } 00072 #endif