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.1 by bortigno, Wed Jun 6 12:12:53 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 >  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 BasicRegionHZcomb: public CutSample{
74 > class BasicRegion: public CutSample{
75   public:
76 < BasicRegionHZcomb(int jec_= 0 , int btag_ = 0):
77 <  jec(jec_),btag(btag_){ baseName = "BasicRegionHZcomb"; };
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.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
83 <                  || ( 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)))) ) )
84 <             );
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  
101  
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 + /* }; */
153 +
154 +
155   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines