00001 #ifndef DST_MUCTRACK_H 00002 #define DST_MUCTRACK_H 00003 #include "GaudiKernel/ObjectVector.h" 00004 #include "GaudiKernel/ContainedObject.h" 00005 #include "EventModel/EventModel.h" 00006 #include <vector> 00007 00008 using namespace std; 00009 00010 using namespace EventModel; 00011 extern const CLID &CLID_DstMucTrack; 00012 00013 //class MucTrack; 00014 class DstMucTrack : virtual public ContainedObject { 00015 00016 public: 00017 DstMucTrack() {} 00018 00020 //DstMucTrack& operator=(const MucTrack& source); 00021 00022 //void copy(const MucTrack* orig); 00023 00025 //DstMucTrack(const MucTrack& source); 00026 00027 virtual ~DstMucTrack() {} 00028 00029 virtual const CLID& clID() const { return DstMucTrack::classID();} 00030 static const CLID& classID() { return CLID_DstMucTrack; } 00031 00032 int trackId() const { return m_trackId ; } 00033 int id() const { return m_id; } 00034 int status() const { return m_status; } 00035 int type() const { return m_type; } 00036 00037 int startPart() const { return m_startPart; } // start position of track locates in which part 00038 int endPart() const { return m_endPart; } // end position of track locates in which part 00039 int brLastLayer() const { return m_brLastLayer; } // last layer with hits in barrel 00040 int ecLastLayer() const { return m_ecLastLayer; } // last layer with hits in end cap 00041 int numHits() const { return m_numHits; } // total hits on the track 00042 int numLayers() const { return m_numLayers; } // number of layers with hits 00043 int maxHitsInLayer() const { return m_maxHitsInLayer; } 00044 00045 double depth() const { return m_depth; } // depth of the track transport in iron 00046 double chi2() const { return m_chi2; } 00047 int dof() const { return m_dof; } 00048 double rms() const { return m_rms; } 00049 00050 double xPos() const { return m_xPos; } // position on the start of track in muc (vertex) 00051 double yPos() const { return m_yPos; } 00052 double zPos() const { return m_zPos; } 00053 00054 double xPosSigma() const { return m_xPosSigma; } 00055 double yPosSigma() const { return m_yPosSigma; } 00056 double zPosSigma() const { return m_zPosSigma; } 00057 00058 double px() const { return m_px; } // momentum on the start of track in muc 00059 double py() const { return m_py; } 00060 double pz() const { return m_pz; } 00061 00062 double distance() const { return m_distance;} 00063 double deltaPhi() const { return m_deltaPhi;} 00064 00065 vector<int> vecHits() const { return m_vecHits ;} 00066 00067 // Set 00068 void setTrackId(int trackId) { m_trackId = trackId ;} 00069 void setId(int id) { m_id = id ; } 00070 void setStatus(int st) { m_status = st; } 00071 void setType(int type) { m_type = type; } 00072 00073 void setStartPart(int part) {m_startPart = part; } 00074 void setEndPart(int part) {m_endPart = part; } 00075 void setBrLastLayer(int layer) {m_brLastLayer = layer; } 00076 void setEcLastLayer(int layer) {m_ecLastLayer = layer; } 00077 void setNumHits( int numHits) { m_numHits = numHits; } 00078 void setNumLayers(int numLayers) { m_numLayers = numLayers; } 00079 void setMaxHitsInLayer(int maxHits) { m_maxHitsInLayer = maxHits; } 00080 00081 void setDepth( double depth) { m_depth = depth; } 00082 void setChi2(double chi2) { m_chi2 = chi2; } 00083 void setDof(int dof) { m_dof = dof ; } 00084 void setRms(double rms) { m_rms = rms ; } 00085 00086 void setXPos(double x) { m_xPos = x; } 00087 void setYPos(double y) { m_yPos = y; } 00088 void setZPos(double z) { m_zPos = z; } 00089 00090 void setXPosSigma(double xsigma) { m_xPosSigma = xsigma; } 00091 void setYPosSigma(double ysigma) { m_yPosSigma = ysigma; } 00092 void setZPosSigma(double zsigma) { m_zPosSigma = zsigma; } 00093 00094 void setPx( double px) { m_px = px; } 00095 void setPy( double py) { m_py = py; } 00096 void setPz( double pz) { m_pz = pz; } 00097 00098 void setDistance( double dist){m_distance = dist; } 00099 void setDeltaPhi( double dphi){m_deltaPhi = dphi; } 00100 00101 void setVecHits(vector<int>& vecHits) { m_vecHits = vecHits; } 00102 00103 00104 protected: 00105 int m_trackId; // Track ID wensp Add 2005-10-19 00106 int m_id; // Muc Identifier 00107 int m_status; // Muc Status 00108 int m_type; // Method of judge? 00109 00110 int m_startPart; // In which part does the start position of track locate 00111 int m_endPart; // In which part does the end position of track locate 00112 int m_brLastLayer; // Last layer with hits in barrel 00113 int m_ecLastLayer; // Last layer with hits in endcap 00114 int m_numHits; // Number of hits on track 00115 int m_numLayers; // Number of layer with hits 00116 int m_maxHitsInLayer; // Max number of hits in a layer 00117 00118 double m_depth; // Depth of iron penetrated 00119 double m_chi2; // Fit parameters 00120 int m_dof; 00121 double m_rms; 00122 00123 double m_xPos; // x position of muc track vertex 00124 double m_yPos; // y position of muc track vertex 00125 double m_zPos; // z position of muc track vertex 00126 00127 double m_xPosSigma; // sigma of x position of muc track vertex in first gap local coordinate. 00128 double m_yPosSigma; // sigma of y ... 00129 double m_zPosSigma; // sigma of z ... ... so it' 0; 00130 00131 double m_px; // px on muc track vertex 00132 double m_py; // py on muc track vertex 00133 double m_pz; // pz on muc track vertex 00134 00135 double m_distance; 00136 double m_deltaPhi; 00137 00138 vector<int> m_vecHits; 00139 }; 00140 00141 typedef ObjectVector<DstMucTrack> DstMucTrackCol; 00142 #endif //NDST_DstMucTrack_H 00143