125 LOG(debug3) << GetName() <<
" : nofTofTracks " << nofTofTracks <<
" in event " << uEventIdx;
130 const Double_t* point;
132 Int_t TMul[10] = {10 * 0};
134 for (Int_t iOpt = 0; iOpt < 2; iOpt++)
135 for (Int_t iTrk = 0; iTrk < nofTofTracks; ++iTrk) {
142 if (
nullptr == tr)
continue;
146 if (iOpt == 0) TMul[Np]++;
151 TParticle* P =
new TParticle();
154 if (iCol > 4) iCol++;
155 track->SetAttLineAttMarker(
fTrList);
156 track->SetLineColor(iCol);
157 track->SetMarkerColor(iCol);
158 track->SetMarkerSize(2.);
162 TEveVector pos0 = TEveVector(tr->
GetFitX(0.), tr->
GetFitY(0.), 0.);
163 TEvePathMark* path0 =
new TEvePathMark();
165 track->AddPathMark(*path0);
167 Double_t pbuf[3], vbuf[3];
172 pbuf[2] = 1. / tr->
GetTt();
178 track->SetName(Form(
"TEveTrack %d", rt.fIndex));
182 Double_t beta, beta_err, res_x, res_y, res_t;
184 case 0: track->SetStdTitle();
break;
187 beta = (1 / tr->
GetTt()) / 29.98;
191 Form(
"%s\nChiSqDoF = %2.2f\nbeta = %1.3f +/- %1.3f", track->GetName(), tr->
GetChiSq(), beta, beta_err));
193 track->SetTitle(Form(
"%s\nChiSqDoF = %2.2f\nbeta = %1.3f", track->GetName(), tr->
GetChiSq(), beta));
196 track->SetStdTitle();
203 TEvePointSetArray* psa =
new TEvePointSetArray(Form(
"TEveTrack Points %d", i),
"");
204 psa->SetMarkerColor(iCol);
205 psa->SetMarkerSize(1.6);
207 psa->SetMarkerStyle(4);
209 psa->SetMarkerStyle(5);
210 psa->InitBins(
"Hits", Np, 0.5, Np + 0.5);
213 for (Int_t n = 0; n < Np; n++) {
218 psa->Fill(point[0], point[1], point[2], n + 1);
220 res_x = (point[0] - tr->
GetFitX(point[2])) / hit->
GetDx();
221 res_y = (point[1] - tr->
GetFitY(point[2])) / hit->
GetDy();
224 psa->GetBin(n + 1)->SetTitle(Form(
"%s\nPointId = %d\nResiduals:\nX = %1.3f\nY = %1.3f\nT = %1.3f",
225 track->GetName(), tr->
GetHitIndex(n), res_x, res_y, res_t));
230 psa->Fill(point[0], point[1], point[2], n + 1);
233 track->SetPoint(n + 1, point[0], point[1], point[2]);
238 TEveVector
pos = TEveVector(point[0], point[1], point[2]);
239 TEvePathMark* path =
new TEvePathMark();
241 path->fTime = point[3];
243 TEveVector Mom = TEveVector(P->Px(), P->Py(), P->Pz());
247 track->AddPathMark(*path);
248 if (iOpt == 1 && n == Np - 1) {
251 pointL[2] = point[2] * 1.2;
252 pointL[0] = tr->
GetFitX(pointL[2]);
253 pointL[1] = tr->
GetFitY(pointL[2]);
254 track->SetPoint(n + 2, pointL[0], pointL[1], pointL[2]);
255 TEveVector posL = TEveVector(pointL[0], pointL[1], pointL[2]);
256 TEvePathMark* pathL =
new TEvePathMark();
258 track->AddPathMark(*pathL);
261 LOG(debug4) <<
"Path marker added " << path;
268 track->SortPathMarksByTime();
270 LOG(debug3) << i <<
". track added: " << track->GetName();
272 for (Int_t i = 0; i <
fEveTrList->GetEntriesFast(); i++) {
281 cEventInfo = Form(
"ev# %d ",
fEventManager->GetCurrentEvent());
285 TString cTrackInfo =
"TrklMul: ";
286 for (Int_t i = 9; i > 0; i--)
287 if (TMul[i] > 0) cTrackInfo += Form(
"M%d %d/", i, TMul[i]);
289 TGLViewer*
v = gEve->GetDefaultGLViewer();
296 annt->SetText(cTrackInfo);
298 annt =
new TGLAnnotation(
v, cTrackInfo, 0.01, 0.78);
301 annt->SetTextSize(0.03);
302 annt->SetTextColor(4);
304 gEve->Redraw3D(kFALSE);