ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsBasic.h
Revision: 1.1
Committed: Wed Jun 6 12:12:53 2012 UTC (12 years, 11 months ago) by bortigno
Content type: text/plain
Branch: MAIN
Log Message:
Only quality cuts

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     #endif