00001
00002 #include "StjeTrackListToStMuTrackFourVecList.h"
00003
00004 #include "StjTrackToTLorentzVector.h"
00005
00006 #include "../emulator/StMuTrackEmu.h"
00007 #include "../emulator/StMuTrackFourVec.h"
00008
00009 StjeTrackListToStMuTrackFourVecList::StjeTrackListToStMuTrackFourVecList()
00010 : _trackTo4p(*(new StjTrackToTLorentzVector)) { }
00011
00012
00013 FourList StjeTrackListToStMuTrackFourVecList::operator()(const StjTrackList& trackList)
00014 {
00015 FourList ret;
00016
00017 for(StjTrackList::const_iterator track = trackList.begin(); track != trackList.end(); ++track) {
00018
00019 StMuTrackEmu *trackEmu = createTrackEmu(*track);
00020
00021 TLorentzVector p4 = _trackTo4p(*track);
00022
00023 StMuTrackFourVec* pmu = new StMuTrackFourVec(trackEmu, 0, 0, p4, (*track).charge, (*track).trackIndex, kTpcId);
00024 ret.push_back(pmu);
00025 }
00026
00027 return ret;
00028 }
00029
00030 StMuTrackEmu* StjeTrackListToStMuTrackFourVecList::createTrackEmu(const StjTrack& track)
00031 {
00032 StMuTrackEmu *ret = new StMuTrackEmu();
00033
00034 TVector3 momentum;
00035 momentum.SetPtEtaPhi(track.pt, track.eta, track.phi);
00036
00037 ret->_px = momentum.Px() ;
00038 ret->_py = momentum.Py() ;
00039 ret->_pz = momentum.Pz() ;
00040 ret->_flag = track.flag ;
00041 ret->_nHits = track.nHits ;
00042 ret->_charge = track.charge ;
00043 ret->_nHitsPoss = track.nHitsPoss ;
00044 ret->_nHitsDedx = track.nHitsDedx ;
00045 ret->_nHitsFit = track.nHitsFit ;
00046 ret->_nSigmaPion = track.nSigmaPion ;
00047 ret->_nSigmaKaon = track.nSigmaKaon ;
00048 ret->_nSigmaProton = track.nSigmaProton ;
00049 ret->_nSigmaElectron = track.nSigmaElectron;
00050 ret->_Tdca = track.Tdca ;
00051 ret->_dcaX = track.dcaX ;
00052 ret->_dcaY = track.dcaY ;
00053 ret->_dcaZ = track.dcaZ ;
00054 ret->_dcaD = track.dcaD ;
00055 ret->_chi2 = track.chi2 ;
00056 ret->_chi2prob = track.chi2prob ;
00057 ret->_BField = track.BField ;
00058 ret->_bemcRadius = track.bemcRadius ;
00059 ret->_etaext = track.exitEta ;
00060 ret->_phiext = track.exitPhi ;
00061 ret->_exitTowerId = track.exitTowerId ;
00062 ret->_exitDetectorId = track.exitDetectorId;
00063 ret->_dEdx = track.dEdx ;
00064 ret->_beta = track.beta ;
00065 ret->_firstPoint = track.firstPoint ;
00066 ret->_lastPoint = track.lastPoint ;
00067 ret->_trackIndex = track.trackIndex ;
00068 ret->_id = track.id ;
00069 ret->_detectorId = track.detectorId ;
00070
00071 return ret;
00072 }