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

Contents of /PamCut/Collections/MaskedCollection/MaskedCollection.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Mon Sep 5 12:58:34 2011 UTC (13 years, 3 months ago) by pam-fi
Branch: MAIN
CVS Tags: V9, HEAD
File MIME type: text/plain
Error occurred while calculating annotation data.
Added to repository.

1 /*
2 * MaskedCollection.h
3 *
4 * Created on: 19-apr-2011
5 * Author: Nicola Mori
6 */
7
8 /*! @file MaskedCollection.h The MaskedCollection class definition file */
9
10 #ifndef MASKEDCOLLECTION_H_
11 #define MASKEDCOLLECTION_H_
12
13 #include "../../../PamCut/Collections/VerboseCollection/VerboseCollection.h"
14
15 /*! @brief A collection which can use inverse cuts.
16 *
17 * This collection allow to define a flag for each cut which inverts the result of the cut.
18 * This can be useful to select events that does NOT fulfill some constraints.
19 */
20 class MaskedCollection: public VerboseCollection {
21
22 public:
23
24 /*! @brief Constructor.
25 *
26 * @param collectionName The collection's name.
27 * @param owns If true, the collection will own the cuts and the actions, ie., it will
28 * destroy them in its destructor.
29 */
30 MaskedCollection(const char *collectionName, bool owns = true) :
31 VerboseCollection(collectionName, owns), _mask(0) {
32 }
33
34 /*! @brief Destructor. */
35 ~MaskedCollection() {
36 }
37
38 /*! @brief Adds a cut.
39 *
40 * A cut added with this method will work as defined.
41 * @param cut The pointer to a PamCut-derived object to add to the collection.
42 */
43 void AddCut(PamCut *cut);
44
45 /*! @brief Adds an inverse cut.
46 *
47 * A cut added with this method will work in the inverse way: it will discard an event if
48 * the event satisfy the cut's selection criteria.
49 * @param cut The pointer to a PamCut-derived object to add to the collection.
50 */
51 void AddInverseCut(PamCut *cut);
52
53 /*! @brief Applies the cuts to the event, taking into account the inversion mask.
54 *
55 * @param event The event to analyze.
56 * @return CUTOK if the event satisfy each masked cut.
57 */
58 int ApplyCut(PamLevel2 *event);
59
60 private:
61 vector<bool> _mask;
62
63 };
64
65 #endif /* MASKEDCOLLECTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23