ATLAS Offline Software
Functions
UnitTestAlg1.cxx File Reference
#include <EventLoopTest/UnitTestAlg1.h>
#include <EventLoop/Job.h>
#include <EventLoop/OutputStream.h>
#include <EventLoop/Worker.h>
#include <RootCoreUtils/Assert.h>
#include <RootCoreUtils/ThrowMsg.h>
#include <TFile.h>
#include <TH1.h>
#include <TTree.h>
#include <TObjString.h>
#include <AsgMessaging/MsgStream.h>
#include <AsgMessaging/MsgStreamMacros.h>

Go to the source code of this file.

Functions

 ClassImp (EL::UnitTestAlg1) namespace EL
 

Function Documentation

◆ ClassImp()

ClassImp ( EL::UnitTestAlg1  )

Definition at line 37 of file UnitTestAlg1.cxx.

40 {
41  void UnitTestAlg1 ::
42  testInvariant () const
43  {
44  RCU_INVARIANT (this != 0);
45  }
46 
47 
48 
49  UnitTestAlg1 ::
50  UnitTestAlg1 (const std::string& branchName)
51  : makeOutput (true),
52  m_name (branchName),
53  m_branch (0),
54  m_value (0),// m_hist (0),
55  m_tree (0),
56  m_hasInitialize (false),
57  m_hasHistInitialize (false)
58  {
59  RCU_NEW_INVARIANT (this);
60  }
61 
62 
63 
64  StatusCode UnitTestAlg1 ::
65  setupJob (Job& job)
66  {
67  RCU_CHANGE_INVARIANT (this);
68 
69  if (makeOutput)
70  {
71  OutputStream out ("out");
72  job.outputAdd (out);
73  }
74  {
75  OutputStream out ("out_empty");
76  job.outputAdd (out);
77  }
78  return StatusCode::SUCCESS;
79  }
80 
81 
82 
83  StatusCode UnitTestAlg1 ::
84  changeInput (bool firstFile)
85  {
86  RCU_CHANGE_INVARIANT (this);
87 
88  if (firstFile)
89  getCallbacks()->Fill (CB_CHANGE_INPUT_FIRST);
90  else
91  getCallbacks()->Fill (CB_CHANGE_INPUT_OTHER);
92 
93  RCU_ASSERT (wk()->tree() != 0);
94  m_branch = wk()->tree()->GetBranch (m_name.c_str());
95  if (m_branch == 0)
96  RCU_THROW_MSG ("failed to find branch " + m_name);
97  m_branch->SetAddress (&m_value);
98  RCU_ASSERT_SOFT (firstFile == m_fileName.empty());
99  m_fileName = wk()->inputFile()->GetName();
100  return StatusCode::SUCCESS;
101  }
102 
103 
104 
105  StatusCode UnitTestAlg1 ::
106  histInitialize ()
107  {
108  RCU_CHANGE_INVARIANT (this);
109 
110  getCallbacks()->Fill (CB_HIST_INITIALIZE);
111 
112  RCU_ASSERT_SOFT (!m_hasHistInitialize);
113 
114  book (TH1F ((m_name + "2").c_str(), m_name.c_str(), 50, 0, 50));
115  book (TH1F ("file_executes", "file executes", 1, 0, 1));
116  m_hasHistInitialize = true;
117  return StatusCode::SUCCESS;
118  }
119 
120 
121 
123  initialize ()
124  {
125  RCU_CHANGE_INVARIANT (this);
126 
127  getCallbacks()->Fill (CB_INITIALIZE);
128 
129  RCU_ASSERT_SOFT (m_hasHistInitialize);
130  RCU_ASSERT_SOFT (!m_hasInitialize);
131 
132  RCU_ASSERT_SOFT (wk()->tree()->GetEntries() > wk()->treeEntry());
133  RCU_ASSERT_SOFT (m_fileName == wk()->inputFile()->GetName());
134 
135  // if (wk()->metaData()->castDouble ("jobOpt") != 42)
136  // RCU_THROW_MSG ("failed to read meta-data from job options");
137 
138  // if (wk()->metaData()->castString ("mymeta") != "test")
139  // RCU_THROW_MSG ("failed to read meta-data from worker");
140 
141  wk()->addOutput (/*m_hist = */new TH1F (m_name.c_str(), m_name.c_str(),
142  50, 0, 50));
143  if (makeOutput)
144  {
145  TFile *file = wk()->getOutputFile ("out");
146  m_tree = new TTree ("tree", "test output");
147  m_tree->SetDirectory (file);
148  m_tree->Branch (m_name.c_str(), &m_value, (m_name + "/I").c_str());
149  }
150  m_hasInitialize = true;
151  return StatusCode::SUCCESS;
152  }
153 
154 
155 
156  StatusCode UnitTestAlg1 ::
157  fileExecute ()
158  {
159  RCU_CHANGE_INVARIANT (this);
160 
161  getCallbacks()->Fill (CB_FILE_EXECUTE);
162 
163  RCU_ASSERT_SOFT (m_hasHistInitialize);
164  hist ("file_executes")->Fill (0);
165  return StatusCode::SUCCESS;
166  }
167 
168 
169 
171  execute ()
172  {
173  RCU_CHANGE_INVARIANT (this);
174 
175  getCallbacks()->Fill (CB_EXECUTE);
176 
177  RCU_ASSERT_SOFT (m_hasInitialize);
178 
179  m_branch->GetEntry (wk()->treeEntry());
180  hist(m_name)->Fill (m_value);
181  if (makeOutput)
182  m_tree->Fill ();
183 
184  setMsgLevel (MSG::INFO);
185  if (++ m_calls < 3)
186  ATH_MSG_INFO ("message test");
187 
188  return StatusCode::SUCCESS;
189  }
190 
191 
192 
194  finalize ()
195  {
196  RCU_CHANGE_INVARIANT (this);
197 
198  getCallbacks()->Fill (CB_FINALIZE);
199 
200  RCU_ASSERT_SOFT (m_hasInitialize);
201  wk()->addOutput (new TH1F ("beta/dir/hist", "directory test", 10, 0, 10));
202  wk()->addOutputList ("alpha", new TObjString ("alpha"));
203  return StatusCode::SUCCESS;
204  }
205 
206 
207 
208  StatusCode UnitTestAlg1 ::
209  histFinalize ()
210  {
211  RCU_CHANGE_INVARIANT (this);
212 
213  getCallbacks()->Fill (CB_HIST_FINALIZE);
214 
215  RCU_ASSERT_SOFT (m_hasHistInitialize);
216  wk()->addOutput (new TH1F ("beta/dir/hist", "directory test", 10, 0, 10));
217  wk()->addOutputList ("alpha", new TObjString ("alpha"));
218  return StatusCode::SUCCESS;
219  }
220 
221 
222 
223  TH1 *UnitTestAlg1 ::
224  getCallbacks ()
225  {
226  if (m_callbacks == nullptr)
227  {
228  m_callbacks = new TH1F ("callbacks", "callbacks", CB_HIST_FINALIZE + 1,
229  0, CB_HIST_FINALIZE + 1);
230  wk()->addOutput (m_callbacks);
231  }
232  return m_callbacks;
233  }
234 }
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
plotmaker.hist
hist
Definition: plotmaker.py:148
initialize
void initialize()
Definition: run_EoverP.cxx:894
tree
TChain * tree
Definition: tile_monitor.h:30
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
LArG4FSStartPointFilterLegacy.execute
execute
Definition: LArG4FSStartPointFilterLegacy.py:20
RCU_ASSERT_SOFT
#define RCU_ASSERT_SOFT(x)
Definition: Assert.h:167
book
T * book(const std::string &n, const std::string &t, unsigned nbins)
Definition: main_benchmark.cxx:138
CaloCondBlobAlgs_fillNoiseFromASCII.inputFile
string inputFile
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:17
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
file
TFile * file
Definition: tile_monitor.h:29
RCU_INVARIANT
#define RCU_INVARIANT(x)
Definition: Assert.h:201
INav4MomDumper_jobOptions.OutputStream
OutputStream
Definition: INav4MomDumper_jobOptions.py:20
TH1F
Definition: rootspy.cxx:320
TH1
Definition: rootspy.cxx:268
generate::GetEntries
double GetEntries(TH1D *h, int ilow, int ihi)
Definition: rmsFrac.cxx:20
RCU_CHANGE_INVARIANT
#define RCU_CHANGE_INVARIANT(x)
Definition: Assert.h:231
RCU_THROW_MSG
#define RCU_THROW_MSG(message)
Definition: PrintMsg.h:58
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
test_interactive_athena.job
job
Definition: test_interactive_athena.py:6
RCU_ASSERT
#define RCU_ASSERT(x)
Definition: Assert.h:222
RCU_NEW_INVARIANT
#define RCU_NEW_INVARIANT(x)
Definition: Assert.h:233