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

Generated on Wed May 1 14:11:32 2002 for AtlfastAlgs by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001