@@ -12,7 +12,7 @@ A merger is an object which will merge files from each subjobs and place it the
1212method to merge depends on the type of merger object (or file type). For example, if each subjob produces a root
1313file 'thesis_data.root' and you would like this to be merged you can attach a RootMerger object to your job:
1414
15- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
15+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
1616 :start-after: # -- POSTPROCESSORS APPEND START
1717 :end-before: # -- POSTPROCESSORS APPEND STOP
1818 :dedent: 8
@@ -35,7 +35,7 @@ There are several mergers available:
3535TextMerger
3636^^^^^^^^^^
3737
38- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
38+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
3939 :start-after: # -- POSTPROCESSORS TEXTMERGER START
4040 :end-before: # -- POSTPROCESSORS TEXTMERGER STOP
4141 :dedent: 8
@@ -47,7 +47,7 @@ the output with
4747RootMerger
4848^^^^^^^^^^
4949
50- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
50+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
5151 :start-after: # -- POSTPROCESSORS TEXTMERGER START
5252 :end-before: # -- POSTPROCESSORS TEXTMERGER STOP
5353 :dedent: 8
@@ -61,7 +61,7 @@ CustomMerger
6161A custom merger where you can define your own merge function. For this merger to work you must supply a path to a
6262python module which carries out the merge with
6363
64- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
64+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
6565 :start-after: # -- POSTPROCESSORS CUSTOMMERGER START
6666 :end-before: # -- POSTPROCESSORS CUSTOMMERGER STOP
6767 :dedent: 8
@@ -92,23 +92,23 @@ The final merger object which can be used is the ``SmartMerger()``, which will c
9292output file extension. It supports different file types. For example the following SmartMerger would use a RootMerger
9393for 'thesis_data.root' and a TextMerger for 'stdout'.
9494
95- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
95+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
9696 :start-after: # -- POSTPROCESSORS SMARTMERGER START
9797 :end-before: # -- POSTPROCESSORS SMARTMERGER STOP
9898 :dedent: 8
9999
100100
101101Note that:
102102
103- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
103+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
104104 :start-after: # -- POSTPROCESSORS SMARTMERGERAPPEND START
105105 :end-before: # -- POSTPROCESSORS SMARTMERGERAPPEND STOP
106106 :dedent: 8
107107
108108
109109is equivalent to doing:
110110
111- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
111+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
112112 :start-after: # -- POSTPROCESSORS SMARTMERGERAPPEND2 START
113113 :end-before: # -- POSTPROCESSORS SMARTMERGERAPPEND2 STOP
114114 :dedent: 8
@@ -130,15 +130,15 @@ FileChecker
130130
131131Checks the list of output files and fails job if a particular string is found (or not found). For example, you could do:
132132
133- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
133+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
134134 :start-after: # -- POSTPROCESSORS FILECHECKER START
135135 :end-before: # -- POSTPROCESSORS FILECHECKER STOP
136136 :dedent: 8
137137
138138
139139You can also enforce that your file must exist, by setting ``filesMustExists `` to ``True ``:
140140
141- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
141+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
142142 :start-after: # -- POSTPROCESSORS FILECHECKERMUSTEXIST START
143143 :end-before: # -- POSTPROCESSORS FILECHECKERMUSTEXIST STOP
144144 :dedent: 8
@@ -148,7 +148,7 @@ If a job does not produce a stdout file, the checker will fail the job. This Fil
148148and grep the file for the string 'Segmentation'. If it finds it, the job will fail. If you want to fail the job
149149a string doesn’t exist, then you can do:
150150
151- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
151+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
152152 :start-after: # -- POSTPROCESSORS FILECHECKEROPTS START
153153 :end-before: # -- POSTPROCESSORS FILECHECKEROPTS STOP
154154 :dedent: 8
@@ -164,7 +164,7 @@ This checks that all your ROOT files are closed properly and have nonzero size.
164164worked properly. Adding a RootFileChecker to your job will add some protection against hadd failures, and ensure that
165165your ROOT files are mergable. If you do:
166166
167- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
167+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
168168 :start-after: # -- POSTPROCESSORS ROOTFILECHECKER START
169169 :end-before: # -- POSTPROCESSORS ROOTFILECHECKER STOP
170170 :dedent: 8
@@ -194,7 +194,7 @@ can make a checker in your home directory called '``mychecker.py``'. In this fil
194194
195195 Then in ganga do:
196196
197- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
197+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
198198 :start-after: # -- POSTPROCESSORS CUSTOMCHECKER START
199199 :end-before: # -- POSTPROCESSORS CUSTOMCHECKER STOP
200200 :dedent: 8
@@ -211,15 +211,15 @@ feature is used. Important note: Emails will only be sent when ganga is running,
211211if you have ganga running in the background (e.g. screen session, ``GangaService ``). To make a notifier, just do
212212something like:
213213
214- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
214+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
215215 :start-after: # -- POSTPROCESSORS NOTIFIER START
216216 :end-before: # -- POSTPROCESSORS NOTIFIER STOP
217217 :dedent: 8
218218
219219
220220If you want emails about every subjob, do
221221
222- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
222+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
223223 :start-after: # -- POSTPROCESSORS NOTIFIER START
224224 :end-before: # -- POSTPROCESSORS NOTIFIER STOP
225225 :dedent: 8
@@ -232,14 +232,14 @@ You can add multiple post processors to a Job and Ganga will order them to some
232232checkers, then finally the notifier. It will preserve the order within each class though (e.g. The ordering of the
233233#checkers is defined by the user). To add some postprocessors to your job, you can do something like
234234
235- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
235+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
236236 :start-after: # -- POSTPROCESSORS MULTIPLE START
237237 :end-before: # -- POSTPROCESSORS MULTIPLE STOP
238238 :dedent: 8
239239
240240or:
241241
242- .. literalinclude :: ../../python/Ganga/new_tests /GPI/TutorialTests.py
242+ .. literalinclude :: ../../python/Ganga/test /GPI/TutorialTests.py
243243 :start-after: # -- POSTPROCESSORS MULTIPLE2 START
244244 :end-before: # -- POSTPROCESSORS MULTIPLE2 STOP
245245 :dedent: 8
0 commit comments