ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsBasic.h
(Generate patch)

Comparing UserCode/VHbb/plugins/Cuts/CutsBasic.h (file contents):
Revision 1.2 by bortigno, Wed Jun 6 13:32:38 2012 UTC vs.
Revision 1.3 by bortigno, Fri Jun 22 15:49:50 2012 UTC

# Line 17 | Line 17
17   // New implementations of the control region
18   // The signal regions must be implemented incrementally since cutflow is needed
19  
20 + bool qualityCuts( ntupleReader & p ){
21 +  return ( p.EVENT_json == true && p.hbhe == true );
22 + };
23 +
24   bool sCut( ntupleReader & p , Sample & sample ){
25 <  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 );
25 >  return ( p.EVENT_json == true && p.hbhe == true );
26   };
27  
28 < std::string generateName( std::string & baseName, int btag = 0, int jec = 0 ) {
28 > 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    if( jec == 1 )
37 <    return ( "SystJecUP"+baseName );
37 >    return ( "SystJecUP"+baseName+channel );
38    else if( jec == -1 )
39 <    return ( "SystJecDOWN"+baseName );
39 >    return ( "SystJecDOWN"+baseName+channel );
40    else if( jec == 2 )
41 <    return ( "SystJerUP"+baseName );
41 >    return ( "SystJerUP"+baseName+channel );
42    else if( jec == -2 )
43 <    return ( "SystJerDOWN"+baseName );
43 >    return ( "SystJerDOWN"+baseName+channel );
44    if( btag == 1)
45 <    return ( "SystBtagUP"+baseName );
45 >    return ( "SystBtagUP"+baseName+channel );
46    else if( btag == -1 )
47 <    return ( "SystBtagDOWN"+baseName );
47 >    return ( "SystBtagDOWN"+baseName+channel );
48    else if( btag == 2 )
49 <    return ( "SystBtagFUP"+baseName );
49 >    return ( "SystBtagFUP"+baseName+channel );
50    else if( btag == -2 )
51 <    return ( "SystBtagFDOWN"+baseName );
51 >    return ( "SystBtagFDOWN"+baseName+channel );
52    else if( btag == 0 && jec == 0)
53 <    return baseName;
53 >    return baseName+channel;
54   };
55  
56 + 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  
63 < class BasicRegionHZcomb: public CutSample{
64 < public:
65 < 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;
63 >  if(ch == -1) return (( p.Vtype == 0 && trigger[0] ) || ( p.Vtype == 1 && trigger[1] ));
64 >  else return ( p.Vtype == ch && trigger[ch] );
65 > };
66  
67 + double w(ntupleReader &p, Sample &sample){
68 +  std::string DY("DY");
69 +  if(sample.name == DY) return (p.lheWeight);
70 +  else return 1;
71   };
72  
73  
74 < class Basic50RegionHZcomb: public CutSample{
74 > class BasicRegion: public CutSample{
75   public:
76 < Basic50RegionHZcomb(int jec_= 0 , int btag_ = 0):
77 <  jec(jec_),btag(btag_){ baseName = "Basic50RegionHZcomb"; };
76 >  BasicRegion(int ch_=-1, int jec_= 0 , int btag_ = 0):
77 >    ch(ch_), jec(jec_),btag(btag_){ baseName = "BasicRegion"; };
78    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 <             && p.V_pt > 50.
83 <             && ( (  p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
84 <                  || ( 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)))) ) )
85 <             );
82 >             && p.hJet_CSV(0,btag) > CSVL
83 >             && p.hJet_CSV(1,btag) > CSVL
84 >             && qualityCuts( p )
85 >             && channel( p , ch) );
86    }
87    Bool_t pass(ntupleReader &p, Sample &sample){
88      return ( sCut( p , sample ) == true && pass( p ) );
89    }
90 <  double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
90 >  double weight(ntupleReader &p, Sample &sample) { return w( p, sample); }
91  
92   private:
93 <  std::string name(){ return( generateName(baseName, btag, jec) ) ;};
93 >  std::string name(){ return( generateName(baseName, ch, btag, jec) ) ;};
94    std::string baseName;
95    int btag;
96    int jec;
97 +  int ch;
98  
99   };
100  
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); }
101  
102 < private:
103 <  std::string name(){ return( generateName(baseName, btag, jec) ) ;};
104 <  std::string baseName;
105 <  int btag;
106 <  int jec;
102 > /* 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  
152 < };
152 > /* }; */
153  
154  
155   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines