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

Contents of /PamCut/CollectionActions/LiveTimeAction/LiveTimeAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Wed Aug 5 17:04:18 2009 UTC (15 years, 6 months ago) by pam-fi
Branch: MAIN
Changes since 1.1: +35 -3 lines
File MIME type: text/plain
Constructor added;  now save on file is optional.

1 /*
2 * LiveTimeAction.h
3 *
4 * Created on: 13/lug/2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file LiveTimeAction.h The LiveTimeAction class declaration file */
9
10 #ifndef LIVETIMEACTION_H_
11 #define LIVETIMEACTION_H_
12
13 #include "../CollectionAction/CollectionAction.h"
14 #include <TH1F.h>
15 #include <stdint.h>
16
17 /*! @brief An action that fills a live time histogram.
18 *
19 * This action reads a rigidity binning from a file and fills a live time histogram (text and ROOT format).
20 * The live time corresponding to each event will contribute to the bin corresponding to the cutoff rigidity
21 * of the event, eg., the lowest bin whose lower limit is greater than the cutoff rigidity of the event times
22 * a coefficient (threshold coefficient, see constructor). If threshold*cutoff is lower than the
23 * lower limit of the rigidity axis, then the live time will be added to the "zero bin", eg., a special bin
24 * ranging from 0 to the lower limit. This special bin will be saved in a separate file.
25 *
26 */
27 class LiveTimeAction: public CollectionAction {
28
29 public:
30 /*! @brief Constructor.
31 *
32 * outFileBase is the base name for output file: #Finalize will add .txt for ASCII output
33 * and .root for ROOT output. "-report" will be also added for the report file (in which
34 * the content of the zero bin will be saved). outFileBase has to contain the path (otherwise,
35 * files will be saved in the current directory).
36 * The file containing the rigidity bins must be a text file. It must contain both the
37 * lower and upper limits of the rigidity axis, so that if it contains N values it
38 * defines a set of N-1 bins.
39 *
40 * @param actionName The action's name.
41 * @param outFileBase The output file base name. If "" is given as name,
42 * no file output will be performed.
43 * @param rigBinsFile The file containing the rigidity bins.
44 * @param thresholdCoeff The threshold rigidity coefficient.
45 */
46 LiveTimeAction(const char *actionName, TString outFileBase, TString rigBinsFile, float thresholdCoeff);
47
48 /*! @brief Constructor.
49 *
50 * outFileBase is the base name for output file: #Finalize will add .txt for ASCII output
51 * and .root for ROOT output. "-report" will be also added for the report file (in which
52 * the content of the zero bins will be saved). outFileBase has to contain the path (otherwise,
53 * files will be saved in the current directory).
54 *
55 * @param actionName The action's name.
56 * @param outFileBase The output file base name. If "" is given as name,
57 * no file output will be performed.
58 * @param bins A vector containing the bins limits.
59 * @param thresholdCoeff The threshold rigidity coefficient.
60 */
61 LiveTimeAction(const char *actionName, TString outFileBase, vector<float> &bins, float thresholdCoeff);
62
63 /*! @brief Destructor */
64 ~LiveTimeAction() {
65 }
66
67 /*! @brief Fills histogram with the selected event.
68 *
69 * The live time of the current event will be added to the lowest bin whose lower limit is greater than
70 * the cutoff rigidity multiplied by the threshold coefficient. If threshold*cutoff is lower than the
71 * lower limit, the live time will be added to the "zero bin".
72 *
73 * @param event The selected event.
74 */
75 void OnGood(PamLevel2 *event);
76
77 /*! @brief Writes the histogram to the output files (ASCII and ROOT).
78 *
79 * The output consists of a text file and of a ROOT file where the 1-dimensional rigidity
80 * histogram (TH1F) is saved. Additionally, another text file will store the content of the "zero bin"
81 * and the total live time.
82 */
83 void Finalize();
84
85 /*! @brief Returns the histogram.
86 *
87 * This method returns a vector filled with the LT (in seconds) corresponding to each
88 * threshold rigidity bin (in GV) defined in the binning argument of the constructor.
89 * Element 0 is the total LT for events whose threshold rigidity lies in the
90 * lowest bin and so on.
91 *
92 * @return The LT histogram binned in threshold rigidity.
93 */
94 std::vector<float> &GetHisto() {
95 return _textHisto;
96 }
97
98 /*! @brief Returns the live time spent at rigidities below the lower limit (the "zero bin"). */
99 float GetZeroBin() {
100 return _zeroBin;
101 }
102
103 /*! @brief Returns the total live time. */
104 float GetTotalLT() {
105 return _total;
106 }
107
108 private:
109
110 TString _outFileBase;
111 vector<float> _bins;
112 TH1F _rootHisto;
113 vector<float> _textHisto;
114 float _thresholdCoeff;
115
116 float _total;
117 float _zeroBin;
118
119 void _InitHistos(vector<float> &bins);
120
121 #ifdef DEBUGPAMCUT
122 int _outUp, _outDown;
123 #endif
124
125 };
126
127 #endif /* LIVETIMEACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23