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 @@
/********************************************************************************
* Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
// -------------------------------------------------------------------------
......@@ -36,7 +36,6 @@
#include <TEveTrackPropagator.h> // for TEveTrackPropagator
#include <TEveVector.h> // for TEveVector, TEveVectorT
#include <TGenericClassInfo.h> // for TGenericClassInfo
#include <TObjArray.h> // for TObjArray
#include <TParticle.h> // for TParticle
#include <TString.h> // for TString
#include <TVector3.h> // for TVector3
......@@ -44,57 +43,6 @@
#include <stdio.h> // for sprintf
#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()
{
......@@ -111,6 +59,7 @@ InitStatus CbmRecoTracks::Init()
fTrdHits = (TClonesArray*) fManager->GetObject("TrdHit");
fTrdTracks = (TClonesArray*) fManager->GetObject("TrdTrack");
fTofHits = (TClonesArray*) fManager->GetObject("TofHit");
fTofTracks = (TClonesArray*) fManager->GetObject("TofTrack");
if (fGlobalTracks == 0) {
LOG(error) << "FairMCTracks::Init() branch " << GetName()
......@@ -217,7 +166,8 @@ void CbmRecoTracks::Exec(Option_t* /*option*/)
Int_t richId = globalTrack->GetRichRingIndex();
Int_t muchId = globalTrack->GetMuchTrackIndex();
Int_t trdId = globalTrack->GetTrdTrackIndex();
Int_t tofId = globalTrack->GetTofHitIndex();
Int_t tofId = globalTrack->GetTofTrackIndex();
Int_t tofHitId = globalTrack->GetTofHitIndex();
if (0 > stsId) continue;
......@@ -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 < 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);
LOG(debug3) << "track added " << eveTrack->GetName();
......
......@@ -5,8 +5,8 @@
/********************************************************************************
* Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence version 3 (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
// -------------------------------------------------------------------------
......@@ -32,6 +32,7 @@
#include <TClonesArray.h> // IWYU pragma: keep needed by cliong
#include <TEveVector.h> // for TEveVector
#include <TObjArray.h> // for TObjArray, needed for FairRoot > v18.8.0
#include <TString.h> // for TString
class CbmPixelHit;
......@@ -40,7 +41,6 @@ class CbmTrack;
class FairEventManager;
class TEveTrack;
class TEveTrackList;
class TObjArray;
class TParticle;
class TEveTrackPropagator;
......@@ -48,14 +48,14 @@ class CbmRecoTracks : public FairTask {
public:
/** Default constructor **/
CbmRecoTracks();
CbmRecoTracks() : CbmRecoTracks("FairMCTracks", 0) {}
/** Standard constructor
*@param name Name of task
*@param iVerbose Verbosity level
**/
CbmRecoTracks(const char* name, Int_t iVerbose = 1);
CbmRecoTracks(const char* name, Int_t iVerbose = 1) : FairTask(name, iVerbose) {}
/** Destructor **/
virtual ~CbmRecoTracks();
......@@ -77,27 +77,28 @@ protected:
void HandleTrack(TEveTrack* eveTrack, Int_t& n, const CbmTrack* recoTrack);
void HandleStsTrack(TEveTrack* eveTrack, Int_t& n, const CbmStsTrack* stsTrack);
TClonesArray* fGlobalTracks;
TClonesArray* fMvdHits;
TClonesArray* fStsHits;
TClonesArray* fStsTracks;
TClonesArray* fRichRings;
TClonesArray* fRichHits;
TClonesArray* fMuchPixelHits;
TClonesArray* fMuchTracks;
TClonesArray* fTrdHits;
TClonesArray* fTrdTracks;
TClonesArray* fTofHits;
TEveTrackPropagator* fTrPr;
FairEventManager* fEventManager; //!
TObjArray* fEveTrList;
TString fEvent; //!
TEveTrackList* fTrList; //!
TClonesArray* fGlobalTracks = nullptr;
TClonesArray* fMvdHits = nullptr;
TClonesArray* fStsHits = nullptr;
TClonesArray* fStsTracks = nullptr;
TClonesArray* fRichRings = nullptr;
TClonesArray* fRichHits = nullptr;
TClonesArray* fMuchPixelHits = nullptr;
TClonesArray* fMuchTracks = nullptr;
TClonesArray* fTrdHits = nullptr;
TClonesArray* fTrdTracks = nullptr;
TClonesArray* fTofHits = nullptr;
TClonesArray* fTofTracks = nullptr;
TEveTrackPropagator* fTrPr = nullptr;
FairEventManager* fEventManager = nullptr; //!
TObjArray* fEveTrList = new TObjArray(16);
TString fEvent = ""; //!
TEveTrackList* fTrList = nullptr; //!
//TEveElementList *fTrackCont;
Double_t MinEnergyLimit;
Double_t MaxEnergyLimit;
Double_t PEnergy;
Double_t MinEnergyLimit = -1.;
Double_t MaxEnergyLimit = -1.;
Double_t PEnergy = -1.;
private:
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