00001 #ifndef ATLFAST_PIONBINDATA_H
00002 #define ATLFAST_PIONBINDATA_H
00003 #include <cmath>
00004 #include <vector>
00005 #include "CLHEP/Matrix/Matrix.h"
00006 #include "AtlfastAlgs/TrackTrajectory.h"
00007 #include "AtlfastAlgs/BinID.h"
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 namespace Atlfast {
00019
00027 using std::pair;
00028
00029 class PionBinData {
00030
00031 public:
00033 PionBinData(){};
00034 PionBinData(BinID&,
00035 vector< pair<double,double> >,
00036 vector< pair<double,double> >,
00037 vector< pair<double,double> >,
00038 vector< pair<double,double> >,
00039 vector< pair<double,double> >,
00040 vector< pair<double,double> >,
00041 vector< pair<double,double> >,
00042 vector< pair<double,double> >,
00043 vector< pair<double,double> >,
00044 vector< pair<double,double> >,
00045 vector< pair<double,double> >
00046 );
00047
00051 HepMatrix getMatrix(const vector<double>& random,
00052 const TrackTrajectory& track) const;
00053
00054 private:
00055 BinID m_id;
00056
00058 void calculate() const;
00059 double GetResolution(double pT, double eta ,
00060 const vector< vector< pair<double,double> > >&
00061 coefficients, int n)const;
00062 double Interpolate(double, const pair<double,double>& etaRes)const;
00063 double pTFunction(double pT, const vector<double>& coefficients)const;
00064
00065 vector< pair<double,double> > m_coreCinf;
00066 vector< pair<double,double> > m_coreC1eta;
00067 vector< pair<double,double> > m_coreC2eta;
00068 vector< pair<double,double> > m_tailCinf;
00069 vector< pair<double,double> > m_tailC1eta;
00070 vector< pair<double,double> > m_tailC2eta;
00071 vector< pair<double,double> > m_fracCinf;
00072 vector< pair<double,double> > m_fracC1eta;
00073 vector< pair<double,double> > m_correlCinf;
00074 vector< pair<double,double> > m_correlC1eta;
00075 vector< pair<double,double> > m_correlC2eta;
00076
00077 vector< vector< pair< double,double > > > m_cores;
00078 vector< vector< pair< double,double > > > m_tails;
00079 vector< vector< pair< double,double > > > m_fractions;
00080 vector< vector< pair< double,double > > > m_correlations;
00081
00082 vector<double> m_powers;
00083
00084 };
00085
00086 }
00087 #endif