ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/Selection/src/Selection.cc
(Generate patch)

Comparing UserCode/MitHzz4l/Selection/src/Selection.cc (file contents):
Revision 1.6 by khahn, Thu Oct 13 14:20:55 2011 UTC vs.
Revision 1.9 by khahn, Fri Oct 14 11:38:10 2011 UTC

# Line 1 | Line 1
1   #include "Selection.h"
2   #include "PassHLT.h"
3 +
4 + #include "SiMVAElectronSelection.h"
5 +
6   #include "HZZCiCElectronSelection.h"
7   #include "HZZLikelihoodElectronSelection.h"
8   #include "HZZBDTElectronSelection.h"
# Line 122 | Line 125 | unsigned fails_HZZ4L_selection(ControlFl
125        tmplep.isoTrk  = mu->trkIso03;
126        tmplep.isoEcal = mu->emIso03;
127        tmplep.isoHcal = mu->hadIso03;
128 +      tmplep.isoPF04 = mu->pfIso04;
129        tmplep.ip3dSig = mu->ip3dSig;
130        tmplep.is4l    = false;
131        tmplep.isEB    = (fabs(mu->eta) < 1.479 ? 1 : 0 );
# Line 163 | Line 167 | unsigned fails_HZZ4L_selection(ControlFl
167      }
168      unsigned  failsBDT=0;
169      if(ctrl.eleSele=="bdt") {
170 <      failsBDT = failsBDTSelection(ele,ctrl.kinematics,ctrl.eleSeleScheme);
170 >      failsBDT = failsBDTSelection(ctrl,ele);
171        FAIL = failsBDT;
172      }
173 +    unsigned  failsSi=0;
174 +    if(ctrl.eleSele=="si") {
175 +      failsSi = failsSiMVAElectronSelection(ctrl, ele, 0.95, ctrl.kinematics);
176 +      FAIL = failsSi;
177 +    }
178 +
179 +
180 +
181  
182      if( ctrl.debug ){
183        cout << "CIC category: " << cicCategory(ele)
# Line 191 | Line 203 | unsigned fails_HZZ4L_selection(ControlFl
203        tmplep.isoTrk  = ele->trkIso03;
204        tmplep.isoEcal = ele->emIso03;
205        tmplep.isoHcal = ele->hadIso03;
206 +      tmplep.isoPF04 = ele->pfIso04;
207        tmplep.ip3dSig = ele->ip3dSig;
208        tmplep.is4l    = false;
209        tmplep.isEB    = ele->isEB;
# Line 420 | Line 433 | unsigned fails_HZZ4L_selection(ControlFl
433          //***************************************************************
434          bool failiso=false;
435  
436 <        /*
424 <        int i,j;
425 <        i=Z1LeptonPlusIndex;
426 <        j=Z1LeptonMinusIndex;
427 <        float RIso1 = (lepvec[i].isoTrk+lepvec[i].isoEcal+lepvec[i].isoHcal)/lepvec[i].vec.Pt();
428 <        float RIso2 = (lepvec[j].isoTrk+lepvec[j].isoEcal+lepvec[j].isoHcal)/lepvec[j].vec.Pt();
429 <        float comboIso12 = RIso1 + RIso2;
430 <        i=Z2LeptonPlusIndex;
431 <        j=Z2LeptonMinusIndex;
432 <        float RIso3 = (lepvec[i].isoTrk+lepvec[i].isoEcal+lepvec[i].isoHcal)/lepvec[i].vec.Pt();
433 <        float RIso4 = (lepvec[j].isoTrk+lepvec[j].isoEcal+lepvec[j].isoHcal)/lepvec[j].vec.Pt();
434 <        float comboIso34 = RIso3 + RIso4;
435 <        if( comboIso12 > 0.35 || comboIso34 > 0.35 ) {
436 <              failiso = true;
437 <        }
438 <        */
436 >        if( ctrl.isoScheme = "pf" ) {
437  
438 <        float rho = info->rho;
439 <        for( int i=0; i<lepvec.size(); i++ ) {
440 <          if( !(lepvec[i].is4l) ) continue;
438 >          for( int i=0; i<lepvec.size(); i++ ) {
439 >            if( !(lepvec[i].is4l) ) continue;
440 >            if( abs(lepvec[i].type) == 11 ) {
441 >              if( (lepvec[i].isEB && lepvec[i].isoPF04 >0.13) ||
442 >                  (!(lepvec[i].isEB) && lepvec[i].isoPF04 >0.09) ) {
443 >                failiso = true;
444 >                break;
445 >              }
446 >            }
447 >            if( abs(lepvec[i].type) == 13 ) {
448 >              if( lepvec[i].isEB && lepvec[i].vec.Pt() > 20 && lepvec[i].isoPF04 > 0.13 ) {
449 >                failiso = true;
450 >                break;
451 >              }
452 >              if( lepvec[i].isEB && lepvec[i].vec.Pt() < 20 && lepvec[i].isoPF04 > 0.06 ) {
453 >                failiso = true;
454 >                break;
455 >              }
456 >              if( !(lepvec[i].isEB) && lepvec[i].vec.Pt() > 20 && lepvec[i].isoPF04 > 0.09 ) {
457 >                failiso = true;
458 >                break;
459 >              }
460 >              if( !(lepvec[i].isEB) && lepvec[i].vec.Pt() < 20 && lepvec[i].isoPF04 > 0.05 ) {
461 >                failiso = true;
462 >                break;
463 >              }
464 >            }
465 >          }  
466 >        } else {
467 >          float rho = info->rho;
468 >          for( int i=0; i<lepvec.size(); i++ ) {
469 >            if( !(lepvec[i].is4l) ) continue;
470              float effArea_ecal_i, effArea_hcal_i;
471              if( lepvec[i].isEB ) {
472                if( lepvec[i].type == 11 ) {
# Line 515 | Line 542 | unsigned fails_HZZ4L_selection(ControlFl
542                  //            break;
543                }
544              }
545 +          }
546          }
547 +
548 +
549          if( failiso ) {
550            evtfail |= ( 1<<EVTFAIL_ISOLATION );
551            return evtfail;
# Line 580 | Line 610 | unsigned fails_HZZ4L_selection(ControlFl
610            unsigned evt   = info->evtNum;
611            unsigned lumi  = info->lumiSec;
612            unsigned chan  = channel;
613 +          double   w     = eventweight;
614            float mZ1      = Z1Candidate.M() ;
615            float mZ2      = Z2Candidate.M() ;
616            float m4l      = ZZSystem.M() ;
# Line 591 | Line 622 | unsigned fails_HZZ4L_selection(ControlFl
622            passtuple->SetBranchAddress("mZ2",  &mZ2);
623            passtuple->SetBranchAddress("m4l",  &m4l);
624            passtuple->SetBranchAddress("pt4l", &pt4l);
625 <          passtuple->SetBranchAddress("w",    &eventweight);
625 >          passtuple->SetBranchAddress("w",    &w);
626            passtuple->Fill( );
627          }
628  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines