1 #include "StMuFwdTrack.h"
4 #include "StEvent/StFwdTrack.h"
6 StMuFwdTrack::StMuFwdTrack() : mDidFitConverge(0),mDidFitConvergeFully(0),mNumberOfFailedPoints(0),mNumberOfSeedPoints(0),mNumberOfFitPoints(0),mChi2(0),mNDF(0),mPval(0),mCharge(0),mPrimaryMomentum(0,0,0),mIdTruth(0),mQATruth(0) {
10 void StMuFwdTrack::set(
StFwdTrack * evTrack) {
11 mDidFitConverge = evTrack->didFitConverge();
12 mDidFitConvergeFully = evTrack->didFitConvergeFully();
13 mNumberOfFailedPoints = evTrack->numberOfFailedPoints();
14 mNumberOfSeedPoints = evTrack->numberOfSeedPoints();
15 mNumberOfFitPoints = evTrack->numberOfFitPoints();
16 mChi2 = evTrack->chi2();
17 mNDF = evTrack->ndf();
18 mPval = evTrack->pval();
19 mCharge = evTrack->charge();
20 mPrimaryMomentum = TVector3( evTrack->momentum().x(), evTrack->momentum().y(), evTrack->momentum().z() );
22 mIdTruth = evTrack->idTruth();
23 mQATruth = evTrack->qaTruth();
26 for (
auto proj : evTrack->mProjections ){
27 mProjections.push_back(
28 StMuFwdTrackProjection( proj.mDetId, TVector3( proj.mXYZ.x(), proj.mXYZ.y(), proj.mXYZ.z() ), TVector3( proj.mMom.x(), proj.mMom.y(), proj.mMom.z() ), proj.mCov )
33 for (
auto sp : evTrack->mFTTPoints ){
35 StMuFwdTrackSeedPoint( TVector3( sp.mXYZ.x(), sp.mXYZ.y(), sp.mXYZ.z() ), sp.mSector, sp.mTrackId, sp.mCov )
40 for (
auto sp : evTrack->mFSTPoints ){
42 StMuFwdTrackSeedPoint( TVector3( sp.mXYZ.x(), sp.mXYZ.y(), sp.mXYZ.z() ), sp.mSector, sp.mTrackId, sp.mCov )
46 setDCA(evTrack->dca().x(), evTrack->dca().y(), evTrack->dca().z());
47 mIdTruth = evTrack->idTruth();
48 mQATruth = evTrack->qaTruth();
49 mVtxIndex = evTrack->vertexIndex();
55 int n=mEcalClusters.GetSize();
56 for(
int i=0; i<n; i++)
if(mEcalClusters[i]==clu)
return;
57 mEcalClusters.Add(clu);
60 int n=mHcalClusters.GetSize();
61 for(
int i=0; i<n; i++)
if(mHcalClusters[i]==clu)
return;
62 mHcalClusters.Add(clu);
68 TVector3 StMuFwdTrack::momentum()
const{
69 return mPrimaryMomentum;
75 TVector3 StMuFwdTrack::momentumAt(
size_t _id)
const{
76 if ( _id >= mProjections.size() )
77 return TVector3( 0, 0, 0 );
79 return mProjections[_id].mMom;
82 char StMuFwdTrack::charge()
const{
86 bool StMuFwdTrack::didFitConverge()
const {
87 return mDidFitConverge;
90 bool StMuFwdTrack::didFitConvergeFully()
const {
91 return mDidFitConvergeFully;
94 short StMuFwdTrack::numberOfFailedPoints()
const {
95 return mNumberOfFailedPoints;
98 double StMuFwdTrack::chi2()
const {
102 double StMuFwdTrack::ndf()
const {
106 double StMuFwdTrack::pval()
const {
110 short StMuFwdTrack::numberOfFitPoints()
const {
111 return mNumberOfFitPoints;
114 short StMuFwdTrack::numberOfSeedPoints()
const {
115 return mNumberOfSeedPoints;
137 bool StMuFwdTrack::getProjectionFor(
int detectorId,
141 for (
auto proj : mProjections ){
142 if (proj.mDetId == detectorId){
144 if ( count == index )