58 fVertex->SetXYZT(start.X(), start.Y(), start.Z(), start.T());
59 fTracks->ExpandCreateFast(fTotalTracksNo);
60 for (
int i = 0; i < fTotalTracksNo; i++) {
62 track->ResetTrack(i,
this);
64 track->SetChi2(glob->
GetChi2());
69 track->SetMomentum(track_param->
GetPx(), track_param->
GetPy(), track_param->
GetPz(), 0);
70 track->SetDCA(track_param->GetX() - fVertex->X(), track_param->GetY() - fVertex->Y(),
71 track_param->GetZ() - fVertex->Z());
74 if (track_param->GetQp() > 0) {
90 Hal::ToFTrack* tof = (Hal::ToFTrack*) track->
GetDetTrack(Hal::DetectorID::kTOF);
95 Double_t beta = track->GetTrackLenght() / t / (29.9792458);
96 Double_t p = track->GetMomentum().P();
97 Double_t m2 = p * p * (1. / beta / beta - 1.);
103 tof->SetMass2(Hal::ToFTrack::DummyVal());
104 tof->SetBeta(Hal::ToFTrack::DummyVal());
115 fVertex->SetXYZT(start.X(), start.Y(), start.Z(), start.T());
116 fTracks->ExpandCreateFast(fTotalTracksNo);
118 for (
int i = 0; i < fTotalTracksNo; i++) {
119 AnalysisTree::Track p = container->
GetVtxTracks()->GetChannel(i);
120 AnalysisTree::ShortInt_t match = container->
GetVtx2ToFMatch()->GetMatchDirect(i);
122 track->ResetTrack(i,
this);
123 track->SetChi2(p.GetField<
float>(ids.
vtx_chi2));
125 track->SetMomentum(p.GetPx(), p.GetPy(), p.GetPz(), 0);
129 track->SetCharge(p.GetField<
int>(ids.
vtx_q));
131 Hal::ToFTrack* tof = (Hal::ToFTrack*) track->
GetDetTrack(Hal::DetectorID::kTOF);
132 if (match == AnalysisTree::UndefValueShort) {
134 tof->SetMass2(Hal::ToFTrack::DummyVal());
135 tof->SetBeta(Hal::ToFTrack::DummyVal());
139 AnalysisTree::Hit tof_hit = container->
GetTofHits()->GetChannel(match);
140 Double_t P = track->GetMomentum().P();
141 Double_t m2 = tof_hit.GetField<
float>(ids.
tof_mass2);
142 const TLorentzVector& vec = track->GetMomentum();
143 Double_t mom2 = vec.Px() * vec.Px() + vec.Py() * vec.Py() + vec.Pz() * vec.Pz();
144 Double_t E = TMath::Sqrt(mom2 + m2);
145 Double_t beta = P / E;