26 #include <TDatabasePDG.h>
27 #include <TLorentzVector.h>
28 #include <TParticle.h>
29 #include <TParticlePDG.h>
31 #include "FairTrackParam.h"
41 #include "CbmTofHit.h"
60 : TNamed(), fMomentum(), fPosition() {
68 : TNamed(name, title), fMomentum(), fPosition() {
80 , fPdgCode(fastTrk->GetPdgCode())
81 , fLabel(fastTrk->GetFirstMother())
89 TParticlePDG* mcPart = fastTrk->GetPDG(0);
90 if (mcPart)
fCharge = mcPart->Charge() / 3;
106 FairTrackParam* richproj,
111 , fGlblTrackIndex(gIndex)
113 , fMuchTrack(muchtrk)
115 , fRichRing(richring)
118 , fStsTrackMatch(stsmatch)
119 , fMuchTrackMatch(muchmatch)
120 , fTrdTrackMatch(trdmatch)
121 , fRichRingMatch(richmatch)
122 , fRichProj(richproj)
123 , fMvdEntrance(new FairTrackParam())
130 TMath::Power(TDatabasePDG::Instance()->GetParticle(11)->Mass(), 2);
143 fExtrapolator->Extrapolate(&litParamIn, &litParamOut, zMvd, NULL);
154 ppar->GetX(), ppar->GetY(), ppar->GetZ(), TMath::Sqrt(m2));
155 fCharge = (ppar->GetQp() > 0. ? +1. : -1.);
166 : TNamed(track.GetName(), track.GetTitle())
167 , fPrimVertex(track.fPrimVertex)
168 , fGlblTrack(track.GetGlobalTrack())
169 , fGlblTrackIndex(track.GetGlobalIndex())
170 , fStsTrack(track.fStsTrack)
171 , fMuchTrack(track.fMuchTrack)
172 , fTrdTrack(track.fTrdTrack)
173 , fRichRing(track.GetRichRing())
174 , fTofHit(track.GetTofHit())
175 , fMCTrack(track.GetMCTrack())
180 , fRichProj(track.GetRichProj())
181 , fMvdEntrance(track.GetMvdEntrance())
182 , fMomentum(track.fMomentum)
183 , fPosition(track.fPosition)
184 , fChi2Vtx(track.ChiToVertex())
185 , fCharge(track.Charge())
186 , fPdgCode(track.PdgCode())
187 , fLabel(track.GetLabel())
188 , fWeight(track.GetWeight())
189 , fFastTrack(track.fFastTrack) {
249 Bool_t refitMassAssump) {
254 const Double_t mpdg1 = TDatabasePDG::Instance()->GetParticle(pdg1)->Mass();
255 const Double_t mpdg2 = TDatabasePDG::Instance()->GetParticle(pdg2)->Mass();
256 const Double_t cpdg1 =
257 TDatabasePDG::Instance()->GetParticle(pdg1)->Charge() * 3;
258 const Double_t cpdg2 =
259 TDatabasePDG::Instance()->GetParticle(pdg2)->Charge() * 3;
267 }
else if (
fCharge * cpdg2 < 0) {
271 Error(
"SetMassHypo",
"via STS charge went wrong!");
290 ppar->GetX(), ppar->GetY(), ppar->GetZ(), TMath::Sqrt(m2));
291 fCharge = (ppar->GetQp() > 0. ? +1. : -1.);
314 vector<CbmStsTrack> stsTracks;
317 vector<L1FieldRegion> vField;
318 vector<float> chiPrim;
319 vector<int> pidHypos;
320 pidHypos.push_back(pidHypo);
326 if (pidHypo) fPFFitter.
Fit(stsTracks, pidHypos);
334 const FairTrackParam* vtxTrack = stsTracks[0].GetParamFirst();
335 if (!vtxTrack) Error(
"Refit",
"No track param found!");
339 vtxTrack->Momentum(mom);
343 vtxTrack->Position(
pos);
347 fCharge = (vtxTrack->GetQp() > 0. ? +1. : -1.);
369 Double_t c[3] = {ppar->GetCovariance(0, 0),
370 ppar->GetCovariance(1, 0),
371 ppar->GetCovariance(1, 1)};
376 Double_t
d = c[0] * c[2] - c[1] * c[1];
377 Double_t chi = TMath::Sqrt(TMath::Abs(
378 0.5 * (dx * dx * c[0] - 2 * dx * dy * c[1] + dy * dy * c[2]) /
d));
379 Bool_t isNull = (TMath::Abs(
d) < 1.e-20);