59 cout <<
"BmnGlobalTrackDraw::Init()" << endl;
61 fTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(GetName())));
63 LOG(error) <<
"BmnGlobalTrackDraw::Init() branch GlobalTrack not "
64 "found! Task will be deactivated";
71 fUpstreamHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnUpstreamHit")));
72 fUpstreamTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnUpstreamTrack")));
74 fSiliconHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnSiliconHit")));
75 fSiliconTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnSiliconTrack")));
77 fGemHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnGemStripHit")));
78 fGemTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnGemTrack")));
80 fStsHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"StsHit")));
81 fStsTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"StsTrack")));
83 fStsVectorTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"StsVector")));
85 fCscHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnCSCHit")));
87 fTof1HitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnTof400Hit")));
88 fTof2HitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnTof700Hit")));
90 fDchHitList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnDchHit")));
91 fDchTrackList.reset(
static_cast<TClonesArray*
>(FairRootManager::Instance()->GetObject(
"BmnDchTrack")));
94 cout <<
"BmnGlobalTrackDraw::Init() get instance of MpdEventManager " << endl;
105 cout <<
" BmnGlobalTrackDraw::Exec " << endl;
111 bool operator()(
const FairHit* a,
const FairHit* b)
const {
return a->GetZ() < b->GetZ(); }
116 cout <<
"BmnGlobalTrackDraw::Exec " <<
i << endl;
119 const auto* pParamFirst = tr->GetParamFirst();
122 bool isPrimary = ((TMath::Abs(pParamFirst->GetX()) < 10) && (TMath::Abs(pParamFirst->GetY()) < 10)
123 && (TMath::Abs(pParamFirst->GetZ()) < 10));
134 pParamFirst->Momentum(mom);
135 Double_t px = mom.X(), py = mom.Y(), pz = mom.Z();
139 TParticle* P =
new TParticle(particlePDG,
i, -1, -1, -1, -1, px, py, pz, 0, pParamFirst->GetX(),
140 pParamFirst->GetY(), pParamFirst->GetZ(), 0);
145 auto* track =
new TEveTrack(P, particlePDG,
fTrPr);
147 track->SetLineColor(
fTrList->GetMainColor());
148 track->SetLineWidth(2);
150 multiset<FairHit*, PointCompare> track_points;
167 for (Int_t k = 0; k < silicon_track->GetNHits(); k++)
168 track_points.insert(
static_cast<FairHit*
>(
fSiliconHitList->UncheckedAt(silicon_track->GetHitIndex(k))));
174 for (Int_t k = 0; k < gem_track->GetNHits(); k++)
175 track_points.insert(
static_cast<FairHit*
>(
fGemHitList->UncheckedAt(gem_track->GetHitIndex(k))));
181 for (Int_t k = 0; k < sts_track->GetNStsHits(); k++)
182 track_points.insert(
static_cast<FairHit*
>(
fStsHitList->UncheckedAt(sts_track->GetStsHitIndex(k))));
188 for (Int_t k = 0; k < sts_track->GetNStsHits(); k++)
189 track_points.insert(
static_cast<FairHit*
>(
fStsHitList->UncheckedAt(sts_track->GetStsHitIndex(k))));
193 if (
fCscHitList != 0 && tr->GetCscHitIndex(0) > -1) {
194 track_points.insert(
static_cast<FairHit*
>(
fCscHitList->UncheckedAt(tr->GetCscHitIndex(0))));
199 track_points.insert(
static_cast<FairHit*
>(
fTof1HitList->UncheckedAt(tr->GetTof1HitIndex())));
204 track_points.insert(
static_cast<FairHit*
>(
fTof2HitList->UncheckedAt(tr->GetTof2HitIndex())));
210 for (Int_t k = 0; k < dch_track->
GetNHits(); k++)
215 for (
auto& hit : track_points) {
216 track->SetPoint(n, hit->GetX(), hit->GetY(), hit->GetZ());
218 auto* path =
new TEvePathMark();
219 TEveVector pos(hit->GetX(), hit->GetY(), hit->GetZ());
221 path->fTime = hit->GetTimeStamp();
223 TEveVector Mom(px, py, pz);
228 track->AddPathMark(*path);
231 cout <<
"Path marker added " << path << endl;
239 cout <<
"Track added " << track->GetName() << endl;
243 gEve->Redraw3D(kFALSE);
268 TString track_group =
"";
269 if ((group_name !=
nullptr) && (strcmp(group_name,
"")))
270 track_group += group_name;
272 if (track_group !=
"")
274 track_group += P->GetName();
276 if (track_group ==
"") {
277 LOG(error) <<
"BmnTrackDrawH::GetTrGroup() function parameteres are empty (null)";
283 TEveTrackList* TrListIn = (TEveTrackList*)
fEveTrList->At(
i);
284 if (strcmp(TrListIn->GetName(), track_group.Data()) == 0) {
292 fTrPr =
new TEveTrackPropagator();
296 if (group_name ==
nullptr)
300 track_group.Hash() % 9
302 fTrList->SetMainColor(new_color);