ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsBasic.h
Revision: 1.2
Committed: Wed Jun 6 13:32:38 2012 UTC (12 years, 11 months ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: ichep8TeV
Changes since 1.1: +53 -0 lines
Log Message:
added 50 and 100

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     bool sCut( ntupleReader & p , Sample & sample ){
21     bool sampleCut = false;
22     bool boost = false;
23     bool isB = false;
24     if(p.genZpt >= 120)
25     boost = true;
26     if(p.eventFlav == 5)
27     isB = true;
28     std::string DY("DY");
29     std::string DYBOOSTED("DYBOOSTED");
30     if( sample.name == DY && !boost )
31     sampleCut = true;
32     else if( sample.name == DYBOOSTED && boost )
33     sampleCut = true;
34     else if( sample.name != DY && sample.name != DYBOOSTED )
35     sampleCut = true;
36     else sampleCut=false;
37     return ( sampleCut && p.EVENT_json == true && p.hbhe == true );
38     };
39    
40     std::string generateName( std::string & baseName, int btag = 0, int jec = 0 ) {
41     if( jec == 1 )
42     return ( "SystJecUP"+baseName );
43     else if( jec == -1 )
44     return ( "SystJecDOWN"+baseName );
45     else if( jec == 2 )
46     return ( "SystJerUP"+baseName );
47     else if( jec == -2 )
48     return ( "SystJerDOWN"+baseName );
49     if( btag == 1)
50     return ( "SystBtagUP"+baseName );
51     else if( btag == -1 )
52     return ( "SystBtagDOWN"+baseName );
53     else if( btag == 2 )
54     return ( "SystBtagFUP"+baseName );
55     else if( btag == -2 )
56     return ( "SystBtagFDOWN"+baseName );
57     else if( btag == 0 && jec == 0)
58     return baseName;
59     };
60    
61    
62     class BasicRegionHZcomb: public CutSample{
63     public:
64     BasicRegionHZcomb(int jec_= 0 , int btag_ = 0):
65     jec(jec_),btag(btag_){ baseName = "BasicRegionHZcomb"; };
66     Bool_t pass(ntupleReader &p){
67     return ( p.hJet_PT(0,jec) > 20.
68     && p.hJet_PT(1,jec) > 20.
69     && p.V_mass > 50.
70     && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
71     || ( 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)))) ) )
72     );
73     }
74     Bool_t pass(ntupleReader &p, Sample &sample){
75     return ( sCut( p , sample ) == true && pass( p ) );
76     }
77     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
78    
79     private:
80     std::string name(){ return( generateName(baseName, btag, jec) ) ;};
81     std::string baseName;
82     int btag;
83     int jec;
84    
85     };
86    
87    
88 bortigno 1.2 class Basic50RegionHZcomb: public CutSample{
89     public:
90     Basic50RegionHZcomb(int jec_= 0 , int btag_ = 0):
91     jec(jec_),btag(btag_){ baseName = "Basic50RegionHZcomb"; };
92     Bool_t pass(ntupleReader &p){
93     return ( p.hJet_PT(0,jec) > 20.
94     && p.hJet_PT(1,jec) > 20.
95     && p.V_mass > 50.
96     && p.V_pt > 50.
97     && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
98     || ( 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)))) ) )
99     );
100     }
101     Bool_t pass(ntupleReader &p, Sample &sample){
102     return ( sCut( p , sample ) == true && pass( p ) );
103     }
104     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
105    
106     private:
107     std::string name(){ return( generateName(baseName, btag, jec) ) ;};
108     std::string baseName;
109     int btag;
110     int jec;
111    
112     };
113    
114     class Basic100RegionHZcomb: public CutSample{
115     public:
116     Basic100RegionHZcomb(int jec_= 0 , int btag_ = 0):
117     jec(jec_),btag(btag_){ baseName = "Basic100RegionHZcomb"; };
118     Bool_t pass(ntupleReader &p){
119     return ( p.hJet_PT(0,jec) > 20.
120     && p.hJet_PT(1,jec) > 20.
121     && p.V_mass > 50.
122     && p.V_pt > 100.
123     && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
124     || ( 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)))) ) )
125     );
126     }
127     Bool_t pass(ntupleReader &p, Sample &sample){
128     return ( sCut( p , sample ) == true && pass( p ) );
129     }
130     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
131    
132     private:
133     std::string name(){ return( generateName(baseName, btag, jec) ) ;};
134     std::string baseName;
135     int btag;
136     int jec;
137    
138     };
139    
140    
141 bortigno 1.1 #endif