119 cout <<
" ---- Info: " <<
fEventNr << endl;
123 Int_t PDGCode = -2212;
126 int glI =
fTracks->GetEntriesFast();
128 Int_t counterGeaneTrk = 0;
130 for (Int_t
i = 0;
i < glI;
i++) {
131 TVector3 StartPos, StartPosErr, StartMom, StartMomErr, StartO, StartU,
137 TVector3 PosRecLMD(fFittedTrkP.GetX(), fFittedTrkP.GetY(),
139 if (fFittedTrkP.GetZ() > 1130)
141 TVector3 MomRecLMD(fFittedTrkP.GetPx(), fFittedTrkP.GetPy(),
142 fFittedTrkP.GetPz());
145 fFittedTrkP.SetPx(MomRecLMD.X());
146 fFittedTrkP.SetPy(MomRecLMD.Y());
147 fFittedTrkP.SetPz(MomRecLMD.Z());
148 double covMARS[6][6];
149 fFittedTrkP.GetMARSCov(covMARS);
150 TVector3 errMomRecLMD(
sqrt(covMARS[0][0]),
sqrt(covMARS[1][1]),
151 sqrt(covMARS[2][2]));
152 TVector3 errPosRecLMD(
sqrt(covMARS[3][3]),
sqrt(covMARS[4][4]),
153 sqrt(covMARS[5][5]));
155 StartPos = PosRecLMD;
156 StartPosErr = errPosRecLMD;
157 StartMom = MomRecLMD;
158 StartMomErr = errMomRecLMD;
165 double zbend[nstep] = {661, 660.5, 660., 659,
168 cout <<
"------------------------------------------" << endl;
169 cout <<
"StartPos:" << endl;
171 cout <<
"StartPosErr:" << endl;
174 cout <<
"StartMom: " << StartMom.Mag() << endl;
176 cout <<
"StartMomErr: " << StartMomErr.Mag() << endl;
181 Int_t size1 = clref1.GetEntriesFast();
183 FairTrackParP* fStartPst =
new FairTrackParP(fFittedTrkP);
184 for (
int js = 1; js < nstep; js++) {
187 FairTrackParP* fResPst =
200 FairTrackParH* fStart =
new (clref1[size1]) FairTrackParH(fStartPst, ierr);
202 Int_t size = clref.GetEntriesFast();
204 FairTrackParH* fRes =
new (clref[size]) FairTrackParH();
206 fPro->PropagateToPCA(1, -1);
207 Bool_t isProp =
fPro->Propagate(fStart, fRes, PDGCode);
226 TVector3 gPos(fRes->GetX(), fRes->GetY(), fRes->GetZ());
227 TVector3 gMom(fRes->GetPx(), fRes->GetPy(), fRes->GetPz());
229 TVector3 gErrPos(fRes->GetDX(), fRes->GetDY(), fRes->GetDZ());
230 TVector3 gErrMom(fRes->GetDPx(), fRes->GetDPy(), fRes->GetDPz());
235 cout <<
"gPos:" << endl;
239 cout <<
"gErrPos:" << endl;
244 cout <<
"gMom: " << gMom.Mag() << endl;
248 cout <<
"gErrMom: " << gErrMom.Mag() << endl;
253 cout <<
"================= %%%% ====================" << endl;
257 if (isProp == kTRUE) {
258 new ((*fTrackParFinal)[counterGeaneTrk])
259 FairTrackParH(*(fRes));
263 if (
fVerbose > 2) cout <<
"***** isProp TRUE *****" << endl;
266 cout <<
"!!! Back-propagation with GEANE didn't return result !!!"
268 cout <<
"StartPos:" << endl;
270 cout <<
"StartPosErr:" << endl;
273 cout <<
"StartMom: " << StartMom.Mag() << endl;
275 cout <<
"StartMomErr: " << StartMomErr.Mag() << endl;
278 new ((*fTrackParFinal)[counterGeaneTrk]) FairTrackParH();
286 if (
fVerbose > 2) cout <<
"PndLmdGeaneTask::Exec END!" << endl;
friend F32vec4 sqrt(const F32vec4 &a)
TClonesArray * fTrackParGeane
TClonesArray * fTrackParIni
TClonesArray * fTrackParFinal
FairTrackParP * PropToPlane(FairTrackParP *fStartPst, double zpos, int dir, bool &isProp)
FairTrackParP GetParamFirst()