ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsMjj.h
Revision: 1.1
Committed: Mon Oct 29 15:49:48 2012 UTC (12 years, 6 months ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: lhcp_UnblindFix, hcp_Unblind, lhcp_11April, LHCP_PreAppFixAfterFreeze, LHCP_PreAppFreeze, workingVersionAfterHCP, HEAD
Log Message:
Mjj cuts

File Contents

# User Rev Content
1 bortigno 1.1 #ifndef CUTSSIDEBAND_MJJ_H
2     #define CUTSSIDEBAND_MJJ_H
3     #include "../../interface/CutsAndHistos.h"
4     #include "../../interface/ntupleReader.hpp"
5     #include <TH1F.h>
6     #include <sstream>
7     #include "../../interface/samples.hpp"
8     //to change: put qualityCuts, etc... in some more general header file
9     #include "CutsSideBand-Pt50To100.h"
10     #include "TKey.h"
11    
12     #define CSVM 0.679
13     #define CSVC 0.5 //custom btag
14     #define CSVL 0.244
15     #define CSVT 0.898
16     #define fA 0.46502
17     #define fB 0.53498
18    
19    
20     bool mjj_preselection( ntupleReader & p, int jec,int btag){
21     return( p.hJet_PT(0,jec) > 20.
22     && p.hJet_PT(1,jec) > 20.
23     && TMath::Max( p.hJet_CSV(0,btag) , p.hJet_CSV(1,btag) ) > CSVT
24     && TMath::Min( p.hJet_CSV(0,btag) , p.hJet_CSV(1,btag) ) > CSVC
25     && p.V_pt > 100.
26     && p.Higgs(jec).M() < 250.
27     && TMath::Abs(p.Higgs(jec).DeltaPhi(p.VectorBoson())) > 2.9
28     && p.CountAddJets() < 2
29     && qualityCuts( p ) );
30    
31     };
32    
33     class SideBandRegion_Mjj: public CutSample{
34     public:
35     SideBandRegion_Mjj(int ch_= -1, int jec_= 0 , int btag_ = 0):
36     ch(ch_),jec(jec_),btag(btag_){ baseName = "SideBandRegion_Mjj"; };
37     Bool_t pass(ntupleReader &p){
38     return ( mjj_preselection(p,jec,btag)
39     && p.V_mass > 75.
40     && p.V_mass < 105
41     && ( p.Higgs(jec).M() < 80.
42     || p.Higgs(jec).M() > 150. ) );
43     }
44     Bool_t pass(ntupleReader &p, Sample &sample){
45     return ( sCut( p , sample ) == true && pass( p ) == true && channel( p, ch, sample ) );
46     }
47     double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
48    
49     private:
50     std::string name(){ return( generateName(baseName, ch, btag, jec) ) ;};
51     std::string baseName;
52     int btag;
53     int jec;
54     int ch;
55    
56     };
57    
58     class SignalRegion_Mjj: public CutSample{
59     public:
60     SignalRegion_Mjj( int ch_= -1,int jec_= 0 , int btag_ = 0):
61     ch(ch_),jec(jec_),btag(btag_){ baseName = "SignalRegion_Mjj"; };
62     Bool_t pass(ntupleReader &p){
63     return ( mjj_preselection(p,jec,btag)
64     && p.V_mass > 75.
65     && p.V_mass < 105 );
66     }
67     Bool_t pass(ntupleReader &p, Sample &sample){
68     return ( sCut( p , sample ) == true && pass( p ) == true && channel( p, ch, sample ) );
69     }
70     double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
71    
72     private:
73     std::string name(){ return( generateName(baseName, ch, btag, jec) ) ;};
74     std::string baseName;
75     int btag;
76     int jec;
77     int ch;
78     };
79    
80     class TTbarRegion_Mjj: public CutSample{
81     public:
82     TTbarRegion_Mjj(int ch_= -1, int jec_ = 0, int btag_ = 0):
83     ch(ch_),jec(jec_), btag(btag_) { baseName = "TTbarRegion_Mjj"; };
84     Bool_t pass(ntupleReader &p){
85     return ( mjj_preselection(p,jec,btag)
86     && p.V_mass > 50.
87     && ( p.V_mass > 105.
88     || p.V_mass < 75. ) );
89     }
90     Bool_t pass(ntupleReader &p, Sample &sample){
91     return ( sCut( p, sample ) == true && pass( p ) == true && channel( p, ch, sample ) );
92     }
93     double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
94    
95     private:
96     std::string name() {return generateName(baseName, ch, btag, jec);};
97     std::string baseName;
98     int btag;
99     int jec;
100     int ch;
101     };
102    
103     #endif