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

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