Main Page   Class Hierarchy   Compound List   File List   Compound Members  

kmakemother.h

00001 //
00002 // $Id: kmakemother.h,v 1.11 2002/03/27 23:42:30 jtanaka Exp $
00003 //
00004 // $Log: kmakemother.h,v $
00005 // Revision 1.11  2002/03/27 23:42:30  jtanaka
00006 // Add new fitter to the mass-constraint fit.
00007 //
00008 // Revision 1.10  2001/12/24 12:03:27  katayama
00009 // gcc 3.0 and headers are cleaned up
00010 //
00011 // Revision 1.9  2000/03/07 17:09:13  jtanaka
00012 // bug fixed, use "similarity" etc.
00013 //
00014 // Revision 1.8  2000/03/07 10:52:37  katayama
00015 // compatibility with CC5.0
00016 //
00017 // Revision 1.7  1999/03/29 05:38:17  jtanaka
00018 // new class structure, new+old interfaces
00019 //
00020 // Revision 1.6  1998/09/28 13:26:07  jtanaka
00021 // bug fix in kmakemother.h and <vector.h> -> <vector>
00022 //
00023 // Revision 1.5  1998/09/08 11:52:07  jtanaka
00024 // non-const --> const
00025 //
00026 // Revision 1.4  1998/07/23 11:58:02  jtanaka
00027 // endif HEADER --> endif /* HEADER */
00028 //
00029 // Revision 1.3  1998/01/22 03:21:40  jtanaka
00030 // Updated from Tanaka san. New Interface etc.
00031 //
00032 // Revision 1.2  1997/10/24 07:05:09  katayama
00033 // Updated from Tanaka san. Bug fixes etc.
00034 //
00035 //
00036 // kmakemother of KFitter
00037 //
00038 // ver2.0  : 1998/01
00039 // ver3.0  : 1999/03
00040 //
00041 // author  : jtanaka
00042 // e-mail  : jtanaka@hep.phys.s.u-tokyo.ac.jp
00043 //
00044 #ifndef KMAKEMOTHER_H
00045 #define KMAKEMOTHER_H
00046 #include "kfitter/kfitterparticle.h"
00047 #include <vector>
00048 
00049 class kmakemother
00050 {
00051 public:
00052   kmakemother(void);
00053   ~kmakemother(void);
00054 
00055   //input interface
00056   void addTrack(const HepLorentzVector&, 
00057                 const HepPoint3D&,
00058                 const HepSymMatrix&,
00059                 const double,
00060                 const unsigned = KF_AFTER_FIT);
00061   void addTrack(const kfitterparticle&);
00062   void magneticField(const double);
00063   void vertex(const HepPoint3D&);
00064   void errVertex(const HepSymMatrix&);
00065   void correlation(const HepMatrix&);
00066   void correlation(void);
00067   void errVertexTrack(const HepMatrix&);
00068   void errVertexTrack(void);
00069   void atDecayPoint(void);
00070   void notDecayPoint(void);
00071   void beforeAfter(const unsigned);
00072 
00073   //output interface
00074   kfitterparticle   track(void);
00075   HepLorentzVector  momentum(void);
00076   HepPoint3D        position(void);
00077   HepSymMatrix      error(void);
00078 
00079   //main
00080   unsigned make(void);
00081 
00082 #if KF_WITH_OLD_INTERFACE
00083   void add_track(const HepLorentzVector &p, const Hep3Vector &x,
00084                  const HepSymMatrix &e, double c) { addTrack(p, static_cast<const HepPoint3D&>(x),e,c);}
00085   void add_track(const kfitterparticle &kp) { addTrack(kp); }
00086   void set_magneticfield(double m) { magneticField(m); }
00087   void set_vertex(const Hep3Vector &v) { vertex(static_cast<const HepPoint3D&>(v)); }
00088   void set_err_vertex(const HepSymMatrix& e) { errVertex(e); }
00089   void set_correlation(const HepMatrix &e) { correlation(e); }
00090   void set_correlation() { correlation(); }
00091   void set_vertex_track_correlation(const HepMatrix &e) { errVertexTrack(e); }
00092   void set_vertex_track_correlation() { errVertexTrack(); }
00093   void set_at_decaypoint() { atDecayPoint(); }
00094   void set_not_decaypoint(){ notDecayPoint(); }
00095 
00096   kfitterparticle   get_mother_track(){ return track(); }
00097   HepLorentzVector  get_4momentum()   { return momentum(); }
00098   Hep3Vector        get_position()    { return static_cast<Hep3Vector>(position()); }
00099   HepSymMatrix      get_err_track()   { return error(); }
00100 
00101   int start() { return static_cast<int>(make()); }
00102 #endif //KF_WITH_OLD_INTERFACE
00103 
00104 private:
00105   unsigned m_errorFlag;
00106   unsigned m_atDecayPoint;
00107   unsigned m_trackNum;
00108   unsigned m_errVertexFlag;
00109   unsigned m_correlationFlag;
00110   unsigned m_errVertexTrackFlag;
00111   unsigned m_beforeAfterFlag;
00112   double   m_magneticField;
00113 
00114   //...children
00115   std::vector<kfitterparticle> m_plist;
00116   std::vector<HepMatrix>       m_correlation;
00117   std::vector<HepMatrix>       m_errVertexTrack;
00118   
00119   //...vertex
00120   Hep3Vector              m_vertex;
00121   HepSymMatrix            m_errVertex;
00122   
00123   //...utilities
00124   void m_delMdelC(HepMatrix&);
00125   void m_error(HepSymMatrix&);
00126 
00127   //...mother
00128   double           m_charge;
00129   kfitterparticle  m_mother;
00130 };
00131 
00132 #endif /* KMAKEMOTHER_H */

Generated on Tue Apr 13 13:25:32 2004 for ATLAS JAPAN by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002