ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsBasic.h
Revision: 1.3
Committed: Fri Jun 22 15:49:50 2012 UTC (12 years, 10 months ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: lhcp_UnblindFix, hcp_Unblind, lhcp_11April, LHCP_PreAppFixAfterFreeze, LHCP_PreAppFreeze, workingVersionAfterHCP, hcpApproval, hcpPreApp, ICHEP8TeV, HEAD
Changes since 1.2: +95 -81 lines
Error occurred while calculating annotation data.
Log Message:
ichep 8TeV

File Contents

# Content
1 #ifndef CUTSBASIC_H
2 #define CUTSBASIC_H
3 #include "../../interface/CutsAndHistos.h"
4 #include "../../interface/ntupleReader.hpp"
5 #include <TH1F.h>
6 #include <sstream>
7 #include "../../interface/samples.hpp"
8 #include "TKey.h"
9
10 #define CSVM 0.679
11 #define CSVC 0.5 //custom btag
12 #define CSVL 0.244
13 #define CSVT 0.898
14 #define fA 0.46502
15 #define fB 0.53498
16
17 // New implementations of the control region
18 // The signal regions must be implemented incrementally since cutflow is needed
19
20 bool qualityCuts( ntupleReader & p ){
21 return ( p.EVENT_json == true && p.hbhe == true );
22 };
23
24 bool sCut( ntupleReader & p , Sample & sample ){
25 return ( p.EVENT_json == true && p.hbhe == true );
26 };
27
28 std::string generateName( std::string & baseName, int ch = -1, int btag = 0, int jec = 0 ) {
29 std::string channel;
30 if(ch == -1)
31 channel = "HZcomb";
32 else if(ch == 0)
33 channel = "HZmm";
34 else if(ch == 1)
35 channel = "HZee";
36 if( jec == 1 )
37 return ( "SystJecUP"+baseName+channel );
38 else if( jec == -1 )
39 return ( "SystJecDOWN"+baseName+channel );
40 else if( jec == 2 )
41 return ( "SystJerUP"+baseName+channel );
42 else if( jec == -2 )
43 return ( "SystJerDOWN"+baseName+channel );
44 if( btag == 1)
45 return ( "SystBtagUP"+baseName+channel );
46 else if( btag == -1 )
47 return ( "SystBtagDOWN"+baseName+channel );
48 else if( btag == 2 )
49 return ( "SystBtagFUP"+baseName+channel );
50 else if( btag == -2 )
51 return ( "SystBtagFDOWN"+baseName+channel );
52 else if( btag == 0 && jec == 0)
53 return baseName+channel;
54 };
55
56 Bool_t channel(ntupleReader & p, int ch = -1){
57 bool trigger[2];
58 //muons
59 trigger[0] = ( ( p.triggerFlags[14] || p.triggerFlags[21] || p.triggerFlags[22] || p.triggerFlags[23] ) );
60 //electrons
61 trigger[1] = ( ( p.triggerFlags[5] || p.triggerFlags[6] ) );
62
63 if(ch == -1) return (( p.Vtype == 0 && trigger[0] ) || ( p.Vtype == 1 && trigger[1] ));
64 else return ( p.Vtype == ch && trigger[ch] );
65 };
66
67 double w(ntupleReader &p, Sample &sample){
68 std::string DY("DY");
69 if(sample.name == DY) return (p.lheWeight);
70 else return 1;
71 };
72
73
74 class BasicRegion: public CutSample{
75 public:
76 BasicRegion(int ch_=-1, int jec_= 0 , int btag_ = 0):
77 ch(ch_), jec(jec_),btag(btag_){ baseName = "BasicRegion"; };
78 Bool_t pass(ntupleReader &p){
79 return ( p.hJet_PT(0,jec) > 20.
80 && p.hJet_PT(1,jec) > 20.
81 && p.V_mass > 50.
82 && p.hJet_CSV(0,btag) > CSVL
83 && p.hJet_CSV(1,btag) > CSVL
84 && qualityCuts( p )
85 && channel( p , ch) );
86 }
87 Bool_t pass(ntupleReader &p, Sample &sample){
88 return ( sCut( p , sample ) == true && pass( p ) );
89 }
90 double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
91
92 private:
93 std::string name(){ return( generateName(baseName, ch, btag, jec) ) ;};
94 std::string baseName;
95 int btag;
96 int jec;
97 int ch;
98
99 };
100
101
102 /* class Basic50Region: public CutSample{ */
103 /* public: */
104 /* Basic50Region(int jec_= 0 , int btag_ = 0): */
105 /* jec(jec_),btag(btag_){ baseName = "Basic50Region"; }; */
106 /* Bool_t pass(ntupleReader &p){ */
107 /* return ( p.hJet_PT(0,jec) > 20. */
108 /* && p.hJet_PT(1,jec) > 20. */
109 /* && p.V_mass > 50. */
110 /* && p.V_pt > 50. */
111 /* && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) ) */
112 /* || ( p.Vtype == 0 && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ) */
113 /* ); */
114 /* } */
115 /* Bool_t pass(ntupleReader &p, Sample &sample){ */
116 /* return ( sCut( p , sample ) == true && pass( p ) ); */
117 /* } */
118 /* double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
119
120 /* private: */
121 /* std::string name(){ return( generateName(baseName, btag, jec) ) ;}; */
122 /* std::string baseName; */
123 /* int btag; */
124 /* int jec; */
125
126 /* }; */
127
128 /* class Basic100Region: public CutSample{ */
129 /* public: */
130 /* Basic100Region(int jec_= 0 , int btag_ = 0): */
131 /* jec(jec_),btag(btag_){ baseName = "Basic100Region"; }; */
132 /* Bool_t pass(ntupleReader &p){ */
133 /* return ( p.hJet_PT(0,jec) > 20. */
134 /* && p.hJet_PT(1,jec) > 20. */
135 /* && p.V_mass > 50. */
136 /* && p.V_pt > 100. */
137 /* && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) ) */
138 /* || ( p.Vtype == 0 && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ) */
139 /* ); */
140 /* } */
141 /* Bool_t pass(ntupleReader &p, Sample &sample){ */
142 /* return ( sCut( p , sample ) == true && pass( p ) ); */
143 /* } */
144 /* double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
145
146 /* private: */
147 /* std::string name(){ return( generateName(baseName, btag, jec) ) ;}; */
148 /* std::string baseName; */
149 /* int btag; */
150 /* int jec; */
151
152 /* }; */
153
154
155 #endif