ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtEventDisplay
AtTabs
AtTabInfoTree.h
Go to the documentation of this file.
1
#ifndef ATTABINFOTREE_H
2
#define ATTABINFOTREE_H
3
4
#include "
AtDataObserver.h
"
// for Observer
5
#include "
AtTabInfo.h
"
// for AtTabInfoBase
6
#include "
AtViewerManagerSubject.h
"
// for AtTreeEntry
7
8
#include <TFile.h>
9
#include <TString.h>
// for TString
10
#include <TTree.h>
// for TTree
11
#include <TTreeReader.h>
// for TTreeReader
12
#include <TTreeReaderValue.h>
// for TTreeReaderValue
13
14
#include <memory>
// for unique_ptr, make_unique
15
#include <string>
16
17
namespace
DataHandling
{
18
class
AtSubject;
19
}
20
29
class
AtTabInfoTree
:
public
AtTabInfoBase
,
public
DataHandling::AtObserver
{
30
protected
:
31
TTreeReader
fReader
;
32
std::unique_ptr<TFile>
fFile
{
nullptr
};
//< Pointer for if we are responsible for the file w/ tree
33
DataHandling::AtTreeEntry
&
fEntryNumber
;
34
35
public
:
36
AtTabInfoTree
(TString tree, TString fileName,
DataHandling::AtTreeEntry
&entryNumber);
37
AtTabInfoTree
(TTree *tree,
DataHandling::AtTreeEntry
&entryNumber);
38
~AtTabInfoTree
() {
fEntryNumber
.
Detach
(
this
); }
39
40
std::string
GetDefaultName
()
override
{
return
fReader
.GetTree()->GetName(); }
41
void
Update
(
DataHandling::AtSubject
*changedSubject)
override
;
42
43
TTreeReader &
GetReader
() {
return
fReader
; }
44
TTree *
GetTree
() {
return
fReader
.GetTree(); }
45
};
46
54
template
<
typename
T>
55
class
AtTabInfoBranch
:
public
AtTabInfoBase
{
56
protected
:
57
TTreeReaderValue<T>
fDetector
;
58
std::shared_ptr<AtTabInfoTree>
fTree
;
59
60
public
:
61
AtTabInfoBranch
(std::shared_ptr<AtTabInfoTree> tree, TString branchName)
62
:
AtTabInfoBase
(),
fDetector
(tree->GetReader(), branchName),
fTree
(tree)
63
{
64
}
65
66
T *
GetInfo
() {
return
fDetector
->Get(); }
67
68
std::string
GetDefaultName
()
override
{
return
T::Class_Name(); }
69
};
70
71
#endif
AtDataObserver.h
AtTabInfoTree
Tab Info object for handling a non-FairRoot TTree.
Definition:
AtTabInfoTree.h:29
DataHandling::AtObserver
Definition:
AtDataObserver.h:12
AtTabInfoBranch::fDetector
TTreeReaderValue< T > fDetector
Definition:
AtTabInfoTree.h:57
AtTabInfoBranch::GetDefaultName
std::string GetDefaultName() override
Default name for info type.
Definition:
AtTabInfoTree.h:68
AtTabInfoTree::~AtTabInfoTree
~AtTabInfoTree()
Definition:
AtTabInfoTree.h:38
DataHandling::AtSubject::Detach
void Detach(AtObserver *observer)
Detach an observer to stop getting notified when this subject changes.
Definition:
AtDataSubject.h:37
AtTabInfoTree::GetTree
TTree * GetTree()
Definition:
AtTabInfoTree.h:44
AtTabInfoTree::fFile
std::unique_ptr< TFile > fFile
Definition:
AtTabInfoTree.h:32
AtTabInfoBranch::fTree
std::shared_ptr< AtTabInfoTree > fTree
Definition:
AtTabInfoTree.h:58
AtTabInfoTree::GetReader
TTreeReader & GetReader()
Definition:
AtTabInfoTree.h:43
AtViewerManagerSubject.h
AtTabInfoBase
Interface for AtTabInfo classes.
Definition:
AtTabInfo.h:35
AtTabInfoBranch::AtTabInfoBranch
AtTabInfoBranch(std::shared_ptr< AtTabInfoTree > tree, TString branchName)
Definition:
AtTabInfoTree.h:61
AtTabInfoBranch::GetInfo
T * GetInfo()
Definition:
AtTabInfoTree.h:66
DataHandling
Definition:
AtDataObserver.h:4
AtTabInfoTree::Update
void Update(DataHandling::AtSubject *changedSubject) override
Definition:
AtTabInfoTree.cxx:29
AtTabInfoTree::fEntryNumber
DataHandling::AtTreeEntry & fEntryNumber
Definition:
AtTabInfoTree.h:33
AtTabInfoBranch
Describes a branch stored a TTree.
Definition:
AtTabInfoTree.h:55
DataHandling::AtSubject
Definition:
AtDataSubject.h:24
AtTabInfoTree::GetDefaultName
std::string GetDefaultName() override
Default name for info type.
Definition:
AtTabInfoTree.h:40
DataHandling::AtTreeEntry
Subject for the entry number in the FairRoot tree.
Definition:
AtViewerManagerSubject.h:17
AtTabInfoTree::fReader
TTreeReader fReader
Definition:
AtTabInfoTree.h:31
AtTabInfoTree::AtTabInfoTree
AtTabInfoTree(TString tree, TString fileName, DataHandling::AtTreeEntry &entryNumber)
Definition:
AtTabInfoTree.cxx:7
AtTabInfo.h
Generated on Sat Nov 11 2023 15:30:37 for ATTPCROOT by
1.8.18