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

Contents of /PamCut/CollectionActions/FluxHistoAction/FluxHistoAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download)
Mon Jun 8 10:37:35 2009 UTC (15 years, 5 months ago) by pam-fi
Branch: MAIN
Changes since 1.2: +6 -2 lines
File MIME type: text/plain
Added support for append mode for output file.

1 /*
2 * FluxHistoAction.h
3 *
4 * Created on: 20-mag-2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file FluxHistoAction.h The FluxHistoAction class declaration file */
9
10 #ifndef FLUXHISTOACTION_H_
11 #define FLUXHISTOACTION_H_
12
13 #include "../CollectionAction/CollectionAction.h"
14 #include <TH1I.h>
15 #include <stdint.h>
16
17 /*! @brief An action that fills a flux histogram.
18 *
19 * This action reads a rigidity binning from a file and fills a flux histogram (text and ROOT format).
20 * Currently, it fills an event-count histogram: in future implementations, it could also
21 * read live time, efficiency and geometrical factor from external files and fill a
22 * true flux histogram.
23 */
24 class FluxHistoAction: public CollectionAction {
25
26 public:
27 /*! @brief Constructor.
28 *
29 * outFileBase is the base name for output file: #Finalize will add .txt for ASCII output
30 * and .root for ROOT output. outFileBase has to contain the path (otherwise, files will be
31 * saved in the current directory).
32 * The file containing the rigidity bins must be a text file. It must contain both the
33 * lower and upper limits of the rigidity axis, so that if it contains N values it
34 * defines a set of N-1 bins.
35 *
36 * @param actionName The action's name.
37 * @param outFileBase The output file base name.
38 * @param rigBinsFile The file containing the rigidity bins.
39 * @param mode The mode of ROOT file creation (see documentation of TFile constructor
40 * in ROOT's reference guide). In current implementation the text file output
41 * does not support append.
42 */
43 FluxHistoAction(const char *actionName, TString outFileBase, TString rigBinsFile, TString mode = "UPDATE");
44
45 /*! @brief Destructor */
46 ~FluxHistoAction() {
47 }
48
49 /*! @brief Fills histogram with the selected event.
50 *
51 * @param event The selected event.
52 */
53 void OnGood(PamLevel2 *event);
54
55 /*! @brief Writes the histogram to the output files (ASCII and ROOT).
56 *
57 * The output consists of a text file and of a ROOT file where the 1-dimensional rigidity
58 * histogram (TH1F) is saved. The format of the text output is: (lower bin limit) (upper bin limit) (\# of events).
59 */
60 void Finalize();
61
62 private:
63
64 TString _outFileBase;
65 vector<float> _bins;
66 TH1I _rootHisto;
67 vector<uint64_t> _textHisto;
68 TString _mode;
69
70 #ifdef DEBUGPAMCUT
71 int _outUp, _outDown;
72 #endif
73
74 };
75
76 #endif /* FLUXHISTOACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23