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

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/ds/include/RAT/DS/Root.hh Source File
Ratpac-two
Root.hh
1 
24 #ifndef __RAT_DS_Root__
25 #define __RAT_DS_Root__
26 
27 #include <TObject.h>
28 
29 #include <RAT/DS/Calib.hh>
30 #include <RAT/DS/EV.hh>
31 #include <RAT/DS/MC.hh>
32 #include <string>
33 #include <utility>
34 #include <vector>
35 
36 namespace RAT {
37 namespace DS {
38 
39 class Root : public TObject {
40  public:
41  Root() : TObject() {}
42  virtual ~Root() {}
43 
45  virtual int GetRunID() const { return runID; }
46  virtual void SetRunID(int _runID) { runID = _runID; }
47 
49  virtual void AppendProcResult(const std::string &procName, int resultCode) {
50  procResult.push_back(std::pair<std::string, int>(procName, resultCode));
51  }
52 
61  virtual int GetLastProcResult(const std::string &procName) const {
62  for (int i = procResult.size() - 1; i >= 0; i--) {
63  if (procResult[(unsigned int)i].first == procName) return procResult[(unsigned int)i].second;
64  }
65  return -1; // Processor has not been run
66  }
67 
72  virtual int GetLastProcResult() const {
73  if (procResult.size() == 0) {
74  return -1;
75  }
76  return procResult[procResult.size() - 1].second;
77  }
78 
83  virtual std::vector<std::pair<std::string, int>> GetProcResult() const { return procResult; }
84 
93  virtual std::string GetRatVersion() const { return ratVersion; }
94  virtual void SetRatVersion(std::string _ratVersion) { ratVersion = _ratVersion; }
95 
97  virtual MC *GetMC() {
98  if (mc.empty()) {
99  mc.resize(1);
100  }
101  return &mc[0];
102  }
103  virtual bool ExistMC() const { return !mc.empty(); }
104  virtual void PruneMC() { mc.resize(0); }
105 
107  virtual Calib *GetCalib() {
108  if (calib.empty()) {
109  calib.resize(1);
110  }
111  return &calib[0];
112  }
113  virtual bool ExistCalib() const { return !calib.empty(); }
114  virtual void PruneCalib() { calib.resize(0); }
115 
117  virtual EV *GetEV(int i) { return &ev[i]; }
118  virtual int GetEVCount() const { return ev.size(); }
119  virtual EV *AddNewEV() {
120  ev.resize(ev.size() + 1);
121  return &(ev.back());
122  }
123  virtual bool ExistEV() const { return !ev.empty(); }
124  virtual void PruneEV() { ev.resize(0); }
125  virtual void PruneEV(int i) { ev.erase(ev.begin() + i); }
126 
131  virtual int GetUserDataCount() const { return user.size(); }
132  virtual void SetUserDataCount(int count) { user.resize(count); }
133  virtual double GetUserData(int i) const { return user.at(i); }
134  virtual void SetUserData(int i, double val) { user.at(i) = val; }
135 
136  ClassDef(Root, 1);
137 
138  protected:
139  int runID;
140  std::string ratVersion;
141  std::vector<std::pair<std::string, int>> procResult;
142  std::vector<MC> mc;
143  std::vector<Calib> calib;
144  std::vector<EV> ev;
145  std::vector<double> user;
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:39
virtual MC * GetMC()
Definition: Root.hh:97
virtual Calib * GetCalib()
Definition: Root.hh:107
virtual int GetLastProcResult() const
Definition: Root.hh:72
virtual void AppendProcResult(const std::string &procName, int resultCode)
Definition: Root.hh:49
virtual std::string GetRatVersion() const
Definition: Root.hh:93
virtual int GetRunID() const
Definition: Root.hh:45
virtual int GetLastProcResult(const std::string &procName) const
Definition: Root.hh:61
virtual std::vector< std::pair< std::string, int > > GetProcResult() const
Definition: Root.hh:83
virtual EV * GetEV(int i)
Definition: Root.hh:117
virtual int GetUserDataCount() const
Definition: Root.hh:131
Definition: CCCrossSecMessenger.hh:29