Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

XKalman.h

Go to the documentation of this file.
00001 #ifndef XKALMAN_H
00002 #define XKALMAN_H
00003 
00004 #include "GaudiKernel/MsgStream.h"
00005 #include "AtlfastCode/TrackTrajectory.h"
00006 #include "AtlfastCode/CorrelatedData.h"
00007 #include "CLHEP/Matrix/Matrix.h"
00008 #include "CLHEP/Random/JamesRandom.h"
00009 #include <vector>
00010 #include <string>
00011 
00012 namespace Atlfast {
00013 
00014 //==============================================
00015 // data structure for d0/phi fit parameters
00016 class Displacement{
00017  public:
00018   Displacement() {}
00019   ~Displacement() {}
00020   Displacement(double off, double pow,
00021                vector<double> average, vector<double> rms):
00022     m_off(off), m_pow(pow), m_average(average), m_rms(rms) {}
00023   Displacement(const Displacement& disp);
00024   Displacement operator=(const Displacement& disp);
00025 
00026   double off() const {return m_off;}
00027   double pow() const {return m_pow;}
00028   double average(int i) const {return m_average[i];}
00029   double rms(int i) const {return m_rms[i];}
00030  private:
00031   double m_off;
00032   double m_pow;
00033   vector<double> m_average;
00034   vector<double> m_rms;
00035 };
00036 
00037 //============================================
00038 
00039 
00040 
00041 class XKalman
00042 {
00043  public:
00044   XKalman(int, MsgStream);
00045   ~XKalman() {delete m_randomEngine; delete m_correlatedData;}
00046   TrackTrajectory doBremFit(const TrackTrajectory&) const;
00047  private:
00048 
00049   Displacement m_d0Disp;
00050   Displacement m_phiDisp;
00051 
00052   string m_file;
00053   // variables from file
00054   int m_nRBins, m_nEtaBins, m_nPBins;
00055   double m_rMin, m_rMax;
00056   double m_pMin, m_pMax;
00057   double m_p1scal, m_p2scal;
00058   HepMatrix m_bremR;
00059   vector<HepMatrix> m_pTDist;
00060 
00061   MsgStream* m_log;
00062   CorrelatedData* m_correlatedData;
00063   HepRandomEngine* m_randomEngine;
00064 
00065   // private methods
00066   double scaleDPhi(double pT, double old,
00067                    const Displacement& axis,
00068                    int iRBrem, double deltaP) const;
00069   double scalePT(double pT, double pscale) const;
00070 
00071 };
00072 
00073 }//end of namespace  
00074 
00075 #endif
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 

Generated on Wed Jan 23 12:58:32 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001