Main Page   Namespace List   Compound List   File List   Compound Members   File Members  

TrNode.h

Go to the documentation of this file.
00001 
00002 
00003 //   **************************************************************************
00004 //   *                                                                        *
00005 //   *                      ! ! ! A T T E N T I O N ! ! !                     *
00006 //   *                                                                        *
00007 //   *  This file was created automatically by GaudiObjDesc, please do not    *
00008 //   *  delete it or edit it by hand.                                         *
00009 //   *                                                                        *
00010 //   *  If you want to change this file, first change the corresponding       *
00011 //   *  xml-file and rerun the tools from GaudiObjDesc (or run make if you    *
00012 //   *  are using it from inside a Gaudi-package).                            *
00013 //   *                                                                        *
00014 //   **************************************************************************
00015 
00016 
00017 
00018 #ifndef TrEvent_TrNode_H
00019 #define TrEvent_TrNode_H 1
00020 
00021 // Include files
00022 #include "Kernel/CLHEPStreams.h"
00023 #include "GaudiKernel/ObjectList.h"
00024 #include "GaudiKernel/ObjectVector.h"
00025 #include "GaudiKernel/StreamBuffer.h"
00026 #include "Event/TrMeasurement.h"
00027 
00028 
00038 class TrNode
00039 {
00040 
00041 public: 
00042 
00043   enum Type {OTMeasurement,STMeasurement,TTMeasurement,VeloRMeasurement,VeloPhiMeasurement};   
00044 
00046   TrNode() 
00047     : m_type(0),
00048     m_residual(0.0),
00049     m_errResidual(0.0),
00050     m_measurement() {}
00051 
00053   virtual ~TrNode() {}
00054 
00056   virtual TrNode* clone() const;
00057 
00059   int type() const; 
00060 
00062   void setType(int value);
00063 
00065   double residual() const; 
00066 
00068   void setResidual(double value);
00069 
00071   double errResidual() const; 
00072 
00074   void setErrResidual(double value);
00075 
00077   const TrMeasurement* measurement() const; 
00078 
00080   TrMeasurement* measurement();
00081 
00083   void setMeasurement(TrMeasurement* value);
00084 
00086   friend StreamBuffer& operator<< (StreamBuffer& s, const TrNode& obj)
00087   {
00088     return obj.serialize(s);
00089   }
00090 
00092   friend StreamBuffer& operator>> (StreamBuffer& s, TrNode& obj)
00093   {
00094     return obj.serialize(s);
00095   }
00096 
00098   friend std::ostream& operator<< (std::ostream& s, const TrNode& obj)
00099   {
00100     return obj.fillStream(s);
00101   }
00102 
00104   virtual StreamBuffer& serialize(StreamBuffer& s) const;
00105 
00107   virtual StreamBuffer& serialize(StreamBuffer& s);
00108 
00110   virtual std::ostream& fillStream(std::ostream& s) const;
00111 
00112 protected: 
00113 
00114 private: 
00115 
00116   int            m_type;        
00117   double         m_residual;    
00118   double         m_errResidual; 
00119   TrMeasurement* m_measurement; 
00120 
00121 };
00122 
00123 // -----------------------------------------------------------------------------
00124 //   end of class
00125 // -----------------------------------------------------------------------------
00126 
00127 
00128 inline int TrNode::type() const 
00129 {
00130   return m_type;
00131 }
00132 
00133 inline void TrNode::setType(int value)
00134 {
00135   m_type = value; 
00136 }
00137 
00138 inline double TrNode::residual() const 
00139 {
00140   return m_residual;
00141 }
00142 
00143 inline void TrNode::setResidual(double value)
00144 {
00145   m_residual = value; 
00146 }
00147 
00148 inline double TrNode::errResidual() const 
00149 {
00150   return m_errResidual;
00151 }
00152 
00153 inline void TrNode::setErrResidual(double value)
00154 {
00155   m_errResidual = value; 
00156 }
00157 
00158 inline const TrMeasurement* TrNode::measurement() const 
00159 {
00160   return m_measurement;
00161 }
00162 
00163 inline TrMeasurement* TrNode::measurement()
00164 {
00165   return m_measurement;
00166 }
00167 
00168 inline void TrNode::setMeasurement(TrMeasurement* value)
00169 {
00170   m_measurement = value; 
00171 }
00172 
00173 inline StreamBuffer& TrNode::serialize(StreamBuffer& s) const 
00174 {
00175   s << m_type
00176     << (float)m_residual
00177     << (float)m_errResidual
00178     << m_measurement;
00179   return s;
00180 }
00181 
00182 inline StreamBuffer& TrNode::serialize(StreamBuffer& s)
00183 {
00184   float l_residual, l_errResidual;
00185   s >> m_type
00186     >> l_residual
00187     >> l_errResidual
00188     >> m_measurement;
00189   m_residual = l_residual;
00190   m_errResidual = l_errResidual;
00191   return s;
00192 }
00193 
00194 inline std::ostream& TrNode::fillStream(std::ostream& s) const
00195 {
00196   s << "{ "
00197     << " type:\t" << m_type << std::endl
00198     << "   residual:\t" << (float)m_residual << std::endl
00199     << "   errResidual:\t" << (float)m_errResidual << std::endl
00200     << "   measurement:\t" << m_measurement << " } ";
00201   return s;
00202 }
00203 
00204 
00205 #endif   

Generated on Tue Sep 28 18:11:17 2004 for New Track Event Model by doxygen 1.2.14 written by Dimitri van Heesch, © 1997-2002