PandaRoot
PndSttIsochroneDraw.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 
23 #ifndef PndSttIsochroneDraw_H
24 #define PndSttIsochroneDraw_H
25 
26 #include "FairTask.h"
27 #include "TEveTrackPropagator.h"
28 #include "TEveElement.h"
29 #include "TEveBoxSet.h"
30 
31 #include "TEveArrow.h"
32 #include "TString.h"
33 #include "FairGeanePro.h"
34 
35 #include "FairRootManager.h"
36 #include "FairDataSourceI.h"
37 
38 #include "PndTrackCandDraw.h"
39 #include "PndGeoSttPar.h"
40 #include <vector>
41 class TEveTrackList;
42 class FairEventManager;
43 class TObjArray;
44 
45 class PndSttIsochroneDraw : public FairTask {
46 
47  public:
50 
56  PndSttIsochroneDraw(TString name, FairDataSourceI *dataSource = nullptr, Bool_t propagation = kFALSE, Int_t iVerbose = 1);
57 
59  virtual ~PndSttIsochroneDraw();
60 
62  void SetVerbose(Int_t iVerbose) { fVerbose = iVerbose; }
64  virtual void Exec(Option_t *option);
65  virtual InitStatus Init();
66  virtual void SetParContainers();
67 
69  virtual void Finish();
70  void Reset();
71  TEveTrackList *GetTrGroup(Int_t pid);
72  virtual Double_t GetTimeWindowPlus() { return fTimeWindowPlus; }
73  virtual Double_t GetTimeWindowMinus() { return fTimeWindowMinus; }
74 
75  virtual void SetTimeWindowMinus(Double_t val);
76  virtual void SetTimeWindowPlus(Double_t val);
77 
78  virtual void UseIsochroneTime() { fUseIsochroneTime = kTRUE; }
79 
80 
81  private:
82 
83  Double_t fTimeWindowPlus = -1.0;
84  Double_t fTimeWindowMinus = -1.0;
85  Double_t fStartTime = -1.0;
86  Bool_t fUseEventTime = kTRUE;
87  Bool_t fUseIsochroneTime = kFALSE;
88 
89  TClonesArray *fSttHitArray = nullptr;
90  TClonesArray *fSttTubeArray = nullptr;
91 
92  PndGeoSttPar *fSttParameters = nullptr;
93 
94  FairEventManager *fEventManager = nullptr;
95  TObjArray *fEveTrList = nullptr;
96  TString fEvent = nullptr;
97  TEveBoxSet *fListOfIsochrones = nullptr;
98  TEveBoxSet *fListOfTiltedIsochrones = nullptr;
99  TEveBoxSet *fListOfParallelIsochrones = nullptr;
100  // TEveElementList *fTrackCont;
101 
102  // PndMCDataCrawler* fCrawler;
103  TBranch *fEventHeaderBranch = nullptr;
104  FairDataSourceI *fDataSource = nullptr;
105  TString fBranchName = "STTHit";
106 
107  ClassDef(PndSttIsochroneDraw, 1);
108 };
109 
110 #endif
TEveTrackList * GetTrGroup(Int_t pid)
virtual void SetTimeWindowPlus(Double_t val)
virtual void SetParContainers()
virtual void Exec(Option_t *option)
virtual Double_t GetTimeWindowPlus()
Class to display stt hits as isochrone tubes in the FairEventDisplay.
virtual void UseIsochroneTime()
virtual InitStatus Init()
virtual ~PndSttIsochroneDraw()
void SetVerbose(Int_t iVerbose)
virtual Double_t GetTimeWindowMinus()
virtual void Finish()
virtual void SetTimeWindowMinus(Double_t val)