00001 #ifndef ATLFAST_PIONBINDATA_H 00002 #define ATLFAST_PIONBINDATA_H 00003 #include <cmath> 00004 #include <vector> 00005 #include "CLHEP/Matrix/SymMatrix.h" 00006 #include "CLHEP/Random/JamesRandom.h" 00007 00008 #include "AtlfastEvent/TrackTrajectory.h" 00009 #include "AtlfastAlgs/BinID.h" 00010 #include "AtlfastAlgs/IBinData.h" 00011 #include "AtlfastAlgs/ParameterResolutions.h" 00012 00013 //====================================================== 00014 // 00015 // PionBinData 00016 // 00017 // Class to hold smearing matrix data 00018 // and calculate correlation matrix for a given track 00019 // 00020 //====================================================== 00021 00022 00023 namespace Atlfast 00024 { 00032 using std::pair; 00033 00034 class PionBinData: public IBinData 00035 { 00036 public: 00037 00039 PionBinData( BinID&, 00040 vector< ParameterResolutions* >, 00041 vector< ParameterResolutions* >, 00042 vector< ParameterResolutions* >, 00043 vector< ParameterResolutions* >, 00044 int randSeed 00045 ); 00046 00052 virtual ~PionBinData(); 00053 HepSymMatrix getMatrix( const TrackTrajectory& track ) const; 00054 00055 00056 private: 00057 00058 BinID m_id; 00059 00060 vector< ParameterResolutions* > m_cores; 00061 vector< ParameterResolutions* > m_tails; 00062 vector< ParameterResolutions* > m_fractions; 00063 vector< ParameterResolutions* > m_correlations; 00064 00065 HepRandomEngine* m_randomEngine; 00066 }; 00067 00068 } 00069 #endif