ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTabMacro.h
Go to the documentation of this file.
1 #ifndef ATTABMACRO_H
2 #define ATTABMACRO_H
3 
4 #include "AtDataObserver.h"
5 #include "AtTabCanvas.h"
6 #include "AtViewerManagerSubject.h" // for AtPadNum
7 
8 #include <Rtypes.h> // for Int_t, Bool_t, THashConsistencyHolder, Color_t
9 #include <TString.h> // for TString
10 
11 #include <functional> // for function
12 #include <unordered_map>
13 
14 class AtTabInfo;
15 class TEveWindowSlot;
16 class TBuffer;
17 class TClass;
18 class TMemberInspector;
19 namespace DataHandling {
20 class AtSubject;
21 }
22 
25 protected:
27 
28  std::unordered_map<Int_t, std::function<void(AtTabInfo(*))>> fDrawTreeMap;
29  std::unordered_map<Int_t, std::function<void(AtTabInfo(*))>> fDrawEventMap;
30  std::unordered_map<Int_t, std::function<void(AtTabInfo(*), Int_t)>> fDrawPadMap;
31 
32 public:
33  AtTabMacro(int nRow = 1, int nCol = 1, TString name = "Macro");
34  ~AtTabMacro();
35 
36  void InitTab() override;
37  void Exec() override;
38  void Update(DataHandling::AtSubject *sub) override;
39 
40  void SetDrawTreeFunction(std::function<void(AtTabInfo(*))> function, int row = 0, int col = 0);
41  void SetDrawEventFunction(std::function<void(AtTabInfo(*))> function, int row = 0, int col = 0);
42  void SetDrawPadFunction(std::function<void(AtTabInfo(*), Int_t)> function, int row = 0, int col = 0);
43 
44 protected:
45  void MakeTab(TEveWindowSlot *) override;
46  void DrawTree();
47 
48  ClassDefOverride(AtTabMacro, 1)
49 };
50 
51 #endif
AtTabCanvas.h
AtDataObserver.h
DataHandling::AtObserver
Definition: AtDataObserver.h:12
AtTabInfo
Contains all the data needed by an AtTab.
Definition: AtTabInfo.h:51
AtTabMacro::~AtTabMacro
~AtTabMacro()
Definition: AtTabMacro.cxx:29
AtTabMacro::SetDrawPadFunction
void SetDrawPadFunction(std::function< void(AtTabInfo(*), Int_t)> function, int row=0, int col=0)
Definition: AtTabMacro.cxx:93
AtTabMacro::SetDrawEventFunction
void SetDrawEventFunction(std::function< void(AtTabInfo(*))> function, int row=0, int col=0)
Definition: AtTabMacro.cxx:88
DataHandling::AtSimpleType< int >
AtTabMacro::InitTab
void InitTab() override
Definition: AtTabMacro.cxx:33
AtViewerManagerSubject.h
AtTabMacro::fDrawEventMap
std::unordered_map< Int_t, std::function< void(AtTabInfo(*))> > fDrawEventMap
Definition: AtTabMacro.h:29
DataHandling
Definition: AtDataObserver.h:4
AtTabMacro::fPadNum
DataHandling::AtPadNum * fPadNum
Definition: AtTabMacro.h:26
AtTabMacro::AtTabMacro
AtTabMacro(int nRow=1, int nCol=1, TString name="Macro")
Definition: AtTabMacro.cxx:21
AtTabCanvas
Abstract class for a tab composed of a single TCanvas.
Definition: AtTabCanvas.h:20
AtTabMacro::fDrawPadMap
std::unordered_map< Int_t, std::function< void(AtTabInfo(*), Int_t)> > fDrawPadMap
Definition: AtTabMacro.h:30
AtTabMacro::Exec
void Exec() override
Called after the run's Exec() to update tab.
Definition: AtTabMacro.cxx:62
AtTabMacro::SetDrawTreeFunction
void SetDrawTreeFunction(std::function< void(AtTabInfo(*))> function, int row=0, int col=0)
Definition: AtTabMacro.cxx:83
DataHandling::AtSubject
Definition: AtDataSubject.h:24
AtTabMacro::Update
void Update(DataHandling::AtSubject *sub) override
Definition: AtTabMacro.cxx:71
AtTabMacro
Tab for drawing arbitrary functions (probably needs refactor)
Definition: AtTabMacro.h:24
AtTabMacro::DrawTree
void DrawTree()
Definition: AtTabMacro.cxx:53
AtTabMacro::fDrawTreeMap
std::unordered_map< Int_t, std::function< void(AtTabInfo(*))> > fDrawTreeMap
Definition: AtTabMacro.h:28
AtTabMacro::MakeTab
void MakeTab(TEveWindowSlot *) override
Create the gui components of the tab in the passed window slot.
Definition: AtTabMacro.cxx:46