Skip to content

Commit d4f5b10

Browse files
DanielWielanekChristianTackeGSI
authored andcommitted
fix(eventdisplay): Fix wrong init order.
1 parent b4faaa9 commit d4f5b10

3 files changed

Lines changed: 22 additions & 12 deletions

File tree

examples/advanced/propagator/src/FairEveRecoTracksExample.cxx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/********************************************************************************
2-
* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
2+
* Copyright (C) 2020-2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
33
* *
44
* This software is distributed under the terms of the *
55
* GNU Lesser General Public Licence (LGPL) version 3, *
@@ -18,6 +18,7 @@
1818

1919
#include "FairEveRecoTrack.h"
2020
#include "FairEveTrack.h"
21+
#include "FairEventManager.h"
2122
#include "FairField.h"
2223
#include "FairHit.h"
2324
#include "FairMCTrack.h"
@@ -194,19 +195,22 @@ void FairEveRecoTracksExample::Repaint()
194195

195196
InitStatus FairEveRecoTracksExample::Init()
196197
{
197-
FairRootManager *mngr = FairRootManager::Instance();
198-
fContainerReco = (TClonesArray *)mngr->GetObject("FairTutPropTracks");
198+
auto status = FairEveTracks::Init();
199+
if (status != kSUCCESS)
200+
return status;
201+
FairRootManager& mngr = GetEventManager()->GetRootManager();
202+
fContainerReco = dynamic_cast<TClonesArray*>(mngr.GetObject("FairTutPropTracks"));
199203
if (fContainerReco == nullptr) {
200204
LOG(error) << "Reco traks not found";
201205
return kFATAL;
202206
}
203-
fHits1 = (TClonesArray *)mngr->GetObject("FairTutPropHits");
204-
fHits2 = (TClonesArray *)mngr->GetObject("FairTutPropHits2");
207+
fHits1 = dynamic_cast<TClonesArray*>(mngr.GetObject("FairTutPropHits"));
208+
fHits2 = dynamic_cast<TClonesArray*>(mngr.GetObject("FairTutPropHits2"));
205209
if (fHits1 == nullptr || fHits2 == nullptr) {
206210
LOG(error) << "Hits not found";
207211
return kFATAL;
208212
}
209-
fContainerSim = (TClonesArray *)mngr->GetObject("MCTrack");
213+
fContainerSim = dynamic_cast<TClonesArray*>(mngr.GetObject("MCTrack"));
210214
if (fContainerSim == nullptr) {
211215
LOG(warning) << "No branch with MC tracks";
212216
}
@@ -218,7 +222,7 @@ InitStatus FairEveRecoTracksExample::Init()
218222
}
219223
fRK = new FairRKPropagator(field);
220224
fPDG = TDatabasePDG::Instance();
221-
return FairEveTracks::Init();
225+
return kSUCCESS;
222226
}
223227

224228
void FairEveRecoTracksExample::SetDrawMC(Bool_t draw)

examples/common/eventdisplay/FairEveMCTracks.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ void FairEveMCTracks::Repaint()
145145

146146
InitStatus FairEveMCTracks::Init()
147147
{
148+
auto status = FairEveTracks::Init();
149+
if (status != kSUCCESS)
150+
return status;
148151
FairEventManager* eveManager = GetEventManager();
149152
FairRootManager* mngr = &(eveManager->GetRootManager());
150153
fContainer = dynamic_cast<TClonesArray*>(mngr->GetObject("MCTrack"));
@@ -165,7 +168,7 @@ InitStatus FairEveMCTracks::Init()
165168
}
166169
fRK = std::make_unique<FairRKPropagator>(field);
167170
fPDG = TDatabasePDG::Instance();
168-
return FairEveTracks::Init();
171+
return kSUCCESS;
169172
}
170173

171174
FairEveMCTracks::~FairEveMCTracks() = default;

fairroot/eventdisplay/tracks/FairEveGeoTracks.cxx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ FairEveGeoTracks::FairEveGeoTracks()
4747

4848
InitStatus FairEveGeoTracks::Init()
4949
{
50+
auto status = FairEveTracks::Init();
51+
if (status != kSUCCESS)
52+
return status;
5053
FairEventManager* eveManager = GetEventManager();
5154
auto& mngr = eveManager->GetRootManager();
5255
fContainer = dynamic_cast<TClonesArray*>(mngr.GetObject("GeoTracks"));
@@ -56,7 +59,7 @@ InitStatus FairEveGeoTracks::Init()
5659
}
5760
fBranch = mngr.GetInTree()->GetBranch("GeoTracks");
5861
FairGetEventTime::Instance().Init();
59-
return FairEveTracks::Init();
62+
return kSUCCESS;
6063
}
6164

6265
void FairEveGeoTracks::DrawTrack(Int_t id)
@@ -154,15 +157,15 @@ void FairEveGeoTracks::Repaint()
154157
{
155158
bool useGeoTrackHandler = false;
156159
if (FairRunAna::Instance()->IsTimeStamp() && fBranch != nullptr) {
157-
Double_t simTime = FairEventManager::Instance()->GetEvtTime();
160+
Double_t simTime = GetEventManager()->GetEvtTime();
158161
std::pair<int, double> evt = FairGetEventTime::Instance().GetEvent(simTime);
159162

160163
if (evt.first < 0) {
161164
fContainer->Clear();
162165
} else {
163166
fBranch->GetEvent(evt.first);
164167
}
165-
if (FairEventManager::Instance()->GetClearHandler()) {
168+
if (GetEventManager()->GetClearHandler()) {
166169
fGeoTrackHandler.Reset();
167170
}
168171
if (evt.first > -1)
@@ -176,7 +179,7 @@ void FairEveGeoTracks::Repaint()
176179
nTracks = fContainer->GetEntriesFast();
177180
}
178181
RemoveElements();
179-
FairEventManager::Instance()->GetTimeLimits(fTMin, fTMax);
182+
GetEventManager()->GetTimeLimits(fTMin, fTMax);
180183
if (fTMin > fTMax) { // wrong time limits draw entire tracks
181184
for (int iTrack = 0; iTrack < nTracks; iTrack++) {
182185
DrawTrack(iTrack);

0 commit comments

Comments
 (0)