ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtEventDisplay
AtViewerManager.h
Go to the documentation of this file.
1
#ifndef ATVIEWERMANAGER_H
2
#define ATVIEWERMANAGER_H
3
4
#include "
AtDataObserver.h
"
5
#include "
AtRawEvent.h
"
6
#include "
AtTabInfo.h
"
7
#include "
AtViewerManagerSubject.h
"
8
9
#include <Rtypes.h>
10
#include <TString.h>
// for TString
11
12
#include <map>
// for map
13
#include <memory>
// for shared_ptr, unique_ptr
14
#include <vector>
15
16
class
AtEventSidebar
;
17
class
AtMap
;
// lines 29-29
18
class
AtTabBase
;
// lines 31-31
19
class
FairTask;
// lines 19-19
20
class
TBuffer;
// lines 20-20
21
class
TClass;
// lines 23-23
22
class
TMemberInspector;
// lines 26-26
23
namespace
DataHandling
{
24
class
AtSubject;
25
}
33
class
AtViewerManager
final :
DataHandling::AtObserver
{
34
private
:
35
using
TabVec = std::vector<std::unique_ptr<AtTabBase>>;
36
38
DataHandling::AtTreeEntry
fEntry{0};
//< Observing
39
DataHandling::AtBranch
fRawEventBranch{};
//< Not observing
40
DataHandling::AtBranch
fEventBranch{};
//< Not observing
41
DataHandling::AtBranch
fPatternEventBranch{};
//< Not observing
42
DataHandling::AtPadNum
fPadNum{-1};
//< Not Observing
43
44
AtEventSidebar
*fSidebar;
45
AtEventSidebar
*fBasebar;
46
47
std::shared_ptr<AtMap> fMap;
48
std::map<TString, std::vector<TString>> fBranchNames;
//< fBranchNames[type] = {list of branches}
49
TabVec fTabs;
50
51
bool
fCheckGood{
false
};
//< Check if the event is good and skip if not when using next and prev
52
std::unique_ptr<AtTabInfoFairRoot<AtRawEvent>> fCheckEvt{
nullptr
};
53
54
static
AtViewerManager
*fInstance;
55
56
public
:
57
AtViewerManager
(std::shared_ptr<AtMap> map);
58
~AtViewerManager
();
59
60
void
AddTask
(FairTask *task);
61
void
AddTab
(std::unique_ptr<AtTabBase> tab);
62
63
void
Init
();
64
virtual
void
Update
(
DataHandling::AtSubject
*)
override
;
65
66
AtMap
*
GetMap
() {
return
fMap.get(); }
67
AtEventSidebar
*
GetSidebar
() {
return
fSidebar; }
68
std::map<TString, std::vector<TString>>
const
&
GetBranchNames
()
const
{
return
fBranchNames; }
69
70
/*** Data handlers owned by AtViewerManager ***/
71
DataHandling::AtBranch
&
GetRawEventBranch
() {
return
fRawEventBranch; }
72
DataHandling::AtBranch
&
GetEventBranch
() {
return
fEventBranch; }
73
DataHandling::AtBranch
&
GetPatternEventBranch
() {
return
fPatternEventBranch; }
74
DataHandling::AtTreeEntry
&
GetCurrentEntry
() {
return
fEntry; }
75
DataHandling::AtPadNum
&
GetPadNum
() {
return
fPadNum; }
76
77
void
SetCheckBranch
(
DataHandling::AtBranch
&branch)
78
{
79
fCheckGood =
true
;
80
fCheckEvt = std::make_unique<AtTabInfoFairRoot<AtRawEvent>>(branch);
81
}
82
87
virtual
void
GotoEvent
(Int_t event) { fEntry.
Set
(event); }
88
void
NextEvent
();
89
void
PrevEvent
();
90
91
static
AtViewerManager
*
Instance
();
92
93
private
:
94
void
GenerateBranchLists();
95
void
GotoEventImpl();
96
97
ClassDef(
AtViewerManager
, 1);
98
};
99
100
#endif
AtMap
Definition:
AtMap.h:33
AtDataObserver.h
DataHandling::AtTreeEntry::Set
void Set(long entry)
Definition:
AtViewerManagerSubject.cxx:10
AtRawEvent.h
AtViewerManager::AddTask
void AddTask(FairTask *task)
Definition:
AtViewerManager.cxx:88
DataHandling::AtObserver
Definition:
AtDataObserver.h:12
AtViewerManager::GotoEvent
virtual void GotoEvent(Int_t event)
Definition:
AtViewerManager.h:87
AtViewerManager::AtViewerManager
AtViewerManager(std::shared_ptr< AtMap > map)
Definition:
AtViewerManager.cxx:48
DataHandling::AtBranch
Subject for the branch in the FairRoot tree.
Definition:
AtViewerManagerSubject.h:38
AtViewerManager::AddTab
void AddTab(std::unique_ptr< AtTabBase > tab)
Definition:
AtViewerManager.cxx:92
AtViewerManager::Init
void Init()
Definition:
AtViewerManager.cxx:97
AtViewerManager::PrevEvent
void PrevEvent()
Definition:
AtViewerManager.cxx:186
AtViewerManager::GetSidebar
AtEventSidebar * GetSidebar()
Definition:
AtViewerManager.h:67
DataHandling::AtSimpleType< int >
AtViewerManager::Instance
static AtViewerManager * Instance()
Definition:
AtViewerManager.cxx:43
AtViewerManager::~AtViewerManager
~AtViewerManager()
Definition:
AtViewerManager.cxx:82
AtViewerManager::SetCheckBranch
void SetCheckBranch(DataHandling::AtBranch &branch)
Definition:
AtViewerManager.h:77
AtViewerManager::GetRawEventBranch
DataHandling::AtBranch & GetRawEventBranch()
Definition:
AtViewerManager.h:71
AtViewerManager::NextEvent
void NextEvent()
Definition:
AtViewerManager.cxx:175
AtViewerManager::GetPatternEventBranch
DataHandling::AtBranch & GetPatternEventBranch()
Definition:
AtViewerManager.h:73
AtViewerManager::GetCurrentEntry
DataHandling::AtTreeEntry & GetCurrentEntry()
Definition:
AtViewerManager.h:74
AtViewerManager::GetPadNum
DataHandling::AtPadNum & GetPadNum()
Definition:
AtViewerManager.h:75
AtViewerManagerSubject.h
AtViewerManager::GetMap
AtMap * GetMap()
Definition:
AtViewerManager.h:66
AtViewerManager::GetEventBranch
DataHandling::AtBranch & GetEventBranch()
Definition:
AtViewerManager.h:72
DataHandling
Definition:
AtDataObserver.h:4
AtViewerManager::Update
virtual void Update(DataHandling::AtSubject *) override
Definition:
AtViewerManager.cxx:168
AtEventSidebar
Definition:
AtEventSidebar.h:15
AtViewerManager::GetBranchNames
std::map< TString, std::vector< TString > > const & GetBranchNames() const
Definition:
AtViewerManager.h:68
AtTabBase
Definition:
AtTabBase.h:27
AtViewerManager
Definition:
AtViewerManager.h:33
DataHandling::AtSubject
Definition:
AtDataSubject.h:24
DataHandling::AtTreeEntry
Subject for the entry number in the FairRoot tree.
Definition:
AtViewerManagerSubject.h:17
AtTabInfo.h
Generated on Sat Nov 11 2023 15:30:37 for ATTPCROOT by
1.8.18