00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TMDCWireHitMC_FLAG_
00014 #define TMDCWireHitMC_FLAG_
00015
00016 #ifdef TRKRECO_DEBUG_DETAIL
00017 #ifndef TRKRECO_DEBUG
00018 #define TRKRECO_DEBUG
00019 #endif
00020 #endif
00021
00022 #include <string>
00023
00024 #define HEP_SHORT_NAMES
00025 #include "CLHEP/Alist/AList.h"
00026 #include "CLHEP/Vector/ThreeVector.h"
00027 #ifndef CLHEP_POINT3D_H
00028 #include "CLHEP/Geometry/Point3D.h"
00029 #endif
00030 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00031 typedef HepGeom::Point3D<double> HepPoint3D;
00032 #endif
00033 #include "CLHEP/Geometry/Vector3D.h"
00034 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00035 typedef HepGeom::Vector3D<double> HepVector3D;
00036 #endif
00037 using namespace CLHEP;
00038 class TMDC;
00039 class TMDCWire;
00040 class TMDCWireHit;
00041 class TTrackHEP;
00042
00043 class MdcDat_mcwirhit;
00044
00046 class TMDCWireHitMC {
00047
00048 public:
00050 TMDCWireHitMC(const TMDCWire *, const TMDCWireHit *, MdcDat_mcwirhit *);
00051
00053 virtual ~TMDCWireHitMC();
00054
00055 public:
00057 float distance(void) const;
00058
00060 const HepPoint3D & hitPosition(void) const;
00061
00063 const HepPoint3D & entrance(void) const;
00064
00066 const HepVector3D & direction(void) const;
00067
00069 const Hep3Vector & momentum(void) const;
00070
00072 int leftRight(void) const;
00073
00075 MdcDat_mcwirhit * datcdc(void) const;
00076
00078 const TMDCWire * const wire(void) const;
00079
00081 const TTrackHEP * const hep(void) const;
00082
00084 const TMDCWireHit * const hit(void) const;
00085
00086 public:
00087
00088 private:
00089 const TMDCWire * _wire;
00090 const TMDCWireHit * _hit;
00091 HepPoint3D _position;
00092 HepPoint3D _entrance;
00093 HepVector3D _direction;
00094 Hep3Vector _momentum;
00095 float _distance;
00096 float _energy;
00097 int _leftRight;
00098 MdcDat_mcwirhit * _datcdc;
00099 const TTrackHEP * _hep;
00100
00101 friend class TMDC;
00102 };
00103
00104
00105
00106 #ifdef TMDCWireHitMC_NO_INLINE
00107 #define inline
00108 #else
00109 #undef inline
00110 #define TMDCWireHitMC_INLINE_DEFINE_HERE
00111 #endif
00112
00113 #ifdef TMDCWireHitMC_INLINE_DEFINE_HERE
00114
00115 inline
00116 float
00117 TMDCWireHitMC::distance(void) const {
00118 return _distance;
00119 }
00120
00121 inline
00122 const HepPoint3D &
00123 TMDCWireHitMC::hitPosition(void) const {
00124 return _position;
00125 }
00126
00127 inline
00128 const HepPoint3D &
00129 TMDCWireHitMC::entrance(void) const {
00130 return _entrance;
00131 }
00132
00133 inline
00134 const HepVector3D &
00135 TMDCWireHitMC::direction(void) const {
00136 return _direction;
00137 }
00138
00139 inline
00140 int
00141 TMDCWireHitMC::leftRight(void) const {
00142 return _leftRight;
00143 }
00144
00145 inline
00146 MdcDat_mcwirhit *
00147 TMDCWireHitMC::datcdc(void) const {
00148 return _datcdc;
00149 }
00150
00151 inline
00152 const TMDCWire * const
00153 TMDCWireHitMC::wire(void) const {
00154 return _wire;
00155 }
00156
00157 inline
00158 const TTrackHEP * const
00159 TMDCWireHitMC::hep(void) const {
00160 return _hep;
00161 }
00162
00163 inline
00164 const TMDCWireHit * const
00165 TMDCWireHitMC::hit(void) const {
00166 return _hit;
00167 }
00168
00169 inline
00170 const Hep3Vector &
00171 TMDCWireHitMC::momentum(void) const {
00172 return _momentum;
00173 }
00174
00175 #endif
00176
00177 #undef inline
00178
00179 #endif