18 |
|
|
19 |
|
class CutFlow |
20 |
|
{ |
21 |
+ |
typedef void (CutFlow::*boolType) () const; |
22 |
+ |
|
23 |
|
public: |
24 |
|
CutFlow () {}; |
25 |
< |
CutFlow (map<string, TH1D *> &, const edm::Service<TFileService> &, const string &prefix = ""); |
25 |
> |
CutFlow (const edm::Service<TFileService> &, const string &prefix = ""); |
26 |
|
~CutFlow (); |
27 |
|
bool &operator[] (const string &); |
28 |
|
bool &at (const string &cutName) { return (*this)[cutName]; }; |
29 |
+ |
bool pass () const; |
30 |
+ |
operator boolType () const { return pass () ? &CutFlow::thisTypeDoesNotSupportComparisons : 0; }; |
31 |
|
|
32 |
|
void fillCutFlow (); |
33 |
|
void outputTime (); |
36 |
|
private: |
37 |
|
TH1D *cutFlow_; |
38 |
|
TH1D *selection_; |
39 |
< |
TH1D *complementarySelection_; |
39 |
> |
TH1D *rejection_; |
40 |
|
|
41 |
|
TStopwatch sw_; |
42 |
|
string prefix_; |
43 |
|
vector<string> cutNames_; |
44 |
|
map<string, bool> cuts_; |
45 |
+ |
|
46 |
+ |
void thisTypeDoesNotSupportComparisons () const {}; |
47 |
|
}; |
48 |
|
|
49 |
|
#endif |