/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/stable/src/ds/include/RAT/DS/Root.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/stable/src/ds/include/RAT/DS/Root.hh Source File
Ratpac-two
Root.hh
1 
22 #ifndef __RAT_DS_Root__
23 #define __RAT_DS_Root__
24 
25 #include <TObject.h>
26 
27 #include <RAT/DS/Calib.hh>
28 #include <RAT/DS/EV.hh>
29 #include <RAT/DS/MC.hh>
30 #include <string>
31 #include <utility>
32 #include <vector>
33 
34 namespace RAT {
35 namespace DS {
36 
37 class Root : public TObject {
38  public:
39  Root() : TObject() {}
40  virtual ~Root() {}
41 
43  virtual int GetRunID() const { return runID; }
44  virtual void SetRunID(int _runID) { runID = _runID; }
45 
47  virtual void AppendProcResult(const std::string &procName, int resultCode) {
48  procResult.push_back(std::pair<std::string, int>(procName, resultCode));
49  }
50 
59  virtual int GetLastProcResult(const std::string &procName) const {
60  for (int i = procResult.size() - 1; i >= 0; i--) {
61  if (procResult[(unsigned int)i].first == procName) return procResult[(unsigned int)i].second;
62  }
63  return -1; // Processor has not been run
64  }
65 
70  virtual int GetLastProcResult() const {
71  if (procResult.size() == 0) {
72  return -1;
73  }
74  return procResult[procResult.size() - 1].second;
75  }
76 
81  virtual std::vector<std::pair<std::string, int>> GetProcResult() const { return procResult; }
82 
91  virtual std::string GetRatVersion() const { return ratVersion; }
92  virtual void SetRatVersion(std::string _ratVersion) { ratVersion = _ratVersion; }
93 
95  virtual MC *GetMC() {
96  if (mc.empty()) {
97  mc.resize(1);
98  }
99  return &mc[0];
100  }
101  virtual const MC *GetMC() const {
102  if (mc.empty()) {
103  return nullptr;
104  }
105  return &mc[0];
106  }
107  virtual bool ExistMC() const { return !mc.empty(); }
108  virtual void PruneMC() { mc.resize(0); }
109 
111  virtual Calib *GetCalib() {
112  if (calib.empty()) {
113  calib.resize(1);
114  }
115  return &calib[0];
116  }
117  virtual bool ExistCalib() const { return !calib.empty(); }
118  virtual void PruneCalib() { calib.resize(0); }
119 
121  virtual const EV *GetEV(int i) const {
122  if (i < 0 || i >= (int)ev.size()) {
123  return nullptr;
124  }
125  return &ev[i];
126  }
127  virtual EV *GetEV(int i) { return &ev[i]; }
128  virtual int GetEVCount() const { return ev.size(); }
129  virtual EV *AddNewEV() {
130  ev.resize(ev.size() + 1);
131  return &(ev.back());
132  }
133  virtual bool ExistEV() const { return !ev.empty(); }
134  virtual void PruneEV() { ev.resize(0); }
135  virtual void PruneEV(int i) { ev.erase(ev.begin() + i); }
136 
137  ClassDef(Root, 1);
138 
139  protected:
140  int runID;
141  std::string ratVersion;
142  std::vector<std::pair<std::string, int>> procResult;
143  std::vector<MC> mc;
144  std::vector<Calib> calib;
145  std::vector<EV> ev;
146 };
147 
148 } // namespace DS
149 } // namespace RAT
150 
151 #endif
Definition: Calib.hh:30
Definition: EV.hh:33
Definition: MC.hh:30
Definition: Root.hh:37
virtual MC * GetMC()
Definition: Root.hh:95
virtual Calib * GetCalib()
Definition: Root.hh:111
virtual int GetLastProcResult() const
Definition: Root.hh:70
virtual void AppendProcResult(const std::string &procName, int resultCode)
Definition: Root.hh:47
virtual const EV * GetEV(int i) const
Definition: Root.hh:121
virtual std::string GetRatVersion() const
Definition: Root.hh:91
virtual int GetRunID() const
Definition: Root.hh:43
virtual int GetLastProcResult(const std::string &procName) const
Definition: Root.hh:59
virtual std::vector< std::pair< std::string, int > > GetProcResult() const
Definition: Root.hh:81
Definition: CCCrossSecMessenger.hh:29