00001 #ifndef MDCCALRECTRK_H 00002 #define MDCCALRECTRK_H 00003 00004 #include "MdcCalibAlg/MdcCalRecHit.h" 00005 00006 #include "EventModel/Event.h" 00007 #include "RawEvent/RawDataUtil.h" 00008 00009 #include "MdcRecEvent/RecMdcTrack.h" 00010 #include "MdcRecEvent/RecMdcKalTrack.h" 00011 #include "MdcRecEvent/RecMdcHit.h" 00012 #include "ReconEvent/ReconEvent.h" 00013 #include "Identifier/Identifier.h" 00014 #include "Identifier/MdcID.h" 00015 #include "CLHEP/Vector/LorentzVector.h" 00016 #include "MdcGeomSvc/IMdcGeomSvc.h" 00017 #include "MdcUtilitySvc/MdcUtilitySvc.h" 00018 00019 class MdcCalRecTrk { 00020 public: 00021 MdcCalRecTrk(int pid); 00022 ~MdcCalRecTrk(); 00023 00024 void setGeomSvc(IMdcGeomSvc* mdcGeomSvc) { m_mdcGeomSvc = mdcGeomSvc; } 00025 void setUtilSvc(IMdcUtilitySvc* mdcUtilitySvc) { m_mdcUtilitySvc = mdcUtilitySvc; } 00026 00027 void setRecTrk(RecMdcTrackCol::iterator it_trk); 00028 void setKalTrk(RecMdcKalTrackCol::iterator it_trk); 00029 00030 double getDr() const { return m_dr; } 00031 double getPhi0() const { return m_phi0; } 00032 double getKappa() const { return m_kappa; } 00033 double getDz() const { return m_dz; } 00034 double getTanLamda() const { return m_tanl; } 00035 double getPt() const { return m_pt; } 00036 double getP() const { return m_p; } 00037 double getChisq() const { return m_chisq; } 00038 int getNHits() const { return m_nhits; } 00039 HepLorentzVector getP4() const {return m_p4;} 00040 MdcCalRecHit* getRecHit(int index) const { return m_rechit[index]; } 00041 HepVector getHelix() const { return m_helix; } 00042 HepSymMatrix getHelixErr() const { return m_helixerr; } 00043 00044 bool m_fgNoiseRatio; 00045 bool fgNoiseRatio(double phi0); 00046 bool getFgNoiseRatio() const { return m_fgNoiseRatio; } 00047 00048 private: 00049 IMdcGeomSvc* m_mdcGeomSvc; 00050 IMdcUtilitySvc* m_mdcUtilitySvc; 00051 00052 int m_pid; 00053 double m_dr; 00054 double m_phi0; 00055 double m_kappa; 00056 double m_dz; 00057 double m_tanl; 00058 double m_pt; 00059 double m_p; 00060 double m_chisq; 00061 int m_nhits; 00062 HepLorentzVector m_p4; 00063 std::vector<MdcCalRecHit*> m_rechit; 00064 HepVector m_helix; 00065 HepSymMatrix m_helixerr; 00066 }; 00067 00068 #endif /* MDCCALRECTRK_H */