/[PAMELA software]/PamCut/Collections/EffCollection/EffCollection.h
ViewVC logotype

Contents of /PamCut/Collections/EffCollection/EffCollection.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Aug 11 08:37:18 2009 UTC (15 years, 3 months ago) by pam-fi
Branch: MAIN
File MIME type: text/plain
Added to repository.

1 /*
2 * EffCollection.h
3 *
4 * Created on: 10/ago/2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file EffCollection.h The EffCollection class definition file. */
9
10 #ifndef EFFCOLLECTION_H_
11 #define EFFCOLLECTION_H_
12
13 #include "../VerboseCollection/VerboseCollection.h"
14
15 /*! @brief A verbose collection which computes the efficiency of a set of cuts.
16 *
17 * This class subdivides the cuts it contains into two classes: selection and detector
18 * cuts; detector cuts are evaluated after selection cuts. The collection will compute the
19 * efficiency of the whole detector cuts set evaluated using an efficiency sample selected
20 * by the selection cuts. Actions will be divided in selection and detector actions as well:
21 * adding a selection action, it will be placed after all the selection cuts inserted since
22 * the action insertion, and before all detector cuts. Detector actions are placed after all
23 * the cuts.
24 * This class implements specific methods to add selection and detector cuts; cuts added
25 * with the standard #AddCut method will be treated as detector cuts. The same for actions.
26 *
27 */
28 class EffCollection: public VerboseCollection {
29
30 public:
31
32 /*! @brief Constructor.
33 *
34 * @param collectionName The collection's name.
35 * @param rigBinsFile The file with the rigidity bins.
36 * @param outFileBase The output file base name. If != "", 3 text files will be produced:
37 * - outFileBase + "-sel.txt": events surviving the selection cuts for each bin;
38 * - outFileBase + "-det.txt": events surviving the detector cuts for each bin;
39 * - outFileBase + "-eff.txt": efficiency for each bin (will be 0 if no event survives selection cuts).
40 * @param absRig If true, the absolute rigidity of the selected events will be considered.
41 *
42 */
43 EffCollection(const char *collectionName, TString rigBinsFile, TString &outFileBase = "", bool absRig = false);
44
45 /*! @brief Destructor. */
46 ~EffCollection() {
47
48 }
49
50 /*! @brief Adds a detector cut to the collection.
51 *
52 * For EffCollection, cuts added wit #AddCut will be treated as detector cuts.
53 *
54 * @param cut The PamCut-derived object to add to the collection.
55 */
56 void AddCut(PamCut &cut) {
57 AddDetectorCut(cut);
58 }
59
60 /*! @brief Adds a detector cut to the collection.
61 *
62 * Adds a detector cut. Calling #AddCut will add a detector cut as well, and not a
63 * selection cut.
64 * @param cut The PamCut-derived object to add to the collection.
65 */
66 void AddDetectorCut(PamCut &cut);
67
68 /*! @brief Adds a selection cut to the collection.
69 *
70 * Adds a selection cut. Notice that calling #AddCut will add a detector cut , and not a
71 * selection cut.
72 * @param cut The PamCut-derived object to add to the collection.
73 */
74 void AddSelectionCut(PamCut &cut);
75
76 /*! @brief Adds an action to the detector cuts queue.
77 *
78 * For EffCollection, actions added wit #AddAction will be inserted in the detector cuts queue.
79 *
80 * @param action The CollectionAction-derived object to add to the collection.
81 */
82 void AddAction(CollectionAction &action) {
83 AddDetectorAction(action);
84 }
85
86 /*! @brief Adds an action to the detector cuts queue.
87 *
88 * Adds a detector action, ie., an action placed in the detector cuts queue. Calling #AddAction will
89 * add a detector action as well, and not a selection action.
90 *
91 * @param action The CollectionAction-derived object to add to the collection.
92 */
93 void AddDetectorAction(CollectionAction &action);
94
95 /*! @brief Adds an action to the selection cuts queue.
96 *
97 * Adds a selection action, ie., an action placed in the selection cuts queue. Notice that calling
98 * #AddAction will add a detector action, and not a selection action.
99 *
100 * @param action The CollectionAction-derived object to add to the collection.
101 */
102 void AddSelectionAction(CollectionAction &action);
103
104 /*! @brief Applies the selection and detector cuts to the current event.
105 *
106 * @param event The event to analyze.
107 * @return CUTOK if the event survives all the selection and detector cuts.
108 */
109 int ApplyCut(PamLevel2 *event);
110
111 /*TODO: redefine GetCut and the other methods to comply with the new selection/detector cuts structure. */
112
113 /*! @brief The post analysis task.
114 *
115 */
116 void Finalize();
117
118 private:
119
120 SmartCollection _selCollection;
121 SmartCollection _detCollection;
122 TString _outFileBase;
123 bool _absRig;
124 vector<float> _bins;
125 vector<unsigned int> _sel;
126 vector<unsigned int> _det;
127
128 unsigned int _outUp, _outDown;
129 };
130
131 #endif /* EFFCOLLECTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23