ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/AnaTools/interface/CutFlow.h
Revision: 1.4
Committed: Fri Feb 1 01:05:13 2013 UTC (12 years, 3 months ago) by ahart
Content type: text/plain
Branch: MAIN
CVS Tags: V02-03-02, V02-03-01, V02-03-00, V02-02-00, V02-01-01, V02-01-00, V01-01-00, V01-00-01, V01-00-00, V00-01-00, HEAD
Changes since 1.3: +1 -1 lines
Log Message:
Rename the rejection cut flow to something more intuitive and correct: "minus one". This cut flow contains the numbers of events that would result if the cut in question were removed.

File Contents

# Content
1 #ifndef CUT_FLOW
2
3 #define CUT_FLOW
4
5 #include <iostream>
6 #include <iomanip>
7 #include <map>
8 #include <string>
9 #include <vector>
10
11 #include "FWCore/ServiceRegistry/interface/Service.h"
12 #include "CommonTools/UtilAlgos/interface/TFileService.h"
13
14 #include "TH1D.h"
15 #include "TStopwatch.h"
16
17 using namespace std;
18
19 class CutFlow
20 {
21 typedef void (CutFlow::*boolType) () const;
22
23 public:
24 CutFlow () {};
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 (double);
33 void fillCutFlow () { fillCutFlow (1.0); };
34 void outputTime ();
35 void outputCutFlow ();
36
37 private:
38 TH1D *cutFlow_;
39 TH1D *selection_;
40 TH1D *minusOne_;
41
42 TStopwatch sw_;
43 string prefix_;
44 vector<string> cutNames_;
45 map<string, bool> cuts_;
46
47 void thisTypeDoesNotSupportComparisons () const {};
48 };
49
50 #endif