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
Log Message:
ichep 8TeV

File Contents

# User Rev Content
1 bortigno 1.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 bortigno 1.3 bool qualityCuts( ntupleReader & p ){
21     return ( p.EVENT_json == true && p.hbhe == true );
22     };
23    
24 bortigno 1.1 bool sCut( ntupleReader & p , Sample & sample ){
25 bortigno 1.3 return ( p.EVENT_json == true && p.hbhe == true );
26 bortigno 1.1 };
27    
28 bortigno 1.3 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 bortigno 1.1 if( jec == 1 )
37 bortigno 1.3 return ( "SystJecUP"+baseName+channel );
38 bortigno 1.1 else if( jec == -1 )
39 bortigno 1.3 return ( "SystJecDOWN"+baseName+channel );
40 bortigno 1.1 else if( jec == 2 )
41 bortigno 1.3 return ( "SystJerUP"+baseName+channel );
42 bortigno 1.1 else if( jec == -2 )
43 bortigno 1.3 return ( "SystJerDOWN"+baseName+channel );
44 bortigno 1.1 if( btag == 1)
45 bortigno 1.3 return ( "SystBtagUP"+baseName+channel );
46 bortigno 1.1 else if( btag == -1 )
47 bortigno 1.3 return ( "SystBtagDOWN"+baseName+channel );
48 bortigno 1.1 else if( btag == 2 )
49 bortigno 1.3 return ( "SystBtagFUP"+baseName+channel );
50 bortigno 1.1 else if( btag == -2 )
51 bortigno 1.3 return ( "SystBtagFDOWN"+baseName+channel );
52 bortigno 1.1 else if( btag == 0 && jec == 0)
53 bortigno 1.3 return baseName+channel;
54 bortigno 1.1 };
55    
56 bortigno 1.3 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 bortigno 1.1
63 bortigno 1.3 if(ch == -1) return (( p.Vtype == 0 && trigger[0] ) || ( p.Vtype == 1 && trigger[1] ));
64     else return ( p.Vtype == ch && trigger[ch] );
65     };
66 bortigno 1.1
67 bortigno 1.3 double w(ntupleReader &p, Sample &sample){
68     std::string DY("DY");
69     if(sample.name == DY) return (p.lheWeight);
70     else return 1;
71 bortigno 1.1 };
72    
73    
74 bortigno 1.3 class BasicRegion: public CutSample{
75 bortigno 1.2 public:
76 bortigno 1.3 BasicRegion(int ch_=-1, int jec_= 0 , int btag_ = 0):
77     ch(ch_), jec(jec_),btag(btag_){ baseName = "BasicRegion"; };
78 bortigno 1.2 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 bortigno 1.3 && p.hJet_CSV(0,btag) > CSVL
83     && p.hJet_CSV(1,btag) > CSVL
84     && qualityCuts( p )
85     && channel( p , ch) );
86 bortigno 1.2 }
87     Bool_t pass(ntupleReader &p, Sample &sample){
88     return ( sCut( p , sample ) == true && pass( p ) );
89     }
90 bortigno 1.3 double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
91 bortigno 1.2
92     private:
93 bortigno 1.3 std::string name(){ return( generateName(baseName, ch, btag, jec) ) ;};
94 bortigno 1.2 std::string baseName;
95     int btag;
96     int jec;
97 bortigno 1.3 int ch;
98 bortigno 1.2
99     };
100    
101    
102 bortigno 1.3 /* 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 bortigno 1.2
152 bortigno 1.3 /* }; */
153 bortigno 1.2
154    
155 bortigno 1.1 #endif