00001 #ifndef ATLFAST_PIONBINDATA_H
00002 #define ATLFAST_PIONBINDATA_H
00003 #include <cmath>
00004 #include <vector>
00005 #include "CLHEP/Matrix/Matrix.h"
00006 #include "AtlfastCode/TrackTrajectory.h"
00007 #include "AtlfastCode/BinID.h"
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 namespace Atlfast {
00019
00028 class PionBinData {
00029
00030 public:
00032 PionBinData(){};
00033 PionBinData(BinID&,
00034 vector< pair<double,double> >,
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 );
00046
00050 HepMatrix getMatrix(const vector<double>& random,
00051 const TrackTrajectory& track) const;
00052
00053 private:
00054 BinID m_id;
00055
00057 void calculate() const;
00058 double GetResolution(double pT, double eta ,
00059 const vector< vector< pair<double,double> > >&
00060 coefficients, int n)const;
00061 double Interpolate(double, const pair<double,double>& etaRes)const;
00062 double pTFunction(double pT, const vector<double>& coefficients)const;
00063
00064 vector< pair<double,double> > m_coreCinf;
00065 vector< pair<double,double> > m_coreC1eta;
00066 vector< pair<double,double> > m_coreC2eta;
00067 vector< pair<double,double> > m_tailCinf;
00068 vector< pair<double,double> > m_tailC1eta;
00069 vector< pair<double,double> > m_tailC2eta;
00070 vector< pair<double,double> > m_fracCinf;
00071 vector< pair<double,double> > m_fracC1eta;
00072 vector< pair<double,double> > m_correlCinf;
00073 vector< pair<double,double> > m_correlC1eta;
00074 vector< pair<double,double> > m_correlC2eta;
00075
00076 vector< vector< pair< double,double > > > m_cores;
00077 vector< vector< pair< double,double > > > m_tails;
00078 vector< vector< pair< double,double > > > m_fractions;
00079 vector< vector< pair< double,double > > > m_correlations;
00080
00081 vector<double> m_powers;
00082
00083 };
00084
00085
00086 }
00087 #endif
00088
00089
00090
00091
00092