/[PAMELA software]/PamCut/CollectionActions/SaveEventsAction/SaveEventsAction.h
ViewVC logotype

Contents of /PamCut/CollectionActions/SaveEventsAction/SaveEventsAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2.2.1 - (show annotations) (download)
Thu Jun 3 14:30:48 2010 UTC (14 years, 6 months ago) by pam-fi
Branch: V8
CVS Tags: MergedToHEAD_1, nuclei_reproc
Changes since 1.2: +13 -2 lines
File MIME type: text/plain
Parameter to set the maximum output file size added.

1 /*
2 * SaveEventsAction.h
3 *
4 * Created on: 16-mag-2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file SaveEventsAction.h The SaveEventsAction class declaration file */
9
10 #ifndef SAVEEVENTSACTION_H_
11 #define SAVEEVENTSACTION_H_
12
13 #include "../CollectionAction/CollectionAction.h"
14
15 /*! @brief An action that saves the selected events
16 *
17 * This action saves the selected events into a ROOT file. WARNING: since this class uses the PamLevel2 clone trees, you can
18 * have NO MORE THAN 1 SaveEventsAction objects in your code (otherwise they will share the same PamLevel2 clone trees, resulting
19 * in an undefined behavior).
20 */
21 class SaveEventsAction: public CollectionAction {
22
23 public:
24 /*! @brief Constructor.
25 *
26 * outOptions is to be passed as the argument of a PamLevel2::SetWhichTrees() call,
27 * so it must be encoded in a compatible format. See the PamLevel2 documentation.
28 *
29 * @param actionName The action's name.
30 * @param outFileName The output file name, with path (absolute or relative).
31 * @param outOptions The output options.
32 * @param maxFileSize The maximum output file size in bytes; default is 4 GB. If the maximum size will exceed this value
33 * an error will be generated, since the first clone tree in PamLevel2 which during its Fill will exceed
34 * this value will try to close the current file and open another one (this is the predefined TTree behavior)
35 * leaving the other clone trees with no file to write on.
36 * Note: if specifying the size you get a compiler warning like "warning: this decimal constant is unsigned
37 * only in ISO C90" then append LL to the numerical constant, to tell the compiler that it has to be interpreted
38 * as a long long int.
39 */
40 SaveEventsAction(const char *actionName, TString outFileName, TString outOptions = TString(""), Long64_t maxFileSize =
41 4000000000LL);
42
43 /*! @brief Destructor */
44 ~SaveEventsAction() {
45 }
46
47 /*! @brief The setup procedure.
48 *
49 * This routine will set the trees to be saved, by calling PamLevel2::SetWhichTrees().
50 *
51 * @param events The events pointer.
52 */
53 void Setup(PamLevel2 *events);
54
55 /*! @brief Fills the tree with the selected event.
56 *
57 * @param event The selected event.
58 */
59 void OnGood(PamLevel2 *event);
60
61 /*! @brief Writes the tree of saved events to the output file. */
62 void Finalize();
63
64 private:
65
66 TFile *_outTreeFile;
67 PamLevel2 *_events;
68 TString _outOptions;
69 TString _outFileName;
70 Long64_t _maxFileSize;
71 };
72
73 #endif /* SAVEEVENTSACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23