Skip to content
Snippets Groups Projects
Commit dfd322b8 authored by Pierre-Alain Loizeau's avatar Pierre-Alain Loizeau Committed by Florian Uhlig
Browse files

[Evt display] Fixes to pre-existing event displays

- Evt disp: Fix crash due to uninitialized var + related modern C++ updates
  - Remove old style constructors
  - Use chained constructors
  - Initialize all members to default in header file, solving crash in Reset method due to uninitialized fEveTrList if no name provided to constructor
- Add draw of TOF part of global track if present
parent e715c5e0
No related branches found
No related tags found
1 merge request!1119Event display: fixes for event based mode + new event display for timeslices w/ events + example for mCBM
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
/******************************************************************************** /********************************************************************************
* Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* * * *
* This software is distributed under the terms of the * * This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, * * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* copied verbatim in the file "LICENSE" * * copied verbatim in the file "LICENSE" *
********************************************************************************/ ********************************************************************************/
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include <TEveTrackPropagator.h> // for TEveTrackPropagator #include <TEveTrackPropagator.h> // for TEveTrackPropagator
#include <TEveVector.h> // for TEveVector, TEveVectorT #include <TEveVector.h> // for TEveVector, TEveVectorT
#include <TGenericClassInfo.h> // for TGenericClassInfo #include <TGenericClassInfo.h> // for TGenericClassInfo
#include <TObjArray.h> // for TObjArray
#include <TParticle.h> // for TParticle #include <TParticle.h> // for TParticle
#include <TString.h> // for TString #include <TString.h> // for TString
#include <TVector3.h> // for TVector3 #include <TVector3.h> // for TVector3
...@@ -44,57 +43,6 @@ ...@@ -44,57 +43,6 @@
#include <stdio.h> // for sprintf #include <stdio.h> // for sprintf
#include <string.h> // for strcmp #include <string.h> // for strcmp
// ----- Default constructor -------------------------------------------
CbmRecoTracks::CbmRecoTracks()
: FairTask("FairMCTracks", 0)
, fGlobalTracks(nullptr)
, fMvdHits(nullptr)
, fStsHits(nullptr)
, fStsTracks(nullptr)
, fRichRings(nullptr)
, fRichHits(nullptr)
, fMuchPixelHits(nullptr)
, fMuchTracks(nullptr)
, fTrdHits(nullptr)
, fTrdTracks(nullptr)
, fTofHits(nullptr)
, fTrPr(nullptr)
, fEventManager(nullptr)
, fEveTrList(nullptr)
, fEvent("")
, fTrList(nullptr)
, MinEnergyLimit(-1.)
, MaxEnergyLimit(-1.)
, PEnergy(-1.)
{
}
// -------------------------------------------------------------------------
// ----- Standard constructor ------------------------------------------
CbmRecoTracks::CbmRecoTracks(const char* name, Int_t iVerbose)
: FairTask(name, iVerbose)
, fGlobalTracks(nullptr)
, fMvdHits(nullptr)
, fStsHits(nullptr)
, fStsTracks(nullptr)
, fRichRings(nullptr)
, fRichHits(nullptr)
, fMuchPixelHits(nullptr)
, fMuchTracks(nullptr)
, fTrdHits(nullptr)
, fTrdTracks(nullptr)
, fTofHits(nullptr)
, fTrPr(nullptr)
, fEventManager(nullptr)
, fEveTrList(new TObjArray(16))
, fEvent("")
, fTrList(nullptr)
, MinEnergyLimit(-1.)
, MaxEnergyLimit(-1.)
, PEnergy(-1.)
{
}
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
InitStatus CbmRecoTracks::Init() InitStatus CbmRecoTracks::Init()
{ {
...@@ -111,6 +59,7 @@ InitStatus CbmRecoTracks::Init() ...@@ -111,6 +59,7 @@ InitStatus CbmRecoTracks::Init()
fTrdHits = (TClonesArray*) fManager->GetObject("TrdHit"); fTrdHits = (TClonesArray*) fManager->GetObject("TrdHit");
fTrdTracks = (TClonesArray*) fManager->GetObject("TrdTrack"); fTrdTracks = (TClonesArray*) fManager->GetObject("TrdTrack");
fTofHits = (TClonesArray*) fManager->GetObject("TofHit"); fTofHits = (TClonesArray*) fManager->GetObject("TofHit");
fTofTracks = (TClonesArray*) fManager->GetObject("TofTrack");
if (fGlobalTracks == 0) { if (fGlobalTracks == 0) {
LOG(error) << "FairMCTracks::Init() branch " << GetName() LOG(error) << "FairMCTracks::Init() branch " << GetName()
...@@ -217,7 +166,8 @@ void CbmRecoTracks::Exec(Option_t* /*option*/) ...@@ -217,7 +166,8 @@ void CbmRecoTracks::Exec(Option_t* /*option*/)
Int_t richId = globalTrack->GetRichRingIndex(); Int_t richId = globalTrack->GetRichRingIndex();
Int_t muchId = globalTrack->GetMuchTrackIndex(); Int_t muchId = globalTrack->GetMuchTrackIndex();
Int_t trdId = globalTrack->GetTrdTrackIndex(); Int_t trdId = globalTrack->GetTrdTrackIndex();
Int_t tofId = globalTrack->GetTofHitIndex(); Int_t tofId = globalTrack->GetTofTrackIndex();
Int_t tofHitId = globalTrack->GetTofHitIndex();
if (0 > stsId) continue; if (0 > stsId) continue;
...@@ -248,7 +198,9 @@ void CbmRecoTracks::Exec(Option_t* /*option*/) ...@@ -248,7 +198,9 @@ void CbmRecoTracks::Exec(Option_t* /*option*/)
if (-1 < trdId) HandleTrack(eveTrack, n, static_cast<const CbmTrack*>(fTrdTracks->At(trdId))); if (-1 < trdId) HandleTrack(eveTrack, n, static_cast<const CbmTrack*>(fTrdTracks->At(trdId)));
if (-1 < tofId) HandlePixelHit(eveTrack, n, static_cast<const CbmPixelHit*>(fTofHits->At(tofId))); if (-1 < tofId) HandleTrack(eveTrack, n, static_cast<const CbmTrack*>(fTofTracks->At(tofId)));
else if (-1 < tofHitId)
HandlePixelHit(eveTrack, n, static_cast<const CbmPixelHit*>(fTofHits->At(tofHitId)));
fTrList->AddElement(eveTrack); fTrList->AddElement(eveTrack);
LOG(debug3) << "track added " << eveTrack->GetName(); LOG(debug3) << "track added " << eveTrack->GetName();
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
/******************************************************************************** /********************************************************************************
* Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* * * *
* This software is distributed under the terms of the * * This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, * * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* copied verbatim in the file "LICENSE" * * copied verbatim in the file "LICENSE" *
********************************************************************************/ ********************************************************************************/
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <TClonesArray.h> // IWYU pragma: keep needed by cliong #include <TClonesArray.h> // IWYU pragma: keep needed by cliong
#include <TEveVector.h> // for TEveVector #include <TEveVector.h> // for TEveVector
#include <TObjArray.h> // for TObjArray, needed for FairRoot > v18.8.0
#include <TString.h> // for TString #include <TString.h> // for TString
class CbmPixelHit; class CbmPixelHit;
...@@ -40,7 +41,6 @@ class CbmTrack; ...@@ -40,7 +41,6 @@ class CbmTrack;
class FairEventManager; class FairEventManager;
class TEveTrack; class TEveTrack;
class TEveTrackList; class TEveTrackList;
class TObjArray;
class TParticle; class TParticle;
class TEveTrackPropagator; class TEveTrackPropagator;
...@@ -48,14 +48,14 @@ class CbmRecoTracks : public FairTask { ...@@ -48,14 +48,14 @@ class CbmRecoTracks : public FairTask {
public: public:
/** Default constructor **/ /** Default constructor **/
CbmRecoTracks(); CbmRecoTracks() : CbmRecoTracks("FairMCTracks", 0) {}
/** Standard constructor /** Standard constructor
*@param name Name of task *@param name Name of task
*@param iVerbose Verbosity level *@param iVerbose Verbosity level
**/ **/
CbmRecoTracks(const char* name, Int_t iVerbose = 1); CbmRecoTracks(const char* name, Int_t iVerbose = 1) : FairTask(name, iVerbose) {}
/** Destructor **/ /** Destructor **/
virtual ~CbmRecoTracks(); virtual ~CbmRecoTracks();
...@@ -77,27 +77,28 @@ protected: ...@@ -77,27 +77,28 @@ protected:
void HandleTrack(TEveTrack* eveTrack, Int_t& n, const CbmTrack* recoTrack); void HandleTrack(TEveTrack* eveTrack, Int_t& n, const CbmTrack* recoTrack);
void HandleStsTrack(TEveTrack* eveTrack, Int_t& n, const CbmStsTrack* stsTrack); void HandleStsTrack(TEveTrack* eveTrack, Int_t& n, const CbmStsTrack* stsTrack);
TClonesArray* fGlobalTracks; TClonesArray* fGlobalTracks = nullptr;
TClonesArray* fMvdHits; TClonesArray* fMvdHits = nullptr;
TClonesArray* fStsHits; TClonesArray* fStsHits = nullptr;
TClonesArray* fStsTracks; TClonesArray* fStsTracks = nullptr;
TClonesArray* fRichRings; TClonesArray* fRichRings = nullptr;
TClonesArray* fRichHits; TClonesArray* fRichHits = nullptr;
TClonesArray* fMuchPixelHits; TClonesArray* fMuchPixelHits = nullptr;
TClonesArray* fMuchTracks; TClonesArray* fMuchTracks = nullptr;
TClonesArray* fTrdHits; TClonesArray* fTrdHits = nullptr;
TClonesArray* fTrdTracks; TClonesArray* fTrdTracks = nullptr;
TClonesArray* fTofHits; TClonesArray* fTofHits = nullptr;
TEveTrackPropagator* fTrPr; TClonesArray* fTofTracks = nullptr;
FairEventManager* fEventManager; //! TEveTrackPropagator* fTrPr = nullptr;
TObjArray* fEveTrList; FairEventManager* fEventManager = nullptr; //!
TString fEvent; //! TObjArray* fEveTrList = new TObjArray(16);
TEveTrackList* fTrList; //! TString fEvent = ""; //!
TEveTrackList* fTrList = nullptr; //!
//TEveElementList *fTrackCont; //TEveElementList *fTrackCont;
Double_t MinEnergyLimit; Double_t MinEnergyLimit = -1.;
Double_t MaxEnergyLimit; Double_t MaxEnergyLimit = -1.;
Double_t PEnergy; Double_t PEnergy = -1.;
private: private:
CbmRecoTracks(const CbmRecoTracks&); CbmRecoTracks(const CbmRecoTracks&);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment