00001 #ifndef ATLFAST_PIONMATRIXMANAGER_H
00002 #define ATLFAST_PIONMATRIXMANAGER_H
00003
00004 #include "GaudiKernel/MsgStream.h"
00005 #include "AtlfastCode/PionBinData.h"
00006 #include "AtlfastCode/TrackTrajectory.h"
00007 #include "CLHEP/Random/JamesRandom.h"
00008 #include "AtlfastCode/IMatrixManager.h"
00009 #include "AtlfastCode/BinID.h"
00010 #include "AtlfastCode/CorrelatedData.h"
00011 #include "AtlfastCode/HeaderPrinter.h"
00012
00013 #include <vector>
00014 #include <string>
00015 #include <map>
00016 #include <utility>
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 namespace Atlfast {
00033
00039 class PionMatrixManager: public IMatrixManager
00040 {
00041
00042 public:
00044 PionMatrixManager(int, MsgStream);
00046 virtual ~PionMatrixManager();
00048 vector<double> getVariables(const TrackTrajectory& track,
00049 HepMatrix& usedSigma) const;
00050
00051
00052 private:
00053 MsgStream* m_log;
00056 void initialise();
00057 void fillVector(ifstream&, vector< vector<double> >&, int);
00058 void makeHeader();
00060 BinID getBinID(const TrackTrajectory& track) const;
00062 string m_file;
00064 map<const BinID,PionBinData*> m_binData;
00066 CorrelatedData* m_correlatedData;
00068 HepRandomEngine* m_randomEngine;
00069
00070 vector<double> m_etaBoundaries;
00071 vector<double> m_rTBoundaries;
00072 int m_nRTBins;
00073 int m_nEtaBins;
00074
00075 };
00076
00077 }
00078
00079 #endif
00080
00081
00082
00083
00084